Search Ads 360 转移作业

借助适用于 Search Ads 360 的 BigQuery Data Transfer Service 连接器,您可以自动安排和管理 Search Ads 360 报告数据的周期性加载作业。

支持的报告

适用于 Search Ads 360 的 BigQuery Data Transfer Service 支持 Search Ads 360 Reporting API v0:

如需了解 Search Ads 360 报告如何转换为 BigQuery Data Transfer Service 表和视图,请参阅 Search Ads 360 报告转换

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

v0

重复频率

每天在首次创建数据转移作业之时(默认值)

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

刷新时段

最近 7 天(默认值)

最多可配置 30 天

系统会每天截取一次匹配表的快照,并将其存储在上一次运行日期对应的分区中。使用刷新窗口加载回填或天数时,匹配表快照不会更新。

回填时长上限

无限制

每个经理账号的客户 ID 数

2,000

对于每个 Search Ads 360 经理账号,BigQuery Data Transfer Service 最多支持 2,000 个客户 ID

如需查看使用旧版 Search Ads 360 Reporting API 的 Search Ads 360 转移指南,请参阅 Search Ads 360 转移作业(已弃用)

从 Search Ads 360 转移作业中提取数据

当您将数据从 Search Ads 360 转移到 BigQuery 时,系统会将数据加载到按日期分区的 BigQuery 表中。数据加载到的表分区对应于数据源中的日期。如果您在同一日期安排多次转移,BigQuery Data Transfer Service 会使用最新数据覆盖该特定日期的分区。同一天的多个转移作业或正在运行的回填不会导致重复数据,其他日期的分区不受影响。

刷新时段

刷新时段是指发生数据转移时数据转移检索数据的天数。例如,如果刷新时段为三天,并且每天进行转移,则 BigQuery Data Transfer Service 会从过去三天内的源表中检索所有数据。在此示例中,当每天进行转移时,BigQuery Data Transfer Service 会使用当前日期的源表数据副本创建新的 BigQuery 目标表分区,然后自动触发回填运行作业,以使用过去两天的源表数据来更新 BigQuery 目标表分区。自动触发的回填运行作业会覆盖或以增量方式更新 BigQuery 目标表,具体取决于 BigQuery Data Transfer Service 连接器是否支持增量更新。

首次运行数据转移作业时,数据转移作业会检索刷新时段内可用的所有源数据。例如,如果刷新时段为三天,并且您首次运行数据传输作业,则 BigQuery Data Transfer Service 会检索三天内的所有源数据。

刷新时段会映射到 TransferConfig.data_refresh_window_days API 字段

如需检索刷新时段之外的数据(例如历史数据),或在出现任何转移中断或缺口时恢复数据,您可以启动或安排回填运行作业

限制

  • 您可以配置 Search Ads 360 数据转移作业的最大频率为每 24 小时一次。默认情况下,转移作业从创建转移作业时开始。不过,您可以在创建转移作业时配置数据转移作业开始时间。
  • BigQuery Data Transfer Service 不支持在 Search Ads 360 转移期间执行增量数据转移。指定数据转移的日期时,系统会转移该日期的所有数据。

准备工作

在创建 Search Ads 360 数据转移作业之前,请先做好以下准备工作:

所需权限

请确保创建数据转移作业的用户拥有以下所需权限:

  • BigQuery Data Transfer Service

    • 用于创建数据转移作业的 bigquery.transfers.update 权限。
    • 目标数据集的 bigquery.datasets.getbigquery.datasets.update 权限。

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

  • Google Cloud

    • 项目的 serviceusage.services.use 权限,可从 Search Ads 360 下载数据。

    预定义 IAM 角色 editorownerserviceusage.serviceUsageConsumer 包含 serviceusage.services.use 权限。如需详细了解 Service Usage 中的 IAM 角色,请参阅访问权限控制参考文档

  • Search Ads 360

    • 对转移作业配置中使用的 Search Ads 360 客户 ID 或经理账号的读取权限。

创建 Search Ads 360 数据转移作业

如需为 Search Ads 360 报告创建数据转移作业,需要用到您的 Search Ads 360 客户 ID 或经理账号。 从下列选项中选择一项:

