將 Facebook 廣告資料載入 BigQuery

如要安排從 Facebook Ads 到 BigQuery 的週期性資料移轉作業,請建立移轉設定,指定要移轉的資料物件,以及資料移轉作業的排程頻率。您可以使用 Google Cloud 控制台、bq指令列工具或 BigQuery 資料移轉服務 API 建立移轉設定。設定移轉設定後,BigQuery 資料移轉服務會按照指定的時間表,將最新資料移轉至 BigQuery 資料表。

如要瞭解 Facebook 廣告移轉作業的運作方式,請參閱「Facebook 廣告資料移轉簡介」。

限制

Facebook Ads 廣告資料移轉作業有下列限制:

  • 2026 年 7 月 6 日起,系統將暫時停用 AdInsightsMMM 報表支援。詳情請參閱「2026 年 7 月 6 日」。
  • 週期性 Facebook 廣告資料移轉作業之間的最短間隔時間為 24 小時。週期性資料移轉作業的預設間隔時間為 24 小時。
  • Facebook Ads 適用的 BigQuery 資料移轉服務僅支援一組固定的資料表。不支援自訂報表。
  • Facebook Ads 資料移轉作業的時間上限為六小時。如果轉移作業超過這個時間長度上限,就會失敗。
  • AdInsights、AdInsightsActions、Ads、Campaigns 和 AdSets 資料表不支援增量移轉。建立包含 AdInsights、AdInsightsActions、Ads、Campaigns 和 AdSets 資料表的資料移轉作業,並在「Schedule options」(排程選項) 中指定日期後,系統會移轉該日期可用的所有資料。
  • BigQuery 資料移轉服務支援 AdInsights、AdInsightsActions、Ads、Campaigns 和 AdSets 資料表,重新整理時間範圍最長可達 30 天。重新整理時間範圍是指資料移轉作業擷取來源資料的天數。首次執行資料移轉作業時,系統會擷取更新時間範圍內的所有可用來源資料。
  • Facebook 廣告移轉作業所需的長期使用者存取權杖會在 60 天後到期。

    如果長期使用者存取權杖已過期,請前往資料移轉作業詳細資料,然後按一下「Edit」(編輯),即可取得新的權杖。在編輯移轉作業頁面中,按照「Facebook 廣告事前準備」中的相同步驟,產生新的長期有效使用者存取權杖。

  • 如要透過網路連結進行資料移轉,請務必先定義靜態 IP 位址,再建立網路連結。

  • 如果網路連結是在與 Google Cloud 資料移轉專案不同的 Google Cloud 專案中建立,您必須將 compute.networkAttachments.get 和 compute.networkAttachments.update 權限授予 Google Cloud 資料移轉專案的服務代理。
  • 如果設定的網路連結和虛擬機器 (VM) 執行個體位於不同區域,從 Facebook Ads 移轉資料時,可能會發生跨區域資料移動。

事前準備

以下各節說明建立 Facebook 廣告資料移轉作業前,必須採取的步驟。

Facebook 廣告必要條件

建立 Facebook 廣告資料移轉作業時,請務必備妥下列 Facebook 廣告資訊。

Facebook 廣告參數 說明
clientID OAuth 2.0 用戶端的應用程式 ID 名稱。
clientSecret OAuth 2.0 用戶端的應用程式密鑰。
refreshToken 長期有效的使用者存取權杖,也稱為更新權杖。

如要取得 clientID 和 clientSecret,請按照下列步驟操作:

  1. 建立 Facebook 開發人員應用程式,應用程式類型為 Business。
  2. 在 Facebook 應用程式資訊主頁中,依序點選「App Settings」(應用程式設定) >「Basic」(基本),然後找出應用程式對應的應用程式 ID 和應用程式密鑰。

