顯示具有 analytics 標籤的文章。 顯示所有文章
顯示具有 analytics 標籤的文章。 顯示所有文章

2015/4/21

Google Tag Manager 新版學習札記

先前稍微玩了一下 Google Tag Manager 但一直沒有正式放到網站上(主要是... 沒有人有時間再去研究,還有一堆 GA 調整的票掛在那邊沒時間做啊啊啊啊),但因為某顆布丁說要有光就有了光,於是我這星期又重新把沈寂數個月的「研究轉換到 GTM」那張票挖出來。

快速分享一些東西,或許能幫上跟我狀況 / 程度差不多的人。

這篇文:

  • 不是教學,是快速概覽:我是站在「如果是我的話,看了以後可以省一些摸索時間」來寫的,而介面選項在哪裡什麼的,自己摸吧 XD
  • 不是去技術文:GTM 本身雖然沒有限制是開發人員才能使用,但會不會 JavaScript 影響規劃時能用的把戲,我直接以小會一點 js 的角度來看

那就開始囉!

改名

如果你用過舊版的,有些名詞換了,個人認為是更好懂:

  • Rules 改稱為 Trigger
  • Macro 改稱 Variable

改名這種事情,其實對初學者來說超級重要的,因為在求助時,找到的文件可能都還是舊版。

概念

基本流程如下

  1. 新增 Container,就是... 意義上可以歸類的一組東西
  2. 請開發人員將 Container 產生的 GTM 程式碼放上網站。理想上無論你以後怎麼改設定,這就是少數幾次真的會動到網站程式碼的時候了。
  3. 在 Container 中可以新增各種 Tag,可以想為「要做的事」
  4. 每個 Tag 可以藉由多種 Trigger「觸發」
  5. 另外 Trigger 跟 Tag 中可以藉由各種 Variable 來設定雜七雜八的東西
  6. 設定完畢後,可以用 Preview / Debug 來測試
  7. 測試沒問題就發佈,相關設定就會直接套用到網站上
  8. 若以後有要改什麼,就從 Step 3 再走一遍,而開發人員理想上不用更動什麼程式碼

舉例:「使用者在進入這一頁點選『喝我喝我』按鈕後,就告訴 GA 這人在進來多久以後才按這個鈕」,這句話裡:

  • Tag 是「就告訴 GA 這人在進來多久以後才按這個鈕」
    • 其中「進來多久」很可能是 Variable
  • Trigger 是使用者「點選『喝我喝我』按鈕」

Tag 與 Trigger

Tag 的設定不盡相同。簡單的狀況:以設定「讀入此頁時,就在 GA 中記上一筆 pageview」這樣的事情來說,只要新增一個 GA 的 Tag、選擇 Pageview、並且設定在 All page 觸發就結束了。

但複雜的話就很複雜:一樣以 GA 為例,你有「一大堆」的欄位可以指定要傳送怎樣的資訊給 GA,舉凡 UserID、Enhanced eCommerce data 等等都可以(也必須)在這裡設定。這部分有必要搭配相關的開發文件來查閱該怎麼傳。

每個 Tag 都可以指定讓很多種 Trigger 觸發,這裡會是聯集,也就是說如果你設定了 3 個 Trigger,那只要符合 3 個中的任一種情形,都會觸發此 Tag。若想用「交集」,也就是要符合所有條件才會動,那設定上得自己兜成一個 Trigger(單一 Trigger 內的各條件是交集),或者另外新增 Exception。

舉例:我們希望在使用者登入的情況下(這裡有個 Variable 可以得知使用者是否登入),點擊某頁 A 上的某個連結 B 會觸發 Tag。有兩類設定方式:

  1. 在一個 Trigger 裡,設定在 A 頁啟用 Link Click 追蹤,並僅在使用者已登入點擊 B 連結時觸發
  2. 或者,也可以設定某個 Trigger 是在 A 頁啟用 Link Click 追蹤,並僅在點擊 B 連結時觸發。此時該 Tag 還要記得另外新增一個若使用者未登入則不觸發此 Tag 的 Exception

兩種方式主要看規劃,講簡潔好維護當然是 1,但或許某些時候還是會想用 2。

Exception 其實也是一種 Trigger,你可以想成「如果符合這個 Trigger 的條件,我就不觸發」。正所謂敵不動我不動,敵一動我亂動(此句意味不明。)

當然一個 Trigger 也可以觸發兩個以上的 Tag。

Variable