控制台

  1. 前往 Google Cloud 控制台中的“数据转移”页面。

    转到“数据传输”

  2. 点击 创建转移作业

  3. 来源类型部分的来源字段中,选择 Search Ads 360

  4. 转移配置名称部分的显示名称中,输入数据转移作业的名称,例如 My Transfer。转移作业名称可以是任何可让您在需要修改转移作业时识别该转移作业的名称。

  5. 时间表选项部分中,执行以下操作:

    • 重复频率部分,针对数据转移作业的运行频率选择一个选项。如果您选择,请提供世界协调时间 (UTC) 的有效时间。
      • 小时
      • 按需
    • 如果适用,请选择立即开始在设置的时间开始,并提供开始日期和运行时间。
  6. 目标设置部分的数据集字段中,选择您创建用来存储数据的数据集。

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

    2. 客户 ID 字段中,输入您的 Search Ads 360 客户 ID:

    3. 可选:输入代理机构 ID广告客户 ID,以检索 ID 映射表

    4. 可选:在自定义 Floodlight 变量字段中,输入要包含在数据传输中的所有自定义 Floodlight 变量。自定义 Floodlight 变量必须归转移配置中客户 ID 指定的 Search Ads 360 账号所有。此参数接受 JSON 数组格式的字符串输入,可以支持多个自定义 Floodlight 变量。在 JSON 数组的每一项中,都必须提供以下参数:

      • id:自定义 Floodlight 变量的数字 ID。当在 Search Ads 360 中创建自定义 Floodlight 变量时,系统会分配此 ID。如果您指定了 id,则不需要 name
      • name:Search Ads 360 中用户定义的自定义 Floodlight 变量的名称。如果您指定了 name,则不需要 id
      • cfv_field_name:确切的自定义 Floodlight 变量字段名称(基于您的用例)。支持的值为 conversion_custom_metricsconversion_custom_dimensionsraw_event_conversion_metricsraw_event_conversion_dimensions
      • destination_table_name:要在其中包含自定义 Floodlight 变量的 BigQuery 表列表。当 BigQuery Data Transfer Service 检索这些表的数据时,转移作业会在查询中包含自定义 Floodlight 变量。
      • bigquery_column_name_suffix:用户定义的易记列名称。BigQuery Data Transfer Service 会在标准字段名称后面附加后缀,以区分不同的自定义 Floodlight 变量。根据用例,BigQuery Data Transfer Service 会生成 BigQuery 列名称,如下所示:

        将自定义 Floodlight 变量作为指标和细分 将自定义 Floodlight 变量作为转化资源中的原始事件属性
        metrics metrics_conversion_custom_metrics_bigquery_column_name_suffix metrics_raw_event_conversion_metrics_bigquery_column_name_suffix
        dimension segments_conversion_custom_dimensions_bigquery_column_name_suffix segments_raw_event_conversion_dimensions_bigquery_column_name_suffix

      下方是自定义 Floodlight 变量条目示例,其中指定了两个自定义 Floodlight 变量:

      [{
        "id": "1234",
        "cfv_field_name": "raw_event_conversion_metrics",
        "destination_table_name": ["Conversion"],
        "bigquery_column_name_suffix": "suffix1"
      },{
        "name": "example name",
        "cfv_field_name": "conversion_custom_metrics",
        "destination_table_name": ["AdGroupConversionActionAndDeviceStats","CampaignConversionActionAndDeviceStats"],
        "bigquery_column_name_suffix": "suffix2"
      }]
    5. 可选:在自定义列字段中,输入要包含在数据传输中的所有自定义列。自定义列必须归转移配置中客户 ID 指定的 Search Ads 360 账号所有。此字段接受 JSON 数组格式的字符串输入,可以支持多个列。在 JSON 数组的每一项中,都必须提供以下参数:

      • id:自定义列的数字 ID。此 ID 是在创建自定义列时分配的。如果您指定了 id,则不需要 name
      • name:Search Ads 360 中用户定义的自定义列的名称。如果您指定了 name,则不需要 id
      • destination_table_name:要在其中包含自定义列的 BigQuery 表的列表。当 BigQuery Data Transfer Service 检索这些表的数据时,转移作业会在查询中包含自定义列字段。
      • bigquery_column_name:用户定义的易记列名称。这是在 destination_table_name 中指定的目标表中自定义列的字段名称。该列名必须遵循 BigQuery 列名的格式要求,并且对于表的标准架构或其他自定义列中的其他字段来说必须是唯一的。

      以下自定义列条目示例指定了两个自定义列:

        [{
          "id": "1234",
          "destination_table_name": ["Conversion"],
          "bigquery_column_name": "column1"
        },{
          "name": "example name",
          "destination_table_name": ["AdGroupStats","CampaignStats"],
          "bigquery_column_name": "column2"
        }]
        

    6. 可选:在表过滤条件字段中,输入要包含的表的逗号分隔列表,例如 Campaign, AdGroup。为此列表添加 - 字符作为前缀,以排除某些表,例如 -Campaign, AdGroup。默认情况下,所有表均包含在内。

    7. 可选:对于刷新时段,请输入介于 1 到 30 之间的值。 如果未设置,刷新时段默认为 7 天。

  7. 服务账号菜单中,从与您的 Google Cloud 项目关联的服务账号中选择一个服务账号。您可以将服务账号与转移作业相关联,而不是使用用户凭据。如需详细了解如何将服务账号用于数据转移,请参阅使用服务账号

    • 如果您使用联合身份登录,则需要有服务账号才能创建转移作业。如果您使用 Google 账号登录,则转移作业的服务账号是可选的。
    • 服务账号必须具有所需的权限
  8. 可选:在通知选项部分中,执行以下操作:

    • 点击切换开关以启用电子邮件通知。启用此选项后,转移作业管理员会在转移作业运行失败时收到电子邮件通知。

    • 点击切换开关以启用 Pub/Sub 通知。在选择 Cloud Pub/Sub 主题部分中,选择主题名称或点击创建主题。此选项用于为您的转移作业配置 Pub/Sub 运行通知

  9. 点击保存

bq

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

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

以下标志是可选的:

  • --project_id:指定要使用的项目。如果未指定此标志,则系统会使用默认项目。
  • --service_account_name:指定用于 Search Ads 360 转移作业身份验证的服务账号,而不是您的用户账号。
bq mk \
--transfer_config \
--project_id=PROJECT_ID \
--target_dataset=DATASET \
--display_name=NAME \
--data_source=DATA_SOURCE \
--service_account_name=SERVICE_ACCOUNT_NAME \
--params='{PARAMETERS,"custom_columns":"[{\"id\": \"CC_ID\",\"destination_table_name\": [\"CC_DESTINATION_TABLE\"],\"bigquery_column_name\": \"CC_COLUMN\"}]","custom_floodlight_variables":"[{\"id\": \"CFV_ID\",\"cfv_field_name\": [\"CFV_FIELD_NAME\"],\"destination_table_name\": [\"CFV_DESTINATION_TABLE\"],\"bigquery_column_name_suffix\": \"CFV_COLUMN_SUFFIX\"}]"}'

其中:

  • PROJECT_ID(可选):指定要使用的项目。如果未指定此标志,则系统会使用默认项目。
  • DATASET:转移作业配置的目标数据集。
  • NAME:转移作业配置的显示名。 数据转移作业名称可以是任何可让您以后需要修改转移作业时识别该转移作业的值。

  • DATA_SOURCE:数据源,search_ads

  • SERVICE_ACCOUNT_NAME(可选):用于对数据转移作业进行身份验证的服务账号名称。该服务账号应属于用于创建转移作业的同一 project_id,并且应具有所有所需的权限

  • PARAMETERS:所创建转移作业配置的参数(采用 JSON 格式)。例如 --params='{"param":"param_value"}'。您必须提供 customer_id 参数。

    • table_filter:指定要包含在数据转移作业中的表。如果未指定此标志,则包含所有表。如需仅包含特定表,请使用逗号分隔的值列表(例如 Ad, Campaign, AdGroup)。如需排除特定表,请在要排除的值的前面加上连字符 (-),例如使用 -Ad, Campaign, AdGroup 会排除所有三个值。
    • custom_columns:为报告指定自定义列。此参数接受 JSON 数组格式的字符串输入,可以支持多个列。在 JSON 数组的每一项中,都必须提供以下参数:
      • CC_ID:自定义列的数字 ID。此 ID 是在创建自定义列时分配的。
      • CC_DESTINATION_TABLE:要在其中包含自定义列的 BigQuery 表的列表。当 BigQuery Data Transfer Service 检索这些表的数据时,数据传输会在查询中包含自定义列字段。
      • CC_COLUMN:用户定义的易记列名称。这是在 destination_table_name 中指定的目标表中自定义列的字段名称。该列名必须遵循 BigQuery 列名的格式要求,并且对于表的标准架构或其他自定义列中的其他字段来说必须是唯一的。
    • custom_floodlight_variables:在转移作业中指定自定义 Floodlight 变量。此参数接受 JSON 数组格式的字符串输入,可以支持多个自定义 Floodlight 变量。在 JSON 数组的每一项中,都必须提供以下参数:
      • CFV_ID:自定义 Floodlight 变量的数字 ID。当在 Search Ads 360 中创建自定义 Floodlight 变量时,系统会分配此 ID。
      • CFV_FIELD_NAME:确切的自定义 Floodlight 变量字段名称(基于您的用例)。支持的值为 conversion_custom_metricsconversion_custom_dimensionsraw_event_conversion_metricsraw_event_conversion_dimensions。如需了解详情,请参阅自定义 Floodlight 指标
      • CFV_DESTINATION_TABLE:要在其中包含自定义 Floodlight 变量的 BigQuery 表列表。当 BigQuery Data Transfer Service 检索这些表的数据时,数据传输会在查询中包含自定义 Floodlight 变量。
      • CFV_COLUMN_SUFFIX:用户定义的易记列名称。BigQuery Data Transfer Service 会在标准字段名称后面附加后缀,以区分不同的自定义 Floodlight 变量。根据用例,BigQuery Data Transfer Service 会生成 BigQuery 列名称,如下所示:
    将自定义 Floodlight 变量作为指标和细分 将自定义 Floodlight 变量作为转化资源中的原始事件属性
    metrics metrics_conversion_custom_metrics_bigquery_column_name_suffix metrics_raw_event_conversion_metrics_bigquery_column_name_suffix
    dimension segments_conversion_custom_dimensions_bigquery_column_name_suffix segments_raw_event_conversion_dimensions_bigquery_column_name_suffix

例如,以下命令使用客户 ID 6828088731 和目标数据集 mydataset 创建名为 My Transfer 的 Search Ads 360 数据转移作业。转移作业还指定了自定义 Floodlight 变量。该数据转移作业将在默认项目中创建:

bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--data_source=search_ads \
--params='{"customer_id":"6828088731", "custom_floodlight_variables":"[{\"id\": \"9876\", \"cfv_field_name\": \"raw_event_conversion_metrics\", \"destination_table_name\": [\"Conversion\"],\"bigquery_column_name_suffix\": \"suffix1\" }]"}'

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

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

手动触发 Search Ads 360 转移作业

如果您手动触发 Search Ads 360 转移作业,系统会每天截取一次匹配表的快照,并将其存储在与上一次运行日期对应的分区中。触发手动转移作业时,以下表的匹配表快照不会更新:

  • 账号
  • 广告
  • AdGroup
  • AdGroupCriterion
  • 任何 ID 映射表
  • 素材资源
  • BidStrategy
  • 宣传活动
  • CampaignCriterion
  • ConversionAction
  • 关键字
  • NegativeAdGroupKeyword
  • NegativeAdGroupCriterion
  • NegativeCampaignKeyword
  • NegativeCampaignCriterion
  • ProductGroup

Search Ads 360 经理账号支持

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

  • 您无需管理多个数据传输作业,即可针对多个客户 ID 生成报告。
  • 跨客户查询的编写方式更简单,因为所有客户 ID 都存储在同一个表中。
  • 使用经理账号可以缓解 BigQuery Data Transfer Service 加载配额问题,因为多个客户 ID 将加载到同一作业中。

对于拥有多个特定于客户 ID 的 Search Ads 360 数据转移作业的现有客户,我们建议您改用 Search Ads 360 经理账号。为此,您可以按以下步骤操作:

  1. 在经理账号或子级经理账号级层设置单个 Search Ads 360 数据传输作业。
  2. 安排回填
  3. 停用特定于客户 ID 的各个 Search Ads 360 转移作业。

如需详细了解 Search Ads 360 经理账号,请参阅新版 Search Ads 360 中的经理账号简介以及了解账号如何与经理账号相关联

示例

以下列表显示了与特定 Search Ads 360 经理账号相关联的客户 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 中的 Search Ads 360 报告结构,请参阅 Search Ads 360 报告转换

客户 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

查询数据

当数据转移到 BigQuery Data Transfer Service 时,系统会将其写入注入时间分区表。如需了解详情,请参阅分区表简介

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

Search Ads 360 示例查询

您可以使用以下 Search Ads 360 示例查询来分析转移的数据。您还可以在 Looker Studio 等可视化工具中查看查询。

以下查询是使用 BigQuery Data Transfer Service 查询 Search Ads 360 数据的入门示例。如果您对这些报告的功能有其他问题,请联系您的 Search Ads 360 技术代表。

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

广告系列效果

以下示例查询分析了过去 30 天内 Search Ads 360 广告系列的效果。

SELECT
  c.customer_id,
  c.campaign_name,
  c.campaign_status,
  SUM(cs.metrics_clicks) AS Clicks,
  (SUM(cs.metrics_cost_micros) / 1000000) AS Cost,
  SUM(cs.metrics_impressions) AS Impressions
FROM
  `DATASET.sa_Campaign_CUSTOMER_ID` c
