カテゴリー: ABテスト
この統合はWebプロジェクトのみで利用可能です
期待すること
Dynamic YieldのContentsquareとの統合により、デジタルプロパティにおける訪問者の行動を促進する主な動機をより深く掘り下げることができます。Contentsquareのゾーンベースのヒートマップとジャーニー分析を使用することで、各Dynamic Yield体験とバリエーションがどのように機能したのか、顧客のジャーニーにどのように影響を与えたのか、さらに各顧客セグメントのパーソナライズの取り組みをどのように改善し更新するかについての追加のインサイトを提供できます。Dynamic YieldとContentsquareの統合を活用して:
- ゾーンベースのヒートマップにアクセスして、パーソナライズキャンペーンの成功した要素に正しくコンバージョンと収益を帰属させます。
- ページ上の各要素に対する独自の行動指標を取得し、ページの平均スクロール到達範囲と各要素のエンゲージメントレベルを明らかにします。
- コンバージョンファネルとジャーニー分析を使用して、各体験がデジタルプロパティ全体で顧客のジャーニーにどのように影響を与えたかを理解します。
収集するもの
動的変数
| キー | 値 | データタイプ |
| AB_DY_{キャンペーン名} | バリエーション : 1 | テキスト |
| AB_DY_{オーディエンスID} | true | テキスト |
実装
実装ステップ
選択できるソリューションは2つあります。1つはクライアント側、もう1つはサーバー側です。
以下の関連セクションをご利用ください。
クライアントサイドソリューション
キャンペーンのキャプチャ
以前のバージョンのContentsquare統合コードがインストールされている場合は、それを無効にする必要があります。そうでない場合は、この部分をスキップしてください。
古いバージョンを無効にするには、拡張機能タブに移動し、分析プラットフォーム統合を非アクティブに設定します。または、その一部を実行する必要がある場合は、編集してContentsquare統合コードを削除してください。
オーディエンスのキャプチャ
- コードのタイミングを調整して、DY.ServerUtil.getUserAudiences関数がコードが実行される前に利用可能であることを確認してください。このコードはDynamic Yieldの後に挿入することをお勧めします。
- ただし、tvp変数は変更しないでください。これは必要なプレフィックスであり、そのままである必要があります。
- コード内の制限は20に設定されており、その制限を増やすことはお勧めできません。なぜなら、ページビューごとにContentsquareに送信できる動的変数の数に制限があるため、他の統合が有効になっている場合、動的変数を使用することでその制限に達するのが早くなる可能性があります。
- 特定のオーディエンスIDを私たちに送信できるようにコードを調整することをお勧めします。主に興味のあるものです。これを実現するには、コード内のallowList配列にオーディエンスIDを追加します。これらのIDは、オーディエンスを作成したDynamic Yield UIのURLで見つけることができます。
カンマ区切りの数字として追加してください。
例えば: var allowList = [1323949, 894638, 738182];
/*
*名前: Dynamic Yield Audience ID CS 統合
*バージョン: 1.0.0
*/
var tvp = "AB_DY_";
function sendToCS(csKey, csValue) {
csKey = tvp + csKey;
_uxa.push([
"trackDynamicVariable",
{
key: csKey,
value: csValue,
},
]);
}
var counter = 0;
var limit = 20;
//カンマ区切りの数値を使って、下の配列にあなたのAudience IDを追加してください。これらの値は、あなたのDynamic Yield UIのURLで見つけることができます。
var allowList = [];
function csCallback() {
if (!disableCallback) {
disableCallback = true;
setTimeout(function () {
if (window.DY && DY.ServerUtil && typeof DY.ServerUtil.getUserAudiences === "function") {
var getAudiences = DY.ServerUtil.getUserAudiences();
for (var i = 0; i < getAudiences.length; i++) {
if (allowList.includes(getAudiences[i])) {
var audienceID = "Audience ID : " + getAudiences[i];
var value = "true";
counter++;
if (counter <= limit) {
sendToCS(audienceID, value);
}
}
}
}
}, 500);
}
}
window._uxa = window._uxa || [];
var disableCallback = false;
_uxa.push(["afterPageView", csCallback]);
// Dynamic Yield Audience ID CS 統合 終了
サーバーサイドソリューション
Dynamic YieldサーバーサイドAPIレスポンスを持つウェブサーバーのサーバーサイドコードに以下のコードを追加し、調整してください。
以下のコードでは、調整が必要なのは [DY_RESPONSE_OBJECT] の部分だけです。これは実際のオブジェクトではありません。これは、Dynamic YieldのAPIから返された実際のオブジェクトレスポンスに置き換える必要があります。このコードはすべてJavaScriptであり、すべてのページビューとすべてのテストに対して、サーバーのレスポンスとしてあなたのサイトにレンダリングされる必要があります。他のコードロジックは調整しないでください。
/*
*名前: Dynamic Yield CS 統合 - サーバーサイド
*バージョン: 1.0.0
*/
var version = "1.0.0";
var tvp = "AB_DY_SS_";
window._uxa = window._uxa || [];
function sendToCS(csKey, csValue) {
csKey = tvp + csKey;
_uxa.push([
"trackDynamicVariable",
{
key: csKey,
value: csValue,
},
]);
}
//[DY_RESPONSE_OBJECT]を、必要なプロパティを含むDYからの実際のレスポンスに置き換えてください
var choices = [DY_RESPONSE_OBJECT].choices;
if (choices) {
for (var i = 0; i < choices.length; i++) {
var variations = choices[i].variations;
var analyticsMetadata = variations[0] && variations[0].analyticsMetadata;
if (analyticsMetadata) {
var campaignName = analyticsMetadata.campaignName;
var variationName = analyticsMetadata.variationName;
if (campaignName && variationName) {
sendToCS(campaignName, variationName);
}
}
}
}
function callback() {
if (!disableCallback) {
disableCallback = true;
if (window.CS_CONF) {
CS_CONF.integrations = CS_CONF.integrations || [];
CS_CONF.integrations.push("Dynamic Yield サーバーサイド - v" + version);
}
}
}
var disableCallback = false;
_uxa.push(["afterPageView", callback]);
//Dynamic Yield CS 統合終了
動作確認
Chrome拡張機能を使用して、結果がCSに送信されているか確認できます。