Referer HTTPヘッダーにキーワードが含まれていない場合、検索エンジンのトラフィック タイプが解決されない


解説

Sitecore CMS/XPは、Referer HTTPヘッダーを使用してトラフィック タイプを決定します。このタイプを決定するために使用される、事前定義されたペア(ホスト名とクエリ文字列パラメータ名)の構成が、Sitecore.Analytics.configファイル内に存在します:

<parseReferrer>
   <processor type="Sitecore.Analytics.Pipelines.ParseReferrer.ParseGenericSearchEngine,Sitecore.Analytics">
        <engines hint="raw:AddHostParameterName">
            <engine hostname="www.google" parametername="q"/>
            <engine hostname="search.yahoo" parametername="p"/>
            <engine hostname="www.bing" parametername="q"/>
            <engine hostname="search.lycos" parametername="query"/>
            <engine hostname="www.baidu" parametername="wd"/>
        </engines>
   </processor>
</parseReferrer>

例えば、Refererヘッダーがwww.googleで始まり、qのクエリ文字列パラメータが含まれている場合、トラフィック タイプは「Search Engine - Organic」と判断され、キーワードはクエリ文字列パラメータの値に設定されます。

しかし、Googleをはじめとする検索エンジンは、Refererヘッダーのクエリ文字列でキーワードを提供するとは限りません。この場合、Google Analyticsはそのようなリクエストを「Search Engine」のものと判断し、キーワードを「(not provided)」という値に設定します。Sitecore Analyticsでは、必須のクエリ文字列パラメータがないため、このようなリクエストを参照元として判断します。

解決策

以下のパッチは、対応するクエリ文字列パラメータがない場合に、Sitecore Analyticsがホスト名の値のみを使用して検索エンジンのトラフィックタイプを決定するようにします。この場合、キーワードには「(not provided)」という値が設定されます。

パッチをダウンロードし、パッケージ内の説明に従ってパッチを適用してください:

https://github.com/SitecoreSupport/Sitecore.Support.96029/releases/tag/8.2.3.2

お使いのバージョンに対応したパッチがない場合は、Sitecoreサポートにお問い合わせください。

検索エンジンの追加設定

Sitecore.Analytics.configファイルの<engines>セクションに検索エンジンの設定を追加することで、トラフィック タイプのレポート データをより正確に表示することが可能です。Google Analyticsで使用される検索エンジンとそのクエリ文字列の全リストは、こちらで確認できます。

例えば、MSN検索エンジンの場合、以下のようにSitecore CMS/XPの設定に追加することができます:

<parseReferrer>
   <processor type="Sitecore.Analytics.Pipelines.ParseReferrer.ParseGenericSearchEngine,Sitecore.Analytics">
      <engines hint="raw:AddHostParameterName">
         <engine hostname="www.google" parametername="q"/>
         <engine hostname="search.yahoo" parametername="p"/>
         <engine hostname="www.bing" parametername="q"/>
         <engine hostname="search.lycos" parametername="query"/>
         <engine hostname="www.baidu" parametername="wd"/>
         <engine hostname="www.msn" parametername="q"/>
       </engines>
   </processor>
</parseReferrer>