如要取得長期有效的使用者存取權杖 (也稱為「更新」權杖),請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,按照步驟建立 Facebook 廣告移轉作業。

  2. 在「Data Source Details」(資料來源詳細資料) 部分,複製「Refresh Token」(更新權杖) 欄位後方列出的重新導向 URI。

  3. 按一下「Facebook 應用程式資訊主頁」,然後點選「Facebook 企業登入」部分中的「設定」。

    調整 Facebook 登入功能 (商家專用) 的設定

  4. 在「Settings」頁面的「Valid OAuth Redirect URIs」欄位中輸入重新導向網址,然後按一下「Save」。

  5. 返回 Google Cloud 控制台。在「Data Source Details」(資料來源詳細資料) 部分,按一下「Authorize」(授權)。系統會將您重新導向至 Facebook 驗證頁面。

    產生長期使用者存取權杖

  6. 選取 Facebook 開發人員應用程式,授權連結至 BigQuery 資料移轉服務的帳戶。

  7. 完成後,按一下「Got it」(瞭解),返回 Google Cloud 控制台。長期使用者存取權杖現在會填入移轉設定。

長期使用者存取權杖會在 60 天後失效。如要瞭解如何取得新的長期有效使用者存取權杖,請參閱「限制」。

更新權杖替代方案

或者,如果您已透過下列任一方法取得更新權杖,可以在建立資料移轉作業時提供更新權杖:

  • 使用 Graph API 產生長效使用者存取權杖。 必須具備 ads_management、ads_read 和 business_management 權限,才能取得有效的資料移轉權杖。
  • 產生系統使用者權杖。系統使用者權杖可讓您手動新增資產 (例如廣告帳戶),以便納入資料移轉作業。如果系統使用者權杖過期,您必須手動更新移轉設定,並提供新的憑證。建立系統使用者權杖時,您也可以選擇建立不會過期的權杖。詳情請參閱「支援的存取權杖」。

BigQuery 事前準備

必要的 BigQuery 角色

