將 Google Ad Manager 資料載入 BigQuery
您可以使用 Google Ad Manager 適用的 BigQuery 資料移轉服務連線器,將資料從 Google Ad Manager 載入 BigQuery。透過 BigQuery 資料移轉服務,您可以排定週期性移轉工作,將 Google Ad Manager 的最新資料新增至 BigQuery。
受支援的報表
Google Ad Manager 專用的 BigQuery 資料移轉服務連接器支援下列報表選項:
- 資料移轉 (Google Ad Manager DT) 檔案
- 資料移轉欄位
- 比對 BigQuery 資料移轉服務提供的資料表。 系統會自動建立及更新這些項目。
- 比對使用 PQL 擷取的資料表
- 來自 CompanyService (v201908) 的對照表
- 來自 OrderService (v201908) 的對照表
- 來自 PlacementService (v201908) 的對照表
如要瞭解 Google Ad Manager 報表如何轉換成 BigQuery 資料表和檢視表,請參閱 Google Ad Manager 報表轉換一文。
報表選項 | 支援 |
---|---|
重複頻率 | 預設為每 8 小時 可設定為每 4 小時更新一次 |
重新整理視窗 | 過去 2 天 無法設定 |
補充作業時間上限 | 過去 60 天 Google Ad Manager 最多會保留資料移轉檔案 60 天。Google Ad Manager 會刪除建立超過 60 天的檔案。 |
從 Google Ad Manager 移轉作業擷取資料
從 Google Ad Manager 將資料移轉至 BigQuery 時,系統會將資料載入以日期為分區的 BigQuery 資料表。資料載入的資料表分區會對應至資料來源的日期。如果為同一天排定多項移轉作業,BigQuery 資料移轉服務會以最新資料覆寫該特定日期的資料分割。同一天內多次轉移資料或執行回填作業,不會導致資料重複,其他日期的分區也不會受到影響。重新整理視窗
更新期是指資料移轉作業在執行時,擷取資料的天數。舉例來說,如果重新整理時間範圍為三天,且每天都會進行移轉,BigQuery 資料移轉服務就會從來源資料表擷取過去三天的所有資料。在這個範例中,每天進行移轉時,BigQuery 資料移轉服務會建立新的 BigQuery 目的地資料表分割區,並複製當天的來源資料表資料,然後自動觸發回填執行作業,以更新過去兩天的來源資料表資料。系統自動觸發的回填作業會覆寫或增量更新 BigQuery 目的地資料表,具體做法取決於 BigQuery 資料移轉服務連接器是否支援增量更新。
首次執行資料移轉時,資料移轉作業會擷取重新整理視窗內的所有可用來源資料。舉例來說,如果重新整理時間範圍為三天,且您是第一次執行資料移轉作業,BigQuery 資料移轉服務會擷取三天內的所有來源資料。
重新整理視窗會對應至 TransferConfig.data_refresh_window_days
API 欄位。
如要擷取重新整理時間範圍外的資料 (例如歷來資料),或從任何轉移中斷或缺漏中復原資料,您可以啟動或排定補充作業。
資料移轉 (DT) 檔案更新
從 Google Ad Manager 資料移轉 (Google Ad Manager DT) 檔案建立的資料表可以遞增更新。Google Ad Manager 會將 Google Ad Manager DT 檔案新增至 Cloud Storage bucket。接著,移轉作業會將 Cloud Storage 儲存空間中的新 Google Ad Manager DT 檔案,以遞增方式載入 BigQuery 資料表,不會重新載入已移轉至 BigQuery 資料表的檔案。
舉例來說,Google Ad Manager 會在凌晨 1 點將 file1
新增至值區,並在凌晨 2 點新增 file2
。移轉作業會在凌晨 3 點 30 分開始,並將 file1
和 file2
載入至 BigQuery。Google Ad Manager 接著會在上午 5 點新增 file3
,並在上午 6 點新增 file4
。第二次移轉作業會在上午 7 點 30 分開始,並將 file3
和 file4
附加到 BigQuery,而不是載入所有四個檔案來覆寫資料表。
更新對照表
對照表可為資料移轉檔案中的原始值提供查詢機制。如需對照表清單,請參閱「Google Ad Manager 報表轉換」。 不同的比對資料表會以不同的擷取方法更新。下表列出比對表和對應的擷取方法:
擷取方法 | 說明 | 對照表 |
---|---|---|
分批更新 | 每次執行都會附加增量更新。舉例來說,當天第一次執行轉移作業時,系統會載入轉移作業前修改的所有資料;當天第二次執行轉移作業時,系統會載入前一次轉移作業後,以及本次轉移作業前修改的資料。 | Company 、Order 、Placement 、LineItem 、AdUnit |
更新整個表格 | 全表更新每天會載入整個表格一次。舉例來說,當天第一次執行轉移作業時,系統會載入資料表的所有可用資料。當天第二次執行轉移作業時,系統會略過載入這些資料表。 | AdCategory 、AudienceSegmentCategory 、BandwidthGroup 、Browser 、BrowserLanguage 、
DeviceCapability 、DeviceCategory 、DeviceManufacturer 、GeoTarget 、MobileCarrier 、
MobileDevice 、MobileDeviceSubmodel 、OperatingSystem 、OperatingSystemVersion 、
ThirdPartyCompany 、TimeZone 、User 、ProgrammaticBuyer
|
覆寫整個表格 | 每次執行移轉作業時,系統都會覆寫整個資料表。 | AudienceSegment |
事前準備
建立 Google Ad Manager 資料移轉作業前的準備事項如下:
- 確認您已完成啟用 BigQuery 資料移轉服務的一切必要動作。
- 建立 BigQuery 資料集以儲存 Google Ad Manager 資料。
-
確認貴機構可存取 Google Ad Manager 資料移轉 (Google Ad Manager DT) 檔案。這些檔案會由 Google Ad Manager 小組傳送至 Cloud Storage 值區。如要取得 Google Ad Manager DT 檔案的存取權,請參閱「Ad Manager 資料移轉報表」。Google Ad Manager 小組可能會向您收取額外費用。
完成上述步驟後,您會獲得類似下列字串的 Cloud Storage 值區:
gdfp-12345678
該 Google Cloud 團隊「無法」代表您產生或授予 Google Ad Manager DT 檔案的存取權。請與 Google Ad Manager 支援小組聯絡,詢問有關 Google Ad Manager DT 檔案存取權的事宜。
- 為 Google Ad Manager 網路啟用 API 存取權。
- 如要設定資料移轉通知,您必須擁有 Pub/Sub 的
pubsub.topics.setIamPolicy
權限。如果您只想設定電子郵件通知,則不需要擁有 Pub/Sub 權限。詳情請參閱 BigQuery 資料移轉服務執行通知。
所需權限
BigQuery:確認建立資料移轉作業的人員在 BigQuery 中具有下列權限:
- 建立資料移轉作業的
bigquery.transfers.update
權限 - 目標資料集的
bigquery.datasets.get
和bigquery.datasets.update
權限
bigquery.admin
這個預先定義的 IAM 角色具備bigquery.transfers.update
、bigquery.datasets.update
和bigquery.datasets.get
權限。如要進一步瞭解 BigQuery 資料移轉服務中的身分與存取權管理角色,請參閱存取權控管。- 建立資料移轉作業的
Google Ad Manager:儲存在 Cloud Storage 中 Google Ad Manager DT 檔案的讀取權限。Google Ad Manager DT 檔案的權限是由 Google Ad Manager 團隊管理。除了 Google Ad Manager DT 檔案,建立資料移轉作業的人員也必須加入 Google Ad Manager 聯播網,並擁有建立各種比對表 (委刊項、訂單、廣告單元等) 所需的所有實體讀取存取權。如要完成這項操作,請將驗證資料移轉的 Ad Manager 使用者新增至 Ad Manager 中的「所有實體」團隊。
設定 Google Ad Manager 移轉作業
針對 Google Ad Manager 設定 BigQuery 資料移轉作業需要下列項目:
Cloud Storage bucket:Google Ad Manager DT 檔案的 Cloud Storage bucket URI,如「事前準備」一節所述。 值區名稱應如下所示:
gdfp-12345678
網路代碼:您可以在登入網路時的網址中找出 Google Ad Manager 網路代碼。舉例來說,在
https://admanager.google.com/2032576#delivery
這個網址中,2032576
是您的聯播網代碼。詳情請參閱「開始使用 Google Ad Manager」一文。
如要為 Google Ad Manager 建立 BigQuery 資料移轉服務資料移轉作業,請進行下列操作:
主控台
前往 Google Cloud 控制台的「資料移轉」頁面。
按一下「建立轉移作業」
。在「Create Transfer」(建立轉移作業) 頁面:
- 在「Source type」(來源類型) 部分,「Source」(來源) 請選取「Google Ad Manager (formerly DFP)」(Google Ad Manager (原名為 DFP))。
- 在「Transfer config name」(轉移設定名稱) 專區,針對「Display name」(顯示名稱) 輸入資料移轉作業的名稱,例如
My Transfer
。移轉作業名稱可以是任何能讓您辨識移轉作業的值,方便您日後在必要時進行修改。
- 在「Destination settings」(目的地設定) 部分,「Dataset」(資料集) 請選取您為了儲存資料而建立的資料集。
- 在「Data source details」(資料來源詳細資料) 專區:
- 在「Cloud Storage bucket」 輸入用來儲存資料移轉檔案的 Cloud Storage bucket 名稱。輸入 bucket 名稱時,請勿加入
gs://
。 - 針對「Network code」(網路代碼),輸入您的網路代碼。
- 在「Cloud Storage bucket」 輸入用來儲存資料移轉檔案的 Cloud Storage bucket 名稱。輸入 bucket 名稱時,請勿加入
在「Service Account」(服務帳戶) 選單,選取與貴組織 Google Cloud 專案相關聯的服務帳戶。您可以將服務帳戶與移轉作業建立關聯,而非使用使用者憑證。如要進一步瞭解如何搭配使用服務帳戶與資料移轉作業,請參閱使用服務帳戶的相關說明。
如果使用聯合身分登入,您必須擁有服務帳戶才能建立移轉作業。如果是以 Google 帳戶登入,則不一定要透過服務帳戶建立移轉作業。服務帳戶必須具備必要權限。(選用步驟) 在「Notification options」(通知選項) 部分執行下列操作:
- 按一下啟用電子郵件通知的切換開關。當您啟用此選項時,移轉管理員會在移轉作業失敗時收到電子郵件通知。
- 點選切換按鈕,啟用 Pub/Sub 執行通知。在「Select a Cloud Pub/Sub topic」(選取 Cloud Pub/Sub 主題) 選取主題名稱,或是點選「Create a topic」(建立主題)。這個選項會針對移轉作業設定 Pub/Sub 執行通知。
按一下 [儲存]。
bq
輸入 bq mk
指令並提供移轉建立標記 - --transfer_config
。還需加上以下旗標:
--data_source
--target_dataset
--display_name
--params
選用標記:
--service_account_name
:指定用於 Google Ad Manager 轉移驗證的服務帳戶,而非使用者帳戶。
bq mk --transfer_config \ --project_id=project_id \ --target_dataset=dataset \ --display_name=name \ --params='parameters' \ --data_source=data_source \ --service_account_name=service_account_name
其中:
- project_id 是您的專案 ID。
- dataset 是移轉設定的目標資料集。
- name 是資料移轉設定的顯示名稱。移轉作業名稱可以是任意值,日後需要修改資料移轉作業時,能夠據此識別即可。
- parameters 含有已建立移轉設定的 JSON 格式參數,例如:
--params='{"param":"param_value"}'
。針對 Google Ad Manager,您必須提供bucket
和network_code
參數。bucket
:包含 Google Ad Manager DT 檔案的 Cloud Storage 值區。network_code
:聯播網代碼load_match_tables
:是否要載入比對資料表。預設為True
- data_source 是資料來源:
dfp_dt
(Google Ad Manager)。 - service_account_name 是用於驗證資料移轉作業的服務帳戶名稱。服務帳戶應由用於建立轉移作業的
project_id
擁有,且應具備所有必要權限。
您還可以提供 --project_id
標記來指定特定專案。如果未指定 --project_id
,系統會採用預設專案。
舉例來說,下列指令會使用聯播網代碼 12345678
、Cloud Storage 值區 gdfp-12345678
和目標資料集 mydataset
,建立名為 My Transfer
的 Google Ad Manager 資料移轉作業。資料移轉作業會在預設專案中建立:
bq mk --transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"bucket": "gdfp-12345678","network_code": "12345678"}' \
--data_source=dfp_dt
執行指令後,您會收到如下的訊息:
[URL omitted] Please copy and paste the above URL into your web browser and
follow the instructions to retrieve an authentication code.
請按照指示進行操作,並在指令列中貼上驗證碼。
API
請使用 projects.locations.transferConfigs.create
方法,並提供 TransferConfig
資源的執行個體。
Java
在試行這個範例之前,請先按照 BigQuery 快速入門導覽課程:使用用戶端程式庫中的 Java 設定說明進行操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
排解 Google Ad Manager 移轉設定問題
如果無法順利設定資料移轉作業,請參閱排解移轉設定問題中的「Google Ad Manager 移轉問題」一節。
查詢資料
資料移轉至 BigQuery 時,系統會將資料寫入擷取時間分區資料表。詳情請參閱分區資料表簡介一文。
如果您要直接查詢資料表,而不要使用自動產生的檢視表,您必須在查詢中使用 _PARTITIONTIME
虛擬資料欄。詳情請參閱查詢分區資料表一文。
查詢範例
您可以使用下列 Google Ad Manager 查詢範例來分析已移轉的資料。此外,您還可以在 Looker Studio 這類視覺化工具中使用查詢。這些查詢可協助您開始透過 BigQuery 查詢 Google Ad Manager 資料。如果您對於這些報表的功能有其他問題,請洽詢您的 Google Ad Manager 技術代表。
在下列各項查詢中,請將「dataset」等變數dataset替換為您的值,例如,將「network_code」network_code替換為您的 Google Ad Manager 網路代碼。
各個城市的曝光次數和不重複使用者人數
下列 SQL 查詢範例會分析過去 30 天內各個城市的曝光次數和不重複使用者人數。
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) SELECT City, _DATA_DATE AS Date, count(*) AS imps, count(distinct UserId) AS uniq_users FROM `dataset.NetworkImpressions_network_code` WHERE _DATA_DATE BETWEEN start_date AND end_date GROUP BY City, Date
各個委刊項類型的曝光次數和不重複使用者人數
以下 SQL 查詢範例會分析過去 30 天內各個委刊項類型的曝光次數和不重複使用者人數。
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) SELECT MT.LineItemType AS LineItemType, DT._DATA_DATE AS Date, count(*) AS imps, count(distinct UserId) AS uniq_users FROM `dataset.NetworkImpressions_network_code` AS DT LEFT JOIN `dataset.MatchTableLineItem_network_code` AS MT ON DT.LineItemId = MT.Id WHERE DT._DATA_DATE BETWEEN start_date AND end_date GROUP BY LineItemType, Date ORDER BY Date desc, imps desc
各個廣告單元的曝光次數
以下 SQL 查詢範例會分析過去 30 天內各個廣告單元的曝光次數。
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) SELECT MT.AdUnitCode AS AdUnitCode, DT.DATA_DATE AS Date, count(*) AS imps FROM `dataset.NetworkImpressions_network_code` AS DT LEFT JOIN `dataset.MatchTableAdUnit_network_code` AS MT ON DT.AdUnitId = MT.Id WHERE DT._DATA_DATE BETWEEN start_date AND end_date GROUP BY AdUnitCode, Date ORDER BY Date desc, imps desc
各個委刊項的曝光次數
以下 SQL 查詢範例會分析過去 30 天內各個委刊項的曝光次數。
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) SELECT MT.Name AS LineItemName, DT._DATA_DATE AS Date, count(*) AS imps FROM `dataset.NetworkImpressions_network_code` AS DT LEFT JOIN `dataset.MatchTableLineItem_network_code` AS MT ON DT.LineItemId = MT.Id WHERE DT._DATA_DATE BETWEEN start_date AND end_date GROUP BY LineItemName, Date ORDER BY Date desc, imps desc