LEFT JOIN
  `DATASET.sa_CampaignStats_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

替换以下内容:

  • DATASET:数据集的名称
  • CUSTOMER_ID:Search Ads 360 客户 ID

关键字计数

以下示例查询按广告系列、广告组和关键字状态分析关键字。

  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.sa_Keyword_CUSTOMER_ID` k
    JOIN
    `DATASET.sa_Campaign_CUSTOMER_ID` c
  ON
    (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE)
  JOIN
    `DATASET.sa_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

替换以下内容:

  • DATASET:数据集的名称
  • CUSTOMER_ID:Search Ads 360 客户 ID

ID 映射表

新版 Search Ads 360 中的实体(例如客户、广告系列和广告组)的 ID 空间与旧版 Search Ads 360 不同。对于希望将旧版 Search Ads 360 中的数据与新版 Search Ads 360 API 合并的现有 Search Ads 360 转移用户,如果您在转移作业配置中提供了有效的代理机构 ID 和广告客户 ID,则可以使用 BigQuery Data Transfer Service 来转移 ID 映射表。

支持的实体包含 legacy_idnew_id 这两个列,它们分别指定旧版和新版 Search Ads 360 中的实体的 ID 映射。 对于 AD、CAMPAIGN_CRITERION 和 CRITERION 实体,还会提供 new_secondary_id,因为这些实体在新版 Search Ads 360 中没有全局唯一 ID。下面列出了 ID 映射表。

  • IdMapping_AD
  • IdMapping_AD_GROUP
  • IdMapping_CAMPAIGN
  • IdMapping_CAMPAIGN_CRITERION
  • IdMapping_CAMPAIGN_GROUP
  • IdMapping_CAMPAIGN_GROUP_PERFORMANCE_TARGET
  • IdMapping_CRITERION
  • IdMapping_CUSTOMER
  • IdMapping_FEED_ITEM
  • IdMapping_FEED_TABLE

示例查询

以下查询利用 ID 映射表将旧版和新版 Search Ads 360 数据传输作业中各个表的每个广告系列指标在新 ID 空间下汇总到一起。

SELECT CustomerID, CampaignID, Sum(Clicks), Sum(Cost) FROM
(SELECT
  cs.customer_id AS CustomerID,
  cs.campaign_id AS CampaignID,
  cs.metrics_clicks AS Clicks,
  cs.metrics_cost_micros / 1000000 AS Cost
FROM
  `DATASET.sa_CampaignStats_CUSTOMER_ID` cs
WHERE cs._DATA_DATE = 'NEW_DATA_DATE'
UNION ALL
SELECT
  customer_id_mapping.new_id AS CustomerID,
  campaign_id_mapping.new_id AS CampaignID,
  cs.clicks AS Clicks,
  cs.cost AS Cost
FROM
  `DATASET.CampaignStats_ADVERTISER_ID` cs
LEFT JOIN
  `DATASET.IdMapping_CUSTOMER_ADVERTISER_ID` customer_id_mapping
ON cs.accountId = customer_id_mapping.legacy_id
LEFT JOIN
  `DATASET.IdMapping_CAMPAIGN_ADVERTISER_ID` campaign_id_mapping
ON cs.campaignId = campaign_id_mapping.legacy_id
WHERE cs._DATA_DATE = 'OLD_DATA_DATE')
GROUP BY
1, 2
ORDER BY
1, 2

替换以下内容:

  • DATASET:数据集的名称
  • CUSTOMER_ID:Search Ads 360 客户 ID
  • ADVERTISER_ID:Search Ads 360 广告客户 ID
  • NEW_DATA_DATE:新版 Search Ads 360 表的数据日期
  • OLD_DATA_DATE:旧版 Search Ads 360 表的数据日期

以下查询利用 ID 映射表将旧版和新版 Search Ads 360 数据传输作业中各个表的每个广告系列指标在旧 ID 空间下汇总到一起。

SELECT CustomerID, CampaignID, Sum(Clicks), Sum(Cost) FROM
(SELECT
  customer_id_mapping.legacy_id AS CustomerID,
  campaign_id_mapping.legacy_id AS CampaignID,
  cs.metrics_clicks AS Clicks,
  cs.metrics_cost_micros / 1000000 AS Cost
FROM
  `DATASET.sa_CampaignStats_CUSTOMER_ID` cs
LEFT JOIN
  `DATASET.IdMapping_CUSTOMER_ADVERTISER_ID` customer_id_mapping
ON cs.customer_id = customer_id_mapping.new_id
LEFT JOIN
  `DATASET.IdMapping_CAMPAIGN_ADVERTISER_ID` campaign_id_mapping
ON cs.campaign_id = campaign_id_mapping.new_id
WHERE cs._DATA_DATE = 'NEW_DATA_DATE'
UNION ALL
SELECT
  CAST(accountId AS INT) AS CustomerID,
  CAST(campaignId AS INT) AS CampaignID,
  cs.clicks AS Clicks,
  cs.cost AS Cost
FROM
  `DATASET.CampaignStats_ADVERTISER_ID` cs
WHERE cs._DATA_DATE = 'OLD_DATA_DATE')
GROUP BY
1, 2
ORDER BY
1, 2

替换以下内容:

  • DATASET:数据集的名称
  • CUSTOMER_ID:Search Ads 360 客户 ID
  • ADVERTISER_ID:Search Ads 360 广告客户 ID
  • NEW_DATA_DATE:新版 Search Ads 360 表的数据日期
  • OLD_DATA_DATE:旧版 Search Ads 360 表的数据日期

潜在的配额问题

Search Ads 360 Reporting API 分配了一个 Google 项目可发送的请求数量的每日配额。如果您使用的项目同时用于 BigQuery Data Transfer Service 和其他服务,则所有服务共享相同的配额,并且可能会在任何服务中达到配额上限。

为了避免这一潜在问题并且不影响现有工作流,请考虑以下选项:

  • 为 BigQuery Data Transfer Service 设置单独的项目。 跨项目表联接可能如下所示:

      #standardSQL
      select count(a.item1)
      from (select item1, item2 from project-A.data_set_a.table_name_a) a
      inner join
      (select item3, item4 from project-B.data_set_b.table_name_b) b
      on a.item1 = b.item3

  • Search Ads 360 支持团队联系并申请更多配额。