2017-03-20 27 views
-1

我們的一些客戶希望向他們報告他們的Google Analytics(分析)ID。這並不難。Google Analytics是否在設置時發出事件?

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()可用作回調函數(ga(readyCallback)),因爲該函數僅在「analytics.js庫加載並準備就緒時」運行。

根據the documentation

通過使其調用GA()命令隊列功能的功能將 時間表在 隊列的下一個點執行所傳遞的功能。

由於命令僅執行後analytics.js庫是 滿載,最常見的原因傳遞命令排隊一個 功能是當analytics.js庫加載 並準備一個回調。

因此,你可以嘗試:

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

或類似的東西。

+0

(Feathercrown,請參閱前面的回答底部的答案。)看看你引用的文檔中的JavaScript代碼段,它看起來應該立即定義ga。但事實並非如此。我的客戶在這個網站上做了些什麼? – user2171796

+0

我想我有點驚訝,等待窗口上的'加載'事件不夠長。至少爲了定義window.ga符號。但我想他們可以把GA初始化代碼放在setTimeout上,或者其他什麼東西上,但我不知道。 – user2171796

+0

我不確定它會幫助下一個人,但我們解決了我們的問題。我們的客戶正在使用Shopify。Shopify有一個地方可以放入「Google Analytics(分析)」代碼片段。「它有一個地方可以放置應該立即跟隨GA代碼片段的代碼。在那個地方,我們把代碼發出一個自定義事件。然後在代碼中的其他地方,我們聽取了該事件,並做了我們需要做的事情。把一個函數放在ga隊列中,就像Feathercrown描述的一樣。非常Shopify特定的,但也許它會幫助某人。 – user2171796

相關問題