4

所以我試圖在一個網站上實現谷歌分析內容實驗,這是一個有角度的頁面網站。Angular.js和谷歌分析內容實驗

我有設置我的主頁兩個版本,爲//?v=2,在谷歌的代碼粘貼爲指導,在<head>標籤的最頂端,它工作得很好,谷歌發送的流量的30%至一年網頁第二個版本的流量的70%。

這個問題出現在我試圖訪問/contact時,谷歌顯然會認爲我仍在訪問/,並且會將我發送到/v=2(如果我是這30%的一部分)。

我甚至不確定它爲什麼會發生,但它確實如此,我想如果谷歌的功能在加載後運行不正確,但只有在主頁面的角度controller加載後才能提供幫助。但是我可以得到在所述控制器工作的谷歌代碼..

有沒有人處理過這個問題?

回答

12

你可以做的是使用API​​,而不是https://developers.google.com/analytics/devguides/collection/gajs/experiments#cxjs

然後,所有你需要做的是做這樣的事情在你的路線/狀態定義

{ 
    templateUrl: function() { 
     if(cxApi.chooseVariation() == 0) { 
     return "version1.html"; 
     } else { 
     return "version2.html"; 
     } 

    } 
} 
+1

嘿, 然後,我如何在Google Analytics中設置實驗? URL是相同的,但模板正在改變。那麼,我該如何做到這一點? – Tommy

2

使用AngularJS你會選擇和提供你的Angular代碼中的變化。谷歌只調用這個瀏覽器實現。因此,您不要使用Google Analytics網絡界面提供的標準實驗代碼片段。相反,您將使用Content Experiment JavaScript API。所以,你會加載腳本是:

<script src="//www.google-analytics.com/cx/api.js?experiment=EXPERIMENT_ID"></script>

如果你使用的UI路由器:

正如福克斯已經寫你只需要確定由調用cxApi.chooseVariation()每一個變化用戶需要接觸到要運行測試的$state。您可以選擇在$stateProvider.state()調用不同的模板(如圖福克斯),或者你可以簡單解決的變化數量,並將其注入到控制器,在模板中使用變異類:ng-class="{original: isVariation(0), variation-one: isVariation(1)}"

谷歌提供了極大的guide to implement experiments on the client-side