Google Ads 转移作业

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

支持的报告

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

如需了解 Google Ads 报告如何转换为 BigQuery Data Transfer Service 表和视图,请参阅 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 Data Transfer Service 数据集,以用于存储 Google Ads 数据。
  • 如果您打算使用经典版 BigQuery 网页界面创建转移作业,请允许显示来自 bigquery.cloud.google.com 的弹出式窗口,这样您才能看到权限窗口。您必须向 BigQuery Data Transfer Service 授予您的 Google Ads 广告系列的管理权限,才能成功转移数据。
  • 如果您想要为 Pub/Sub 设置转移作业运行通知,那么您必须拥有 pubsub.topics.setIamPolicy 权限。如果您只是要设置电子邮件通知,则无需 Pub/Sub 权限。如需了解详情,请参阅 BigQuery Data Transfer Service 运行通知

所需权限

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

  • BigQuery Data Transfer Service

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

    预定义的 Cloud IAM 角色 bigquery.admin 包括 bigquery.transfers.updatebigquery.datasets.update 权限。如需详细了解 BigQuery Data Transfer Service 中的 Cloud IAM 角色,请参阅访问权限控制参考文档

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

设置 Google Ads 数据传输

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

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

要为 Google Ads 报告创建数据转移作业,请执行以下操作:

控制台

  1. 转到 Cloud Console。

    转到 Cloud Console

  2. 点击转移

  3. 点击创建转移作业

  4. 创建转移作业页面上:

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

      转移作业来源

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

      转移作业名称

    • 时间表选项部分的时间表中,保留默认值(立即开始)或点击在设置的时间开始 (Start at a set time)。

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

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

        转移作业时间安排

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

      转移作业数据集

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

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

        Google Ads 来源详细信息

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

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

经典版界面

  1. 转到经典版 BigQuery 网页界面。

    转到经典版 BigQuery 网页界面

  2. 点击 Transfers

  3. 点击 Add Transfer

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

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

      Google Ads 时间安排

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

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

    • 选中排除已移除/已停用的项 (Exclude removed/disabled Items),以阻止转移已移除或已停用的实体及指标。

      Google Ads 转移作业

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

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

        Pub/Sub 主题

  5. 点击 Add

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

    允许转移作业

CLI

输入 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。
  • dataset 是转移作业配置的目标数据集。
  • name 是转移作业配置的显示名。转移作业名称可以是任何容易辨识的值,方便您以后在需要修改该作业时能轻松识别相应的转移作业。
  • parameters 包含所创建的转移作业配置的参数(采用 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 Data Transfer Service 加载配额问题,因为多个客户 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 Data Transfer Service 中的 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 Data Transfer Service 中的现有 Google Ads 数据迁移到 MCC 结构,您可以设置回填,将现有数据添加到由与经理帐号关联的转移作业配置创建的表。请注意,如果您安排了回填,系统不会更新匹配表。

排查 Google Ads 转移作业设置问题

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

查询数据

当数据转移到 BigQuery Data Transfer Service 时,会被写入提取时间分区表。如需了解详情,请参阅分区表简介

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

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

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

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

广告系列效果

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

控制台

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

CLI

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 函数。关键字匹配类型有助于控制哪些搜索可以触发广告。如需详细了解关键字匹配选项,请参阅关于关键字匹配选项

控制台

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

CLI

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'