記得先進 Variable 把一些預設的 Built-In Variables 開起來,例如我開了 Page 跟 Click 的大部分。

這些做啥用?例如 Click Element 可以作為 Trigger 的條件,讓你做到「如果點選了 DIV.triggerme 底下的 A 元素,就觸發這個 Tag」,以此類推。

Variable 有許多類型,我覺得比較有用的東西例如:

  • Constant: 常數(固定值),例如 GAID 會用在很多 Tag 上,先拉出來做常數設定好。一個重點是在這邊設定好以後就會變成各欄位的下拉選單。
  • Custom JavaScript: 大概是變化最多最厲害的一種,可以用 JavaScript 抓/拼出各種想要的值交給 GTM。
    • 一行看熱鬧: function(){ return {{Click Element}}.getElementsByClassName("text")[0].getAttribute("data-event-label"); }
    • 其中 {{Click Element}} 是 Variable 的引用方式
    • GTM 高人 Zorro 曾指點,其實 GTM 內建 jQuery,所以不見得要像我那樣用原生 DOM API 抓東西。但... 我就習慣了... 然後沒有公開說支援的東西我也會擔心不告而別壞光光 :/
  • Data Layer Variable: 網頁上送來的 Data Layer 資訊要從這裡轉成變數給其他人用
  • Lookup Table: 如果你會 JavaScript 的話差不多就是 Switch ... Case 的精簡版,需求簡單又懶得寫程式時是蠻方便

Preview / Debug

GTM 內建的除錯工具,啟用後在瀏覽網頁時下半部會分割視窗顯示,平常測試起來會比用瀏覽器內建的 developer console 方便非常多。主要功能是查閱各種狀態(網頁載入、DOM 完備、網頁讀完、各種點擊事件)下:

  • 到底哪些 Tag 被觸發了
    • 以及,送出了什麼資訊
    • 而如果沒被觸發又因為哪些條件沒滿足(這個非常好用)
  • 各自訂變數值

由於他會把各狀態當下的所有數值記錄下來,所以你也可以在十幾個事件之後才回頭查第三次 click 觸發了什麼東西。下圖代表在剛載入的時機點由於網頁 URL 不符規則,於是沒有觸發。

Preview 時的 GTM 設定只有你才看得到,或者你也可以分享給其他特定人。總之,即使在 production 上測試也是沒問題的。

其他筆記

  • 瀏覽器相容性:寫 Custom JavaScript 要注意瀏覽器相容性,畢竟這段 js 碼是真的會在瀏覽器上跑。
  • 由於 GTM 的設計,只要你會寫 JavaScript 就幾乎可以不靠開發人員調整網頁,就能自幹所有的變數(例如,自己爬最終訂單畫面來解析出訂單內容資料)。
    • 不過基礎 Metadata 我會仍然傾向商請網站開發人員送 Data Layer 過來,以免網頁結構有些許更動時讓 GTM 死在路邊。
  • 閱讀文件後我認為 GTM for iOS / Android App 實際作用倒沒有像網站上那麼大,開發人員仍然得自己送出幾乎所有的事件(App 沒有 DOM 可以抓啊...),差異點是:
    1. 有些設定過的 Data Layer 值可以直接重複使用
    2. 可以在軟體發佈以後才透過 GTM 改一些設定值

小結

網站分析師善用 GTM 的話可以省很多「等開發人員有空」的時間,有什麼要調整的東西時開發人員也比較不會覺得很煩。站在「網站企劃分析人員多少都得懂點網頁技術」的角度上,是蠻推薦每個人都可以學學。不過相較 GA 已經深入行銷人的領域、在用詞與操作上幾乎只要懂網路基本原理就可以用,GTM 就還是很技術人的工具。

當然,即使你完全不會寫 JavaScript,也還是可以用 GTM 快樂做些事情、不用等 RD 幫你處理,但會寫 JavaScript 的情況下,用起來根本不是同個級別的。無論如何,Google 提供不少範例,或可作為一個入口。

有打算下個月或下下個月在摩茲工寮弄個簡單的 GTM 分享,有興趣的下面留言一下吧。

2013/3/27

關於 Google Analytics 「不得追蹤單一個體」的誤解?

昨天 Google Analytics 把 Universal Analytics 送進公測,我終於有機會到處看看。新的 Measurement Protocol 要求每個 Request 都要送個 Unique-id 給 GA,以便辨識是同一人(使用 Web 版或行動 SDK 的人,程式會自己幫你搞定這一點,一切都跟以前一樣),因此我覺得或許我以前誤解了 Google「不得識別單一個體」的條文。後來看 Universal Analytics 的資料找到這條:

You will not upload any data that allows Google to personally identify an individual (such as certain names, social security numbers, email addresses, or any similar data), or data that permanently identifies a particular device (such as a mobile phone’s unique device identifier if such an identifier cannot be reset), even in hashed form.

「您不可以上傳任何能讓 Google 識別特定個人(如姓名、身分證字號、電子郵件地址等)或特定設備(例如手機上無法更動的唯一設備號碼)的資料,即使雜湊過也不行。」

這好像跟我原本的認知就已經不同了,畢竟他很強調「不可讓 Google 識別」,而不是不可讓我識別。於是又回頭看服務條款:

You will not (and will not allow any third party to) use the Service to track, collect or upload any data that personally identifies an individual (such as a name, email address or billing information), or other data which can be reasonably linked to such information by Google.

「您不可(亦不能授意第三方)使用此服務追蹤、搜集、上傳任何可用以識別單一個人的資料(如姓名、電子郵件地址、賬單資訊等),或其他可由 Google 合理連結此等資訊的資料。」

好像仍然只是在強調不可以陷 Google 於不義。也就是說,依照此兩條解釋,其實如果我自己為使用者定一個 ID(例如 35009a79-1a05-49d7-b876-2b884d),然後設定 Custom Value 去追這個 ID,並不違反 Google 的條款。因為只有我自己才可能知道 35009a79-1a05-49d7-b876-2b884d0f825b 是誰,Google 無從得知,除非他駭進我後台系統,或者我笨笨的在前台就把這個 ID 跟前述使用者個人資料連在一起。

2013/1/30

[免費課程] 網站分析入門 - 給 FLOSS 志工社群網站管理員的網站分析

Today's latte, Google Analytics.

tl;dr: 2013/2/16 一整天,有免費的網站分析課程,歡迎報名。(請先參考本文最後面的報名資格)


我一直覺得網站分析很重要,但直到進入網路行銷公司之前,倒沒有很認真去看待這門學問。MozTW 早早就裝了 Google Analytics,也設定了追蹤下載量的程式,然後呢?我們知道每個月都有很多人上 moztw.org 下載  Firefox,所以呢?

「網站分析」在從前對我們而言,似乎就是網站的心電圖 - 放上去、會動,那我的網站沒問題,完工!

不過代誌不是我想的那麼簡單,深入探究才發現,網站分析其實可以提供一些問題的答案或線索,作為輔助調整網站的利器:

  • 幫助你精確思考網站的目的,以及「勝利條件」
  • 訪客進入你的網站,到底想做什麼?
  • 網站中的哪一頁,對於達成目標最有價值?
  • 又,哪些頁面可能有問題,需要調整?
  • 你的網站該前進 mobile 了嗎?
  • 放在別人網站的連結,到底有沒有用?

FLOSS 的志工夥伴平常看很多技術性文件、上開發軟體的課程,不過「網站分析」甚少落入我們的眼簾。趁著與公司 GG 閒在家的機會,這次我與 OSSF 合作,開設「給 FLOSS 志工社群網站管理員的網站分析」入門課程,希望在提升社群網站品質部份有點小小貢獻。

我們將以 Google Analytics 為工具,課程內容預定包括:

  • 設定 Google Analytics、埋設基本追蹤碼
  • 重新思考網站目標,定義網站目標
  • 重要數據與報表說明,如 Visits vs. Pageview、Bounce、Conversion、Traffic source 等等
  • 區隔,與進階區隔
  • 自訂報表、Dashboard
  • 自動信件通知設定
  • 設計多網站分析結構
  • 權限設定
  • 其他我突然覺得很重要的東西(炸)

小弟在 FLOSS 社群裡從來不(也無法)以技術能力走天下,因此可以想見這門課程不需要太深的技術能力,適合推薦你社群中熱心幫忙、但非技術人的夥伴參加。所有需要的科技知識(Cookies、Referral、Domain & Sub-domain、基礎 RegExp...),我都會試圖在課程裡解釋。

感謝 OSSF 鼎力支援,這樣的課程將完全免費 -- 當然,市場上也有其他網站分析的課程,而為了讓該給 FLOSS 社群的資源能妥善利用,我針對報名者資格做了點限制:

Update: 我們應該還有名額讓不符下列條件的朋友報名,所以無論如何還是歡迎填個資料。

  1. 參與者應該擁有任一 FLOSS 志工社群網站的管理權限
    • 網站需與 FLOSS 志工社群相關,開放規格的語言(Python、JavaScript)亦可、研討會 ok
    • 如果您是拿薪水來協助管理 FLOSS 志工社群網站,那請找坊間的課程來上。我個人推薦喬后的課,作為我在知世的好同事,她在網站分析這門學問上也更專業。
  2. 或者,任何擁有條件 1 資格的人,願意幫你背書、按你的要求調整網站
  3. 又或者,你已經擁有任一 FLOSS 志工社群網站的 Google Analytics(或其他分析工具)的管理權限
  4. 場地沒有電腦,歡迎自備上網設備
    • 非 100% 必要,但有實際看會比較好
    • 又,用手機會看得爆炸辛苦,建議至少是平板,筆電還是最好的

如果你符合這樣的條件,歡迎填寫這份表單,我們在確定後會發給你 OSSF 報名 VIP 碼協助你報名。

填寫報名申請表

願力無邊但名額有限,所以有興趣的夥伴馬上報名吧 :D 隨附我在 WebConf 2013 講的「網站分析?我小時候以為自己會」簡報,供參考。

2012/9/29

HTTPS 的 referrer 狀況筆記

很快筆記一下,周三去聽喬后演講時,她講了個我從前不知道的事:HTTPS 的網站連向 HTTP 網站時,瀏覽器不會送 referrer。以目前大部份網站都沒用 SSL 的情況來說,這會讓分析時高估直接流量(自以為有很多人加入書籤?XD)、且可能低估某些來源的威力。剛巧又有人貼了 Search Engine Land 的文章,說 iOS 6 因為預設搜尋引擎與 Firefox 相同,都轉往 SSL Search,所以就不送 referrer 了。如此推算,被低估的部份就變成自然搜尋,但這是網站健康程度的指標之一,雖然重要性就看個人,但若有需求該怎麼解決?

那就測試一下吧!Dropbox 的空間可以用 SSL 存取,所以我做了個簡單的網頁來顯示 referrer,想等 Google 去索引此網頁後再來測試搜尋。但,後來想到更快的方法:Facebook 也是 HTTPS 吧?那就從 Facebook 去連這個檔案就好。
好,所以事實證明,若 HTTPS 網站轉進另一個 HTTPS 網站時,還是會送 referrer。所以,如果想避開這種狀況帶來的影響,讓自己的網站也採用 HTTPS 就好了。花錢能解決的事情都是簡單,接下來的問題只在值不值得花。

不過現在大部份網站並不採用 HTTPS,那按理說會造成一部份的自然搜尋來源蒸發現象。但以我可以看到分析資料的網站而言,在 Firefox 預設改用 SSL Search 後,這種事情卻沒有發生,難道這代表 Firefox 的使用量已經低到無法撼動任何東西了嗎? XD

這倒也不是。其實 Facebook 等網站或許因為廣告等需求,就算你用 HTTPS 連,他的 proxy link 仍採用 HTTP 未加密連線。也就是說
  1. 你使用 HTTPS 來連 Facebook,並點擊一個看到的對外連結
  2. 這個對外連結會先跳到 HTTP 連線的 proxy link:以我的測試網站來說,就是 http://www.facebook.com/l.php?u=https%3A%2F%2Fdl.dropbox.com%2Fu%2F3280872%2Freferrer.htm&h=YAQH98kqz
  3. 這樣正式連過去另一個站的時候,對方無論是否採 HTTPS 連線,仍可收到來自 facebook.com 的 referrer
實際上 Google 也是如此,即使你採用 SSL Search,按照 Search Engine Land 的方法到 whatismyreferer 測試,對方也能正確顯示你從 Google 來。因為 Google 也用 proxy link 當跳板,然後這張跳板也刻意僅用 HTTP 連線。這是 Firefox 採用 SSL Search後,在數據上沒有造成任何影響的原因。

最後一個問題 - 那為什麼 iOS6 採用 SSL Search 後,搜尋上會造成這種影響?從剛剛的各種線索推算,答案就簡單了:因為 Google 行動版的行為不同。Google 行動版雖然也用 proxy link 來計算點擊數,但這個 proxy link 卻採用 HTTPS 連線,所以瀏覽器發現連線對象是 HTTP 網站時,也就很快樂地把  referrer 擋下來了。你可以用 Firefox for Android 搜尋 whatismyreferer 後,長按搜尋結果連結來證實此點。

喔,這樣才是置入性行銷啊 :)