AMPscript および SOAP Web サービス API を使用したデータエクステンションの作成

ランディングページに含まれる AMPscript を使用して Web サービス API を操作し、データエクステンションを作成します。たとえば、別のデータシステムまたはデータ連携から情報を取得する一意の送信可能なデータエクステンションを作成し、それらのデータエクステンションにインポートされた情報に基づく送信を実行できます。AMPscript は、その他のデータソースから情報を取得し、送信可能なデータエクステンションにインポートします。その後、トリガーによる送信の定義内に送信可能なデータエクステンションを追加して、パーソナライズされた情報が含まれるメールを送信できます。

次のサンプル AMPscript を独自のスクリプトを作成するためのひな型として使用してください。

1%%[
2/*CREATE THE DATA EXTENSION*/
3Set @de = CreateObject("DataExtension")
4SetObjectProperty(@de,"Name","API-Created Data Extension")
5SetObjectProperty(@de,"CustomerKey","XXXXXXXX")
6SetObjectProperty(@de,"Description","Data Extension Created via API")
7SetObjectProperty(@de,"IsSendable","True")
8SetObjectProperty(@de,"IsTestable","False")
9
10/*DE Folder ID - mouse over in app to get this ID */
11SetObjectProperty(@de,"CategoryID","123")
12
13/* THIS IS THE SENDABLE FIELD */
14Set @deFields = CreateObject("DataExtensionField")
15SetObjectProperty(@deFields,"FieldType","EmailAddress")
16SetObjectProperty(@deFields,"IsRequired","true")
17SetObjectProperty(@deFields,"IsPrimaryKey","true")
18SetObjectProperty(@deFields,"IsNillable","false")
19SetObjectProperty(@deFields,"MaxLength","100")
20SetObjectProperty(@deFields,"Name","email_address")
21AddObjectArrayItem(@de,"Fields",@deFields)
22SetObjectProperty(@de,"SendableDataExtensionField",@deFields)
23 Set @deFields = CreateObject("DataExtensionField")
24SetObjectProperty(@deFields,"FieldType","Text")
25SetObjectProperty(@deFields,"IsRequired","true")
26SetObjectProperty(@deFields,"IsPrimaryKey","false")
27SetObjectProperty(@deFields,"IsNillable","false")
28SetObjectProperty(@deFields,"MaxLength","100")
29SetObjectProperty(@deFields,"Name","subscriber_key")
30AddObjectArrayItem(@de,"Fields",@deFields)
31
32Set @deFields = CreateObject("DataExtensionField")
33SetObjectProperty(@deFields,"FieldType","Text")
34SetObjectProperty(@deFields,"IsRequired","false")
35SetObjectProperty(@deFields,"IsPrimaryKey","false")
36SetObjectProperty(@deFields,"IsNillable","false")
37SetObjectProperty(@deFields,"MaxLength","50")
38SetObjectProperty(@deFields,"Name","first_name")
39AddObjectArrayItem(@de,"Fields",@deFields)
40
41Set @deFields = CreateObject("DataExtensionField")
42SetObjectProperty(@deFields,"FieldType","Text")
43SetObjectProperty(@deFields,"IsRequired","false")
44SetObjectProperty(@deFields,"IsPrimaryKey","false")
45SetObjectProperty(@deFields,"IsNillable","false")
46SetObjectProperty(@deFields,"MaxLength","75")
47SetObjectProperty(@deFields,"Name","last_name")
48AddObjectArrayItem(@de,"Fields",@deFields)
49 /* This field sets how the data extension field above relates to the all subscribers list */
50SET @ts_attr = CreateObject("Attribute")
51SetObjectProperty(@ts_attr, "Name", "Email Address")
52SetObjectProperty(@ts_attr, "Value", "Email Address")
53SetObjectProperty(@de,"SendableSubscriberField",@ts_attr)
54
55Set @StatCode = InvokeCreate(@de, @StatMessage, @ErrorCode)
56
57]%%
58
59Status = %%= v(@StatMessage) =%% -- %%= v(@ErrorCode) =%%

以下のサンプルコードでは、購読者キーを使用して、送信可能なデータエクステンションを作成します。

1/*CREATE THE DATA EXTENSION*/
2Set @de = CreateObject("DataExtension")
3SetObjectProperty(@de,"Name",@name)
4SetObjectProperty(@de,"CustomerKey",@key)
5SetObjectProperty(@de,"Description",@description)
6SetObjectProperty(@de,"IsSendable","True")
7SetObjectProperty(@de,"IsTestable","False")
8
9/*DE Folder ID*/
10SetObjectProperty(@de,"CategoryID",@FolderID)
11
12Set @deFields = CreateObject("DataExtensionField")
13SetObjectProperty(@deFields,"Name","Whatever")
14SetObjectProperty(@deFields,"FieldType","Text")
15SetObjectProperty(@deFields,"MaxLength","100")
16AddObjectArrayItem(@de,"Fields",@deFields)
17
18Set @deFields = CreateObject("DataExtensionField")
19SetObjectProperty(@deFields,"Name","Subscriber Key")
20SetObjectProperty(@deFields,"FieldType","Text")
21SetObjectProperty(@deFields,"MaxLength","150")
22AddObjectArrayItem(@de,"Fields",@deFields)
23
24SetObjectProperty(@de,"SendableDataExtensionField",@deFields)
25
26SET @ts_attr = CreateObject("Attribute")
27SetObjectProperty(@ts_attr, "Name", "Subscriber Key")
28SetObjectProperty(@ts_attr, "Value", "Subscriber Key")
29
30SetObjectProperty(@de,"SendableSubscriberField",@ts_attr)
31Set @StatCode = InvokeCreate(@de, @StatMessage, @ErrorCode)

Enterprise 2.0 アカウントで作業していて、データエクステンションでデータ保持を使用する場合、該当する ClientID 値を使用して ClientID プロパティをデータエクステンションオブジェクトに追加します。上記のサンプルコードに以下の AMPscript を追加して、データ保持ポリシーで正しいユーザー権限が使用されていることを確認します。次のコードに含める UserID 番号を取得するには、Salesforce Marketing Cloud アプリケーションの [セットアップ] セクションのユーザーの上にマウスを置きます。

1SET @client = CreateObject("ClientID")
2SetObjectProperty(@client, "ID", @memberID)
3SetObjectProperty(@client, "UserID", @userIDwithPermission)

また、次のコードのように AMPscript を介してデータ保持ポリシーを設定することもできます。

1/* Data Retention */
2
3SetObjectProperty(@de,"DataRetentionPeriodLength","3")
4SetObjectProperty(@de,"DataRetentionPeriodLengthSpecified","True")
5SetObjectProperty(@de,"DataRetentionPeriodUnitOfMeasure","5")
6
7/*
8                 DataRetentionPeriodUnitOfMeasure
9                 * 1 = N/A
10                 * 2 = N/A
11                 * 3 = Days
12                 * 4 = Weeks
13                 * 5 = Months
14                 * 6 = Years
15*/
16
17SetObjectProperty(@de,"DataRetentionPeriodUnitOfMeasureSpecified","True")
18SetObjectProperty(@de,"DeleteAtEndOfRetentionPeriod","True")
19SetObjectProperty(@de,"DeleteAtEndOfRetentionPeriodSpecified","True")
20SetObjectProperty(@de,"ResetRetentionPeriodOnImport","False")
21SetObjectProperty(@de,"ResetRetentionPeriodOnImportSpecified","False")
22SetObjectProperty(@de,"RowBasedRetention","False")
23SetObjectProperty(@de,"RowBasedRetentionSpecified","False")