使用 Azure 数据工厂 或 Synapse Analytics 从 Google Ads 复制数据

适用于: Azure 数据工厂 Azure Synapse Analytics

本文概述了如何在 Azure 数据工厂 或 Synapse Analytics 管道中使用 Copy Activity 从 Google Ads 复制数据。 基于提供复制活动一般概述的复制活动概述一文。

支持的功能

以下功能支持此 Google Ads 连接器:

支持的功能 IR
复制操作 (source/-) (1) (2)
查询活动 (1) (2)

(1) Azure集成运行时 (2) 自承载集成运行时

如需可以用作源/接收器的数据存储的列表,请参阅支持的数据存储表。

该服务提供内置的驱动程序用于启用连接,因此使用此连接器无需手动安装任何驱动程序。

入门

若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:

使用 UI 创建到 Google Ads 的链接服务

使用以下步骤在 Azure 门户 UI 中创建指向 Google Ads 的链接服务。

  1. 浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡,并选择“链接服务”,然后单击“新建”:

  2. 搜索 Google Ads 并选择 Google Ads 连接器。

    Google Ads 连接器的屏幕截图。

  3. 配置服务详细信息、测试连接并创建新的链接服务。

    Google Ads 的链接服务配置的屏幕截图。

连接器配置详细信息

以下部分提供了用于定义特定于 Google Ads 连接器的数据工厂实体属性的详细信息。

连接的服务属性

Google Ads 链接服务支持以下属性:

属性 描述 必需
类型 type 属性必须设置为:GoogleAdWords 是
googleAdsApiVersion 选择推荐的驱动程序版本时使用的 Google Ads API 版本。 有关 API 版本信息,可参阅此文章。 是
clientCustomerID 需用于提取报表数据的 Ads 帐户的客户端客户 ID。 是
登录客户ID 用于获取特定客户报表数据的 Google Ads 经理帐户的客户 ID。 否
开发者令牌 (developerToken) 与用于授予对 Ads API 的访问权限的管理员帐户相关联的开发人员令牌。 可以选择将此字段标记为 SecureString 以安全存储,或将密码存储在 Azure 密钥保管库 中,并在执行数据复制时让复制活动从中提取 - 详细信息请参见 将凭据存储到 密钥保管库。 是
认证类型 用于身份验证的 OAuth 2.0 身份验证机制。
允许的值为:ServiceAuthentication、UserAuthentication。
ServiceAuthentication 只能在自托管 IR 上使用。
是
对于UserAuthentication:
refreshToken 从 Google 获得的刷新令牌,用于授权访问 Ads 以进行用户身份验证。 可以选择将此字段标记为 SecureString 以安全存储,或将密码存储在 Azure 密钥保管库 中,并在执行数据复制时让复制活动从中提取 - 详细信息请参见 将凭据存储到 密钥保管库。 否
clientId Google 应用程序的客户端 ID,用于获取刷新令牌。 可以选择将此字段标记为 SecureString 以安全存储,或将密码存储在 Azure 密钥保管库 中,并在执行数据复制时让复制活动从中提取 - 详细信息请参见 将凭据存储到 密钥保管库。 否
clientSecret Google 应用程序的客户端机密,用于获取刷新令牌。 可以选择将此字段标记为 SecureString 以安全存储,或将密码存储在 Azure 密钥保管库 中,并在执行数据复制时让复制活动从中提取 - 详细信息请参见 将凭据存储到 密钥保管库。 否
对于服务认证:
电子邮件 用于服务身份验证的服务账号电子邮件 ID,只能在自托管 IR 上使用。 否
私钥 用于 ServiceAuthentication 建议的驱动程序版本的服务私钥,该密钥只能在自托管的 IR 中使用。 可以选择将此字段标记为 SecureString 以安全存储,或将密码存储在 Azure 密钥保管库 中,并在执行数据复制时让复制活动从中提取 - 详细信息请参见 将凭据存储到 密钥保管库。 否
对于使用旧版驱动程序的 ServiceAuthentication:
电子邮件 用于服务身份验证的服务账号电子邮件 ID,只能在自托管 IR 上使用。 否
keyFilePath .p12 或 .json 密钥文件的完整路径,用于验证服务帐户的电子邮件地址,并且只能在自托管的 IR 上使用。 否
受信证书路径 包含受信任 CA 证书(通过 TLS 进行连接时用来验证服务器)的 .pem 文件的完整路径。 只有在自承载 IR 上使用 TLS 时才能设置此属性。 默认值是随 IR 一起安装的 cacerts.pem 文件。 否
useSystemTrustStore 指定是使用系统信任存储中的 CA 证书还是使用指定 PEM 文件中的 CA 证书。 默认值是 false。 否

