zouber / Fanshop

1 stars 0 forks source link

協助監測文章 --> 購買 流量轉換率 #510

Open zouber opened 9 years ago

zouber commented 9 years ago

詳細流程如下:

  1. 使用者進入文章頁 http://www.fanshop.tw/332298856946747 的總量,在這頁停留多久?會不會捲動到下方商品區塊? Note: 這頁要分析流量是從哪裡來的
  2. 有多少人在這篇文章裡點了下面區塊的商品?各區塊的點擊率是多少? 商品頁連結: http://www.fanshop.tw/808558355821812 http://www.fanshop.tw/726909467320035 http://www.fanshop.tw/765832740094374 http://www.fanshop.tw/489248784419439
  3. 有多少人因此加入購物車? 商品頁有購買按鈕,id 是 buy_btn
  4. 有多少人加入購物車之後實際結帳? 結帳頁:www.fanshop.tw/user_unpaid_order/
  5. 每個單品總購物金額是多少? 金額在商品頁,id 是 price

@zorro0555 你幫我看看提供的資訊合不合用,這個外包就交給你囉~謝啦~

zorro0555 commented 9 years ago

@zouber OK 麻煩 把 GA 全部原生的程式碼刪除 在原本GA程式碼的地方嵌入GTM 另外把GA和GTM的權限開給 zorro0555@gmail.com

zorro0555 commented 9 years ago

生出來的程式碼應該是這樣

<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>

然後請把'dataLayer' 換掉換成任何你們約定好而且不常用的全域變數

zouber commented 9 years ago

想問一下,如果我立即拿掉 GA 到你設定好,這段期間的網站數據是否就收不到了? 如果是這樣的話我可能會等深夜 user 比較少的時候來做

zouber commented 9 years ago

@zorro0555

我申請好GTM 並把 GA GTM 權限都開好給你了,只剩改嵌部分有以上疑慮 2014/09/26

zorro0555 commented 9 years ago

對 不過我馬上上code就可以無縫接軌 看你啥時間要拿掉我可以配合你

zouber commented 9 years ago

你上 code 要多久呢? 不如我準備好時先通知你,你先幫我弄好 等你把一切可弄的弄好,我這邊就上,你也上

zouber commented 9 years ago

@zorro0555

對於有全域變數 is_blog_page = true 的頁面,啟動額外 GA 記錄 UA-53017351-1

zouber commented 9 years ago
$("#fblogin").live('click', function(){
   gaq.push(['_trackEvent', 'NewHomePage', 'UserClickLogin', '']);
});

$(document).ready(function(){
    _gaq.push(['_trackEvent', 'NewHomePage', 'Init', '']);
});

{% block if_not_login %}
    _gaq.push(['_trackEvent', 'NewHomePage', 'UserCannotIdentify', '']);
{% endblock %}

{% block if_not_authorized %}
    _gaq.push(['_trackEvent', 'NewHomePage', 'UserCannotIdentify', '']);
{% endblock %}

{% block complet_fb_auth_callback %}
{% endblock %}

{% block fb_auth_pre_process %}
{% endblock %}

{% block confirm_user_id_callback %}
    _gaq.push(['_trackEvent', 'NewHomePage', 'UserIdentify', '' + uid]);
    $(".user_comment_thumb").attr('src', 'http://graph.facebook.com/'+uid+'/picture?type=square');
{% endblock %}
zouber commented 9 years ago

9/30 去找 @zorro0555 稍微了解了 GTM 的概念,並明確定義這次專案需完成的事項

zorro0555 commented 9 years ago

看流量IE7+IE8只占總流量0.5% 所以所有追蹤均無特別考慮IE相容性

zorro0555 commented 9 years ago

ga cookie 寫入 URL http://www.fanshop.tw/#gaso=.cz0zJmRzPWEyMjU4MTkyOXc2MDAwMjQzNnA2MTMzNDM4MyZhdXRodXNlcj0w.AFB3siYv2RdGHbbXwf2rN4Tp2M5-MPAX8pdCSsFUxlWS-DyRfnQtm-4qheppuO3X8vJ88KQUeYTrK2TuduU2bCiv6le-x1vDiNs_CbWdUMBVqustH5CQ_i0

zorro0555 commented 9 years ago

後來發現用UTM可能會有問題 可能改用事件+目標來追轉換

zouber commented 9 years ago

噢,所以現在進度是?轉換漏斗/商品成效設定中?

zorro0555 commented 9 years ago

現在要另外做一層歸屬,因為改UTM會產生額外的工作階段,所以到時候會有另一個事件當目標來看部落客或文章的轉換率

