2017-05-16 129 views
0

返回從GA電子商務結果一個值(收入)在我的電子商務網站谷歌Analytics(分析)ecommerce.js插件交易成功後顯示的頁面三江源源寫入以下內容:我怎麼能提取和使用JavaScript

<script> 
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
     (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 

    ga('create', 'UA-123456789-1', {'cookieDomain': 'http://www.example.com/'}); 
    ga('require', 'displayfeatures'); 
    ga('send', 'pageview'); 


    ga('create', 'UA-1234567-9', 'auto', { name: 'merchantTracker' }); 
    ga('merchantTracker.require', 'displayfeatures'); 
    ga('merchantTracker.send', 'pageview'); 


    Thirdparty.Event.subscribe('google.analytics.trackPageView', function(url) { 
     ga('send', 'pageview', url); 


     ga('merchantTracker.send', 'pageview', url); 

    }); 
</script> 

<script type="text/javascript"> 
//<![CDATA[ 
$(document).ready(function() { 
        $('.recommendation-box .in-popup a').click(function(e) { 
        e.preventDefault(); 
        window.open(
         this.href, 
         "sharing", 
         "width=650,height=500,resizable=no,location=no,menubar=no,scrollbars=no,status=no" 
        ); 
       }); 

      ga('require', 'ecommerce');    ga('ecommerce:addItem', { 
        'id': '11377927',// Transaction ID. Required. 
        'name': 'Test Product',// Product name. Required. 
        'category': 'Adult',// Category or variation. 
        'price': '1.0000000000',// Unit price. 
        'quantity': '1'// Quantity. 
       });  ga('ecommerce:addTransaction', { 
      'id': '11377927',// Transaction ID. Required. 
      'affiliation': 'My Site',// Affiliation or store name. 
      'revenue': '1.070000',// Grand Total. 
      'tax': '0'// Tax. 
     }); 
     ga('ecommerce:send'); 
}); 
//]]> 

</script> 

我想使用Google跟蹤代碼管理器和JavaScript來提取「收入」的價值並將其返回到GTM變量中。

這是在第三方平臺上,我沒有訪問後端源代碼,這就是爲什麼我看着GTM,使我能夠在謝謝頁面上使用JS代碼(我有一個GTM容器設置和在網站上爲其他javascript工作)

我不知道javascript或GA對象模型,所以我不知道如何提取該值的最佳方式。我已經通過Chrome控制檯嘗試瞭解我是否可以通過訪問ga對象來回顯價值,但無法找到獲取/訪問它的方法。嘗試諸如console.log ga('revenue')和許多變體之類的東西但我不明白對象模型如何工作以獲得該值。

我如何獲取「收入」的價值並將其返回給GTM以用作變量?

+0

您需要使用自定義JS迭代的對象。沒有直接的方法 – Tushar

+0

是的,我得出了這個結論,並且使用innerText來確認價值收益已經取得了一些成功 - 我只是試圖找出正確的正則表達式來嘗試正確提取值。 – boliviab

回答

0

我制定瞭解決方案,使用innerText和正則表達式提取出來,然後獲得了價值「收入」的起點索引,我用它來放置收入數值從前面12個指標點開始。 我提取了8個小數點的數值,因爲數字I永遠不會高於9999.999美元的價值順序,我不需要超過3個小數位的值,所以這應該是我的要求的安全範圍。

我在自定義JavaScript類型的GTM變量使用此代碼,然後在需要時包括在重定位像素代碼,變量。

的條目的console.log只是用於測試,但我現在已經從生存變量的代碼去除。

var content = document.head.innerText; 
    var query=/'revenue': '\d+.\d+',/; 
    if (content.search(query) > -1) { 
    var resultquery = (content.search(query)) 
    var revenue = (document.head.innerText.substring(resultquery+12, resultquery+20)) 
    console.log (revenue) 
    return revenue; 

    } else { 
     console.log(false); 
    } 
0

爲推動值GTM你需要先設置你的GTM數據層變量:

變量 - >新建 - >選擇一個變量類型... - >數據層變量

enter image description here

輸入您的變量名稱並點擊保存。現在你可以使用內GTM這個變量,它會提供。無論您可以和你也可以參考它在自定義HTML這樣的:{{stackO}} 欲瞭解更多信息:https://support.google.com/tagmanager/answer/6106899?hl=en#web

增加價值這個變量從您的網站上簡單地將變量推送到GTM,例如:

dataLayer.push({stackO':'exampleValue' });

更多信息:https://developers.google.com/tag-manager/devguide

不幸的是,我不認爲你可以訪問「收入」的值,並將其返回到GTM作爲變量直接使用。這是因爲ga電子商務不具有返回附加項目的功能。 (我不知道)。參考:https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce

我只能建議試圖找出價值來自哪裏?

'收入':'1.070000',//總計。

是硬編碼嗎?如果是這樣,也許你可以直接從HTML獲取它。

基於您的評論,你可以在理論上,使用如下代碼如下:

var x = document.head.innerText; 
    var revenue=x.substring(x.lastIndexOf("'revenue'")+12,x.lastIndexOf("// Grand Total") - 2); 
//assuming you name your dataLayer variable "revenue" in GTM you can push it like this: 
dataLayer.push({ 
'revenue' : revenue 
}); 

收入是你後的值。但是,當結構發生變化時,你的代碼將停止工作。祝你好運

+0

是的,這就是問題 - 我無法訪問變量,所以需要從HTML中提取值,並且值根據籃子總值而變化。我確實詢問了第三方平臺,但我得到了一個無用的回覆,「這將是一個自定義的開發成本500usd」。 我目前正在努力解決如何使用innerText來獲取價值 - 我有代碼工作,以便它找到並確認文本「收入」的存在和即時通訊只是試圖解決如何,然後提取/返回值之後返回到GA變量。基本上我用這個檢查: – boliviab

+0

var content = document.head.innerText; var query =「revenue」; 如果(content.search(查詢)> -1){ VAR結果=() 的console.log(真); } else { console.log(false); } – boliviab

+0

「這是因爲ga電子商務沒有返回附加項目的功能。」 - 這是有幫助的,因爲我試圖找出這一點,並開始懷疑這一點。謝謝 – boliviab