將 Facebook 廣告資料載入 BigQuery

您可以使用 Facebook 廣告適用的 BigQuery 資料移轉服務連接器,將 Facebook 廣告資料載入 BigQuery。您可以使用 BigQuery 資料移轉服務,安排週期性移轉工作,將 Facebook 廣告的最新資料新增至 BigQuery。

受支援的報表

Facebook 廣告適用的 BigQuery 資料移轉服務支援移轉下列 Facebook 廣告報表:

  • Ads
  • AdInsights
  • AdInsightsActions

如要瞭解 Facebook 廣告報表如何轉換成 BigQuery 資料表和檢視表,請參閱「Facebook 廣告資料轉換」一文。

報表選項 支援
重複頻率

每天,時間是資料移轉作業最初的建立時間 (預設)

您可以設定時間。

重新整理時間範圍

過去 30 天

最多可設定 30 天。

限制

Facebook 廣告資料移轉作業會受到下列限制:

  • Facebook 廣告資料轉移作業的間隔時間至少須為 24 小時。週期性資料移轉的預設間隔為 24 小時。
  • Facebook 廣告專用的 BigQuery 資料移轉服務僅支援一組固定的資料表。不支援自訂報表。
  • Facebook 廣告資料轉移作業最多需要六小時。如果轉移時間超過這個上限,就會失敗。
  • AdInsightsAdInsightsActions 資料表不支援增量轉移。建立資料轉移作業時,如果包含 AdInsightsAdInsightsActions 資料表,且您在「排程選項」中指定日期,系統會轉移該日期可用的所有資料。
  • BigQuery 資料移轉服務支援 AdInsightsAdInsightsActions 資料表的每日重新整理時間範圍。更新期是指資料移轉作業從來源資料擷取資料的天數。首次執行資料移轉作業時,資料移轉作業會擷取重新整理視窗內的所有可用來源資料。
  • Facebook 廣告轉移作業需要長期有效的使用者存取權杖,但這類權杖會在 60 天後失效。

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

  • 如果設定的網路附件和虛擬機器 (VM) 執行個體位於不同區域,從 Facebook Ads 轉移資料時,可能會發生跨區域資料移動。

從 Facebook 廣告轉移作業擷取資料

從 Facebook 廣告將資料移轉至 BigQuery 時,系統會將資料載入依日期分區的 BigQuery 資料表。資料載入的資料表分區會對應至資料來源的日期。如果為同一天排定多項移轉作業,BigQuery 資料移轉服務會以最新資料覆寫該特定日期的資料分割。同一天內多次轉移資料或執行回填作業,不會導致資料重複,其他日期的分區也不會受到影響。

如果是 AdInsightsAdInsightsAction 資料表,資料載入的資料表分區會對應至資料來源中的日期。

如果是 AdAccounts 表格,系統每天會擷取一次快照,並儲存在上次移轉執行日期的分區中。重新整理視窗不適用於 AdAccounts 資料表。

事前準備

下列各節將說明建立 Facebook 廣告資料轉移作業前,您需要採取的步驟。

Facebook 廣告先決條件

建立 Facebook 廣告資料轉移作業時,請確認您擁有下列 Facebook 廣告資訊。

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

如要取得 clientIDclientSecret,請執行下列步驟:

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

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

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

  2. 在「資料來源詳細資料」部分,複製「重新整理權杖」欄位後列出的重新導向 URI。

    複製重新導向 URI

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

    設定 Facebook 企業登入

  4. 在「設定」頁面中,於「有效的 OAuth 重新導向 URI」欄位輸入重新導向網址,然後按一下「儲存」

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

    產生長期有效的使用者存取權杖

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

  7. 完成後,按一下「我知道了」返回 Google Cloud 控制台。現在,移轉設定中會填入長期有效的使用者存取權權杖。

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

更新權杖替代方案

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

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

BigQuery 必要條件

須具備的 BigQuery 角色

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

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

所需權限

如要建立移轉作業,必須具備下列權限:

  • bigquery.transfers.update 使用者
  • bigquery.datasets.get 目標資料集
  • bigquery.datasets.update 目標資料集

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

建立 Facebook 廣告資料移轉作業

選取下列選項之一:

主控台

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

    前往「資料移轉」

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

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

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

    • 在「Client ID」(用戶端 ID) 中輸入應用程式 ID。
    • 在「Client secret」(用戶端密鑰) 部分,輸入應用程式密鑰。
    • 在「Refresh token」(更新權杖) 部分,按一下「Authorize」(授權),然後輸入長期有效的使用者存取權杖 ID。如果您已經有更新權杖或系統使用者權杖,也可以直接在這個欄位中輸入更新權杖。如要瞭解如何擷取長期有效的使用者存取權杖,請參閱 Facebook 廣告先備知識
  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 所有廣告帳戶的廣告洞察動作報表。

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。

舉例來說,下列指令會在預設專案中建立 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"}'

API

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

排解轉移設定問題

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

  • 使用 Facebook 存取權杖偵錯工具,檢查使用者存取權杖是否已過期。長期使用者存取權杖會在 60 天後失效。如果長期有效的使用者存取權杖已過期,請前往轉移詳細資料,然後按一下「編輯」修改轉移設定。在編輯轉移頁面中,按照「Facebook 廣告先決條件」中的步驟產生新的代碼。
  • 確認長期有效的使用者存取權杖是使用必要權限 (ads_managementads_readbusiness_management) 產生。如果沒有,請按照「Facebook 廣告事前準備」一文中的步驟,產生新的長期有效使用者存取權杖。
  • Facebook 應用程式資訊主頁的「必要動作」分頁中,查看需要處理的項目。

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

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

常見的監控指標訊息

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

錯誤 說明
INVALID_ARGUMENT 提供的設定無效
PERMISSION_DENIED 憑證無效
UNAUTHENTICATED 必須驗證
SERVICE_UNAVAILABLE 這項服務暫時無法處理這項資料轉移作業
DEADLINE_EXCEEDED 資料傳輸未在六小時內完成
NOT_FOUND 找不到要求的資源
INTERNAL 其他原因導致連接器失敗
RESOURCE_EXHAUSTED 資料來源配額或限制已用盡

定價

這項功能處於預覽階段時,將 Facebook 廣告資料移轉至 BigQuery 不會產生費用。

後續步驟