如要取得建立 BigQuery 資料移轉服務資料移轉作業所需的權限,請要求管理員授予您專案的 BigQuery 管理員 (roles/bigquery.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備建立 BigQuery 資料移轉服務資料移轉作業所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

您必須具備下列權限,才能建立 BigQuery 資料移轉服務資料移轉作業:

  • BigQuery 資料移轉服務權限:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • BigQuery 權限:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

詳情請參閱「授予 bigquery.admin 存取權」。

建立 Facebook 廣告資料移轉作業

選取下列選項之一:

控制台

  1. 前往 Google Cloud 控制台的「資料移轉」頁面。

    前往「資料移轉」

  2. 按一下「 建立移轉作業」。

  3. 在「Source type」(來源類型) 專區中,針對「Source」(來源),選取「Facebook Ads」(Facebook 廣告)。

  4. 在「Data source details」(資料來源詳細資料) 部分執行下列操作:

    • 在「Network attachment」(網路連結) 部分,從選單中選取網路連結。如要透過網路連結進行資料移轉,請務必先定義靜態 IP 位址,再建立網路連結。
    • 在「Client ID」(用戶端 ID) 中輸入應用程式 ID。
    • 在「Client secret」(用戶端密鑰) 部分,輸入應用程式密鑰。
    • 在「Refresh token」(更新權杖) 部分,按一下「Authorize」(授權),然後輸入長期有效的使用者存取權杖 ID。如果已有更新權杖或系統使用者權杖,也可以直接在這個欄位輸入更新權杖。如要瞭解如何擷取長期有效的使用者存取權杖,請參閱 Facebook 廣告事前準備的相關說明。
    • 如要移轉 Facebook 廣告物件:請指定要納入這次移轉作業的 Facebook 廣告報表或物件。
    • 選取「Fetch Data for Authorized Ad Accounts Only」(僅擷取授權廣告帳戶的資料),只從授權給您 Facebook 應用程式的廣告帳戶擷取資料。您可以在「App Settings」(應用程式設定) >「Advanced」(進階) 的「Advertising accounts」(廣告帳戶) 部分中,找到授權的廣告帳戶。
    • 如為「ActionsCollections」,請指定一或多個動作集合。
    • 在「Generic Breakdowns」(一般細目) 部分,選取洞察資料的一般細目。這些細目會決定移轉的資料在 AdInsights 和 AdInsightsActions 資料表中的整理方式。Facebook 廣告只允許特定細目組合。如要進一步瞭解允許的細目組合,請參閱「合併細分」
    • 在「Action Breakdowns」(動作細目) 部分,選取洞察資料的動作細目。這些細目決定了移轉的資料在 AdInsightsActions 資料表中的整理方式。如要瞭解如何合併細目,請參閱「合併細目」。
    • 在「Refresh window」(重新整理時間範圍) 部分,指定重新整理時間範圍的持續時間。
  5. 在「Destination settings」(目的地設定) 部分,「Dataset」(資料集) 請選取您為了儲存資料而建立的資料集。

  6. 在「Transfer config name」(轉移設定名稱) 部分,「Display name」(顯示名稱) 請輸入資料移轉作業名稱。

  7. 在「Schedule options」(排程選項) 部分執行下列操作:

    • 在「Repeat frequency」(重複頻率) 清單選取選項,指定這項資料移轉作業的執行頻率。如要指定自訂重複頻率,請選取「Custom」(自訂)。如果選取「On-demand」(隨選),這項移轉作業會在您手動觸發後執行。
    • 視情況選取「Start now」(立即開始) 或「Start at set time」(在所設時間開始執行),並提供開始日期和執行時間。
  8. 選用:在「Notification options」(通知選項) 專區,執行下列操作:

    • 如要啟用電子郵件通知,請點選「Email notification」(電子郵件通知) 切換按鈕。當您啟用此選項時,移轉管理員會在移轉作業失敗時收到電子郵件通知。
    • 如要針對這項資料移轉作業啟用 Pub/Sub 移轉作業執行通知,請點選「Pub/Sub notifications」(Pub/Sub 通知) 切換按鈕。您可以選取主題名稱,或點選「Create a topic」(建立主題) 來建立主題。
  9. 按一下「儲存」。

執行這項資料移轉作業時,BigQuery 資料移轉服務會自動填入下列資料表。

資料表名稱 說明
AdAccounts 使用者可用的廣告帳戶。
AdInsights 所有廣告帳戶的廣告洞察報表。
AdInsightsActions 所有廣告帳戶的廣告洞察動作報表。
AdInsightsMMM
所有廣告帳戶的廣告洞察行銷組合模式分析 (MMM) 報表。
Ads 所有廣告帳戶的廣告報表。
AdCreatives 所有廣告帳戶的廣告素材報表。
AdSets 所有廣告帳戶的廣告組合報表。
Campaigns 所有廣告帳戶的廣告活動報表。
AdImages 所有廣告帳戶的廣告圖片報表。
AdLabels 所有廣告帳戶的廣告標籤報表。
Businesses 與使用者相關聯的 Meta 商家帳戶。
CustomAudiences 所有廣告帳戶的自訂目標對象報表。

bq

輸入 bq mk 指令,並提供移轉作業建立旗標 --transfer_config:

bq mk
    --transfer_config
    --project_id=PROJECT_ID
    --data_source=DATA_SOURCE
    --display_name=DISPLAY_NAME
    --target_dataset=DATASET
    --params='PARAMETERS'

其中:

  • PROJECT_ID (選用):您的 Google Cloud 專案 ID。如未提供 --project_id 來指定特定專案,系統會使用預設專案。
  • DATA_SOURCE:資料來源 (例如 facebook-ads)。
  • DISPLAY_NAME:資料移轉設定的顯示名稱。移轉作業名稱可以是任意值,日後需要修改移轉作業時,能夠據此識別即可。
  • DATASET:資料移轉設定的目標資料集。
  • PARAMETERS:JSON 格式的已建立資料移轉設定參數。例如:--params='{"param":"param_value"}'。以下是 Facebook 廣告移轉作業的參數:
    • connector.authentication.oauth.clientId:OAuth 2.0 用戶端的應用程式 ID 名稱。
    • connector.authentication.oauth.clientSecret:OAuth 2.0 用戶端的應用程式密鑰。
    • connector.authentication.oauth.refreshToken:長期詞元 ID。
    • connector.authorizedAdAccountsOnly:如果設為 true,連接器只會從授權給您 Facebook 應用程式的廣告帳戶擷取資料。您可以在「App Settings」(應用程式設定) >「Advanced」(進階) 的「Advanced accounts」(進階帳戶) 部分中,找到授權的廣告帳戶。
    • connector.actionCollections:動作集合是指定使用者因應廣告而採取的不同動作類型的物件。如需 actionCollections 值的完整清單,請參閱「動作集合」。
    • connector.genericBreakdowns:指定洞察資料的一般細目。這些細目會決定移轉的資料在 AdInsights 和 AdInsightsActions 資料表中的整理方式。Facebook 廣告只允許特定細目組合。如要進一步瞭解允許的細目組合,請參閱「合併細分」。
    • actionBreakdowns:指定洞察資料的動作細目。這些細目會決定移轉的資料在 AdInsights 和 AdInsightsActions 資料表中的整理方式。如要瞭解如何合併細目,請參閱「合併細目」。
    • connector.insightsLevel:擷取洞察資料的匯總層級 (例如廣告、廣告組合、廣告活動、帳戶)。
    • connector.insightsTimeIncrement:匯總洞察資料的分組天數 (介於 1 到 7 之間)。
    • 注意:所選時間範圍不僅適用於洞察資料表 (AdInsights 和 AdInsightsActions),也會使用 Facebook 的 time_range 參數篩選 Ads、Campaigns 和 AdSets 資料表。

舉例來說,下列指令會在預設專案中建立 Facebook Ads 資料移轉作業,並提供所有必要參數:

bq mk
--transfer_config
--target_dataset=mydataset
--data_source=facebook_ads
--display_name='My Transfer'
--params='{"connector.authentication.oauth.clientId": "1650000000",
    "connector.authentication.oauth.clientSecret":"TBA99550",
    "connector.authentication.oauth.refreshToken":"abcdef",
    "connector.authorizedAdAccountsOnly":true,
    "connector.actionCollections":["Actions", "Conversions"],
    "connector.genericBreakdowns":["PublisherPlatform", "PlatformPosition"],
    "connector.actionBreakdowns":["ActionDevice", "ActionType"]}'

