現在表示中:

ここでは、コンテンツターゲティングで使用するコンポーネントの作成に関するトピックを取り上げます。

注意:

AEM オーサーインスタンスでコンポーネントをターゲット設定すると、そのコンポーネントが、キャンペーンの登録、オファーの設定、Adobe Target セグメントの取得(設定されている場合)をおこなうために、Adobe Target に対して一連のサーバー側呼び出しを実行します。AEM パブリッシュインスタンスから Adobe Target へのサーバー側呼び出しはおこなわれません。

ページ上での Adobe Target によるターゲット設定の有効化

ページ内のターゲットコンポーネントを使用して Adobe Target とやり取りするには、<head> 要素と <body> 要素に特定のクライアント側コードを含めます。

head セクション

ページの <head> セクションに次のコードを追加します。

<cq:include script="/libs/cq/cloudserviceconfigs/components/servicelibs/servicelibs.jsp"/>

この JSP によって、必要な分析 JavaScript オブジェクトと参照がクライアント側の JavaScript ライブラリに追加されます。testandtarget.js ファイルには、mbox.js 関数が含まれています。このスクリプトが生成する HTML は、次の例のようになります。

<script type="text/javascript">
        if ( !window.CQ_Analytics ) {
            window.CQ_Analytics = {};
        }
        if ( !CQ_Analytics.TestTarget ) {
            CQ_Analytics.TestTarget = {};
        }
        CQ_Analytics.TestTarget.clientCode = 'MyClientCode';
</script>
<link rel="stylesheet" href="/etc/clientlibs/foundation/testandtarget/testandtarget.css" type="text/css">
<script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/testandtarget.js"></script>
<script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/init.js"></script>

body セクション(開始)

ClientContext 機能をページに追加するには、<body> タグの直後に次のコードを追加します。

<cq:include path="clientcontext" resourceType="cq/personalization/components/clientcontext"/>

body セクション(終了)

</body> 終了タグの直前に次のコードを追加します。

<cq:include path="cloudservices" resourceType="cq/cloudserviceconfigs/components/servicecomponents"/>

このコンポーネントの JSP スクリプトは、CQ Test&Target JavaScript API への呼び出しを生成し、その他の必要な設定を実装します。このスクリプトが生成する HTML は、次の例のようになります。

<div class="servicecomponents cloudservices">
  <div class="cloudservice testandtarget">
    <script type="text/javascript">
      CQ_Analytics.TestTarget.maxProfileParams = 11;
      CQ_Analytics.CCM.addListener("storesinitialize", function(e) {
        CQ_Analytics.TestTarget.registerMboxUpdateCalls();
      });
    </script>
    <div id="cq-analytics-texthint" style="background:white; padding:0 10px; display:none;">
      <h3 class="cq-texthint-placeholder">Component clientcontext is missing or misplaced.</h3>
    </div>
    <script type="text/javascript">
      $CQ(function(){
      if( CQ_Analytics &&
          CQ_Analytics.ClientContextMgr &&
          !CQ_Analytics.ClientContextMgr.isConfigLoaded ) 
        {		
          $CQ("#cq-analytics-texthint").show();
        }
      });
    </script>
  </div>
</div>

カスタム mbox.js ファイルの使用

mbox の作成に使用されるデフォルトの mbox.js ファイルは、/etc/clientlibs/foundation/testandtarget/mbox/source/mbox.js にあります。カスタムの mbox.js ファイルを使用するには、このファイルを Target クラウド設定に追加します。mbox.js ファイルを追加するには、そのファイルがファイルシステム上で使用可能になっている必要があります。

例えば、Marketing Cloud Visitor ID サービスを使用する場合は、mbox.js をダウンロードし、使用するテナントに基づいて imsOrgID 変数に適切な値を格納する必要があります。この変数は、Visitor ID サービスとの統合に必須です。詳しくは、Adobe Target のレポートソースとしての Adobe Analytics および導入する前にを参照してください。

注意:

Target 設定でカスタム mbox が定義されている場合は、すべてのユーザーにパブリッシュサーバー上の /etc/cloudservices への読み取りアクセス権限が必要です。このアクセス権限がないと、公開 Web サイト上の mbox.js ファイルの読み込みが 404 エラーになります。

  1. CQ のツールページに移動して、「クラウドサービス」を選択します(http://localhost:4502/libs/cq/core/content/tools/cloudservices.html)。

  2. ツリーで「Adobe Target」を選択し、設定リストの中から目的の Target 設定をダブルクリックします。

  3. 設定ページで「編集」をクリックします。

  4. カスタム mbox.js プロパティの場合は、「参照」をクリックし、ファイルを選択します。

  5. 変更を適用するには、Adobe Target アカウントのパスワードを入力し、「Adobe Target に再接続」をクリックして、接続が成功したら「OK」をクリックします。次に、コンポーネントを編集ダイアログボックスで「OK」をクリックします。 

Target 設定にカスタム mbox.js ファイルが含まれます。これはページの head セクション内に必要なコードで、testandtarget.js ライブラリへの参照の代わりに、クライアントライブラリフレームワークにファイルを追加するものです。

<script type="text/javascript">
        if ( !window.CQ_Analytics ) {
            window.CQ_Analytics = {};
        }
        if ( !CQ_Analytics.TestTarget ) {
            CQ_Analytics.TestTarget = {};
        }
        CQ_Analytics.TestTarget.clientCode = 'MyClientCode';
</script>
<script type="text/javascript">
        CQClientLibraryManager.write([{"p":"/etc/cloudservices/testandtarget/my-t-t-configuration/jcr:content/mbox.js","c":[]}],false);
</script>
<script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/util.js"></script>
<script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/init.js"></script>

コンポーネントに対する「ターゲット」コマンドの無効化

大部分のコンポーネントは、コンテキストメニューで「ターゲット」コマンドを使用して、ターゲットコンポーネントに変換することができます。

コンテキストメニューから「ターゲット」コマンドを削除するには、コンポーネントの cq:editConfig ノードに次のプロパティを追加します。

  • 名前:cq:disableTargeting
  • タイプ:Boolean
  • 値:True

例えば、Geometrixx デモサイトページのタイトルコンポーネントに対するターゲット設定を無効化するには、このプロパティを /apps/geometrixx/components/title/cq:editConfig ノードに追加します。

グローバル mbox の作成

グローバル mbox とは、複数ページにまたがって使用される mbox です(Adobe Target ドキュメントの「グローバル mbox の作成」を参照)。グローバル mbox に含まれる個々のページには、次のコードが含まれます。

<!--- Global mBox -->
<div class="mboxDefault"></div>
<script type="text/javascript">mboxCreate('GlobalMboxName');</script>

複数の CQ ページにまたがるグローバル mbox を作成するには、mbox コードを生成するコンポーネントを作成して各ページに含めます。

mboxCreate 関数の引数(前述の例の GlobalMboxName)は、グローバル mbox に含まれるすべてのページで同じです。そのため、ページテンプレートを使用して、mbox 名をページのプロパティとして定義すると便利です。これを実行するには、テンプレートから作成される各ページでグローバル mbox に同じ名前を使用します(グローバル mbox ごとに異なるテンプレートを作成する必要があります)。

次の例では、geomtrixx-outdoors アプリで page_globalmbox1 テンプレートを作成しています。このテンプレートには、値が globalmbox1globalmbox プロパティが含まれています。

テンプレート sling:resourceType は、page_globalmbox ページコンポーネントです。このページコンポーネントは、geometrixx-outdoors ページコンポーネントの main.jsp スクリプトを上書きするので、ページには globalmbox コンポーネントが生成するコンテンツが含まれます。globalmbox コンポーネントは、ページの globalmbox プロパティの値を取得して、次のように mbox コードで使用します。

<%--

  globalmbox component.

  

--%><%
%><%@include file="/libs/foundation/global.jsp"%><%
%><%@page session="false" %><%
%><%
ValueMap pageprops = resource.getParent().adaptTo(org.apache.sling.api.resource.ValueMap.class);
String mboxname = pageprops.get("globalmbox").toString();
%><!--- Global mBox -->
<div class="mboxDefault"></div>
<script type="text/javascript">mboxCreate('<%= mboxname %>');</script>

page_globalmbox1 テンプレートからページが作成されると、そのページには値が globalmbox1 の globalmbox プロパティが含まれます。globalmbox コンポーネントは、ページソース内に次のコードを生成します。

<div class="globalmbox"><!--- Global mBox -->
<div class="mboxDefault"></div>
<script type="text/javascript">mboxCreate('globalmbox1');</script></div>

Adobe Target への注文確認情報の送信

Web サイトのパフォーマンスを追跡するには、注文確認ページから Adobe Target に購入情報を送信します(Adobe Target ドキュメントの「orderConfirmPage mbox の作成」を参照)。mbox が orderConfirmPage という名前を持ち、以下の特定のパラメーター名を使用している場合は、Adobe Target が mbox データを注文確認データとして認識します。

  • productPurchasedId:購入された商品を識別する ID のリスト。
  • orderId:注文の ID。
  • orderTotal:購入の合計金額。

レンダリングされた HTML ページ上の mbox を作成するコードは、次の例のようになります。

<script type="text/javascript">
     mboxCreate('orderConfirmPage',
     'productPurchasedId=product1 product2 product3',
     'orderId=order1234',
     'orderTotal=24.54');
</script>

各パラメーターの値は注文ごとに異なります。そのため、購入のプロパティに基づいてコードを生成するコンポーネントが必要です。CQ の e コマース統合フレームワークを使用すると、商品カタログを統合し、買い物かごとチェックアウトページを実装できます。

Geometrixx Outdoors のサンプルでは、訪問者が商品を購入すると、以下の確認ページが表示されます。

以下に示すコードは、買い物かごのプロパティにアクセスして、mbox を作成するためのコードを出力するコンポーネントの JSP スクリプトです。

<%--

  confirmationmbox component.



--%><%
%><%@include file="/libs/foundation/global.jsp"%><%
%><%@page session="false"
          import="com.adobe.cq.commerce.api.CommerceService,
                  com.adobe.cq.commerce.api.CommerceSession,
                  com.adobe.cq.commerce.common.PriceFilter,
                  com.adobe.cq.commerce.api.Product, 
                  java.util.List, java.util.Iterator"%><%

/* obtain the CommerceSession object */                     
CommerceService commerceservice = resource.adaptTo(CommerceService.class);
CommerceSession session = commerceservice.login(slingRequest, slingResponse);

/* obtain the cart items */
List<CommerceSession.CartEntry> entries = session.getCartEntries();
Iterator<CommerceSession.CartEntry> cartiterator = entries.iterator();

/* iterate the items and get the product IDs */
String productIDs = new String();
while(cartiterator.hasNext()){
	CommerceSession.CartEntry entry = cartiterator.next();
	productIDs = productIDs + entry.getProduct().getSKU();
    if (cartiterator.hasNext()) productIDs = productIDs + ", ";
}

/* get the cart price and orderID */
String total = session.getCartPrice(new PriceFilter("CART", "PRE_TAX"));
String orderID = session.getOrderId();

%><div class="mboxDefault"></div>
<script type="text/javascript">
     mboxCreate('orderConfirmPage',
     'productPurchasedId=<%= productIDs %>',
     'orderId=<%= orderID %>',
     'orderTotal=<%= total %>');
</script>

このコンポーネントが前述の例のチェックアウトページに含まれている場合、ページのソースには、mbox を作成する以下のスクリプトが含まれます。

<div class="mboxDefault"></div>
<script type="text/javascript">
      
     mboxCreate('orderConfirmPage',
     'productPurchasedId=47638-S, 46587',
     'orderId=d03cb015-c30f-4bae-ab12-1d62b4d105ca',
     'orderTotal=US$677.00');

</script>

Target コンポーネントについて

Target コンポーネントを使用すると、CQ コンテンツコンポーネントから動的 mbox を作成できます(コンテンツのターゲティングを参照)。Target コンポーネントは、/libs/cq/personalization/components/target にあります。

target.jsp スクリプトは、ページのプロパティにアクセスして、コンポーネントに使用するターゲティングエンジンを決定し、適切なスクリプトを実行します。

  • クライアント側のルール:/libs/cq/personalization/components/target/engine_cq.jsp
  • Adobe Target:/libs/cq/personalization/components/target/engine_tnt.jsp

mbox の作成

Adobe Target がコンテンツターゲティングをおこなうときには、engine_tnt.jsp スクリプトが、ターゲット設定されたエクスペリエンスのコンテンツを格納する mbox を作成します。

  • Adobe Target API の要求に応じて、mboxDefault クラスの div 要素を追加します。
  • div 要素の内側に mbox コンテンツ(ターゲット設定されたエクスペリエンスのコンテンツ)を追加します。

mboxDefault div 要素の後に、mbox を作成する JavaScript が挿入されます。

  • mbox 名、ID および場所は、コンポーネントのリポジトリパスに基づきます。
  • スクリプトが ClientContext のパラメーター名と値を取得します。
  • mbox を作成するために、mbox.js および他のクライアントライブラリが定義する関数への呼び出しがおこなわれます。 

コンテンツターゲティングのためのクライアントライブラリ

testandtarget カテゴリのクライアントライブラリは、Target コンポーネントが使用する JavaScript ライブラリを定義します。クライアントライブラリフォルダーのパスは、/etc/clientlibs/foundation/testandtarget/testandtarget です。testandtarget クライアントライブラリフォルダーには、testandtarget.js ライブラリを作成する次のクライアントライブラリフォルダーが組み込まれています。

  • testandtarget.util:(/etc/clientlibs/foundation/testandtarget/util)CQ_Analytics.TestTarget 関数を定義します。CQ_Analytics.TestTarget.init() を呼び出します。
  • testandtarget.mbox:(/etc/clientlibs/foundation/testandtarget/mbox)デフォルトの mbox.js ライブラリが含まれます。

Target コンポーネントの target.jsp スクリプトの次のコードには、クライアントライブラリが含まれます。

<cq:includeClientLib categories="testandtarget" />

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

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