Google Analytics Measurement Protocolを使用する予定です。私は現在、クライアントID(cid)をURLパラメータとしてAjaxリクエストに含めることでキャプチャする予定です。Google AnalyticsトラッカークライアントID(cid)を使用
私はこのようなクライアントID値を公開することができ、私を見つけた:
var ga_cid;
ga(function(tracker) {
ga_cid = tracker.get('clientId');
});
私はそれがグローバルな名前空間を汚染だとして、このルートが悪い形であることを心配。しかし、私はより洗練された(ベストプラクティス)ソリューションを見つけられませんでした。
"正しい"方法は何ですか?私はこれを熟考していますか?
あなたが提供したコードは、そのドキュメントからのものです。それはクライアントIDを利用できるようにしないので、私のポストです。 – Sonny
いいえ実際には2つのコードの間に大きな違いがあります。関数の外側にvarを宣言すると、それをグローバルスコープに増やしています。関数内で変数を宣言する限り、スコープをローカルとして保持できます。 http://stackoverflow.com/questions/500431/what-is-the-scope-of-variables-in-javascript – pal4life
あなたは私を誤解しています。あなたが与えた例では、値のスコープがローカルであることがわかります。これは公式文書の例です。ローカルなので、私が議論したように、Ajaxコールを作成するときのように、私のJavaScriptのどこか別のところに値にアクセスすることはできません。それが、私が修正版を提示した理由です。それを達成する方法であるか、より良い経路があるのかという疑問があります。 – Sonny