API

請使用 projects.locations.transferConfigs.create 方法,並提供 TransferConfig 資源的執行個體。

儲存移轉設定後,Facebook Ads 連接器會根據您的排程選項,自動觸發移轉作業。每次執行移轉作業時,Facebook Ads 連接器都會將 Facebook Ads 的所有可用資料移轉至 BigQuery。

如要在排程時間以外手動執行資料移轉作業,可以啟動補充執行作業。

如要瞭解轉移的資料如何對應至 Meta API 欄位,請參閱「Facebook Ads 報表轉換」。

動作集合

動作集合是指定使用者因應廣告而採取的不同動作類型。您可以在設定移轉設定時指定動作集合。

動作集合代表 Ad Account, Insights 端點回應中 list<AdsActionStats> 類型的欄位。

轉移作業完成後,這些動作集合會填入 AdInsightsActions 資料表。

以下是 Facebook Ads 資料移轉支援的動作集合清單:

  • ActionValues
  • Actions
  • AdClickActions
  • AdImpressionActions
  • CatalogSegmentActions
  • CatalogSegmentValue
  • CatalogSegmentValueMobilePurchaseRoas
  • CatalogSegmentValueOmniPurchaseRoas
  • CatalogSegmentValueWebsitePurchaseRoas
  • ConversionValues
  • Conversions
  • ConvertedProductQuantity
  • ConvertedProductValue
  • CostPer15_secVideoView
  • CostPer2SecContinuousVideoView
  • CostPerActionType
  • CostPerAdClick
  • CostPerConversion
  • CostPerOneThousandAdImpression
  • CostPerOutboundClick
  • CostPerThruplay
  • CostPerUniqueActionType
  • CostPerUniqueConversion
  • CostPerUniqueOutboundClick
  • InteractiveComponentTap
  • MobileAppPurchaseRoas
  • OutboundClicks
  • OutboundClicksCtr
  • PurchaseRoas
  • UniqueActions
  • UniqueConversions
  • UniqueOutboundClicks
  • UniqueOutboundClicksCtr
  • UniqueVideoView15_sec
  • Video15_secWatchedActions
  • Video30_secWatchedActions
  • VideoAvgTimeWatchedActions
  • VideoContinuous2SecWatchedActions
  • VideoP100_watchedActions
  • VideoP25WatchedActions
  • VideoP50WatchedActions
  • VideoP75WatchedActions
  • VideoP95WatchedActions
  • VideoPlayActions
  • VideoPlayCurveActions
  • VideoPlayRetentionGraphActions
  • VideoTimeWatchedActions
  • WebsiteCtr
  • WebsitePurchaseRoas

