Target呼び出しの読み込みと実行

Launchルールを使用して、ページリクエストにパラメーターを読み込み、渡し、サイトページからTarget呼び出しを実行する方法について説明します。 Webページの情報は、Webページでの訪問者のエクスペリエンスに関するデータを収集して保存し、このデータに容易にアクセスできるようにする、Adobeクライアントデータレイヤーを使用して取得および渡されます。

ページ型ルール

Adobeクライアントデータレイヤーは、イベント駆動型データレイヤーです。 AEMページデータレイヤーが読み込まれると、イベントcmp:showがトリガーされます。 ビデオでは、Launch Library Loadedルールがカスタムイベントを使用して呼び出されます。 以下に、カスタムイベントおよびデータ要素に関してビデオで使用されるコードスニペットを示します。

カスタムページ表示イベント

ページ表示イベント設定とカスタムコード

Launchプロパティで、新しい​イベント​を​ルール​に追加します。

  • 拡張機能: Core
  • イベントタイプ: カスタムコード
  • 名前: Page Show Event Handler(または説明的なもの)

エディターを開く」ボタンをタップし、次のコードスニペットに貼り付けます。 このコード​は、​イベント設定​と、その後の​アクション​に追加する必要があります。

// Define the event handler function
var pageShownEventHandler = function(coreComponentEvent) {

    // Check to ensure event trigger via AEM Core Components is shaped correctly
    if (coreComponentEvent.hasOwnProperty("eventInfo") && 
        coreComponentEvent.eventInfo.hasOwnProperty("path")) {
    
        // Debug the AEM Component path the show event is associated with
        console.debug("cmp:show event: " + coreComponentEvent.eventInfo.path);

        // Create the Launch Event object
        var launchEvent = {
            // Include the ID of the AEM Component that triggered the event
            id: coreComponentEvent.eventInfo.path,
            // Get the state of the AEM Component that triggered the event           
            component: window.adobeDataLayer.getState(coreComponentEvent.eventInfo.path)
        };

        //Trigger the Launch Rule, passing in the new `event` object
        // the `event` obj can now be referenced by the reserved name `event` by other Launch data elements
        // i.e `event.component['someKey']`
        trigger(launchEvent);
   }
}

// With the AEM Core Component event handler, that proxies the event and relevant information to Adobe Launch, defined above...

// Initialize the adobeDataLayer global object in a safe way
window.adobeDataLayer = window.adobeDataLayer || [];

// Push the event custom listener onto the Adobe Data Layer
window.adobeDataLayer.push(function (dataLayer) {
   // Add event listener for the `cmp:show` event, and the custom `pageShownEventHandler` function as the callback
   dataLayer.addEventListener("cmp:show", pageShownEventHandler);
});

カスタム関数はpageShownEventHandlerを定義し、AEMコアコンポーネントから発行されるイベントをリッスンし、コアコンポーネントから関連情報を導出し、イベントオブジェクトにパッケージ化し、ペイロードに派生イベント情報を使用してLaunchイベントをトリガーします。

Launchルールは、Launchのtrigger(...)関数を使用してトリガーされます。この関数は、ルールのイベントのカスタムコードスニペット定義内から使用できる​のみ​です。

trigger(...)関数は、イベントオブジェクトをパラメーターとして取り、Launchデータ要素で公開します。このパラメーターは、Launchのeventという別の予約名です。 Launchのデータ要素は、event.component['someKey']のような構文を使用して、eventオブジェクトからこのイベントオブジェクトのデータを参照できるようになりました。

trigger(...)がイベントのカスタムコードイベントタイプのコンテキスト外で(例えば、アクションで)使用された場合、Launchプロパティと統合されたWebサイトでJavaScriptエラーtrigger is undefinedが発生します。

データ要素

データ要素

AdobeLaunchデータ要素は、カスタムページ表示イベント🔗でトリガーされたイベントオブジェクトのデータを、コア拡張機能のカスタムコードデータ要素タイプを介してAdobe Targetで使用可能な変数にマッピングします。

ページIDデータ要素

if (event && event.id) {
    return event.id;
}

このコードは、コアコンポーネントの一意のIDを生成して返します。

ページID

ページパスデータ要素

if (event && event.component && event.component.hasOwnProperty('repo:path')) {
    return event.component['repo:path'];
}

このコードは、AEMページのパスを返します。

ページパス

ページタイトルデータ要素

if (event && event.component && event.component.hasOwnProperty('dc:title')) {
    return event.component['dc:title'];
}

このコードは、AEMページのタイトルを返します。

ページタイトル

トラブルシューティング

Webページでmboxが実行されないのはなぜですか。

mboxDisable cookieが設定されていない場合のエラーメッセージ

Targetのcookieドメインエラー

> AT: [page-init] Adobe Target content delivery is disabled. Ensure that you can save cookies to your current domain, there is no "mboxDisable" cookie and there is no "mboxDisable" parameter in the query string.

解決策

Targetのお客様は、テストや簡単な概念実証にTargetでクラウドベースのインスタンスを使用する場合があります。 これらのドメインやその他多くのドメインは、パブリックサフィックスリストに含まれています。
これらのドメインを使用する場合、targetGlobalSettings()を使用してcookieDomain設定をカスタマイズしない限り、最新のブラウザーではCookieが保存されません。

window.targetGlobalSettings = {  
   cookieDomain: 'your-domain' //set the cookie directly on this subdomain, for example: 'publish-p1234-e5678.adobeaemcloud.com'
};

次の手順

サポートリンク

このページ