要約 パーソナライズ可能で追跡をサポートする電子メールにリンクの書き込み方法
デジタルマーケティングソリューション Adobe Campaign 5.11,6.0,6.1,6.11,7
対象 上級ユーザー、管理者

この記事や他の Adobe Campaign のトピックについて質問がある場合、コミュニティに質問してください.

概要

パーソナライゼーションを含む電子メールコンテンツのリンクは特定の構文に追跡されなければなりません。

電子メールコンテンツ(HTML やテキスト)に JavaScript を使用すると、動的コンテンツを生成して受信者に送信できますが、2つの制限があります。

  • スクリプトはデータベースに直接でアクセスできません(SQL 関数と API 関数は使用できません)
  • Adobe Campaign はリンクを追跡できるように URL を検出できなければなりません(この文書の目的)

パーソナライゼーションと追跡プロセスの概要

追跡を検出するために、Adobe Campaign は Tidy を埋め込み、HTML ソースを解析してパターンを検出する。コンテンツを個別に追跡できるように、コンテンツのすべての URL が一覧表示されます。Adobe Campaign は Tidy を再度使用して、Adobe Campaign リダイレクトサーバーを指すで URL(http://myurl.com) を置き換えます。

たとえば、最初のコンテンツ: http://myurl.com/a.php?name=<%=escapeUrl(recipient.lastName)%> 1つの特定の受信者に置換される http://emailing.customer.com/r/?id=h617791,71ffa3,71ffa8&p1=Bare

このシンタックスでは:

  • "h" は HTML コンテンツ(やテキストコンテンツの場合は "t")を意味します。
  • 617791 はメッセージ ID / broadLog ID(16進数)です。
  • 71ffa3 は NmsDelivery ID(16進数)です。
  • 71ffa8 は NmsTrackingUrl ID(16進数)です。
  • p1,p2 などは URL 内で代替するすべての変数です。

トラッキング URL の検出

非検出の例

<%= getURL("http://mynewsletter.com") %> を有効にして、ウェブページの実際のコンテンツを電子メールで受信者に送信します。しかし、リンクのどれも追跡されません。これは MTA が送信前に "<%=getURL(..." を実行するためです。受信者ごとに異なる場合がありますから、Adobe Campaign は追跡する URL を認識してタグ ID を割り当てることができません。

ダウンロードするページがすべての受信者に同じである場合は、次のようなベストプラクティスがあります。

<%@ include url="http://mynewsletter.com" %>

その場合、トラッキング検出の前にページは分析中にダウンロードされます。Adobe Campaign はこれによりリンクを発見して、タグ ID を割り当て、それらを追跡することができます

推奨パターン

<%@ 命令を処理した後、追跡される URL の構文は次のとおりです

<a href="http://myurl.com/a.php?param1=aaa&param2=<%=escapeUrl(recipient.xxx)%>&param3=<%=escapeUrl(recipient.xxx)%>">

警告 http://<%=myURL%>パターン

<a href="http://<%=myURL%> "> 構文への使用は推奨されません。理由は次のとおりです。

  • ランダムに発生する可能性があるから、Tidy はいくつかのリンクを間違って修正することができます。典型的な問題は HTML の部分が電子メールプルーフには表示されますが、プレビューには表示されないことです。
  • URL へのエスケープは問題がある、URL の一部の文字が問題を引き起こす可能性があります。
  • パラメーターでネームする ID を使用することができません、リダイレクト URL のパラメータと衝突しますからです。
  • Adobe Campaign は「myURL」のすべての可能な値を無差別に追跡するから、追跡目標は配信の統計に限定されます。

<%@ 指示

これらの前処理命令は JavaScript ではありません。この構文は Adobe Campaign の固有のものです。

これらは配信コンテンツのコンテキストのみ適用されます。これは電子メールの URL をスクリプト化し、それを追跡する唯一の方法です(URL パラメータの他に)。追跡されるトラッキングへの検出前、配信分析中に適用された自動コピー / 貼り付けを表示できます。

キャンペーンには 3 つのタイプがあります。

  • 「含める」:主にオプション、パーソナライズブロック、外部ファイル、またはページでのいくつかのコードを分解する
  • "値":配達の分野,配信変数,配信にロードされたカスタムオブジェクトにアクセス権を与える。
  • "foreach":カスタムオブジェクトとしてロードされた配列をループします。

配信ウィザードから直接でテストされられます。 トラッキングボタンをクリックして URL のリストをチェックする時、コンテンツのプレビューに適用されます

<%@ include

最もよく使用される例を次に示します。

  • ミラーページリンクを含む:<%@ include view="MirrorPage" %>
  • ミラーページ URL 「<a href="<%@ include view='MirrorPageUrl' %>" _label="Mirror Page" _type="mirrorPage"> Web ページとして表示」
  • 追加設定不要な購読解除にの URL: <%@ include option='NmsServer_URL' %>/webApp/unsub?id=<%= escapeUrl(recipient.cryptedId)%>
  • その他の例:
    • <%@ include file='http://www.google.com' %>
    • <%@ include file='file:///X:/france/service/test.html' %>
    • <%@ include option='NmsServer_URL' %>

正しいシンタックスを得るには、配信ウィザードの「ユーザー定義」ボタン使用します。

 

<%@ value

この指令はすべての受信者の定数のパラメーターにアクセスできます。

構文:

<%@ value object="myObject" xpath="@myField" index="1" %>

このシンタックスでは:

  • オブジェクト: オブジェクトの名前(例 :配信、プロバイダーなど)。
  • xpath: フィールドの xpath です。
  • 「インデックス」(オプション):「オブジェクト」の配列(追加スクリプトオブジェクト用)で、配列(0から開始)アイテムのインデックスである場合。

オブジェクトは次のとおりです。

  • 配信: 現在の配信用(詳細は下のサブセクションを参照する)。
  • プロバイダ: 現在の配信プロバイダー / ルーティング (nms:externalAccount)。
  • 余分なスクリプトオブジェクト:オブジェクトがコンテキストでロードされた場合: プロパティ > パーソナライゼーション > 実行コンテキストにオブジェクトを追加します.
  • ループの項目:下記の Foreach セクションを参照してください。

"配信" オブジェクト

電子メールパーソナライゼーションについて、配信オブジェクトは次の 2 つの方法でアクセスできます。

  • JavaScript の場合。例えば、<%= delivery.myField %>JavaScript では、オブジェクト配信カスタムフィールドはサポートされていません。プレビューで使用できますが、MTA で使用できません。MTA はすぐに使用できる配信スキーマにしかアクセスできないためです。
  • <%@ 値オブジェクト="配信" 前処理

<%@ value object="delivery" xpath="@myCustomField" %> 指令について, ミッドソーシングを通じて送信されるのは別の制限があります。カスタムフィールド@myCustomField を nms に追加する必要があります。マーケティングおよびミッドソーシングのプラットフォームに関する配信スキーマ

お知らせ:パラメータ/変数を配信する場合、次の構文を使用します (配信オブジェクトを使用する):

<%@ value object="delivery" xpath="variables/var[@name='myVar']/@stringValue" %>

<%@ JavaScript セクションの値

スクリプトセクションで<%@ 値を使用できるようにするために、2つの特別なオブジェクトが <% と %> に置き換えられます。

  • <%@ value object='startScript' %>
  • <%@ value object='endScript' %>

例:

<%@ value object='startScript' %> var iMode = <%@ value object="delivery" xpath="@deliveryMode" %> if(iMode == 1) { ... } else { ... } <%@ value object='endScript' %> is expanded in something like <% var iMode = 1 if(iMode == 1) { ... } else { ... } %>.

<%@ foreach

この指令はオブジェクトに関連する個々のリンクを追跡するために、配信中のオブジェクトの配列に対して反復処理を実行できます。

構文:

<%@ foreach object="myObject" xpath="myLink" index="3" item="myItem" %> <%@ end %>

このシンタックスでは:

  • "オブジェクト":開始するオブジェクトの名前。通常は余分なスクリプトオブジェクトですが、それは配信でもかまいません。
  • xpath(オプション)ループするコレクションの xpath です。デフォルトは "。"です。このオブジェクトがループする配列であることを意味します。
  • "index"(オプション):xpath が "." でない場合オブジェクトは配列そのもの、オブジェクトのアイテムインデックス(0から始まる)です。
  • "item"(オプション):アクセス可能な新しいオブジェクトの名前 <%@ foreach ループ内の値スキーマ内のリンク名を持つデフォルト。

次に例を示します。

配信プロパティ/パーソナライゼーションで、受信者と記事の間の関係テーブルを読み込みます。

これらの記事へのリンクを表示するには、次のように JavaScript を使用します。

 <%
   for(var i=0; i<recipient.rcpArticle.length; i++ )
   {
     %><a href="http://nl.net?a.jsp?article=<%=recipient.rcpArticle[i].article.@id%>">article</a><%
   }
 %>

そのソリューションを使用すると、すべての記事へのリンクは区別されずに追跡されます。受信者が記事のリンクをクリックしたことはわかりますが、記事について知ることはできません。

ソリューションは次のとおりです。

  1. 配信 - articleList[] -(これは有限の考えられる記事がある必要があることを意味します)の追加スクリプト配列にあるすべての考えられる記事を事前読み込みします。
  2. JavaScript 関数をコンテンツの先頭に書き込みます。
<%@ value object='startScript' %>
 function displayArticle(articleId)
 {
    <%@ foreach object="articleList" item="article" %>
      if( articleId == <% value object="article" xpath="@id" %> ) 
      {
        <%@ value object='endScript' %>
          <a href="http://nl.net?a.jsp?article=<%@ value object="article" xpath="@id" %>">article</a>
        <%@ value object='startScript' %>
      } 
    <%@ end @%>
 }
 <%@ value object='endScript' %>

3. 関数を呼び出すことで記事を表示します。

<%
   for(var i=0; i<recipient.rcpArticle.length; i++ )
   {
     displayArticle(recipient.rcpArticle[i].article.@id)
   }
  %>

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー