將 Google Ads 資料載入 BigQuery

您可以使用 Google Ads 適用的 BigQuery 資料移轉服務連接器,將 Google Ads (舊稱 Google AdWords) 的資料載入至 BigQuery。您可以使用 BigQuery 資料移轉服務,安排週期性移轉工作,將 Google Ads 的最新資料新增至 BigQuery。

如要瞭解最近的資料來源異動,請參閱 BigQuery 資料移轉服務資料來源異動記錄

受支援的報表

Google Ads 適用的 BigQuery 資料移轉服務支援 Google Ads API 第 18 版:

如要瞭解 Google Ads 報表如何轉換成 BigQuery 資料移轉服務表格和檢視表,請參閱「Google Ads 報表轉換」一文。

如要將 Google Ads 報表對應到 Google Ads UI 中顯示的項目,請參閱將報表對應至 Google Ads UI 一文。

報表選項 支援
支援的 API 版本

v18

重複頻率

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

您可以設定時間。

重新整理視窗

最近 7 天 (預設)

最多可設為 30 天

系統每天會為對照表建立快照,並儲存在上次執行日期的分區中。系統不會更新回填或使用重新整理視窗載入天數的對照表快照。

補充作業時間上限

不限

Google Ads 沒有已知的資料保留限制,但點擊成效報表除外。此外,BigQuery 資料移轉服務對於單一補充作業可要求的天數設有限制。如要瞭解如何執行補充作業,請參閱手動觸發轉移作業

每個管理員帳戶的客戶 ID 數

8,000

BigQuery 資料移轉服務對每個 Google Ads 管理員帳戶 (MCC) 最多支援 8000 個客戶 ID

從 Google Ads 轉移作業擷取資料

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

重新整理視窗

更新期是指資料移轉作業在執行時,擷取資料的天數。舉例來說,如果重新整理時間範圍為三天,且每天都會進行移轉,BigQuery 資料移轉服務就會從來源資料表擷取過去三天的所有資料。在這個範例中,每天進行移轉時,BigQuery 資料移轉服務會建立新的 BigQuery 目的地資料表分割區,並複製當天的來源資料表資料,然後自動觸發回填執行作業,以更新過去兩天的來源資料表資料。系統自動觸發的回填作業會覆寫或增量更新 BigQuery 目的地資料表,具體做法取決於 BigQuery 資料移轉服務連接器是否支援增量更新。

首次執行資料移轉時,資料移轉作業會擷取重新整理視窗內的所有可用來源資料。舉例來說,如果重新整理時間範圍為三天,且您是第一次執行資料移轉作業,BigQuery 資料移轉服務會擷取三天內的所有來源資料。

重新整理視窗會對應至 TransferConfig.data_refresh_window_days API 欄位

如要擷取重新整理時間範圍外的資料 (例如歷來資料),或從任何轉移中斷或缺漏中復原資料,您可以啟動或排定補充作業

限制

  • Google Ads 資料轉移的最高設定頻率為每 24 小時一次。根據預設,移轉作業會在您建立移轉作業時啟動。不過,您可以在建立轉移作業時設定轉移開始時間。
  • BigQuery 資料移轉服務在 Google Ads 移轉期間,不支援增量資料移轉。指定資料移轉日期後,系統會移轉該日期可用的所有資料。

事前準備

建立 Google Ads 資料移轉作業前,請先完成下列事項:

所需權限

請確認要建立資料移轉作業的人員具備下列必要權限:

  • BigQuery 資料移轉服務

    • 建立資料移轉作業的 bigquery.transfers.update 權限
    • 目標資料集的 bigquery.datasets.getbigquery.datasets.update 權限

    bigquery.admin 這個預先定義的 IAM 角色具備 bigquery.transfers.updatebigquery.datasets.updatebigquery.datasets.get 權限。如要進一步瞭解 BigQuery 資料移轉服務中的身分與存取權管理角色,請參閱存取權控管參考資料

  • Google Ads:移轉設定所使用的 Google Ads 客戶 ID 或管理員帳戶 (MCC) 的讀取權限。如要為服務帳戶設定讀取權限,請與 Google Ads 支援團隊聯絡以尋求協助。

建立 Google Ads 資料移轉作業

