伺服器端 Google 廣告標籤管理工具(GTM)版轉換 API

轉換 API 旨在直接連結您的營銷資料和各個系統。這些系統有助您在各種 Meta 技術上優化廣告目標設定、降低每次動作成本和衡量廣告成效。您可配置在 Google Cloud Platform(GCP)或任何其他雲端服務供應商上設定的伺服器,以透過轉換 API 傳送關鍵網站和離線事件資料。透過此操作,在配置 Google Analytics(分析)4(GA4)網站標籤後,您便可將該資料傳送至透過 Google Cloud Platform(GCP)託管的自家伺服器,並最終透過轉換 API 把資料傳至 Meta。

轉換 API 標籤由 Meta 基於 Google 自訂標籤範本編寫和維護。如果您對設定 Google 產品或 Google 的開發人員文件有任何疑問,請聯絡 Google。

本文件列出以下內容:

  • 必要條件,包括如何建立伺服器容器
  • 如何配置可支援執行 GA4 網站標籤的容器
  • 如何從網站傳送資料到 GCP 伺服器
  • 如何使用轉換 API 與 Meta 分享該資料
  • 常見問題

必要條件

開始這項整合前,建議您做以下事情:

  1. 熟悉轉換 API 整合工具和設定的最佳操作實例
  2. 熟悉伺服器端標註自訂標籤範本

如果您的系統所用版本比 GA4 舊,在開始這項整合前,您需要升級自己現有的代碼管理工具設定,以便使用 GA4。

整合

建立 GTM 伺服器容器

您需要配置伺服器容器及網站容器:

  • 網站容器:如果這是您第一次使用 GTM,首先便要為帳戶安裝網站容器。在此了解詳情。
  • 伺服器容器:您需要在 GTM 入口網站上建立伺服器容器,以便設定標註伺服器網址。了解這個步驟的詳情。

如要設定伺服器容器,需先配置標註伺服器。預設 GCP 部署可在設定伺服器容器時完成,具體請參考以下指引。關於其他雲端服務供應商(例如 AWS 或 Microsoft Azure),請參考伺服器手動設定指南

配置網站容器和伺服器容器

  1. 在您的網站容器中建立以下成品:
    • GA4 配置,用於配置標註伺服器網址。
    • GA4 事件,用於配置要傳送至伺服器的事件結構。
  2. 在您的伺服器容器中建立以下成品:
    • GA4 用戶端,這是一種事件監聽程式,可向 Meta 觸發事件。
    • Meta 轉換 API 標籤,這是一種伺服器端標籤,可將標準事件模型由 GA4 用戶端轉換為轉換 API 事件結構,並將其傳送至 graph.facebook.com

步驟 1:GA4 配置—配置您的標註伺服器網址

配置您的網站容器,從而將您的網站資料傳送至已建立的標註伺服器。進一步了解如何配置 Google Analytics(分析):GA4 配置標籤

  • 若您選擇傳送至伺服器容器,請將您的伺服器容器網址設定為標註伺服器網址。
  • 若您沒有選擇傳送至伺服器容器,請在要設定的欄位下,點擊新增一列並設定:
    • 欄位名稱:transport_url
    • 欄位值:您的標註伺服器網址

您可為要為所有事件傳送的任何其他參數配置其他欄位。

  • 將 first_party_collection 標示設為「true」。您必須執行此操作,才能將 user_data 參數傳遞至伺服器端 GTM。在要設定的欄位下,點擊新增一列並設定:
    • 欄位名稱:first_party_collection
    • 欄位值:true

使用現有 GA4 設定標籤

如您已有設定好的 GA4 配置,您可選擇修改此配置或為伺服器端 GTM 建立其他設定標籤。

如這是您首次設定伺服器端 GTM,新增伺服器容器網址後即會開始向伺服器容器傳送所有流量。如要繼續向 GA4 傳送資料,您需要向伺服器容器新增 GA4 伺服器端標籤,確保它可在所有事件上觸發。您可能需要建立其他 GA4 事件標籤或修改現有的標籤,以確保完整對應到 Meta 像素事件。

傳送 Meta 瀏覽器編號和 Meta 點擊編號

如果您已設定自訂網域,而且您的 GTM 標註伺服器網域是第一方網域,Meta 瀏覽器編號和 Meta 點擊編號會自動傳送。

