從工程師的角度看待廣告 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%'}); |
之後,也會有商品目錄相關的 文章,可以一起參考。






