伺服器端 Google 代碼管理工具(GTM)的轉換 API

Meta 技術中有能最佳化廣告目標設定、降低每次行動成本和衡量成果的系統,而轉換 API 的主要功用就是在您的行銷資料與這些系統間,建立直接連結的管道。您可以配置在 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 入口網站中建立伺服器容器,以設定代碼伺服器網址。深入瞭解這個步驟

造訪 Google 代碼管理工具網站,以前往 Google 代碼管理工具。

建立新容器

如果您已經有帳號,請選擇該帳號。否則,請建立新的 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,並根據稍早在第 1 節中的定義,將值設為讀取 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 是另一種刪除重複項目的解決方案,且有助於改善設定品質。建議您盡可能加入上述三項參數。

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 並查看品質整合是否符合我們的最佳作法

常見問題

日後是否會新增傳送自訂參數的功能?如果會的話,這項功能什麼時候會推出?
:我們已為 GTM 結構描述支援的大多數轉換 API 標準自訂參數新增對應項目,也已提供自訂對應項目。前往這裡瞭解詳情。

單一伺服器或叢集是否能執行多個容器?
:GTM 目前僅支援 1 對 1 對應。瞭解整理容器的建議作法

伺服器端 GTM 是否需要瀏覽器代碼才能發出事件?
:是

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

GTM 轉換 API 整合是否能與 GCP 以外的雲端代管解決方案搭配使用?
:GTM 轉換 API 整合應可與 GCP 或任何其他您所選的平台搭配使用。前往這裡深入瞭解手動佈建