如果您使用提供的預設網域,或注意到事件管理工具中未傳送「瀏覽器編號」和「點擊編號」欄位,您可按照以下方式作出配置:

  • 前往變數部分,並為 Meta 瀏覽器編號和 Meta 點擊編號建立新的用戶定義變數。使用變數類型「第一方 Cookie」。
    • 如果是 Meta 瀏覽器編號,將「Cookie 名稱」設定為 _fbp
    • 如果是 Meta 點擊編號,將「Cookie 名稱」設定為 _fbc
  • 儲存這些變數。
  • 在您的 GA4 設定標籤中,在要設定的欄位下,點擊新增一列並設定:
    • 欄位名稱:x-fb-ck-fbp
    • 欄位值:您的 Meta 瀏覽器編號變數
  • 為點擊編號另外新增一列:
  • 欄位名稱:x-fb-ck-fbc
  • 欄位值:您的 Meta 點擊編號變數

為每個 GTM 常見事件結構的 user_data 參數建立資料層變數。進一步了解如何設定資料層變數。例如,若要將電郵地址傳送至伺服器端 GTM,您需要建立一個變數(例如 user_data_email_address),此變數應能對應到資料層變數名稱 eventModel.user_data.email_address

若您沒有使用資料層,請按照下方所示的步驟為每個參數配置變數以供使用。以下清單列出 Meta 和 GTM user_data 參數的所有對應關係,並說明了它們在協助提升事件配對品質方面的一般優先順序。為了發揮 Meta 廣告的最大效用,我們建議您在設定整合時,參考轉換 API 最佳操作實例。如果您已經設定轉換 API,我們建議您考慮按照這些最佳操作實例來改善現有設定。轉換 API 最佳操作實例可能有助降低每次動作成本,從而改善廣告成效。

轉換 API Meta 參數GA4 欄位名稱GTM 資料層變數名稱優先次序

電郵

email_addressem

user_data.email_address

eventModel.user_data.email_address

點擊編號

fbc

x-fb-ck-fbc

不適用

Facebook 登入編號 fb_login_id

user_data.fb_login_id

不適用

出生日期

db

x-fb-ud-db

不適用

國家/地區

countrycountry

user_data.address.country

eventModel.user_data.address.country

手機號碼

phone_numberph

user_data.phone_number

eventModel.user_data.phone_number

外部編號

external_id

x-fb-ud-external_id

不適用

瀏覽器編號

fbp

x-fb-ck-fbp

不適用

州/省

statest

user_data.address.region

eventModel.user_data.address.region

性別

ge

x-fb-ud-ge

不適用

名字

first_namefn

user_data.address.first_name

eventModel.user_data.address.first_name

姓氏

last_nameln

user_data.address.last_name

eventModel.user_data.address.last_name

城市

cityct

user_data.address.city

eventModel.user_data.address.city

郵遞區號 postal_codezip

user_data.address.postal_code

eventModel.user_data.address.postal_code


步驟 2:GA4 事件—配置要傳送至伺服器的事件結構

  • 配置您的網站容器,從而將您的網站資料傳送至已建立的標註伺服器,以新增 Google Analytics(分析)。進一步了解如何配置 Google Analytics(分析):GA4 配置標籤

  • 從範本庫新增 Google Analytics(分析):GA4 事件標籤至工作空間:

    • 為代碼設定事件名稱。您可以將此設為靜態值,或配置為從變數讀取。如果是某些標準事件,我們會將 Google Analytics(分析)標準事件對應到 Meta 同等事件。如果是這些事件,您可以使用 Google Analytics(分析)事件名稱或 Meta 事件名稱。如果是所有其他標準事件,請使用 Meta 事件名稱。如果是自訂事件,請使用自訂事件的名稱。了解詳情
Meta 標準事件名稱Google Analytics(分析)事件名稱

AddPaymentInfo

add_payment_info

AddToCart

add_to_cart

AddToWishlist

add_to_wishlist

PageView

gtm.dom

PageView

page_view

Purchase

purchase

Search

search

InitiateCheckout

begin_checkout

Lead

generate_lead

ViewContent

view_item

CompleteRegistration

sign_up


  • 在「事件參數」部分執行下列操作:

    • 如您使用 Meta 像素,請新增「事件編號」參數。使用 event_id 作為參數名稱,以及使用為事件編號建立的變數作為參數值。關於建立「事件編號」變數和修改 Meta 像素的指引,請參閱刪除重複項目部分。
    • 對應您要配置的每個參數。系統會使用常見事件結構,從事件讀取變數名稱。例如,若要將電郵設為事件參數,您需要將其定義為參數名稱:user_data.email_address,並將值設為名為 email_address 的變數名稱(定義請見前文第一部分)。
    • 如需完整清單,請參閱下方的自訂資料參數部分

步驟 3:建立可向 Meta 觸發事件的事件監聽程式