如要為 Google Ads 報表建立資料移轉作業,您需要 Google Ads 客戶 ID 或管理員帳戶 (我的客戶中心)。如要瞭解如何擷取 Google Ads 客戶 ID,請參閱尋找客戶 ID 一文。

如要為 Google Ads 報表建立資料移轉作業,請選取下列其中一個選項:

主控台

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

    前往「資料移轉」

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

  3. 在「Source type」(來源類型) 區段中,針對「Source」(來源),選擇 [Google Ads]

  4. 在「Data source details」(資料來源詳細資料) 區段:

    1. 在「Customer ID」(客戶 ID) 中,輸入您的 Google Ads 客戶 ID。
    2. 在「Report type」(報表類型) 選取「Standard」(標準) 或「Custom」(自訂)
      • 如果選取「Standard」(標準),移轉作業就會涵蓋一組標準報表和欄位,詳情請參閱 Google Ads 報表轉換的相關說明。
        • 選用步驟:選取選項來排除已移除或停用的項目,以及加入 Google Ads 中沒有的資料表。
        • 選用步驟:輸入要加入的資料表清單 (以半形逗號分隔),例如 Campaign, AdGroup。您可以為這份清單加上 - 前置字元來排除特定資料表,例如 -Campaign, AdGroup。預設會加入所有資料表。
        • 選用步驟:選取這個選項,加入最高成效廣告報表專屬的資料表。如要進一步瞭解最高成效廣告的支援情形,請參閱最高成效廣告支援情形的相關說明。
        • 選用:在「Refresh window」(重新整理時間範圍) 中,輸入介於 1 至 30 的值。
      • 如果選取「Custom」(自訂),請針對要納入這項移轉作業的個別自訂報表,提供輸出資料表和 Google Ads 查詢。
        • 選用步驟:點選「Add query」(新增查詢) 來新增自訂報表。
        • 選用:在「Refresh window」(重新整理時間範圍) 中,輸入介於 1 至 30 的值。
  5. 在「Destination settings」(目的地設定) 部分,「Dataset」(資料集) 請選取您為了儲存資料而建立的資料集。

  6. 在「Transfer config name」(轉移設定名稱) 專區,針對「Display name」(顯示名稱) 輸入資料移轉作業的名稱,例如 My Transfer。移轉作業名稱可以是任意值,日後需要修改移轉作業時能夠據此識別。

  7. 在「Schedule options」(排程選項) 專區:

    • 在「Repeat frequency」(重複頻率) 部分選取選項,指定資料移轉作業的執行頻率。如果選取「Days」(天),請按照世界標準時間提供有效的值。
      • 「Hours」(小時)
      • 「Days」(天)
      • 「On-demand」(隨選)
    • 視情況選取「Start now」(立即開始) 或「Start at set time」(在所設時間開始執行),並提供開始日期和執行時間。
  8. 在「Service Account」(服務帳戶) 選單,選取與貴機構 Google Cloud 專案相關聯的服務帳戶。您可以將服務帳戶與資料移轉作業建立關聯,這樣就不需要使用者憑證。如要進一步瞭解如何搭配使用服務帳戶與資料移轉作業,請參閱使用服務帳戶

    • 如果使用聯合身分登入,就必須有服務帳戶才能建立移轉作業。如果是以 Google 帳戶登入,則不一定要透過服務帳戶建立移轉作業。
    • 服務帳戶必須具備必要權限
  9. (選用) 在「Notification options」(通知選項) 區段中:

    • 按一下啟用電子郵件通知的切換開關。啟用這個選項之後,若移轉失敗,移轉作業管理員就會收到電子郵件通知。
    • 點選切換按鈕,啟用 Pub/Sub 通知。在「Select a Cloud Pub/Sub topic」(選取 Cloud Pub/Sub 主題) 選取主題名稱,或是點選「Create a topic」(建立主題)。這個選項會針對移轉作業設定 Pub/Sub 執行通知
  10. 按一下 [儲存]

bq

輸入 bq mk 指令並提供移轉建立標記 - --transfer_config。還需加上以下旗標:

  • --data_source
  • --target_dataset
  • --display_name
  • --params

以下旗標為選用項目:

  • --project_id:指定要使用的專案。如果未指定旗標,系統會使用預設專案。
  • --table_filter:指定要納入資料轉移作業的資料表。如果未指定旗標,系統會納入所有資料表。如要只納入特定資料表,請使用以半形逗號分隔的值清單 (例如 AdCampaignAdGroup)。如要排除特定資料表,請在值前面加上連字號 (-) (例如 -AdCampaignAdGroup)。
  • --schedule:指定查詢的執行頻率。如果未指定 --schedule,預設值會設為 every 24 hours。如要瞭解排程語法,請參閱排程格式
  • --refresh_window_days:指定移轉設定的更新期 (以天為單位)。預設值為 7
  • --service_account_name:指定要用於 Google Ads 轉移驗證的服務帳戶,而非使用者帳戶。
bq mk \
--transfer_config \
--project_id=PROJECT_ID \
--target_dataset=DATASET \
--display_name=NAME \
--params='PARAMETERS' \
--data_source=DATA_SOURCE \
--table_filter=TABLES \
--schedule=SCHEDULE
--refresh_window_days=REFRESH_DAYS
--service_account_name=SERVICE_ACCOUNT_NAME

其中:

  • PROJECT_ID 是您的專案 ID。
  • DATASET 是資料移轉設定的目標資料集。
  • NAME 是資料移轉設定的顯示名稱。移轉作業名稱可以是任意值,日後需要修改移轉作業時,能夠據此識別即可。
  • PARAMETERS 包含移轉設定的下列 JSON 參數:--params='{"param":"param_value"}'
    • customer_id:輸入您的 Google Ads 客戶 ID。這是必填欄位。
    • custom_report_table_names:這項轉移作業中包含的自訂報表資料表名稱清單。這份清單對應至 custom_report_queries 中的查詢。這個清單的長度必須與 custom_report_queries 中的清單長度相符。
    • custom_report_queries:自訂報表的 Google Ads 查詢語言 (GAQL) 查詢清單,包含在此轉移作業中。這份清單對應於 custom_report_table_names 中的名稱。這個清單的長度必須與 custom_report_table_names 中的清單長度相符。
    • 選用:將 exclude_removed_items 參數設為 true,以免移轉遭到移除或停用的實體和指標。
  • DATA_SOURCE 是資料來源:google_ads
  • TABLES 是以半形逗號分隔的資料表清單,可指定要納入或排除在資料移轉作業之外的資料表。
  • SCHEDULE 是您希望查詢執行的頻率。如未指定 --schedule,預設為每 24 小時執行一次,時間從建立移轉作業時開始計算。
  • REFRESH_DAYS 是一個整數,用來指定移轉設定的更新期 (以天為單位)。預設值為 7
  • SERVICE_ACCOUNT_NAME 是用於驗證移轉作業的服務帳戶名稱。服務帳戶必須與用於建立轉移作業的 project_id 相同,且必須具備所有必要權限

舉例來說,下列指令會使用客戶 ID 123-123-1234 和目標資料集 mydataset,建立名為 My Transfer 的 Google Ads 資料移轉作業。資料移轉作業會在預設專案中建立:

bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"customer_id":"123-123-1234","exclude_removed_items":"true"}' \
--data_source=google_ads

首次執行指令時,您會收到類似以下的訊息:

[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 進行驗證,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.CreateTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

// Sample to create ads(formerly AdWords) transfer config
public class CreateAdsTransfer {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    String datasetId = "MY_DATASET_ID";
    // the customer_id only allows digits and hyphen ('-').
    String customerId = "012-345-6789";
    String refreshWindow = "100";
    Map<String, Value> params = new HashMap<>();
    params.put("customer_id", Value.newBuilder().setStringValue(customerId).build());
    params.put("refreshWindow", Value.newBuilder().setStringValue(refreshWindow).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDisplayName("Your Ads Transfer Config Name")
            .setDataSourceId("adwords")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .build();
    createAdsTransfer(projectId, transferConfig);
  }

  public static void createAdsTransfer(String projectId, TransferConfig transferConfig)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      CreateTransferConfigRequest request =
          CreateTransferConfigRequest.newBuilder()
              .setParent(parent.toString())
              .setTransferConfig(transferConfig)
              .build();
      TransferConfig config = client.createTransferConfig(request);
      System.out.println("Ads transfer created successfully :" + config.getName());
    } catch (ApiException ex) {
      System.out.print("Ads transfer was not created." + ex.toString());
    }
  }
}