zouber commented 9 years ago

報表在 電子商務 --> 產品資訊成效 可以看到 每個部落客展示商品的成效(店家專頁下方的商品列表的瀏覽次數 以及 點擊次數)

有監測店家專頁的捲動程度 --> 在 GTM 的 scroll event listener 的標記,在 GA 裡頭的"事件" 觀看

監測成交:

事件細節 第一為度:ecommerce 第二維度:為商品名稱 第三維度:發文者id-文章id

點擊購買,會塞另一個 cookie 來追蹤

點"送出訂單" 會記錄

站內:哪個部落客貢獻的(文章貢獻) 站外:其他自然流量、粉絲團、搜尋進來(一連串的購買漏斗)

捲動事件是全站都有記錄

自訂事件記錄,來記錄站內漏斗 瀏覽 --> 點擊購買 --> 結帳頁 --> 完成結帳

遵照特殊規格發的 event 就會出現在"轉換" 區塊,自己用原生ga 發事件也可以

tracking request 的 t 變數(pageView, event)控制了數據會出現在 ga 的哪個區塊

zorro0555 commented 9 years ago

Hello 小馬:

不好意思最近工作繁雜,到今天才完成購物車要開始串資料紀錄的部分 因為隔了一陣子,所以印象有點模糊,以下事項跟你確認:

  1. "event" 是 "gtm.transactionData" 和 "ecommerceTransaction" 分別代表什麼?
  2. "transactionId" --> 這是要填入訂單編號? 因為我看到 orderTime 有點不太確定
  3. "transactionAffiliation" 是指?
  4. "transactionShipping" --> 這是指物流方案?
  5. "transactionProducts" 裡面的 variant 是指?
  6. revenue 的部分是總價嗎?能夠區別純商品價格和運費嗎?
  7. 你下面的留言, products:[{},{},{}...] 是指回傳 transactionProducts 和 products 時,單個 product 物件都要用 大括號括起來? 像是 products: [{pd1 data}, {pd2 data}, {pd3 data}, ... etc ] 這樣嗎?
  8. 以下這段 code 是訂單成立時發還是確認付款時發?
TagtoodataLayer.push({
        "event": "gtm.transactionData",
        'transactionId': "fanshop=" + orderTime,
        'transactionAffiliation': "fanshop",
        'transactionTotal': $(".total_price").text().replace(/\D/g, ""),
        'transactionTax': 0,
        'transactionShipping': $(".logistics_menu").val().replace(/\D/g, ""),
        'transactionProducts': (function() {
            return $.map($(".order_item"), function(item) {
                var _this = $(item);
                return {
                    'name': _this.find("div").eq(7).text(),
                    'sku': _this.find(".pnumber").text(),
                    'price': _this.find(".unit_price").text().replace(/\D/g, ""),
                    'category': '',
                    'variant': '',
                    'quantity': _this.find(".order_item_quantity_info").val()
                }
            })
        })()
    })

    TagtoodataLayer.push({
        "event": "ecommerceTransaction",
        'ecommerce': {
            'purchase': {
                'actionField': {
                    'id': "fanshop=" + orderTime,
                    'affiliation': "fanshop",
                    'revenue': $(".total_price").text().replace(/\D/g, ""),
                    'tax': 0,
                    'shipping': $(".logistics_menu").val().replace(/\D/g, "")
                },
                'products': (function() {
                    return $.map($(".order_item"), function(item) {
                        var _this = $(item);
                        return {
                            'name': _this.find("div").eq(7).text(),
                            'sku': _this.find(".pnumber").text(),
                            'price': _this.find(".unit_price").text().replace(/\D/g, ""),
                            'category': '',
                            'variant': '',
                            'quantity': _this.find(".order_item_quantity_info").val()
                        }
                    })
                })()
            }
        }
    });
zorro0555 commented 9 years ago

products:[{},{},{}...]

zorro0555 commented 9 years ago

已上版,剩下訂單完成的gtm.transactionDataecommerceTransaction還沒吐給我

zorro0555 commented 9 years ago

Q:"event" 是 "gtm.transactionData" 和 "ecommerceTransaction" 分別代表什麼? 前者是結賬訂單統計,後者是強化版電子商務的結帳流程追蹤 Q:"transactionId" --> 這是要填入訂單編號? 因為我看到 orderTime 有點不太確定 對訂單編號,之前我拿不到編號所以給訂單成立時間 Q:"transactionAffiliation" 是指? 商店名稱,你可以給自己的站名,或商店的品牌名稱 ex:七見櫻堂 Q:"transactionShipping" --> 這是指物流方案? 運費 Q:"transactionProducts" 裡面的 variant 是指? 種類,比如說衣服的S號M號或L號之類的 Q:revenue 的部分是總價嗎?能夠區別純商品價格和運費嗎? revenue 是不含運費的總價 Q:你下面的留言, products:[{},{},{}...] 是指回傳 transactionProducts 和 products 時,單個 product 物件都要用 大括號括起來? 像是 products: [{pd1 data}, {pd2 data}, {pd3 data}, ... etc ] 這樣嗎? Q:以下這段 code 是訂單成立時發還是確認付款時發? 訂單成立

