Adobe Analyticsとの連携方法
Adobe Analytics(旧サイトカタリスト)と連携することで、VWOのキャンペーンデータをAdobe Analyticsアカウントにインポートすることが可能になります。
連携の手順は下記の2ステップです。
カスタムコンバージョン変数を指定する
連携用コードを設置する
カスタムコンバージョン変数を指定する
Adobe Analytics のアカウントにログインして、トラッキング用の変数としてカスタムコンバージョン変数を指定します。
連携用コードを設置する
Adobe Analytics はVWOの同期タグ、非同期タグのどちらとも連携する事ができます。ただしいずれの場合も、VWOタグは必ず「s_code.js」より先に読み込まれるように設置してください。
連携用コード
VWOと Adobe Analytics を連携させる場合、トラッキング用の変数としてカスタムコンバージョン変数を指定した後、開発元にて提供しているコードをウェブサイトにコピー&ペーストする必要があります。
そのページで走っているキャンペーンが1つのみの場合の連携用コード
キャンペーンが1つのみの場合、下記のコードを使用します。
(function () {
window.VWO = window.VWO || [];
var WAIT_TIME = 100,
analyticsTimer = 0,
dataSendingTimer;
var getAccount = function () {
// Change the variable according to your page
return window.s_gi(window.s_account || window.s.account);
};
// All tracking variable will be contained in this array
var v = [];
v.add = function (w, o) {
v.push({
w: w,
o: o
});
};
// Function to send data to Omniture backend
var sendData = function () {
var s = getAccount();
for (var i = 0; i < v.length; i++) {
s[v[i].w] = v[i].o;
v[i] = v[i].w;
}
s.linkTrackVars = v.join(',');
s.tl(true, 'o', 'VWO Tracking');
v.splice(0, v.length);
};
//Function to wait for some analytics variables before sending data
function waitForAnalyticsVariables() {
if (window.s_gi && window.s && (window.s.account || window.s_account)) {
clearInterval(analyticsTimer);
sendData();
} else if (!analyticsTimer) {
analyticsTimer = setInterval(function () {
waitForAnalyticsVariables();
}, WAIT_TIME);
}
}
window.VWO.push(['onVariationApplied', function (data) {
if (!data) {
return;
}
var expId = data[1],
variationId = data[2];
if (typeof (_vwo_exp[expId].comb_n[variationId]) !== 'undefined' && ['VISUAL_AB', 'VISUAL', 'SPLIT_URL', 'SURVEY'].indexOf(_vwo_exp[expId].type) > -1) {
// Add the variable (eVar) name and it's value here.
// In case you have multiple campaigns and you want to send the data to different eVars, add a switch case here
v.add('eVarYY', 'VWO-' + expId + ':' + _vwo_exp[expId].comb_n[variationId]);
// Only send if data is available
if (v.length) {
clearTimeout(dataSendingTimer);
// We are using setTimeout so that all experiment can be sent in just one call to Omniture
dataSendingTimer = setTimeout(waitForAnalyticsVariables, WAIT_TIME);
}
}
}]);
})();
上記のタグ49行目「eVarYY」を、カスタム変数IDに書き換える必要があります。
例えば、「eVar55」と設定すると、このデータはカスタム変数55にプッシュされます。
作成したカスタム変数IDに合わせて変更してください。
そのページで複数のキャンペーンが走っている場合の連携用コード
そのページで複数のキャンペーンが走っている場合、下記の連携用コードを使用します。
(function () {
window.VWO = window.VWO || [];
var WAIT_TIME = 100,
analyticsTimer = 0,
dataSendingTimer;
var getAccount = function () {
// Change the variable according to your page
return window.s_gi(window.s_account || window.s.account);
};
// All tracking variable will be contained in this array
var v = [];
v.add = function (w, o) {
v.push({
w: w,
o: o
});
};
// Function to send data to Omniture backend
var sendData = function () {
var s = getAccount();
for (var i = 0; i < v.length; i++) {
s[v[i].w] = v[i].o;
v[i] = v[i].w;
}
s.linkTrackVars = v.join(',');
s.tl(true, 'o', 'VWO Tracking');
v.splice(0, v.length);
};
//Function to wait for some analytics variables before sending data
function waitForAnalyticsVariables() {
if (window.s_gi && window.s && (window.s.account || window.s_account)) {
clearInterval(analyticsTimer);
sendData();
} else if (!analyticsTimer) {
analyticsTimer = setInterval(function () {
waitForAnalyticsVariables();
}, WAIT_TIME);
}
}
window.VWO.push(['onVariationApplied', function (data) {
if (!data) {
return;
}
var expId = data[1],
variationId = data[2];
if (typeof (_vwo_exp[expId].comb_n[variationId]) !== 'undefined' && ['VISUAL_AB', 'VISUAL', 'SPLIT_URL', 'SURVEY'].indexOf(_vwo_exp[expId].type) > -1) {
// Add the variable (eVar) name and it's value here.
// In case you have multiple campaigns and you want to send the data to different eVars, add a switch case here
switch (expId) {
//campaign id = XX
case XX:
v.add('eVarYY', 'VWO-' + expId + ':' + _vwo_exp[expId].comb_n[variationId]);
break;
//campaign id = XX
case XX:
v.add('eVarYY', 'VWO-' + expId + ':' + _vwo_exp[expId].comb_n[variationId]);
break;
// 上記のcampaign id以外
default:
v.add('eVarYY', 'VWO-' + expId + ':' + _vwo_exp[expId].comb_n[variationId]);
break;
}
// Only send if data is available
if (v.length) {
clearTimeout(dataSendingTimer);
// We are using setTimeout so that all experiment can be sent in just one call to Omniture
dataSendingTimer = setTimeout(waitForAnalyticsVariables, WAIT_TIME);
}
}
}]);
})();
上記のタグ内の50行以降にある「case XX」と「eVarYY」を、それぞれ書き換える必要があります。
XX = キャンペーンID
YY = カスタム変数ID
例えば、
case 1
eVar55
case 2
eVar56
default
eVar57
このようにそれぞれ設定した時、キャンペーンID1の情報はカスタム変数55にプッシュされ、キャンペーンID2の情報はカスタム変数56にプッシュされます。
そして、その他のキャンペーン(case XXで指定されていないキャンペーン)はカスタム変数57にプッシュされます。
作成したキャンペーンのIDとカスタム変数IDに合わせて変更してください。