Adobe AnalyticsをYahoo!検索SSL化に対応させる方法
Post date: Aug 27, 2015 10:2:33 AM
GoogleとBing、米Yahooに続いて日本のYahooもようやく2015年8月から段階的にSSL化を進めていくという決断をしました。マーケターにとっては利用できるデータが減って不便ですが、数年前にNSAやFBIがISPやFacebook、Googleなどの通信データを傍受していたことが問題になって以来、ユーザーとの通信内容を暗号化するという大きな流れは、一部のマーケターが反対したところで変わることはありません。未練を捨てて諦め、LP単位など別の分析手法を確立する方が建設的ですね。
とはいえ、検索エンジンとしてすら認識されないのは困ります。Adobe Analytics (SiteCatalyst) での現状と対策についてまとめました。
追記:2015/9/18のメンテナンスリリースでサーバー側のデータベースが更新され、SSL版のYahoo検索が正しく「検索エンジン」「キーワードを使用できません」として認識されるようになりました。以下の対策はもう不要です。
Googleアナリティクスの現状と対策については「Yahooの検索結果がSSL化したことによるGoogleアナリティクスの現状とこれから」(アユダンテ)をどうぞ。
「その他のウェブサイト」として認識される
Googleと同様に今回のYahoo!検索も、ドメインだけはリファラに残る仕組みをわざわざ提供してくれています。
ただし、クエリが削除されたドメインだけのリファラを検索エンジン経由と認識するには、Analyticsツール側で対応が必要になります。リファラのドメインだけでなく、検索クエリを表すパラメータの有無も判断基準に含まれるためです。
2015年8月27日現在、この対応がまだ実施されていないため、Adobe AnalyticsはSSLのYahoo!検索を正しく認識できません。
判定ロジック更新には時間がかかりそう
Adobe Analyticsの場合は、データ受信後にサーバー側でリファラの判定が行われます。このロジックの更新は、過去のパターンから推測すると、毎月の第三金曜日に実施されるメンテナンスリリースと同じタイミングになるので、順調なら次のメンテナンスリリースが行われるであろう9月18日か25日になると思われます。優先度が低いなどの理由で、もっと遅くなるかもしれません。
それまで待てない場合は、自力で対策する必要があります。一つの方法を以下で紹介します。
リファラを改変して正しく認識させる方法
実は簡単。リファラは通常は編集できませんが、Adobe Analyticsの場合、s.referrerという変数にURLをセットすると、HTTPヘッダのリファラよりもその値を優先するという仕組みが提供されているためです(元々はリダイレクト対策用)。
この仕組みを使って、
if (document.referrer == 'http://search.yahoo.co.jp' || document.referrer == 'http://search.yahoo.co.jp/') {
s.referrer = document.referrer + '/search?p=::empty::';
}
というようなコードをdoPlugins内に追加すると、強制的にリファラにpパラメータを付与できます。
「?p=」とパラメータ名だけでは不十分で、何かの値が入っている必要があります。「none」などと適当な文字列を入れても良いですが、過去データとの整合性を保つため、例では「::empty::」をセットしています。「キーワードを使用できません」(Keyword Unavailable) は、実は内部では固定文字列「::empty::」として保存され、そのデータがレポート画面に表示される時に「キーワードを使用できません」という文字列に変換されます。実験したところ、標準で計測される「::empty::」と、今回のように明示的にセットする「::empty::」は、同じ扱いになるようです。
なお、DTMでAppMeasurement.jsをロードしている場合は、doPluginsではなくAdobe Analyticsツール設定のカスタムコードに上記のコードを入れると良いでしょう。
実験結果
以下のような結果になりました。
下の行:SSLのYahoo!検索からはリファラが「http://search.yahoo.co.jp」になり、検索エンジンではなく「その他のウェブサイト」として認識されています。
上の行:前述のコードを導入することでリファラに「/search?p=::empty::」を付与したデータです。「Yahoo! - Japan」の「検索エンジン」として正しく認識されるようになりました。
リファラレポートを検索キーワードでクロスすると:
「::empty::」が「キーワードを使用できません」に正しく変換されています。
SSL化されたYahoo!検索からのトラフィックを、検索エンジン、Yahoo! - Japan、キーワードは不明、として正しく認識できるようになりました。
※カスタマイズのテストは慎重に。
9/4追記:Firefoxの場合はdocument.referrerは「http://search.yahoo.co.jp」ですが、ChromeやIEの場合は「http://search.yahoo.co.jp/」と最後にスラッシュが入るので、コードを修正しました。正規表現を使ったり、hostnameはyahooだけれどもsearch (Query String) にp=*が存在しない、と分解して判定する方法もありますね。コードの分かりやすさ、テキストの短さ、パフォーマンス、自社のコーディング規則などを考慮し、適宜決めてみてください。
追記:2015/9/18のメンテナンスリリースでサーバー側のデータベースが更新され、SSL版のYahoo検索が正しく「検索エンジン」「キーワードを使用できません」として認識されるようになりました。以下の対策はもう不要です。