zouber commented 9 years ago

Note: 我們的 GTM 容器全域變數名稱為 gtmDataLayer

zouber commented 9 years ago

11/7 為了測試線上信用卡刷卡成功是否順利產生 GTM 紀錄 測試又花100元,至此累計花費 2,100 元

zouber commented 9 years ago

完成新版購物車成交時送出 GTM 電子商務成交回報以供計算電商轉換數據的部分

我把這部分的程式寫在 vendor_obj.models.sendPurchaseCompleteToGTM() 函式裡面,但呼叫的條件是 paid_order_id 已經產生,若 vendor_obj 底下的 paid_order_id 為 false,代表訂單還沒有成功送出,這時呼叫此函式會直接 return false,不會產生任何記錄

zouber commented 9 years ago

本次外包涵蓋的項目:

  1. 站內轉換 https://www.google.com/analytics/web/?hl=zh-TW&pli=1#report/content-event-events/a22581929w60002436p61334383/%3F_u.date00%3D20141101%26_u.date01%3D20141127%26explorer-segmentExplorer.segmentId%3Danalytics.eventAction%26_r.drilldown%3Danalytics.eventCategory%3Aecommerce%26explorer-table.plotKeys%3D%5B%5D/

記載商品的成交來源(可能是直接流量, 或是文章導購)

  1. 全站轉換漏斗:https://www.google.com/analytics/web/?hl=zh-TW&pli=1#report/conversions-ecommerce-shopping-behavior/a22581929w60002436p61334383/%3F_u.date00%3D20141101%26_u.date01%3D20141127/

全站的 overview, 是巨觀的數據,想要區隔的話,在發紀錄時就要指定報表(開新的GA account 來區隔) 設定地方在這:https://www.google.com/tagmanager/web/#management/TagManagement/a21113032c769982/%3FTagManagementPage.mode%3DEDIT_TAG%26TagManagementPage.tagId%3D17/

<script type="text/javascript">
gtmDataLayer.push({
    'event': 'addToCart',
    'ecommerce': {
        'currencyCode': 'TWD',
        'add': {
            'products': [{
                'name': $(".productName").text(),
                'id': page.iid,
                'price': $("#price").text().replace(/\D/g, ""),
                'brand': 'fanshop',
                'category': '',
                'variant': '',
                'quantity': product_quantity_input.value
            }]
        }
    }
});
var _SCL = Fanshop.gtmCookie.getItem("_SCL") || {};
var cookieProductList = Fanshop.gtmCookie.getItem("productClick") || {};
_SCL[page.iid] = cookieProductList[page.iid] || ["direct","referrer"];
Fanshop.gtmCookie.setItem("_SCL", _SCL, 2 * 365 * 24 * 60 * 60);
</script>

定義 dataLayer 有列舉的事件就發事件記錄

  1. storepage scroll event tracking
  2. 相容之前 GA event tracking js code 的接口:設定點在這邊https://www.google.com/tagmanager/web/#management/TagManagement/a21113032c769982/%3FTagManagementPage.mode%3DEDIT_TAG%26TagManagementPage.tagId%3D22/
zouber commented 9 years ago

這次外包的費用:

花20小時,以8小時2000元計算,酬勞共 5000 元 帳號是 (812) 2073-1000-0754-14 台新銀行

@shockhuang

shockhuang commented 9 years ago

已匯款完成,銷帳資訊: 2015-2-12 23:00 台新(812):002494 $5000

Best Regards

Shock

企劃指導 / PD

黃政漢 / Shock Huang

P 0989-625-824 M pproo.reader@gmail.com Web www.pointdesign.tw

T 02-2663-1468 統編 53716150 / HaveFun Tech.

2015-02-12 14:39 GMT+08:00 zouber notifications@github.com:

這次外包的費用:

花20小時,以8小時2000元計算,酬勞共 5000 元 帳號是 (812) 2073-1000-0754-14 台新銀行

@shockhuang https://github.com/shockhuang

— Reply to this email directly or view it on GitHub https://github.com/zouber/Fanshop/issues/510#issuecomment-73927478.