合併細目

Facebook Ads 對可同時選取的資料欄設有限制。如果使用這些受限組合,資料移轉作業會失敗。

如要進一步瞭解可合併的細目,請參閱「合併細目」。

排解移轉設定問題

如果無法順利設定 Facebook 廣告資料移轉作業,請嘗試下列疑難排解步驟:

  • 使用 Facebook 存取權杖偵錯工具,檢查使用者存取權杖是否已過期。長期使用者存取權杖會在 60 天後失效。如果長期使用者存取權杖已過期,請前往移轉作業詳細資料,然後按一下「Edit」(編輯) 修改移轉設定。在編輯移轉作業頁面中,按照「Facebook Ads 必要條件」中的相同步驟產生新的存取權杖。
  • 確認產生的長期有效使用者存取權杖具備必要權限:ads_management、ads_read 和 business_management。如要查看長期使用者存取權杖的權限,請在瀏覽器中輸入下列連結:

    https://graph.facebook.com/me/permissions?access_token=TOKEN
    

    其中 TOKEN 是長期使用者存取權杖的值。

    如果您沒有必要權限,請按照「Facebook 廣告事前準備」一節的步驟,產生新的長期有效使用者存取權杖。

  • 請查看 Facebook 應用程式資訊主頁上的「Required Actions」(必要動作) 分頁,瞭解是否有任何需要處理的事項。

您可能會看到下列與 Meta API 頻率限制錯誤相關的錯誤訊息:

錯誤:There have been too many calls from this ad-account. Wait a bit and try again.
解決方法:確認沒有平行工作流程使用相同的應用程式或憑證。如果這些錯誤持續發生,請嘗試將權限升級為進階存取權,以取得更多頻率限制配額。詳情請參閱「Marketing API 頻率限制」。

常見的監控指標訊息

您也可以查看 BigQuery 資料移轉服務監控指標,判斷資料移轉失敗的原因。下表列出 Facebook Ads 廣告資料移轉作業常見的 ERROR_CODE 訊息。

錯誤 說明
INVALID_ARGUMENT 提供的設定無效。您也可能遇到這個錯誤,並看到以下訊息:This combination of action and generic breakdowns is not allowed.。如要瞭解有效的細目組合,請參閱「合併細目」。
PERMISSION_DENIED 憑證無效
UNAUTHENTICATED 必須進行驗證
SERVICE_UNAVAILABLE 服務暫時無法處理這項資料移轉作業
DEADLINE_EXCEEDED 資料移轉作業未在最長期限 (六小時) 內完成
NOT_FOUND 找不到要求的資源
INTERNAL 其他原因導致連接器失敗
FAILED_PRECONDITION 這項錯誤可能會與 There was an issue connecting to Facebook Ads API. 訊息一併顯示。如果轉移作業包含網路連結,但未正確設定公開網路位址轉譯 (NAT),就可能發生這項錯誤。如要解決這項錯誤,請按照步驟定義靜態 IP 位址,建立網路連結。

如果達到頻率限制,也可能出現這項錯誤。這時請採取下列做法:
  • 如果平行工作流程使用相同的 Facebook Ads 使用者或應用程式憑證,可能會更常達到頻率限制。請務必在移轉設定以外使用不同的使用者或應用程式憑證。
  • 拆分資料移轉作業,減少每次移轉的資料量,並獨立執行每項資料移轉作業,在移轉作業之間留出一些時間,讓頻率限制恢復。
  • 確認資料移轉作業不含昂貴的細目運算、過多細目或過多動作集合。
RESOURCE_EXHAUSTED 資料來源配額或限制已用盡

後續步驟