2017-03-20 10 views
-1

お客様の一部は、GoogleアナリティクスのIDをお客様に報告したいと考えています。それを得ることは難しくありません。Googleアナリティクスは設定時にイベントを送信しますか?

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

GAが設定されている場合の動作が行われるようにキューに入れられた構文もあります。

しかし、GAが準備完了しているときにGAイベントを送信したくないです。私はジョージア州に準備ができたら質問をしたい。

おそらく、GAには「準備が整ったら、この機能を実行すると、私はあなたを渡しています」と言うことができます。

また、GAは準備ができたらカスタムイベントを送信しますか?

現在、ウィンドウがロードイベントを発生したときに私のコードを呼び出しています。しかし、それでも時間の一部は定義されていません。数秒待つと、それが定義されます。多分奇妙なcdnシステム。とにかく、GAの準備ができているかどうかを判断する信頼できる方法が必要です。


(私が協力し、コメントの書式作ることができませんでしたので、私はFeathercrownに対応するために私の質問を変更しました。)

素晴らしいサウンドそれ!唯一の問題は、GAがまだ定義されていないということです。私が送ったエラーメッセージのサンプルを以下に示します。
"type": "Page View", "data": { "error": { "message": "ga.getAll is not a function. (In 'ga.getAll()', 'ga.getAll' is undefined)", "message2": "window.GoogleAnalyticsObject = ga", "message3": "typeof ga is not Object" } },

多分何か_gxxのシンボルがすでに利用可能ですか?

答えて

1

コールバック(ga(readyCallback))は、機能が「analytics.jsライブラリが読み込まれて準備ができているとき」のみ実行されるため、ga()をコールバックとして使用することができます。 the documentationによれば

それを通過させることによってGA()コマンドキュー機能を呼び出す機能する スケジュールキュー内の次の時点での実行のために渡された関数。コマンドは唯一のanalytics.jsライブラリが が完全にロードされた後に実行されているので

は、コマンドを渡すための最も一般的な理由は、 機能はanalytics.jsライブラリが と準備をロードしたときのためのコールバックとしてあるキュー。

したがって、あなたが試みることができる:

ga(function(){var clientId = ga.getAll()[0].get('clientId');}); 

または類似した何かを。

+0

(Feathercrown、答えの一番下にある初期の回答を参照してください)参照するドキュメントのjavascriptスニペットを見ると、すぐにgaを定義する必要があるように見えます。しかし、そうではありません。私の顧客がこのウェブサイトでやっている何かのファンキーなもの? – user2171796

+0

私は、ウィンドウ上の 'load'イベントが十分に長くなるまで待つことに少し驚いていると思います。少なくともwindow.gaシンボルが定義されている。しかし、私は彼らがGA初期化コードをsetTimeoutなどに置くことができると思いますが、私は知らないでしょう。 – user2171796

+0

私はそれが次の人を助けるのかどうかはわかりませんが、私たちは問題を解決しました。私たちの顧客はShopifyを使用しています。Shopifyには、「Google Analyticsのスニペット」を配置する場所があります。 GAスニペットの直後にあるコードを配置する場所があります。その場所でカスタムイベントを発生させるコードを記述します。コードのどこかで、そのイベントを聞いて、私たちがする必要があることをしました。 Feathercrownが説明したように、関数を待ち行列に入れてください。非常にShopify固有の、しかし多分それは誰かを助けるでしょう。 – user2171796

関連する問題