示例:

{
    "name": "GoogleAdsLinkedService",
    "properties": {
        "type": "GoogleAdWords",
        "typeProperties": {
            "clientCustomerID": "<clientCustomerID>",
            "loginCustomerID": "<loginCustomerID>",
            "developerToken": {
                "type": "SecureString",
                "value": "<developerToken>"
            },
            "authenticationType": "UserAuthentication",
            "refreshToken": {
                "type": "SecureString",
                "value": "<refreshToken>"
            },
            "clientId": {
                "type": "SecureString",
                "value": "<clientId>"
            },
            "clientSecret": {
                "type": "SecureString",
                "value": "<clientSecret>"
            },
            "googleAdsApiVersion": "v14"
        }
    }
}

数据集属性

有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集一文。 本部分提供 Google Ads 数据集支持的属性列表。

要从 Google Ads 复制数据,请将数据集的 type 属性设置为GoogleAdWordsObject。 支持以下属性:

属性 描述 必需
类型 数据集的 type 属性必须设置为:GoogleAdWordsObject 是
tableName 表的名称。 使用旧版驱动程序时,请指定此属性。 否(如果在活动源中指定了"query")

示例

{
    "name": "GoogleAdsDataset",
    "properties": {
        "type": "GoogleAdWordsObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<GoogleAds linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

复制活动 属性

有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供 Google Ads 数据源支持的属性列表。

要从 Google Ads 复制数据,请将复制活动中的源类型设置为GoogleAdWordsSource。 复制活动source部分支持以下属性:

属性 描述 必需
类型 复制活动的源的类型属性必须设置为:GoogleAdWordsSource 是
查询 使用 GAQL 查询读取数据。 例如:SELECT campaign.id FROM campaign。 否(如果数据集中指定了“tableName”)

示例:

"activities":[
    {
        "name": "CopyFromGoogleAds",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<GoogleAds input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "GoogleAdWordsSource",
                "query": "SELECT campaign.id FROM campaign"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

查找活动属性

若要了解有关属性的详细信息,请查看 Lookup 活动。

升级 Google Ads 驱动程序版本

要升级 Google Ads 驱动程序版本,需要更新链接服务,并了解如何从 SQL 迁移到 Google Ads 查询语言 (GAQL)。

更新链接服务配置

在“编辑链接服务”页中,选择“驱动程序版本”下的“推荐”,并参考链接服务属性来配置链接服务。

从 SQL 迁移到 GAQL

从 SQL 迁移到 GAQL 时,转换查询语句和字段名。

查询语句

如果在复制活动源或引用旧版 Google Ads 关联服务的查找活动中使用了 SQL 查询,您需要将其更新为 GAQL 查询。

与 SQL 相比,GAQL 中的查询由六种类型的子句组成:

  • SELECT
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT
  • PARAMETERS

要获取 GAQL 的简介,请转到Google Ads 查询语言语法。

以以下 SQL 语句为例:

SELECT *|FieldName FROM ResourceName WHERE FieldName Operator Value

可以按照以下指南将 SQL 语句转换为相应的 GAQL 语句:

  1. 如果在*子句后使用SELECT(星号),需要指定所有必填字段以代替星号,因为 GAQL 不支持SELECT *。 转到此文章以查看特定资源中的所有可选字段。
  2. 如果在SELECT子句之后使用字段名称,需要将名称转换为 GAQL 中的相应字段名称,因为它们具有不同的命名约定。 例如,SQL 查询语句中的字段名称campaign_id应转换为 GAQL 中的campaign.id。 有关字段名称转换的更多详细信息,请参阅字段名称。
  3. 资源名称可以保持原样,除非其大小写与 此处指定的不一致。
  4. WHERE 子句应根据 GAQL 语法 进行更新,因为 GAQL 支持的运算符与 SQL 不一致,字段名称也应按照第二点中所述进行转换。

下面是 Google 提供的两种非常有用的工具,在生成相应的 GAQL 查询语句时,强烈建议使用这些工具:

字段名称

SQL 中使用的字段名称与 GAQL 不一致。 还需要了解从 SQL 中的字段名称到 GAQL 中的字段名称的转换规则。 转换规则可以如下汇总:

  • 如果字段名称属于资源,SQL 中的下划线 (_) 将更改为 GAQL 中的点 (.)。 对于句点之间的单词,SQL 中使用的 camelCase 类型语句将更改为独立的单词,并在这些单词之间添加下划线。 SQL 中 PascalCase 类型的第一个字符串将更改为 GAQL 中的相应资源名称。

  • 如果字段名称属于段或指标,应在 GAQL 中添加前缀segments.或metrics.,然后按照第一个点中所述的相同规则转换名称。

下面是字段名称转换的具体示例:

类别 SQL 中的字段名称 GAQL 中的字段名称
资源字段 Campaign_startDate campaign.start_date
资源字段 Customer_conversionTrackingSetting_conversionTrackingStatus customer.conversion_tracking_setting.conversion_tracking_status
Segments DayOfWeek segments.day_of_week
指标 VideoViews metrics.video_views

下表显示了使用推荐驱动程序版本和旧版驱动程序版本的 Google Ads 之间的功能差异。

建议的驱动程序版本 旧版驱动程序版本
支持指定 Google Ads API 版本。 不支持指定 Google Ads API 版本。
ServiceAuthentication 支持两个属性:
  •电子邮件
  • 私钥
ServiceAuthentication 支持四个属性:
  •电子邮件
  • keyFilePath
  • trustedCertPath(可信证书路径)
  • 使用系统信任库 (useSystemTrustStore)
不支持在数据集中选择表。 支持在数据集中选择表并在复制活动中查询表。
支持 GAQL 语法作为查询语言。 支持 SQL 语法作为查询语言。
输出列名称与 Google Ads 中定义的字段名称相同。 输出列名称与 Google Ads 中定义的字段名称不匹配。
以下映射用于从 Google Ads 数据类型到服务内部使用的中间数据类型。

float -> float
int32 -> int
int64 -> long
以下映射用于从 Google Ads 数据类型到服务内部使用的中间数据类型。

float -> 字符串
int32 -> 字符串
int64 -> 字符串

将 Google AdWords 连接器升级到 Google Ads 连接器

按照以下步骤将 Google AdWords 链接服务升级到最新的 Google Ads 链接服务:

  1. 选择 推荐 作为驱动程序版本,以新建 Google Ads 链接服务,并通过参考链接服务属性来配置该服务。

  2. 更新引用旧版 Google AdWords 链接服务的管道。 考虑到 Google Ads 链接服务仅支持通过查询来复制数据,因此:

    1. 如果管道直接从 Google AdWords 报表中检索数据,请在下表中找到 Google Ads 的相应资源名称,并使用此工具生成查询。

      Google AdWords 报表 Google Ads 资源
      账户表现报告 (ACCOUNT_PERFORMANCE_REPORT) 客户
      广告表现报告 广告组广告
      广告组绩效报告 ad_group
      年龄范围绩效报告 年龄范围视图
      受众表现报告 campaign_audience_view,ad_group_audience_view
      自动展示位置绩效报告 分组布局视图
      竞标目标执行情况报告 竞价策略
      预算绩效报告 活动预算
      呼叫指标呼叫详细报告 call_view
      活动广告时间表目标报告 广告日程视图
      活动标准报告 活动标准
      CAMPAIGN_PERFORMANCE_REPORT(广告活动绩效报告) 活动
      活动共享设置报告 活动共享集合
      活动位置目标报告 位置视图
      Select_PERFORMANCE_REPORT 选择视图
      展示关键词表现报告 显示关键词视图
      显示主题性能报告 主题视图
      性别表现报告 性别视图
      地理性能报告 geographic_view,user_location_view
      无关键词查询报告 动态搜索广告搜索词视图
      关键词性能报告 关键词视图
      标签报告 标签
      登陆页面报告 landing_page_view,expanded_landing_page_view
      PAID_ORGANIC_QUERY_REPORT 付费自然搜索词视图
      家长状态性能报告 父母状态视图
      PLACEHOLDER_FEED_ITEM_REPORT(占位符:提要项目报告) feed_item,feed_item_target
      PLACEHOLDER_REPORT feed_placeholder_view
      广告位绩效报告 managed_placement_view (托管位置视图)
      产品分区报告 产品组视图
      搜索查询性能报告 搜索词视图
      共享设置标准报告 共享标准
      共享集报告 shared_set
      购物性能报告 购物性能视图
      顶部内容性能报告 Google Ads API 中不再可用。
      URL_PERFORMANCE_REPORT 详细放置视图
      用户广告距离报告 视距
      视频性能报告 视频
  3. 请注意,此升级存在一些限制:

    1. GAQL 并不支持 AWQL 中的所有报表类型。
    2. 并非所有 AWQL 查询都已完全转换为 GAQL 查询。

为了获取复制活动支持的数据源和汇集列表,请参阅支持的数据存储。