2012-09-15 54 views
0

試圖讓GA建立與我們的電子商務商店運行到哪裏實際產品的項目沒有在所有GA發佈的問題。總價工作正常,但沒有任何項目數據通過。谷歌分析代碼換行符[「_ addTrans」

在Chrome中使用Google Analytics(分析)調試器,看起來好像發生了這種情況,因爲變量返回的值位於單獨的行上。谷歌認爲它沒有任何價值,至少看起來像什麼似的。

我附加了一個調試器窗口的屏幕來顯示換行符

enter image description here

之前,你看看代碼,請注意,爲了得到價值和產品的定價,我必須遍歷對電子商務的表感謝頁面,因爲電子商務系統,我們使用沒有按」噸有任何API的...

下面是與在測試順序導出的表的代碼。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script> 
<script type="text/javascript"> 
var purchaseTotal; 
var orderID = "[[S120:cart:orderId]]"; 
var productQty = new Array(); //quantity of product 
var productName = new Array(); //name of product 
var productValue = new Array(); //price of product 
var productRows; 
var a = 0; //used to assign array values 

var _gaq = _gaq || []; //start _gaq to use globaly 

$(function(){ 

    function getQuerystring(key, default_){ 
     if (default_==null) default_=""; 
     key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
     var regex = new RegExp("[\\?&]"+key+"=([^&#]*)"); 
     var qs = regex.exec(window.location.href); 
     if(qs == null) 
     return default_; 
     else 
     return qs[1]; 
    } 

    var isThankyou = getQuerystring('CONFIRMATION'); 

    if(getQuerystring('CONFIRMATION') == 'true'){ 


    purchaseTotal = $("table.ShoppingCart tr:last-child").children("td:last-child").text(); 
    purchaseTotal = purchaseTotal.replace('$',''); //removes dollar sign from text for GA use 
    purchaseTotal = purchaseTotal.replace(/\s+/g,""); //removes all extra spaces 
    console.log("Total: "+ purchaseTotal); 

    var rows = $("table.ShoppingCart tr").length; 
    console.log("Rows: " + rows); 

    //start going through the rows 
    for(var i = 0; i <= rows; i++){ 


     var cells = $("table.ShoppingCart tr").eq(i).children("td").length; 
     var cell = $("table.ShoppingCart tr").eq(i).children("td"); 
     //if there 3 cells we're in business, it's a product 
     if(cells == 3){ 
      //for every row, go through the cells if the length of cells in that row are 3 
      for(var k = 0; k < cells; k++){ 
       if(k == 0){ 
        //this is the quantity column, let's see how much was ordered 
        productQty[a] = $(cell).eq(k).text(); 
        productQty[a] = productQty[a].replace(/\s+/g," "); 
        console.log("QTY: "+ productQty[a]); 
       } 
       if(k == 1){ 
        //this is the product name column, what's the name? 
        productName[a] = $(cell).eq(k).text(); 
        productName[a] = productName[a].replace(/\s+/g," "); 
        console.log("Name: "+ productName[a]); 
       } 
       if(k == 2){ 
        //this is the price 
        productValue[a] = $(cell).eq(k).text(); 
        productValue[a] = productValue[a].replace("$",""); 
        productValue[a] = productValue[a].replace(/\s+/g," "); 
        console.log("Value: "+ productValue[a]); 
        a++; 
       } 
      } 
     } 
     //console.log("END i loop: "+ i); 
    } 

    productRows = productQty.length; 

    ecommerceGACode(); // launch eccomerce GA code 

    }//endif 
    else{ 
     noEcommerceGA(); 

    }//end else 

}); 

function ecommerceGACode(){ 
     //Google Analytics Code 
    console.log("ThankYouPage GA launched"); 
    _gaq.push(['_setAccount', 'UA-2167264-1']); 
    _gaq.push(['_setDomainName', '.convio.net']); 
    _gaq.push(['_setSiteSpeedSampleRate', 5]); 
     if (CONVIO.referrer.length != 0) { 
      _gaq.push(['_setReferrerOverride',CONVIO.referrer]);  
     } 
    _gaq.push(['_trackPageview']); 

    _gaq.push(['_addTrans', 
     orderID,   // order ID - required 
     'ECommerce Store', // affiliation or store name 
     purchaseTotal,   // total - required 
     '',   // tax 
     '',    // shipping 
     '',  // city 
     '',  // state or province 
     ''    // country 
    ]); 

    //loop through our array's and insert the values! 
    for(var i = 0; i < productRows; i++){ 
     console.log("QTY: "+ productQty[i]); 
     console.log("Name: "+ productName[i]); 
     console.log("Value: "+ productValue[i]); 

     var name = productName[i]; 
     var qty = productQty[i]; 
     var price = productValue[i]; 


    _gaq.push(['_addItem', 
     orderID,   // order ID - required 
     'Ecommerce',   // SKU/code - required 
     ''+name+'',  // product name 
     '', // category or variation 
     ''+price+'',   // unit price - required 
     ''+qty+''    // quantity - required 
    ]); 

    } 

    _gaq.push(['_trackTrans']); //submits transaction to the Analytics servers 


     var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 

} // Ecommerce GA Code 

function noEcommerceGA(){ 

     console.log("Normal GA Launched"); 
     _gaq.push(['_setAccount', 'UA-2167264-1']); 
     _gaq.push(['_setDomainName', '.convio.net']); 
     _gaq.push(['_setAllowLinker', true]); 
     _gaq.push(['_setSiteSpeedSampleRate', 5]); 
     if (CONVIO.referrer.length != 0) { 
      _gaq.push(['_setReferrerOverride',CONVIO.referrer]);  
     } 
     _gaq.push(['_trackPageview']); 


     var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 

} // no Ecommerce Code 
</script> 

<table class="ShoppingCart" cellpadding="5" border="1" style="border-collapse: collapse;" width="100%"> 
    <tbody> 
    <tr class="ShoppingCartHeadings"> 
     <th width="10%"> <p>Quantity</p> 
     </th> 
     <th width="70%"> <p>Item Name</p> 
     </th> 
     <th width="20%"> <p>Total Price</p> 
     </th> 
    </tr> 
    <tr valign="top" class="ShoppingCartRow0"> 
     <td><p>1</p></td> 
     <td><p> <span class="CartItemName">Interview with a Terrorist</span> ($5.00 each) </p></td> 
     <td align="right"><p>$5.00</p></td> 
    </tr> 
    <tr> 
     <td colspan="2" align="right"><p><strong>Total Price of Items:</strong></p></td> 
     <td align="right"><p><strong>$5.00</strong></p></td> 
    </tr> 
    <tr> 
     <td colspan="2" align="right"><p> <strong>Shipping Charges: </strong> </p></td> 
     <td align="right"><p><strong>$5.00</strong></p></td> 
    </tr> 
    <tr> 
     <td colspan="2" align="right"><p><strong>Total: </strong></p></td> 
     <td align="right"><p><strong>$10.00</strong></p></td> 
    </tr> 
    </tbody> 
</table> 

正如你可能也看到,我甚至試圖從變量值中刪除多餘的空格。

在我的控制檯測試,一切都是單行線,沒有換行符,所以我不知道究竟發生了什麼事。

任何幫助,將不勝感激。謝謝!

+0

?CONFIRMATION =真激活電子商務GA代碼。必須這樣做,因爲沒有API可以告訴用戶何時登陸內置的感謝頁面。 – Ian

回答

0

一個問題:所有的產品具有相同的SKU:「電子商務」。從Ecommerce tracking code docs

確保庫存中的每件商品都具有唯一的SKU。 如果您的庫存有相同的SKU不同的項目,以及訪問者購買他們兩個,您將收到的數據僅最近添加的

如果您的購物車表中沒有某種產品ID或SKU,則可以將產品名稱用於SKU和產品名稱參數。

+0

這是有道理的。這樣它仍然保持獨特。我會做出改變,看看是否能解決整體問題......如果有什麼數據會更清潔! – Ian