所有 GTM 伺服器端容器都預設包含 GA4 用戶端,用於監聽從 GA4 網站代碼配置的事件。GA4 用戶端會監聽您標註伺服器網址上的 /g/collect 路徑,並將 eventModel 傳送至下游標籤。如果預設的 GA4 用戶端已安裝在您伺服器容器中的「用戶端」部分下,您可前往步驟 4。

步驟 4:建立 Meta 轉換 API 標籤(一種可將標準事件模型由 GA4 用戶端轉換為轉換 API 事件結構,並將其傳送至 graph.facebook.com 的伺服器端標籤)

如要將事件傳送到轉換 API,您需要從範本庫安裝 Meta 轉換 API 標籤。標籤範本在 facebookincubator 中稱為轉換 API 標籤。您可以將這個標籤設為在發生 GA4 用戶端在上一個步驟收到的事件時觸發,並傳送到轉換 API。如要安裝 Meta 轉換 API 標籤,您需要擁有像素編號和存取憑證,並將用戶操作來源指定為「網站」。使用轉換 API,即表示您同意 action_source 參數據您所知正確無誤。

測試整合

發佈變更前,建議使用 Google 廣告標籤管理工具的預覽模式來測試整合。網站容器和伺服器容器均設預覽模式,而且兩者可以同時運行。

如果您在運行預覽模式時變更設定,請務必重新開啟預覽模式以確保這些變更可在測試中呈現。

您可以使用事件管理工具中的「測試事件」功能來驗證是否按預期收到您的伺服器事件。如要找出此工具,請前往事件管理工具 > 資料來源 > 您的像素 > 測試事件

測試事件工具會產生一個測試編號。以轉換 API 標籤中的 test_event_code 參數形式傳送測試編號,隨後您就會開始在「測試事件」視窗中看到事件活動。發佈變更前,請務必移除此編號。

測試事件工具可讓您了解是否已正確接收事件及刪除重複事件。如果在一兩分鐘後沒有事件顯示,請檢查 GTM 伺服器端除錯工具,以確保要求已成功:

  1. 在伺服器端除錯工具的左側選單中,選擇要檢查的相關事件。
  2. 確認標籤顯示在「已觸發標籤」部分下。如果是這樣,您會看到「轉換 API 標籤 - 成功」或「轉換 API 標籤 - 失敗」。
    • 標籤未觸發:檢查網站容器上的轉換 API 標籤觸發條件和相關的 GA4 事件觸發條件。確認該 GA4 事件已在網站除錯工具中觸發。
    • 標籤已觸發:成功:點擊該標籤並檢查「測試事件代碼」是否正確。如有需要,更新測試事件代碼並重新開啟預覽模式。
    • 標籤已觸發:失敗:開啟「要求」分頁,然後點擊已傳送至 https://graph.facebook.com 的送出要求。查看要求詳情底部的「回覆正文」以了解具體錯誤,並根據需要更新整合。請記得在作出變更後重新開啟預覽模式。

顯示事件後,請驗證是否正確傳送每個事件的「事件編號」,以及是否正確顯示所有預期的配對密鑰和自訂資料參數。測試事件工具會顯示是否已正確刪除重複事件。如果「事件編號」不同,請確保 GA4 和 Meta 像素標籤在同一個觸發程式上觸發,並檢查您「事件編號」變數的執行情況。

刪除重複事件

我們建議您使用冗餘事件設定,並分享轉換 API 和 Meta 像素的相同事件。請確保兩項事件都使用相同的 event_name,並且包括 event_id,或者 external_idfbp 的組合,

讓 Meta 能夠刪除重複事件和減少相同事件的重複報告。進一步了解有關刪除重複事件的資訊、何時需要刪除以及如何設定external_id 和 fbp 是刪除重複事件的替代解決方案,也有助改善設定品質。我們建議儘量包括這 3 個參數。

