web-dev-qa-db-ja.com

GoogleアナリティクスのクライアントIDを取得する方法

実行してanalytics.jsの新しいインスタンスを作成するとき

ga('create', 'UA-XXXXXXX-Y', {'cookieDomain': 'none'});

GAは一意のクライアントIDを作成します。このIDを取得して自分の目的に使用したいのですが、このパラメーターには setter しか見つかりませんが、取得するためのgetterメソッドが見つかりません。

GAは&cid=123123.232323というパラメーターで後で送信します

誰がどのようにそれを手に入れるか知っていますか?

30
user2979757

Googleには クライアントIDの取得に関するドキュメント があります。

次のようになります。

ga(function(tracker) {
  var clientId = tracker.get('clientId');
});

私もこれを使ったことがあります:

ga.getAll()[0].get('clientId');

[〜#〜] edit [〜#〜]:ページに複数のトラッカーがある場合は、インデックス0にある可能性があります必要なものではないため、代替関数は次のようになります。

function() {
  try {
    var trackers = ga.getAll();
    var i, len;
    for (i = 0, len = trackers.length; i < len; i += 1) {
      if (trackers[i].get('trackingId') === "ID-PROPERTY") {
        return trackers[i].get('clientId');
      }
    }
  } catch(e) {}  
  return 'false';
}

ここで、ID-PROPERTYはプロパティのID(UA-XXXXX-XXなど)です。

68
Blexy

最初にGoogleアナリティクスを作成しますgaオブジェクトを作成してtrackerオブジェクトに"Ready callback"関数を渡し、次にトラッカーを使用して呼び出します他の方法。

ga()コマンドキューは、analytics.jsライブラリで行う必要があるほぼすべてのことを行うためのインターフェースを提供します。

"function(tracker)"は、分析ライブラリが完全にロードされ、対話する準備ができたときに呼び出されるコールバック関数です。この関数は、最初の引数としてデフォルトのトラッカーオブジェクトを使用して呼び出されます。デフォルトトラッカーが作成されていない場合、最初の引数はundefinedを返します。

注:コールバック関数が呼び出されると、すべてのgaオブジェクトメソッドが使用可能になります。必要なものを含めるtracker.get( 'clientId')

以下のコードのA-XXXXX-YをGoogle AnalyticsのUAコードに置き換えます。

// Queues a tracker object for creation.
ga('create', 'UA-XXXXX-Y', 'auto');

// Once the tracker has been created, log the
// client ID to the console.
ga(function(tracker) {
  console.log(tracker.get('clientId'));
  /* Your other code here */
});

または、1行目と2行目では、以下のコードを使用して名前付きトラッカーを作成します。

// Queues a named tracker object for creation.
ga('create', 'UA-XXXXX-Y', 'auto', 'myTracker');
6

著者は明示的にJavascriptを使用していると述べていますが、他の人(私のような)は、PHPのようなサーバー側からこの情報を取得する方法を探しているかもしれません。

次のような_ga Cookieを簡単に確認できることがわかりました。

_ga=GA1.3.475128143.1522318100

上記の例では、ユーザーIDは「475128143.1522318100」です。

だから、PHPでは、次のようにすばやく取得できます。

$gaUserId = preg_replace("/^.+\.(.+?\..+?)$/", "\\1", @$_COOKIE['_ga']);

Ga()関数を使用せずに、JavaScriptを使用してCookieを1行で取得することもできます。

var gaUserId = document.cookie.match(/_ga=(.+?);/)[1].split('.').slice(-2).join(".")

これは私のために働いています。

4
Alexandre T.