從工程師的角度看待廣告 Part1 - 事件篇
前言
菜鳥工程師剛進入廣告投放業,對於廣告投放在做甚麼,可說是一點都不了解。光是搞懂廣告的 domain knowledge 可能就要花一段時間。本篇文章將分享透過工程師的角度看待廣告投放工程,以及介紹日常廣告後台相關的疑難雜症,但不會琢磨於更深層的廣告知識及策略,比較著重技術上的實作觀念。。
廣告工程概念介紹
了解廣告前,可能要先了解廣告中的一些重要的角色,如
- 廣告代理商
- 廣告商 ( 如: Google, Meta )
以電商來說,在投廣告的過程中,可能會發現自己投的成效不是那麼好,所以會找廣告代理商的協助。廣告代理商通常會蒐集、並分析使用者的行為等數據,以製定投遞廣告的策略,來提升廣告投放的成效。
關於廣告的成效,個人認為比較黑盒子一點,因為我們不知道廣告商內部競價的演算法,所以只能靠廣告商提供的成效數字,如轉換率、轉換次數等,來判定廣告的成效。
也就是說,透過這些廣告成效的數字,不斷修正廣告投遞的模式,最後形成一套所謂的「廣告投遞策略」,之後在投廣告時,可以依循這樣的策略及經驗,保持一致的廣告成效。
網站發送事件
在廣告投遞的過程,透過事件的發送可以更了解使用者的行為。但是發送事件並不是必須,只是有做網頁事件可以提升廣告成效。
舉例來說,廣告代理商會埋程式碼在要追蹤的網站中,如果消費者有瀏覽某個商品頁面,就會觸發「瀏覽商品」的事件。事件會送到廣告商的伺服器,因此,我們可以在廣告後台看到事件發送的情況。
例如,某商品的瀏覽量較多,就代表廣告後台收到「瀏覽商品」的事件數量較多。根據這樣的數據,可以推測這個商品比較熱門,因此,投廣告的策略,就可以針對這個商品多下一些廣告。
以下圖片是 Google 廣告商的後台 Google Analytics 4 ( 以下簡稱 GA4 ) 所蒐集到的「瀏覽商品」的事件 ( view_item ),我們可以觀察每個商品,在一個期間內收到的 view_item 事件數量,以及瀏覽的人數。
GA4 中,我們也可以自己拉報表 ( 探索報表 ),觀察更詳細的狀況。下圖是某產品,在 8/3 ~ 8/7 內的各個事件的活躍使用者、工作階段等。
Base code 和 PageView 事件
要怎麼把事件的發送到廣告商的 server,其實廣告商都幫你準備好了。以 Meta 為例,只要把它提供的 基底碼 ( base code ),埋進網站,就完成初始化設定了。大部分的廣告商都是依循著這樣的邏輯發送事件,Meta 基底碼如下:
1 | <!-- Facebook Pixel Code --> |
注意,在 base code 中,這一行 fbq('init', '{your-pixel-id-goes-here}');
要改成自己的 meta pixel,基本上就完成了。
另外,值得觀察的是 fbq('track', 'PageView');
,除了 init 初始化,PageView 是在初始化都會觸發的事件。也就是說,如果一個網站,都有確實埋入 base code,每個頁面都會觸發 PageView 事件。
PageView 事件不但可以當作觀察使用者的瀏覽量,也可以當作 base code 是否有正確埋設的檢查。檢查方式可以透過 Meta pixel helper,它是 chrome 的一個插件,如果正確埋設,載入網頁後點擊 Meta pixel helper,可以看到你的像素是否觸發 PageView 事件。
以下圖為例,如果對應的像素有觸發 PageView 事件,代表有埋設成功,而且一個網站可以埋設多個 pixel,不限一個。詳細流程可以參考 官方文件 說明。
標準事件
根據不同的廣告商,可能會有不同的事件命名,但基本上是大同小異。以 Meta 為例,常見的標準事件,可以從消費者的購物流程來理解。
消費者購物時,通常會先「瀏覽商品 ( ViewContent )」。接著點擊「加入購物車 ( AddToCart )」按鈕。到了結帳頁,就會觸發「開始結帳 ( InitiateCheckout )」事件。最後,購買商品,會有「購買 ( Purchase )」事件。以上是最常見的標準事件,基本上各個廣告渠道都會有。
當然,還有其他的標準事件,詳細可參考 Meta 官方文件,其他常見的標準事件,包含:
- AddToWishlist
- CompleteRegistration
- Contact
- Lead
- Search
- AddPaymentInfo
- …
比較要注意的是,有些標準事件 Meta 沒有,但是 Google 卻是有的,例如: Google 標準事件有 add_shipping_info,用來追蹤消費者的運送資訊,但是 Meta 是沒有的。所以在設定事件上要特別注意,這裡也附上 Google 官方文件。
自訂事件
除了標準事件,也可以透過「自訂事件」來追蹤使用者的行為。例如,如果想要追蹤網頁上一個報名的按鈕,但他不是標準事件,此時就可以發送自訂事件,事件名稱需要自訂,比如說「按下報名按鈕」。自訂事件在大部分的廣告渠道也都是有的。
需要注意的是,有些廣告渠道是不允許中文的事件名稱,像是 line 渠道,它對自訂事件的限制較嚴格,只能 20 字內的英文或數字,以下是 line 官方 對於自訂事件的限制:
活動名稱「CustomEvent」
自訂事件代碼內「CustomEvent」的部分將顯示管理畫面的活動名稱,可自由設定20字以內的英數字
事件發送 - 程式碼範例
因為已經埋過 base code 了,之後標準事件與自訂事件的發送都可以用 fbq('track')
這個函式來發送。每個事件可以帶的參數不同。
以「購買」事件來說,在 官方文件 有列出可以帶的參數,如下列表。
事件 | 事件說明 | 物件屬性 |
---|---|---|
Purchase | 進行購買或完成結帳流程時。 有人完成購買或結帳流程,並進入感謝或確認頁面。 |
content_ids、content_type、contents、 currency、num_items、value 必要項目:currency 和 value 高效速成 + 目錄廣告的必要項目:contents 或 content_ids |
發送事件的方式,官方文件 說明的很清楚,基本上就是像下面的方式發送,帶入必要的「幣值」跟「價值」即可。
1 | fbq('track', 'Purchase', {currency: "USD", value: 30.00}); |
如果是「自訂事件」的話,可以透過 fbq('trackCustom')
函式來追蹤,事件名稱可以隨意取,如 ShareDiscount,帶入的參數需用 json 物件包裝。注意, meta 自訂事件的限制是,50 字元內,中英皆可。
1 | fbq('trackCustom', 'ShareDiscount', {promotion: 'share_discount_10%'}); |
之後,也會有商品目錄相關的 文章,可以一起參考。