Show Menu
トピック×

hitGovernor

s.hitGovernor プラグインは、事前定義された期間内に送信された Analytics のイメージリクエストの総数を追跡し、その総数が一定のしきい値を超えた場合に、必要に応じて追加のロジックを実行できます。
ボット、スパイダー、特定のユーザーエージェントまたは特定の IP アドレスのリストからのトラフィックは、ボットトラフィックとして識別したり、レポートから除外したりできますが、レポートスイートに、本来ならカウントされるべきではないトラフィックのデータが含まれることもあります。例えば、不自然な間隔(約 1 秒ごとにリクエストが 1 回など)でクリックやページビューが大量に発生している場合は、不正なトラフィックの可能性があります。
このプラグインを利用すると、該当の訪問者の以降のトラフィックを自動的にブロックできます。そうしたトラフィックをレポート内で動的に識別することもできます。

hitGovernor プラグインの仕組み

このプラグインは、イメージリクエストがトラッキングサーバーに送信されるたびに Cookie の値を増分し、一定の期間にわたってそれを追跡します。デフォルトの期間は 1 分ですが、変更できます(以下の 導入 を参照)。この期間中のヒットの総数がデフォルトのヒット数のしきい値(60)を超えると、最終的なカスタムリンクイメージリクエストが送信され、 exceptionFlag コンテキストデータ変数が設定されます。デフォルトのヒット数のしきい値も変更できます。
必要に応じて、その時点からデフォルトの 60 日間が経過するまでは、該当の訪問者のトラフィックデータの収集をブロックできます。トラフィックをブロックするためには、以下に示すように、doPlugins 関数にコードを追加する必要があります。期間も変更できます。このロジックでは、訪問者の IP アドレス、ユーザーエージェントまたは Experience Cloud 訪問者 ID を適切な永続例外ロジックに含めるか、60 日経過後にタイムアウト期間をリセットすることができます。60 日後にプラグインによってこのトラフィックが不正と見なされた場合は、再度例外としてマークされ、さらに 60 日間データの収集がブロックされます。

レポート

設定する必要があるデフォルトの変数およびイベントはありませんが、処理ルールのロジックをセットアップし、適切な変数やイベントを設定することを強くお勧めします。そうしたカスタムの変数やイベントの例は次のとおりです。
  • Experience Cloud 訪問者 ID
  • IP アドレス
  • ユーザーエージェント
  • マークされた例外イベント
これらの変数のセグメントを作成すると、セグメントと仮想レポートスイートを作成し、これらの不明瞭なヒットのサイトへの全体的な影響を確認できます。
レポートで収集された値を参考に、ボットのルール、DB VISTA ルールまたは会社の IP 除外設定を更新することをお勧めします。

実装

hitGovernor プラグインを導入する手順は次のとおりです。
  1. AppMeasurement ライブラリに変更を加えます。
    このプラグインを初期化するためには、以下のコード行(太字)を AppMeasurement ライブラリコードの registerPostTrackCallback 関数内に追加します。
    registerPostTrackCallback 機能は AppMeasurement ライブラリ 1.8.0 以降に含まれていますが、デフォルトではカスタムコード設定に含まれていません。doPlugins 関数の後および​ ​に追加します。
     s.registerPostTrackCallback(function(){ 
     s.governor();
    }); 
    
    
    AppMeasurement ファイルの doPlugins セクションの下に、以下の プラグインのソースコード に含まれているプラグインコードを追加します。
    ヒット数上限のしきい値、ヒット時間のしきい値およびトラフィック除外期間は、プラグイン自体の外で以下の変数を設定することで変更できます。他の設定変数と一緒に設定することをお勧めします。
変数 構文 説明
ヒット数上限のしきい値
s.hl = 60;
特定の期間におけるヒット数の上限。
ヒット時間のしきい値
s.ht = 10;
ヒット数を記録する秒数。この数値を 6 で割ることで期間が決定されます。
除外のしきい値
s.he = 60;
該当の訪問者に対して除外 Cookie を設定する日数。
実際の実装では、Analytics のデフォルトの「s」オブジェクトとは違うオブジェクト名を使用する場合もあります。その場合は適切なオブジェクト名に変更してください。
  1. 処理ルールを設定します。
    このプラグインは、リンクトラッキングイメージリクエストで、マークされた除外をコンテキストデータとして記録します。そのため、処理ルールを設定し、マークされた該当の除外を以下のような適切な変数に割り当て、追跡する必要があります。
  2. (オプション)トラフィックのブロックコードを doPlugins に追加します。
    トラフィックを例外として識別した後は、以下のコードを doPlugins 関数内に追加することで、該当の訪問者の以降のヒットをすべてブロックできます。
    //Check for hit governor flag 
          if(s.Util.cookieRead('s_hg')==9)s.abort=true;
    
    
    このコードを追加しないと、該当の訪問者のトラフィックは例外としてマークされるだけでブロックされません。

プラグインのソースコード

このコードは、AppMeasurement ライブラリの doPlugins セクションの下に追加する必要があります。
//Hit Governor (Version 0.1 BETA, 11-13-17) 
s.governor=new Function("","" 
+"var s=this;if(typeof s.hl=='undefined'){s.hl=60;}if(typeof s.ht=='u" 
+"ndefined'){s.ht=60;}if(typeof s.he=='undefined'){s.he=60;}if(s.Util" 
+".cookieRead('s_hg')==8){var i=new Date(),y=i.getFullYear(),m=i.getM" 
+"onth(),d=i.getDate(),i=new Date(y,m,d+s.he);s.Util.cookieWrite('s_h" 
+"g',9,i);return;}var f=s.Util.cookieRead('s_hc'),g=Number(s.Util.coo" 
+"kieRead('s_ht')),h=Math.floor((new Date()).getTime()),ha=f!=''?f.sp" 
+"lit('|').map(Number):[0,0,0,0,0],i=ha.reduce(function(ha,b){return " 
+"ha+b;},0),j=g==0?0:Math.floor(((h-g)/(s.ht/6))/1000);if(g==0)s.Util" 
+".cookieWrite('s_ht',h);if(i<s.hl){if(j>=1){if(j>=6){ha=[0,0,0,0,0];" 
+"}else{for(var k=0;k<j;k++){ha.unshift(0);ha.pop();}}s.Util.cookieWr" 
+"ite('s_ht',h);}}else{s.Util.cookieWrite('s_hg',8);s.linkTrackVars+=" 
+"',contextData.exceptionFlag';s.contextData['exceptionFlag']='true';" 
+"s.tl(this,'o','exceptionFlag');}ha[0]++;s.Util.cookieWrite('s_hc',h" 
+"a.join('|'));");