手動觸發 Google Ads 轉移作業

手動觸發 Google Ads 的轉移作業時,系統會每天擷取比對資料表的快照,並儲存在最新執行日期的分區中。手動觸發轉移時,系統不會更新下列資料表的「比對資料表」快照:

  • 廣告
  • 廣告群組
  • AdGroupAudience
  • AdGroupBidModifier
  • AdGroupAdLabel
  • AdGroupCriterion
  • AdGroupCriterionLabel
  • AdGroupLabel
  • 年齡層
  • 資產
  • AssetGroup
  • AssetGroupAsset
  • AssetGroupListingGroupFilter
  • AssetGroupSignal
  • 目標對象
  • 出價目標
  • 預算
  • 廣告活動
  • CampaignAudience
  • CampaignCriterion
  • CampaignLabel
  • 客戶
  • 性別
  • 關鍵字
  • 以地點為準的廣告活動條件
  • 家長狀態
  • 刊登位置
  • 影片

自訂報表

Google Ads 適用的 BigQuery 資料移轉服務連接器也支援在 Google Ads 移轉設定中,使用 Google Ads 查詢語言 (GAQL) 查詢自訂報表。這些自訂報表會從BigQuery 資料移轉服務支援的 Google Ads API 版本中,擷取所有可用資源的資料。如要進一步瞭解如何使用及驗證 GAQL 查詢,請參閱 Google Ads 查詢產生器

您可以在建立 Google Ads 移轉作業時指定自訂報表。

自訂報表限制

使用 Google Ads 連接器建立的自訂報表有下列限制:

  • Google Ads 連接器不支援 WHEREORDER BYLIMITPARAMETERS 子句。您的 GAQL 查詢應採用類似下列的格式:SELECT FIELD_NAME, FIELD_NAME,... FROM RESOURCE_NAME
  • 如果查詢中含有核心日期區隔 (例如 segments.datesegments.weeksegments.monthsegments.quartersegments.year),Google Ads 連接器會自動附加 WHERE segments.date = run_date。這可能會導致 Google Ads 查詢驗證工具傳回錯誤,例如 The filtering conditions in the WHERE clause must combine to form a valid, finite date range composed of the core date segments ...。您可以放心忽略這些錯誤。
  • 沒有 segments.date 欄位的 GAQL 查詢 會做為比對資料表, 這類資料表每天只會更新一次,且不支援回填執行作業。如要回填資料,您必須在 GAQL 查詢中加入 segments.date 欄位。
  • Google Ads 連接器在單一移轉作業中,最多可支援 100 份自訂報表。

最高成效廣告活動

您可以使用 Google Ads 連接器匯出最高成效廣告活動資料。建立資料移轉時,請務必選取「納入最高成效廣告活動表格」核取方塊,因為系統預設不會匯出最高成效廣告活動資料。

納入最高成效資料會從特定資料表移除 ad_group 欄位,並納入新資料表。由於 Google Ads API 會篩選最高成效資料,因此您無法加入 ad_group 欄位。

選取「包含最高成效廣告活動資料表」核取方塊後,下列資料表會排除 ad_group 相關資料欄:

  • GeoStats
  • GeoConversionStats
  • ShoppingProductConversionStats
  • ShoppingProductStats
  • LocationsUserLocationsStats

選取「納入最高成效廣告活動表格」核取方塊後,系統會新增下列表格:

  • 資產
  • AssetGroup
  • AssetGroupAsset
  • AssetGroupListingGroupFilter
  • AssetGroupSignal
  • 目標對象
  • AssetGroupProductGroupStats
  • CampaignAssetStats

對 Google Ads 管理員帳戶的支援

我們建議目前有多項特定客戶 ID Google Ads 移轉作業的客戶,於管理員帳戶 (MCC) 層級設定單一 Google Ads 移轉作業,安排補充作業時間,然後停用個別特定客戶 ID Google Ads 移轉作業。

使用 Google Ads 管理員帳戶比使用個別客戶 ID 多了幾項優點:

  • 不必再針對多個客戶 ID 管理要報告的多項資料移轉作業。
  • 由於所有客戶 ID 都儲存在同一份資料表中,因此更容易寫入跨客戶查詢。
  • 使用 MCC 可減少 BigQuery 資料移轉服務載入配額問題,因為多個客戶 ID 會在同一項工作中載入。

如要進一步瞭解 Google Ads 管理員帳戶 (MCC),請參閱「使用客戶帳戶」及「關於將帳戶連結至管理員帳戶」一文。

範例

下列清單顯示與特定 Google Ads 管理員帳戶連結的客戶 ID:

  • 1234567890 - 根管理員帳戶
    • 1234 - 子管理員帳戶
      • 1111 — 客戶 ID
      • 2222 — 客戶 ID
      • 3333 — 客戶 ID
      • 4444 — 客戶 ID
      • 567 — 子管理員帳戶
        • 5555 — 客戶 ID
        • 6666 — 客戶 ID
        • 7777 — 客戶 ID
    • 89 — 子管理員帳戶
      • 8888 — 客戶 ID
      • 9999 — 客戶 ID
    • 0000 — 客戶 ID

每個連結至管理員帳戶的客戶 ID 都會顯示在每份報表中。如要進一步瞭解 BigQuery 資料移轉服務中的 Google Ads 報表結構,請參閱「Google Ads 報表轉換」一文。

客戶 ID 1234567890 的移轉設定

根管理員帳戶 (客戶 ID 1234567890) 的移轉設定 會產生資料移轉執行作業,其中包含下列客戶 ID:

  • 1111 (透過子管理員帳戶 1234)
  • 2222 (透過子管理員帳戶 1234)
  • 3333 (透過子管理員帳戶 1234)
  • 4444 (透過子管理員帳戶 1234)
  • 5555 (透過子管理員帳戶 567 和子管理員帳戶 1234)
  • 6666 (透過子管理員帳戶 567 和子管理員帳戶 1234)
  • 7777 (透過子管理員帳戶 567 和子管理員帳戶 1234)
  • 8888 (透過子管理員帳戶 89)
  • 9999 (透過子管理員帳戶 89)
  • 0000 (個別客戶 ID)

客戶 ID 1234 的移轉設定

副管理員帳戶 123 (客戶 ID 1234) 的移轉設定會產生資料移轉作業,其中包含下列客戶 ID:

  • 1111
  • 2222
  • 3333
  • 4444
  • 5555 (透過子管理員帳戶 567)
  • 6666 (透過子管理員帳戶 567)
  • 7777 (透過子管理員帳戶 567)

客戶 ID 567 的移轉設定

副管理員帳戶 567 (客戶 ID 567) 的移轉設定會產生資料移轉作業,其中包含下列客戶 ID:

  • 5555
  • 6666
  • 7777

客戶 ID 89 的移轉設定

副管理員帳戶 89 (客戶 ID 89) 的移轉設定會產生資料移轉作業,其中包含下列客戶 ID:

  • 8888
  • 9999

客戶 ID 0000 的移轉設定

客戶 ID 0000 的移轉設定會產生資料移轉執行作業,其中只包含個別客戶 ID:

  • 0000

將 Google Ads 資料遷移至我的客戶中心

如要將 BigQuery 資料移轉服務中現有的 Google Ads 資料移轉至 MCC 結構,請設定回填,將現有資料新增至與管理員帳戶連結的移轉設定所建立的資料表。請注意,安排補充作業時間並不會更新對照表。

排解 Google Ads 轉移設定問題

如果您無法順利設定資料移轉作業,請參閱排解移轉設定問題中的 Google Ads 移轉問題

查詢資料

資料移轉至 BigQuery 資料移轉服務時,系統會將資料寫入擷取時間分區資料表。詳情請參閱分區資料表簡介一文。

如果您要直接查詢資料表,而不要使用自動產生的檢視表,您必須在查詢中使用 _PARTITIONTIME 虛擬資料欄。詳情請參閱查詢分區資料表一文。

Google Ads 查詢範例

您可以使用下列 Google Ads 查詢範例來分析已移轉的資料。您也可以在使用視覺化工具 (例如 Looker Studio) 中的查詢。這些查詢可協助您開始透過 BigQuery 資料移轉服務查詢 Google Ads 資料。如對這些報表的功能有其他疑問,請洽詢 Google Ads 技術代表。

在下列各項查詢中,請將「dataset」改成您的資料集名稱,將 customer_id 替換為您的 Google Ads 客戶 ID。

如果您要直接查詢資料表,而不要使用自動產生的視圖,您必須在查詢中使用 _PARTITIONTIME 虛擬資料欄。詳情請參閱「查詢分區資料表」。

廣告活動成效

下列查詢範例分析了最近 30 天的 Google Ads 廣告活動成效。

主控台

SELECT
  c.customer_id,
  c.campaign_name,
  c.campaign_status,
  SUM(cs.metrics_impressions) AS Impressions,
  SUM(cs.metrics_interactions) AS Interactions,
  (SUM(cs.metrics_cost_micros) / 1000000) AS Cost
FROM
  `DATASET.ads_Campaign_CUSTOMER_ID` c
LEFT JOIN
  `DATASET.ads_CampaignBasicStats_CUSTOMER_ID` cs
ON
  (c.campaign_id = cs.campaign_id
  AND cs._DATA_DATE BETWEEN
  DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY))
WHERE
  c._DATA_DATE = c._LATEST_DATE
GROUP BY
  1, 2, 3
ORDER BY
  Impressions DESC

bq

  bq query --use_legacy_sql=false '
  SELECT
    c.customer_id,
    c.campaign_name,
    c.campaign_status,
    SUM(cs.metrics_impressions) AS Impressions,
    SUM(cs.metrics_interactions) AS Interactions,
    (SUM(cs.metrics_cost_micros) / 1000000) AS Cost
  FROM
    `DATASET.ads_Campaign_CUSTOMER_ID` c
  LEFT JOIN
    `DATASET.ads_CampaignBasicStats_CUSTOMER_ID` cs
  ON
    (c.campaign_id = cs.campaign_id
    AND cs._DATA_DATE BETWEEN
    DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY))
  WHERE
    c._DATA_DATE = c._LATEST_DATE
  GROUP BY
    1, 2, 3
  ORDER BY
    Impressions DESC'

關鍵字數量

下列查詢範例分析了關鍵字 (依廣告活動、廣告群組和關鍵字狀態)。這項查詢使用 KeywordMatchType 函式。關鍵字比對類型可用來控制能帶出廣告的搜尋查詢。如要進一步瞭解關鍵字比對選項,請參閱「關於關鍵字比對選項」一文。

主控台

  SELECT
    c.campaign_status AS CampaignStatus,
    a.ad_group_status AS AdGroupStatus,
    k.ad_group_criterion_status AS KeywordStatus,
    k.ad_group_criterion_keyword_match_type AS KeywordMatchType,
    COUNT(*) AS count
  FROM
    `DATASET.ads_Keyword_CUSTOMER_ID` k
    JOIN
    `DATASET.ads_Campaign_CUSTOMER_ID` c
  ON
    (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE)
  JOIN
    `DATASET.ads_AdGroup_CUSTOMER_ID` a
  ON
    (k.ad_group_id = a.ad_group_id AND k._DATA_DATE = a._DATA_DATE)
  WHERE
    k._DATA_DATE = k._LATEST_DATE
  GROUP BY
    1, 2, 3, 4

bq

  bq query --use_legacy_sql=false '
  SELECT
    c.campaign_status AS CampaignStatus,
    a.ad_group_status AS AdGroupStatus,
    k.ad_group_criterion_status AS KeywordStatus,
    k.ad_group_criterion_keyword_match_type AS KeywordMatchType,
    COUNT(*) AS count
  FROM
    `DATASET.ads_Keyword_CUSTOMER_ID` k
  JOIN
    `DATASET.ads_Campaign_CUSTOMER_ID` c
  ON
    (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE)
  JOIN
    `DATASET.ads_AdGroup_CUSTOMER_ID` a
  ON
    (k.ad_group_id = a.ad_group_id AND k._DATA_DATE = a._DATA_DATE)
  WHERE
    k._DATA_DATE = k._LATEST_DATE
  GROUP BY
    1, 2, 3, 4'