Macの標準ブラウザ「Safari」を起動したりタブを追加すると、「Top Sites」タブによく訪問するサイトがサムネイル画像で表示されます。
![]() 実は裏でリクエストが走るこのサムネイル画像はサーバー側で作成されるわけではなく、Mac上のSafariが各サイトにHTTPリクエストを投げます。この時、正しくレンダリングするために、HTMLに加えてCSSやJavaScriptファイルもロードして実行するので、ページに埋め込まれたWeb解析やターゲティングなどのタグも実行され、その結果、訪問していないのにアクセスが水増しされることがあります。 Charles Web Debugging Proxyなどで通信内容を確認すると、計測用リクエストを確認できます。
![]() 影響範囲Mac版Safariの「Top Sites」にサイト内のページが表示され、そのサムネイル画像が古くなっている場合にトラフィックが発生します。 少しはブラウザ側でキャッシュされるので、タブを開くたびにリクエストされるわけではありません。Safariを終了しても直ぐに立ち上げれば、キャッシュが残っています。 解析データには、以下のような悪影響を与えます。
水増しを防ぐ方法サムネイル画像を作成するためのHTTPリクエストを判別する方法は2種類あります。 1. HTTPヘッダを見るHTTPヘッダに「X-Purpose: preview」という独自ヘッダが付与されています。 ![]() ただし、HTTPヘッダはリクエストされたサイトのWebサーバー側でしか取得できないので、実装が面倒です。 PHPの場合は以下のように書いてヘッダを判別します。 if($_SERVER["HTTP_X_PURPOSE"]=="preview") { ... }2. JavaScriptのプロパティを見る「navigator.loadPurpose」というプロパティに「preview」がセットされていれば、プレビュー用のリクエストだと分かります。
Adobe Analytics(旧SiteCatalyst)のサーバーコールを止めるためには、s.abort = true; をセットしたり、s.t(); を実行しない、などの処理が必要です。 このサイトで実際に実装してみました。新しいJSライブラリを採用しているので、s_code.js ではなく AppMeasurement-www.cms-ia.info.js が計測用JavaScriptのファイル名です。 関連情報
|
Adobe Analytics > Adobe Analytics実践メモ >