發現1個以上的Facebook Pixel該怎麼埋? 臉書廣告Pixel 接收錯誤必看

發現1個以上的Facebook Pixel|臉書像素重複事件怎麼解決

這一篇適合代理商人員,如果要操作新品牌的臉書廣告投放,如果遇到一個網站有多個pixel正在同時追蹤,該怎麼確保自家的Pixel可以正確發送。臉書廣告追蹤,由於品牌主可能會分給多間代理商同時進行,因此網站會有多個像素。我會建議直接使用Server伺服器追蹤來發送給其他行銷公司數據,同時也能幫助企業做好js代碼的管理。

你需要確認以下幾點:

  • 你自己埋設的pixel全部都正確,觸發條件也正確。
  • 別的代理商怎麼埋設。可能有使用Facebook範本、原生JS、原生JS外連檔案。
  • 確定你的Facebook基礎代碼 (init),都有在事件發送前先觸發。
  • 如果有重複事件發生,也確定只有埋一次,那就去追查哪個代碼是用track來寫的,逐一排除。

問題情境

如上面圖+程式碼示意,當我的Pixel A已經初始化,並完成Pageview, Purchase的送出後。再來接續初始化PixelB,理想中PixelB應該會接收到PageView & Step4。 但反而PIXEL A 也會接收到 Step4。

實際案例說明

A品牌方的網站,同時擁有10個不同代理商的Pixel。每次使用者在網站瀏覽時,網站都會觸發10條Pixel的初始化碼 + 事件追蹤碼。

假設A代理商想要追蹤自訂事件,也會造成其他9間皆收到一樣的事件,或是Pageview有重複,或是怎麼調就是事件收集不到。因為fbevents.js的觸發邏輯是,init function 會把我們的像素放到JS全域變數。因此後面呼叫的pageview, purchase的事件,全部都會傳送到已經有初始化的Pixel。所以也因此容易看到有PageView重複發送,或是事件有狀況的問題。

假設對發init的代碼是設定在pageview,那他們則可以到window loaded再啟動。基本上他們的代碼還是一樣可以正常生效,而其他間的反而會從原本的有誤,變成正常接收pixel事件。

解法1 – TrackSingle

透過使用trackSingle 和 trackSingleCustom 透過這兩個方式,可以將帶碼只限定要觸發在哪一個Pixel裡面。例如

這樣就能確保持有pixleA 的代理商,能觸發正確的Purchase事件,並且正確追蹤,不會影響其他pixel。

這個解法也適用在,如果你看到有一個事件重複觸發,可能是別家的像素正在影響你收集事件,因此使用這個寫法就有用。把他的追蹤事件,指定到他們家的pixel,而不是全部已init的pixel,就能做好區域與全域的區隔。

解法2 – 更改觸發順序

發現1個以上的Facebook Pixel該怎麼埋? 臉書廣告Pixel 接收錯誤必看

把你的init那個自訂HTML提早觸發。通常網站的JS情況有無限多種,而且不是每一間公司都願意讓我們調整js。因此只能確保初始化在最前面優先執行,後續推送我們要發送的FB PIXEL事件。

更改觸發條件

這個特別適合用在能,其他行銷公司寫的js是使用外連的方式,所以你也看不到對方怎麼觸發的。但他們的代碼都是有接收成功,而你的pixel跟其他間pixel都是失敗。這時候你可以詢問對方公司要不要改一下觸發順序。

通常你會看到的代碼都是如下:

如果你有在網站中的GTM找到以上自訂HTML,而且在前台有看到pixel像素。那就表示他們像素不是寫在該GTM裡面。因此大多狀況都是這樣導致其他公司pixel追蹤失利,所以可以這個的觸發條件,把他往後延到window loaded。

目前台灣現況

由於多數廣告代理商人員,並沒有程式碼的概念,所以這個方式只能確保自己的像素不要影響他人,甚至追蹤到自己公司需要的事件,但不能保證其他公司也照這個規矩來埋設,因此別人家的事件或多或少還是會影響到自身。

解決的方法,要不就品牌方不要一次包這個多間公司,或是你有本事把它全部品項拿下來做,或是直接撰寫js到他們網站的原始碼 (特別是舊型的網站)。

error: