Google Ads 转移作业

通过适用于 Google Ads(以前称为 Google AdWords)的 BigQuery Data Transfer Service,您可以自动安排和管理 Google Ads 报告数据的定期加载作业。

支持的报告

目前,适用于 Google Ads 的 BigQuery Data Transfer Service 支持以下报告选项:

如需了解 Google Ads 报告如何转换为 BigQuery 表格和视图,请参阅 Google Ads 报告转换

要将 Google Ads 报告映射到 Google Ads 界面中显示的内容,请参阅将报告映射到 Google Ads 界面

报告选项 支持
支持的 API 版本

v201809

如需了解 Google Ads API (AdWords API) 迁移,请参阅迁移指南 (v201809)

时间安排

每天在首次创建传输之时(默认值)

您可以配置一天中的具体时间。

刷新时段

最近 7 天(默认值)

最多可配置 30 天

系统会每天获取一次匹配表的快照,并将其存储在与最近运行日期对应的分区中。对于数据回填或刷新时段(以天为单位),系统不会更新匹配表快照。如需了解刷新时段不会更新哪些匹配表,请参阅设置回填

回填时长上限

无限制

虽然 Google Ads 没有已知的数据保留限制,但 BigQuery Data Transfer Service 会限制一次回填中可以请求的天数。如需了解回填,请参阅设置回填

每个经理帐号的客户 ID 数

1000

对于每个 Google Ads 经理帐号 (MCC),BigQuery Data Transfer Service 最多支持 1000 个客户 ID

准备工作

在创建 Google Ads 传输之前,请先完成以下事项:

  • 验证您是否已完成启用 BigQuery Data Transfer Service 所需的所有操作。
  • 创建 BigQuery 数据集,以用于存储 Google Ads 数据。
  • 如果您打算使用经典版 BigQuery 网页界面创建转移作业,请允许显示来自 bigquery.cloud.google.com 的弹出式窗口,这样您才能看到权限窗口。您必须向 BigQuery Data Transfer Service 授予您的 Google Ads 广告系列的管理权限,才能成功转移数据。
  • 转移作业运行通知目前为 Alpha 版。如果您打算为 Cloud Pub/Sub 设置转移作业运行通知,那么您必须拥有 pubsub.topics.setIamPolicy 权限。如果您只是设置电子邮件通知,则无需 Cloud Pub/Sub 权限。如需了解详情,请参阅 BigQuery Data Transfer Service 运行通知

所需权限

请确保创建转移作业的人员拥有以下所需权限:

  • BigQuery

    • 创建转移作业所需的 bigquery.transfers.update 权限,以及针对目标数据集的 bigquery.datasets.update 权限。

    预定义的项目级 IAM 角色 bigquery.admin 具有 bigquery.transfers.updatebigquery.transfers.update 权限。如需详细了解 BigQuery 中的 IAM 角色,请参阅访问权限控制

  • Google Ads:对转移配置中使用的 Google Ads 客户 ID 或经理帐号 (MCC) 的读取权限。

设置 Google Ads 数据传输

为 Google Ads 报告设置数据传输需要以下信息:

  • 客户 ID:由 Google Ads 发布的 Google Ads 客户 ID 或经理帐号 (MCC)。如需了解如何检索 Google Ads 客户 ID,请参阅查找客户 ID

要为 Google Ads 报告创建数据传输,请执行以下操作:

Console

  1. 转到 BigQuery 网页界面。

    转到 BigQuery 网页界面

  2. 点击转移作业

  3. 点击 + 创建

  4. 创建转移作业页面上,执行以下操作:

    • 来源类型部分的来源中,选择 Google Ads

      转移作业来源

    • 转移作业配置名称部分的显示名中,输入转移作业的名称,例如 My Transfer。转移作业名称可以是任何容易辨识的值,让您以后在需要修改时能够轻松识别。

      转移作业名称

    • 时间安排选项部分的时间安排中,保留默认值(立即开始)或点击从设置的时间开始

      • 重复频率部分,从以下选项中选择转移作业的运行频率。

        • 每日一次(默认值)
        • 每周一次
        • 每月一次
        • 自定义
        • 按需运行
      • 开始日期和运行时间部分,输入转移作业的开始日期和时间。如果您选择的是立即开始,则此选项处于停用状态。

        转移作业时间安排

    • 目标设置部分的目标数据集中,选择您创建的用于存储数据的数据集。

      转移作业数据集

    • 数据源详细信息部分,执行以下操作:

      • 客户 ID 部分中,输入您的客户 ID 或经理帐号。
      • 选中排除已移除/已停用的项 (Exclude removed/disabled Items),以阻止转移已移除或已停用的实体及指标。

        Google Ads 来源详细信息

    • (可选)在通知选项部分,执行以下操作:

      • 点击切换开关以启用电子邮件通知。启用此选项后,转移作业管理员会在转移作业运行失败时收到电子邮件通知。
      • 选择 Cloud Pub/Sub 主题部分,选择主题名称或点击创建主题。这样,系统即会为您的转移作业配置 Cloud Pub/Sub 运行通知。转移作业运行通知目前为 Alpha 版
  5. 点击保存

