Adobe Analytics

Adobe Analytics: VisitorAPIでSafariでもクロスドメイン計測をする

こんにちは、エクスチュアCTOの権です。

今回はAdobe AnalyticsのVisitorAPI(Marketing Cloud ID Service)を使ったSafariのクロスドメイン計測についてです。
ご存知のとおりSafariはMacOS/iOSの標準ブラウザで、3rdパーティクッキーを拒否してます。
昔はs.visitorIDに同じ値をセットして計測する方法しかありませんでしたが、これをs.visitorIDを使わずにVisitorAPIの機能だけで実装してみます。

VisitorAPIを使う場合も、クロスドメイン計測の方法が複数存在しています。

1. appendVisitorIDsTo関数を使う

指定ドメインへのリンク先URLの末尾に、自動的に訪問者IDパラメータを付与してドメイン遷移する方法です。
VisitorAPI v1.7.0以上で使えるようになりました。
Append Visitor ID Helper Function

DTMを使ってAnalyticsとVisitorAPIを導入している場合は、下記の方法です。
How to set Marketing Cloud ID Service helper function in Adobe DTM
ページ読み込みルールを作成して、3rdパーティJavascriptタグとしてこの関数を実行します。

で、実はGAのautoLinkerのようなものを期待してたのですが、違いました。
この関数は結局渡したURL文字列に対してmidをつけてくれるだけなので、JQuery使ってこんな感じで実装しました。
「DOM Ready 発生時」に、「非順次JS」で動くようにします。

//遷移元ドメインA
var visitor = Visitor.getInstance ("foobar12345@AdobeOrg",{
	trackingServer: "example.sc.omtrdc.net"
});

var domainB="www.example.com"; //遷移先ドメインB
$("a").each(function(){
	var chk = $(this).attr("href");
	if ((typeof chk != "undefined") && (chk.indexOf(domainB) > 0)) {
		var newlink = visitor.appendVisitorIDsTo(chk);
		$(this).attr("href", newlink);
	}
});

ページ読み込みじゃなくて、クリックのタイミングでhref書き換えるやり方でも良かったか。まぁ、好きなやり方で実装すれば良いかと。

あと、遷移先ドメインのDTMプロパティでは、Marketing Cloud ID サービスにoverwriteCrossDomainMCIDAndAID: trueの設定を追加します。

これで、遷移元ドメインAからドメインBに遷移したときに、同じmidがセットされてればOKです。

2. CNAME実装を使う

CNAMEを使った1stパーティクッキーを使う方法でクロスドメイン計測を実装する方法です。
Data Collection CNAMEs and Cross-Domain Tracking

私個人のブログサイトでこの実装を使って試しました。
http://www.kwonline.org/memo2/
上記サイトではCNAMEを使って、stats.kwonline.orgというホスト名を、exture.d1.sc.omtrdc.netにマッピングしてます。
SSLを利用してないサイトなので、Adobeへの申請なしにCNAMEさえ登録できれば動作します。

やるべき事は、
1. DNSのCNAMEレコードを登録。
任意のサブドメインに対して、CNAMEをAdobeのサーバー(omtrdc.netまたは2o7.net)にする。
2. AppMeasurement または s_codeを修正する
trackingServer変数の値と、marketingCloudServer変数を追加します。

/* VisitorAPI の初期化コードの例 */
var visitor = Visitor.getInstance("123456@AdobeOrg", {
	trackingServer: "stats.kwonline.org",
	marketingCloudServer: "stats.kwonline.org"
});

/* AppMeasurement.js 側の設定 */
s.trackingServer = "stats.kwonline.org";
s.visitor = Visitor.getInstance("123456@AdobeOrg");

DTMの場合は、同様の設定をDTMにて行ってください。

で、まずは私のサイトをSafariで開き、Omniture Debuggerを使ってmidを確認します。

www.kwonline.org

www.kwonline.org

www.kwonline.org


mid(Marketing Cloud ID)パラメータに注目してください。これが別ドメインでも同じ値になればOKです。

次に、弊社の検証用ページをSafariで開いて、Debuggerを使ってmidを確認します。
ex-ture.com

ex-ture.com

ex-ture.com


3rdパーティクッキーをブロックしているSafariでも、別ドメイン(ex-ture.com)において、kwonline.orgと同じmidがセットされました。

なぜこのような事が可能かと言うと、
Safariは3rdパーティクッキーのセットを拒否しているだけであって、一旦、1stパーティクッキーとしてセットされた後であれば、以降、1stパーティか3rdパーティかは問わず、必ずそのドメインのクッキーをHTTPヘッダーに付与して送信します。

そしてmidはkwonline.orgのAMCVクッキーに格納されている値なので、ここから同じ値を取り出す事で、ex-ture.comでも同じmidになります。

という訳で、「Safariだから3rdパーティクッキーはアウト」という言葉が拡大解釈されている傾向があるのですが、今回の方法ならばAdobe Analyticsにおいて、Safariでもクロス計測が可能という事が分かりました。

なお、今年のAdobe Summit 2016で発表されたDevice Co-op機能がリリースされれば、クロスドメイン・クロスデバイス計測がもっと簡単になるはずなので、リリースを待ちたいと思います。

弊社では、Adobe Analyticsの実装支援サービスを提供しております。
お問い合わせはこちら

関連記事

  1. Adobe Analytics

    Adobe Analytics: DatafeedのログからパスフローレポートをBigQueryで作…

    こんにちは、エクスチュアの権泳東(コン・ヨンドン)です。以前このブ…

  2. Adobe Analytics

    Adobe Analytics: SegmentsAPIを使って大量のセグメント設定を作成・更新する…

    こんにちは、エクスチュアCTOの権です。今回はAdobe Ma…

  3. Adobe Analytics

    Adobe Analytics:自動で分析してくれる貢献度分析(異常値検出)機能

    こんにちは、CEOの原田です。今回は随分前から公開されてるのに…

  4. Ad Hoc Analysis

    Adobe Analytics: Ad Hoc Analysisでセグメントの条件を一気に追加する方…

    Adobe Analyticsでセグメントを作るとき、「A または B…

  5. Adobe Analytics

    Adobe Analytics: データフィードをGoogle BigQueryのテーブルにロードす…

    こんにちは、エクスチュアCTOの権です。前回のブログの続きです…

最近の記事

  1. Adobe AnaltyicsとGoogle Analyti…
  2. Tableau:抽出を含んだワークブックを10.4以下にダウ…
  3. Adobe Analytics: DWHレポートの日付列をB…
  4. AdobeAnalyticsでReactNativeアプリを…
  5. Adobe Analytics: BigQuery+Look…
  1. Adobe Analytics

    Adobe Analyticsに入り切らないデータをBigQueryに投入する
  2. Adobe Target

    Adobe Target: スマホアプリ上でABテストをする
  3. Google Analytics

    Google Analytics StandardのデータをBigQueryで分…
  4. Adobe Analytics

    Adobe Analytics: Legacy s_code.jsからAppMe…
  5. Adobe Analytics

    Adobe AnalyticsのDatafeedをBigQueryのColumn…
PAGE TOP