GTM 提供了多種方式,以便您為瀏覽器代碼和伺服器代碼使用同一個值設定參數。其中一種方法就是使用相同的 GA4 事件作為觸發點,來觸發 Meta 像素代碼和伺服器事件。操作方式:

  • 為 Meta 像素自訂 HTML 標籤和 GA4 事件標籤使用同一個觸發程式。舉例來說,您可以根據訂單確認頁面網址定義觸發條件。
  • 在這兩個標籤中使用同一個 event_id
    1. 從用戶端設定不重複編號:從 gtag 事件設定自訂參數(x-fb-event_id)。使用 Javascript 方法(或使用 Google 代碼管理工具自訂 Javascript 變數),在網站上為每個事件產生不重複編號,並將事件中的值設為:
    2. gtag('event', 'purchase', {
       'x-fb-event_id': generateEventId(),
      ...:...
      
       });
      您可以建立指向上述自訂 Javascript 的變數。系統轉介該變數時,就會順序載入下方的 Javascript:
      function() {
      var gtmData = window.google_tag_manager[{{Container ID}}].dataLayer.get('gtm');
      return gtmData.start + '.' + gtmData.uniqueEventId;
      }
    3. 建立並填入資料層變數:您可以在網站容器中建立自己的變數,以從 event_id 讀取值。您可以建立新的資料層變數(例如 FBEventIdVar)來執行此操作,並將資料層變數名稱設為 eventModel.event_id
    4. 變數設定完成後,您便可將其插入自訂 HTML 標籤中的網站事件及伺服器事件,以作為額外的 GA4 事件參數。
    5. 在網站上,您可在 Google 廣告標籤管理工具的網站容器中設定 Meta 標籤,以從變數讀取 event_id
    6. fbq('track', Purchase, {..}, {eventID: FBEventIDVar });
      配置 GA4 事件,以傳送名為 event_id 且設定至 FBEventIdVar 變數的額外參數。

自訂資料參數

如要傳送自訂資料,請在您的 GA4 事件標籤中使用以下對應關係:

Meta 參數名稱GA4 參數名稱

value

value

currency

currency

search_string

search_term

order_id

transaction_id

content_ids

x-fb-cd-content_ids

content_type

x-fb-cd-content_type

content_name

x-fb-cd-content_name

content_category

x-fb-cd-content_category

contents*

items OR x-fb-cd-contents

num_items

x-fb-cd-num_items

predicted_ltv

x-fb-cd-predicted_ltv

status

x-fb-cd-status

delivery_category

x-fb-cd-delivery_category

custom_properties*

custom_properties

請在傳送前對 x-fb-cd-contentscustom_properties 作 JSON.stringify 處理,因為這些是 Meta 定義的 JSON 參數。

從網站傳送資料到 GCP 伺服器

完成網站容器和伺服器容器配置後,您可以從網站傳送事件範例,以驗證伺服器事件。已配置參數的事件範例可能如下所示

 gtag('event', 'purchase', 
  {
    'event_id': generateEventId(),
    'transaction_id': 't_12345',
    'currency': 'USD',
    'value': 1.23,
    user_data: {
      email_address: '<HASHED_DATA>',
      phone_number: '<HASHED_DATA>',
      address: {
        first_name: '<HASHED_DATA>',
        last_name: '<HASHED_DATA>',
        city: '<HASHED DATA>',
        region: '<HASHED_DATA>',
        postal_code: '<HASHED_DATA>',
        country: '<HASHED_DATA>'     
      },    
    },
    items: [
      {
        item_id: '1',
        item_name: 'foo',
        quantity: 5,
        price: 123.45,
        item_category: 'bar',
        item_brand: 'baz'     
      }
    ], 
  });      
     

觸發事件後,您應該會看到系統把要求傳送到已配置參數的連結,例如:www.analytics.example.com/g/collect。您可以把測試事件程式碼加入 Meta 轉換 API 標籤,來驗證已傳送到轉換 API 的事件。測試事件代碼僅應用作測試用途。傳送正式版裝載時,您需要移除此欄位。

發佈變更後,請使用此處的驗證設定頁面檢查以下「驗證設定 - 轉換 API」以確保事件已正確傳送,並查看品質整合是否符合我們的最佳操作實例

常見問題

Meta 是否有計劃加入傳送自訂參數的功能?如有,此功能何時會推出?
:我們已加入對應功能,該功能適用於 GTM 結構支援的大部分轉換 API 標準自訂參數。我們還提供自訂對應功能。按此了解詳情。

單一伺服器或叢集能否運行多個容器?
:GTM 目前僅支援 1:1 對應。請參閱整理容器的建議做法

伺服器端 GTM 是否需要安裝在瀏覽器上的標籤才能傳輸事件?
:是

是否可以將 GA4 與伺服器端整合分開保留?
:如要分開保留 GA4 與伺服器端 GTM 整合,您可以在 Google Analytics(分析)中建立另一個「成效衡量編號」。按照上文的步驟,使用此成效衡量編號為伺服器端 GTM 建立一個獨立的 GA4 設定標籤。在此情況下,您現有的 GA4 設定標籤會繼續透過網站容器傳送 GA 流量,而新的設定標籤會將資料傳送至伺服器容器。根據步驟 2 建立另一個 GA4 事件標籤,以使用新的設定標籤將事件傳送到伺服器端

GTM 轉換 API 整合工具是否與雲端託管的解決方案相容,而非 GCP?
:GTM 轉換 API 整合工具應與 GCP 或您所選擇的任何其他平台相容。按此進一步了解手動佈建