经典版界面

  1. 转到传统版 BigQuery 网页界面。

    转到经典版 BigQuery 网页界面

  2. 点击 Transfers

  3. 点击 Add Transfer

  4. New Transfer 页面上,执行以下操作:

    • Source 部分,选择 Google Ads(以前称为 AdWords)
    • Display name 部分,输入转移作业的名称,例如 My Transfer。传输名称可以是任何容易辨识的值,方便以后需要时对传输进行修改。
    • Refresh window 部分中,输入数据传输要包含的天数。如果输入 1,则不会发生每日回填。如果输入 0,则刷新时段将默认配置为 7 天。最大值为 30。如需了解详情,请参阅确定数据的新鲜度
    • Schedule 部分中,保留默认值(每 24 小时创建一次传输),或点击 Edit 并更改时间。

      Google Ads 时间安排

    • Destination dataset 中,选择您创建用来存储 Google Ads 数据的数据集。

    • Customer ID 部分中,输入您的客户 ID 或经理帐号。

    • 选中 Exclude removed/disabled Items,以阻止传输已移除或已停用的实体及指标。

      Google Ads 传输

    • (可选)展开 Advanced 部分,并为转移作业配置运行通知。转移作业运行通知目前为 Alpha 版

      • Cloud Pub/Sub 主题部分,输入您的主题名称,例如 projects/myproject/topics/mytopic
      • 勾选 Send email notifications,让系统在转移作业运行失败时发送电子邮件通知。
      • 设置传输时请勿勾选 Disabled。请参阅处理传输作业以停用现有传输。

        Cloud Pub/Sub 主题

  5. 点击 Add

  6. 出现提示时,点击 Allow 以向 BigQuery Data Transfer Service 授予相应权限,允许其管理 Google Ads 报告数据以及访问和管理 BigQuery 中的数据。您必须允许显示来自 bigquery.cloud.google.com 的弹出式窗口,才能查看权限窗口。

    允许转移

命令行

输入 bq mk 命令并提供转移作业创建标志 - --transfer_config。此外,还必须提供以下标志:

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

您也可以提供 --project_id 标志来指定特定项目。如果未指定 --project_id,系统会使用默认项目。

    bq mk --transfer_config --project_id=[PROJECT_ID] --target_dataset=[DATASET] --display_name=[NAME] --params='[PARAMETERS]' --data_source=[DATA_SOURCE]

其中:

  • --project_id 是项目 ID。
  • --target_dataset 是转移作业配置的目标数据集。
  • --display_name 是转移作业配置的显示名称。转移作业名称可以是任何容易辨识的值,让您以后在需要修改时能够轻松识别。
  • --params 包含所创建的转移作业配置的参数(采用 JSON 格式)。例如:--params='{"param":"param_value"}'。对于 Google Ads,您必须提供 customer_id 参数。您可以选择将 exclude_removed_items 参数设置为 true,以防止传输已被移除或停用的实体和指标。
  • --data_source 是数据源,即 adwords

例如,以下命令使用客户 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=adwords

第一次运行此命令时,您会收到如下消息:

[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 资源的实例。

对 Google Ads 经理帐号的支持

对于拥有多个特定于客户 ID 的 Google Ads 传输的现有客户,我们鼓励在经理帐号 (MCC) 级层设置一次 Google Ads 传输,安排数据回填,并停用各特定于客户 ID 的 Google Ads 传输。

与使用各个客户 ID 相比,使用 Google Ads 经理帐号具有多项优势:

  • 针对多个客户 ID 生成报告时,您不再需要管理多个传输。
  • 跨客户查询的编写方式简单得多,因为所有客户 ID 都存储在同一个表中。
  • 使用 MCC 可以缓解 BigQuery 加载配额问题,因为多个客户 ID 将加载到同一作业中。

如需详细了解 Google Ads 经理帐号 (MCC),请参阅使用受管理的帐号关于将帐号关联到经理帐号

示例

以下列表显示了与特定 Google Ads 经理帐号相关联的客户 ID:

  • 1234567890 - root 经理帐号
    • 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 对应的传输配置

root 经理帐号(客户 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 数据迁移到 MCC

要将 BigQuery 中的现有 Google Ads 数据迁移到 MCC 结构,您可以设置回填,将现有数据添加到由与经理帐号关联的传输配置创建的表。请注意,如果您安排了回填,系统不会更新匹配表。

排查 Google Ads 传输设置问题

如果您在设置转移作业时遇到问题,请参阅排查 BigQuery Data Transfer Service 转移作业转移设置问题中的 Google Ads 转移作业问题

查询数据

当数据传输到 BigQuery 时,数据会写入到提取时间分区表中。如需了解详情,请参阅分区表简介

如果您要直接查询表,而不是使用自动生成的视图,那么必须在查询中使用 _PARTITIONTIME 伪列。如需了解详情,请参阅查询分区表

您可以使用以下 Google Ads 查询示例来分析已传输的数据。此外,您也可以在 Cloud DatalabGoogle Data Studio 等可视化工具中使用这些查询。这些查询旨在帮助您开始使用 BigQuery 来查询 Google Ads 数据。如果您对这些报告的功能有其他问题,请联系您的 Google Ads 技术代表。

在以下每个查询中,将 [DATASET] 替换为您的数据集名称,将 [CUSTOMER_ID] 替换为 Google Ads 客户 ID。

这些示例利用了 BigQuery 对标准 SQL 的支持。请使用 #standardSQL 标记告知 BigQuery 您要使用标准 SQL。如需详细了解 #standardSQL 前缀,请参阅设置查询前缀

如果您要直接查询表,而不是使用自动生成的视图,那么必须在查询中使用 _PARTITIONTIME 伪列。如需了解详情,请参阅查询分区表

广告系列效果

以下示例查询分析了最近 30 天内 Google Ads 广告系列的效果。

Console

#standardSQL
SELECT
  c.ExternalCustomerId,
  c.CampaignName,
  c.CampaignStatus,
  SUM(cs.Impressions) AS Impressions,
  SUM(cs.Interactions) AS Interactions,
  (SUM(cs.Cost) / 1000000) AS Cost
FROM
  `[DATASET].Campaign_[CUSTOMER_ID]` c
LEFT JOIN
  `[DATASET].CampaignBasicStats_[CUSTOMER_ID]` cs
ON
  (c.CampaignId = cs.CampaignId
   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 query --use_legacy_sql=false '
SELECT
  c.ExternalCustomerId,
  c.CampaignName,
  c.CampaignStatus,
  SUM(cs.Impressions) AS Impressions,
  SUM(cs.Interactions) AS Interactions,
  (SUM(cs.Cost) / 1000000) AS Cost
FROM
  `[DATASET].Campaign_[CUSTOMER_ID]` c
LEFT JOIN
  `[DATASET].CampaignBasicStats_[CUSTOMER_ID]` cs
ON
  (c.CampaignId = cs.CampaignId
   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 函数。关键字匹配类型有助于控制哪些搜索可以触发广告。如需详细了解关键字匹配选项,请参阅关于关键字匹配选项

Console

#standardSQL
SELECT
  c.CampaignStatus AS CampaignStatus,
  a.AdGroupStatus AS AdGroupStatus,
  k.Status AS KeywordStatus,
  k.KeywordMatchType AS KeywordMatchType,
  COUNT(*) AS count
FROM
  `[DATASET].Keyword_[CUSTOMER_ID]` k
  JOIN
  `[DATASET].Campaign_[CUSTOMER_ID]` c
ON
  (k.CampaignId = c.CampaignId AND k.DATA_DATE = c._DATA_DATE)
JOIN
  `[DATASET].AdGroup[CUSTOMER_ID]` a
ON
  (k.AdGroupId = a.AdGroupId AND k._DATA_DATE = a._DATA_DATE)
WHERE
  k._DATA_DATE = k._LATEST_DATE
GROUP BY
  1, 2, 3, 4

命令行

bq query --use_legacy_sql=false '
SELECT
  c.CampaignStatus AS CampaignStatus,
  a.AdGroupStatus AS AdGroupStatus,
  k.Status AS KeywordStatus,
  k.KeywordMatchType AS KeywordMatchType,
  COUNT(*) AS count
FROM
  `[DATASET].Keyword_[CUSTOMER_ID]` k
JOIN
  `[DATASET].Campaign_[CUSTOMER_ID]` c
ON
  (k.CampaignId = c.CampaignId AND k._DATA_DATE = c._DATA_DATE)
JOIN
  `[DATASET].AdGroup_[CUSTOMER_ID]` a
ON
  (k.AdGroupId = a.AdGroupId AND k._DATA_DATE = a._DATA_DATE)
WHERE
  k._DATA_DATE = k._LATEST_DATE
GROUP BY
  1, 2, 3, 4'
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面