onBeforeLinkClickSend

IMPORTANT
このコールバックは非推奨(廃止予定)です。 代わりに filterClickDetails を使用します。

onBeforeLinkClickSend コールバックを使用すると、JavaScript関数を登録して、データがAdobeに送信される直前に送信したリンクトラッキングデータを変更できます。 このコールバックを使用すると、要素の追加、編集、削除の機能を含め、xdm オブジェクトまたは data オブジェクトを操作できます。 クライアントサイドのボットトラフィックが検出された場合など、データの送信を完全に条件付きでキャンセルすることもできます。 Web SDK 2.15.0 以降でサポートされています。

このコールバックは、clickCollectionEnabled が有効で、登録済みの関数が含まれ filterClickDetails いない場合にのみ実行されます。 clickCollectionEnabled が無効になっている場合、または filterClickDetails に登録済みの関数が含まれている場合、このコールバックは実行されません。 onBeforeEventSendonBeforeLinkClickSend の両方に登録済みの関数が含まれている場合、onBeforeLinkClickSend が最初に実行されます。

WARNING
このコールバックを使用すると、カスタムコードを使用できます。 コールバックに含めるコードがキャッチされない例外をスローした場合、イベントの処理が停止します。 データはAdobeに送信されません。

Web SDK タグ拡張機能を使用して、「リンクの前に設定」クリックでコールバックを送信 tag-extension

タグ拡張機能の設定時に、「リンククリック前に提供イベント コールバックコードを送信」ボタンを選択します。 このボタンをクリックすると、目的のコードを挿入できるモーダルウィンドウが開きます。

  1. Adobe IDの資格情報を使用して experience.adobe.com にログインします。
  2. データ収集/タグ に移動します。
  3. 目的のタグプロパティを選択します。
  4. 拡張機能 に移動し、Adobe Experience Platform Web SDK カードの 設定 ​ をクリックします。
  5. 「​ データ収集 ​」セクションまでスクロールし、「クリックデータ収集を有効にする」チェックボックスを選択します。
  6. リンククリックイベントの前に提供するコールバックコードの送信 というラベルの付いたボタンを選択します。
  7. このボタンをクリックすると、コードエディターでモーダルウィンドウが開きます。 目的のコードを挿入し、「保存」をクリックしてモーダルウィンドウを閉じます。
  8. 拡張機能設定の 保存 をクリックして、変更を公開します。

コードエディター内で、次の変数にアクセスできます。

  • content.clickedElement:クリックされた DOM 要素。
  • content.xdm:イベントの XDM ペイロード。
  • content.data:イベントのデータオブジェクトペイロード。
  • return true:現在の変数値でコールバックを直ちに終了します。 onBeforeEventSend コールバックは、登録済みの関数が含まれている場合に実行されます。
  • return false:直ちにコールバックを終了し、Adobeへのデータの送信を中止します。 onBeforeEventSend コールバックは実行されません。

content 外で定義された変数は使用できますが、Adobeに送信されるペイロードには含まれません。

// Set an already existing value to something else
content.xdm.web.webPageDetails.URL = "https://example.com/current.html";

// Use nullish coalescing assignments to create objects if they don't yet exist, preventing undefined errors.
// Can be omitted if you are certain that the object is already defined
content.xdm._experience ??= {};
content.xdm._experience.analytics ??= {};
content.xdm._experience.analytics.customDimensions ??= {};
content.xdm._experience.analytics.customDimensions.eVars ??= {};

// Then set the property to the clicked element
content.xdm._experience.analytics.customDimensions.eVars.eVar1 = content.clickedElement;

// Use optional chaining to check if each object is defined, preventing undefined errors
if(content.xdm.web?.webInteraction?.type === "other") content.xdm.web.webInteraction.type = "download";

onBeforeEventSend と同様に、関数を直ちに終了する return true、Adobeへのデータの送信を中止する return false を指定できます。 onBeforeEventSendonBeforeLinkClickSend の両方に登録済みの関数が含まれている場合に onBeforeLinkClickSend でのデータの送信を中止すると、onBeforeEventSend の関数は実行されません。

Web SDK JavaScript ライブラリを使用して、「リンクの前にコールバックを送信」をクリックして設定します。 library

configure コマンドの実行時に onBeforeLinkClickSend コールバックを登録します。 インライン関数内のパラメーター変数を変更することで、content 変数の名前を任意の値に変更できます。

alloy("configure", {
  datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
  orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
  onBeforeLinkClickSend: function(content) {
    // Add, modify, or delete values
    content.xdm.web.webPageDetails.URL = "https://example.com/current.html";

    // Return true to complete the function immediately
    if (sendImmediate == true) {
      return true;
    }

    // Return false to cancel sending data immediately
    if(myBotDetector.isABot()){
      return false;
    }
  }
});

インライン関数の代わりに独自の関数を登録することもできます。

function lastChanceLinkLogic(content) {
  content.xdm.application ??= {};
  content.xdm.application.name = "App name";
}

alloy("configure", {
  datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
  orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
  onBeforeLinkClickSend: lastChanceLinkLogic
});
recommendation-more-help
ad108910-6329-42f1-aa1d-5920a2b13636