送信時のコンテンツをコンテキストに応じて表示

AMPscript を使用して、送信ロギングデータエクステンションを介して送信時のコンテンツをコンテキストに応じて表示します。AMPscript を使用して送信ロギングデータベースから情報を取り込んで、購読者に表示するコンテンツを決定できます。表示するコンテンツのコンテキストに応じて、送信ロギングデータベースを使用してコンテキストごとに異なる情報を取り込むことができます。たとえば、送信時点のコンテンツを、共有されるソーシャル転送コンテンツまたは Web ページで参照するコンテンツとして表示できます。ただし、メールメッセージにコンテンツを表示する場合は、最新のコンテンツを表示しなければならない場合もあります。AMPscript を使用すると、送信ロギングデータエクステンションから送信時のコンテンツを取り込み、選択したコンテキストで使用できます。

前提条件 

このドキュメントの情報を使用するには、AMPscript について理解している必要があります。また、送信ロギング機能を有効にしているアカウントを使用する必要があります。この機能の有効化に関する詳細は、Marketing Cloud アカウントの担当者にお問い合わせください。

例 

独自のコードを開発するためのひな型として以下のサンプル AMPscript を使用してください。以下の例では、メールの内容が参照された時点で送信ロギングデータエクステンションから送信時のコンテンツが取り込まれます。共有コンテンツまたは Web ページで参照するコンテンツについて、AMPscript は最新のコンテンツを表示します。

コードの最初のブロックでは、適切なデータを含めるために必要な変数と、適用可能な SubscriberID および JobID 値を保持するために必要な変数を設定します。@SendLogData 検索呼び出しでは、送信ロギングデータエクステンションを参照し、特定の購読者およびジョブに割り当てられたフィールドの情報を取得します。その後の IF ELSE ステートメントでは、送信ロギングデータエクステンションからのコンテンツが存在する場合にそのコンテンツを Web ページまたはソーシャル転送コンテキストに表示します。存在しない場合、AMPscript はメールの内容を表示します。

1%%[
2/* Set variables for looking up in send logging data extension */
3var @SendLogData, @SubLookup, @JobLookup
4Set @SubLookup = SubscriberID   /* subscriber id of the record */
5Set @JobLookup = JobID  /* job id for the send */
6Set @SendLogData = lookup("Send_logging_DE","DE_Field","SubID",@SubLookup,"JobID",@JobLookup)
7]%%
8
9/* Set if statement to determine what should be displayed based on how the email is viewed */
10%%[ if _MessageContext == "VAWP" or _MessageContext == "Social" or _MessageContext == "FTAF" then ]%%
11
12/* Content to display when using the view as a web page, social forward, or forward to a friend features */
13send logging value: %%=v(@SendLogData)=%%
14
15%%[ ELSE ]%%
16
17/* Content to display in the email inbox */
18email value: %%DE_Field%%
19
20%%[ ENDIF ]%%

同じメールメッセージを複数回送信する場合、「Web ページとして表示」オプションでは、前のバージョンのメールメッセージが参照され、加えられた可能性がある変更が反映されない場合があります。この状況を回避するには、AMPscript 内で送信の BatchID を参照し、適切なメールメッセージが Web ページとして表示されるようにします。ユーザー定義の @eventID 変数では、「Web ページとして表示」オプションを使用して現在の送信または前のバージョンを参照します。

同じメールメッセージを複数回送信し、「Web ページとして表示」オプションを使用している場合は、送信ロギングも必ず使用してください。使用しない場合、次の送信の前に受信者がデータエクステンションから削除されると、その受信者の「Web ページとして表示」リンクは機能しなくなります。

1%%[ Var @eventId, @emailaddr, @SendLogEID, @SendLogEM, @SubLookup, @JobLookup,@BatchLookup
2Set @SubLookup = SubscriberID
3Set @JobLookup = JobID
4Set @BatchLookup = _JobSubscriberBatchID
5Set @SendLogEID = lookup("SendLog","EventID","SubID",@SubLookup,"JobID",@JobLookup,"BatchID",@BatchLookup)
6Set @SendLogEM = lookup("SendLog","EmailAddress","SubID",@SubLookup,"JobID",@JobLookup,"BatchID",@BatchLookup)
7]%%
8
9%%[ if _MessageContext == "VAWP" or _MessageContext == "Social" or _MessageContext == "FTAF" then ]%%
10
11%%[ Set @eventId = @SendLogEID
12Set @emailAddress = @SendLogEM ]%%
13
14%%[ ELSE ]%%
15
16%%[
17Set @eventId = [EventID]
18Set @emailAddress = [emailAddress]
19]%%
20
21%%[ ENDIF ]%%