设置 API 访问权限

以下说明介绍了如何通过 SDK 或 REST 设置对 Data Manager API 的访问权限。

前提条件

在使用 Data API 之前,请确保您已完成以下操作:

  1. 一个 Google Cloud 项目
  2. 在您的 Google Cloud 项目中拥有 serviceusage.services.enable 权限或拥有包含该权限的角色的 Google 账号。例如,roles/ownerroles/serviceusage.serviceUsageAdmin 都包含 serviceusage.services.enable 权限。如需查看您的权限,请参阅查看当前访问权限

启用 API

如果您尚未启用 Data Manager API,请点击启用 Data Manager API,或按照说明手动执行此步骤。

启用 Data Manager API

如果您找不到 Data Manager API 或启用 Data Manager API 失败,请验证您的 Google 账号是否满足前提条件

设置身份验证

除了 API 密钥之外,您还可以使用 Google 提供的任何身份验证方法。我们建议您查看为您的使用场景选择合适的身份验证方法,以确定哪种方法适合您的使用场景。

两种常见的身份验证方法是用户账号服务账号

  • 用户账号:代表直接与 Google API 和服务进行交互的人员。
  • 服务账号: 将应用(而不是人)表示为用户。它们可以让你的应用管理身份验证和授权。例如,如果应用需要访问 Google Cloud 资源。

您的集成可以使用应用默认凭据 (ADC) 从环境中自动查找凭据,这样您就不必更改客户端代码来进行身份验证。

选择用户账号服务账号模拟来设置 ADC:

以下是使用用户账号凭据进行身份验证的步骤:

  1. 为您的项目配置 Google Auth Platform 设置。

    1. 在 Google Cloud 控制台中打开 品牌页面

    2. 选择您的项目。

    3. 填写表格并点击创建

  2. 由于数据管理器 API 的作用域是 敏感作用域,因此需要执行以下步骤:

    1. 前往项目的数据访问权限设置。

    2. 点击添加或移除作用域

    3. 在权限范围列表中,勾选 Data Manager API 旁边的复选框,然后点击更新

    4. 点击保存

    5. 前往 Google Cloud 控制台中的 受众群体,并更新 发布状态用户类型。了解更多关于这些设置的信息,请参阅管理应用受众

  3. 单击 创建 OAuth2 客户端 在项目中创建 OAuth2 客户端,或按照 说明 创建 桌面 OAuth2 客户端。

    创建 OAuth2 客户端

    在最后一步中,点击 DOWNLOAD CLIENT CONFIGURATION,并记下您选择的下载位置。

  4. 运行以下命令生成本地 ADC 文件。此命令会启动一个 Web 流程,系统会提示您登录与该 API 搭配使用的 Google 账号。

    PATH_TO_CLIENT_JSON 替换为您下载的 JSON 文件的名称。

    gcloud auth application-default login \
      --scopes="https://www.googleapis.com/auth/datamanager,https://www.googleapis.com/auth/cloud-platform" \
      --client-id-file="PATH_TO_CLIENT_JSON"
    
  5. 请使用以下命令确认凭据设置是否正确。 如果成功,该命令会将访问令牌输出到控制台。

    gcloud auth application-default print-access-token
    

要了解有关应用身份验证和凭据的更多信息,请参阅 Google 的身份验证方法应用程序默认凭据的工作原理

设置操作账号访问权限

授予与您的用户账号关联的电子邮件对 Destination 的访问权限。

  • 如果使用的是 Google Ads 账号或数据合作伙伴账号,请按照说明将用户的电子邮件地址添加到相应账号。
  • 如果使用 Display & Video 360 账号,请按照说明将用户的电子邮件地址添加到该账号中。

设置相应编程语言的 SDK

在本地计算机上,安装您选择的 SDK:

REST

  1. 请使用您的账号和目的地的值更新以下示例中的占位符,例如 OPERATING_ACCOUNT_PRODUCTOPERATING_ACCOUNT_IDAUDIENCE_ID
  2. PROJECT_ID 替换为您的 Google Cloud ID。
  3. 将示例复制到命令行以发送请求。

    如果您不是通过已建立的产品链接访问 operatingAccount,请删除 destinations 中条目的 linkedAccount 属性。

    #!/bin/bash
    
    # Uses gcloud to get an access token. If the Application Default
    # Credentials aren't for a service account, the command that specifies
    # --scopes fails. This sample falls back to the command without the
    # --scopes argument.
    DATA_MANAGER_ACCESS_TOKEN="$(gcloud auth application-default print-access-token --scopes=https://www.googleapis.com/auth/datamanager || \
      gcloud auth application-default print-access-token)"
    
    # Fetches and prints the scope information for the access token. If you
    # get scope-related errors when you send the request in the next step,
    # verify that this output includes the Data Manager API scope:
    #   https://www.googleapis.com/auth/datamanager
    curl https://www.googleapis.com/oauth2/v1/tokeninfo?access_token="${DATA_MANAGER_ACCESS_TOKEN}"
    
    # Sends the request.
    curl -X POST "https://datamanager.googleapis.com/v1/audienceMembers:ingest" \
      --header "Authorization: Bearer ${DATA_MANAGER_ACCESS_TOKEN}" \
      --header "x-goog-user-project: PROJECT_ID" \
      --header "Content-Type: application/json" \
      --data @- <<EOF
    {
      "destinations": [
        {
          "operatingAccount": {
            "accountType": "OPERATING_ACCOUNT_TYPE",
            "accountId": "OPERATING_ACCOUNT_ID"
          },
          "loginAccount": {
            "accountType": "LOGIN_ACCOUNT_TYPE",
            "accountId": "LOGIN_ACCOUNT_ID"
          },
          "linkedAccount": {
            "accountType": "LINKED_ACCOUNT_TYPE",
            "accountId": "LINKED_ACCOUNT_ID"
          },
          "productDestinationId": "AUDIENCE_ID"
        }
      ],
      "audienceMembers": [
        {
          "userData": {
            "userIdentifiers": [
              {
                "emailAddress": "07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3"
              },
              {
                "emailAddress": "1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7"
              }
            ]
          }
        },
        {
          "userData": {
            "userIdentifiers": [
              {
                "emailAddress": "2ef46c4214c3fc1b277a2d976d55194e12b899aa50d721f28da858c7689756e3"
              },
              {
                "emailAddress": "54e410b14fa652a4b49b43aff6eaf92ad680d4d1e5e62ed71b86cd3188385a51"
              },
              {
                "emailAddress": "e8bd3f8da6f5af73bec1ab3fbf7beb47482c4766dfdfc94e6bd89e359c139478"
              }
            ]
          }
        },
        {
          "userData": {
            "userIdentifiers": [
              {
                "emailAddress": "05bb62526f091b45d20e243d194766cca8869137421047dc53fa4876d111a6f0"
              },
              {
                "emailAddress": "f1fcde379f31f4d446b76ee8f34860eca2288adc6b6d6c0fdc56d9eee75a2fa5"
              }
            ]
          }
        },
        {
          "userData": {
            "userIdentifiers": [
              {
                "emailAddress": "83a834cc5327bc4dee7c5408988040dc5813c7662611cd93b707aff72bf7d33f"
              },
              {
                "emailAddress": "223ebda6f6889b1494551ba902d9d381daf2f642bae055888e96343d53e9f9c4"
              }
            ]
          }
        }
      ],
      "consent": {
        "adUserData": "CONSENT_GRANTED",
        "adPersonalization": "CONSENT_GRANTED"
      },
      "encoding": "HEX",
      "termsOfService": {
        "customerMatchTermsOfServiceStatus": "ACCEPTED"
      },
      "validateOnly": true
    }
    EOF
    

.NET

安装客户端库

请按照 .NET 客户端库安装指南 中的说明,在项目中添加对客户端库的依赖项。

(可选)获取实用程序库和代码示例。

  1. 下载并解压 data-manager-dotnet.tar.gz

  2. 在你的 .NET 项目中,声明对实用程序库的 ProjectReference 依赖项。将 PATH_TO_UTILITY_LIBRARY 替换为您从 data-manager-dotnet.tar.gz 中提取 data-manager-dotnet 目录的位置。

    <ProjectReference Include="PATH_TO_UTILITY_LIBRARY\Google.Ads.DataManager.Util\src\Google.Ads.DataManager.Util.csproj" />
    
  3. 如需格式化数据,请使用 .NET 项目中的 Formatter 实用程序。

  4. 浏览 samples 子目录中的代码示例。

    切换到 samples 目录,并使用 dotnet run 获取可用示例的列表。

    dotnet run
    

    运行示例时传递 --help 实参,以打印包含预期形参的用法语句。

    dotnet run -- ingest-audience-members --help
    

    为了帮助您开始使用一些示例数据,请使用位于 samples/sampledata/audience_members_1.csv 的文件。

Java

安装客户端库

  1. 下载并解压 google-cloud-ads-datamanager-v1-java.tar.gz
  2. 进入 google-cloud-ads-datamanager-v1-java 目录。
  3. 运行以下命令,将库构建并发布到本地 Maven 存储库,以便在 Maven 或 Gradle 中使用。

    ./gradlew install
    
  4. 在你的 Java 项目中,声明对数据管理器 API 库的依赖。

    Gradle:

    implementation 'com.google.cloud:gapic-google-cloud-ads-datamanager-v1-java:0.1.4'
    

    Maven:

    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>gapic-google-cloud-ads-datamanager-v1-java</artifactId>
      <version>0.1.4</version>
    </dependency>
    

(可选)获取实用程序库和代码示例。

  1. 克隆 GitHub 仓库

    git clone https://github.com/googleads/data-manager-java.git
    
  2. 进入 data-manager-java 目录。

  3. 构建实用程序库并将其发布到本地 Maven 仓库。

    ./gradlew data-manager-util:install
    
  4. 在你的 Java 项目中,声明对实用程序库的依赖关系。

    Gradle:

    implementation 'com.google.api-ads:data-manager-util:0.1.0'
    

    Maven:

    <dependency>
       <groupId>com.google.api-ads</groupId>
       <artifactId>data-manager-util</artifactId>
       <version>0.1.0</version>
    </dependency>
    
  5. 要格式化和加密数据,请在 Java 项目中使用 UserDataFormatterEncrypter 实用程序。

  6. 浏览 data-manager-samples 子目录中的代码示例或 GitHub 上的 。 如需从命令行运行示例,请使用 Gradle run 任务。

    例如,以下命令运行 IngestAudienceMembers 示例并打印用法说明:

    ./gradlew data-manager-samples:run \
       --args='IngestAudienceMembers --help'
    

    为了帮助您开始使用一些示例数据,请使用位于 data-manager-samples/src/main/resources/sampledata/audience_members_1.csv 的文件。

Node.js

安装客户端库

  1. 下载并解压 ads-datamanager-v1-nodejs.tar.gz
  2. 进入 ads-datamanager-v1-nodejs 目录。
  3. 运行以下命令,将客户端库编译并打包到 .tgz 文件中,以便与 npm 一起使用。

    npm pack
    

    该命令会生成一个名为 google-cloud-datamanager-0.1.4.tgz 的归档。请记下文件位置,以便在后续步骤中使用。

  4. 在 Node.js 项目中,通过为 google-cloud-datamanager-0.1.4.tgz 文件的完整路径和文件名添加 dependencies 条目,声明对 Data Manager API 客户端库的依赖项。

    {
       "dependencies": {
          ...
          "@google-cloud/datamanager": "file:PATH_TO_CLIENT_LIBRARY/google-cloud-datamanager-0.1.4.tgz",
          ...
       }
    }
    

可选:获取实用程序库和代码示例。

  1. 下载并解压 data-manager-node.tar.gz
  2. 进入 data-manager-node 目录。
  3. 切换到 util 目录:

    cd util
    
  4. 运行以下命令,将实用程序库编译并打包到 .tgz 文件中,以便与 npm 一起使用。

    npm pack
    

    该命令会生成一个名为 google-ads-datamanager-util-0.1.0.tgz 的归档文件。请记下文件位置,以便在后续步骤中使用。

  5. 在 Node.js 项目中,通过添加 dependencies 条目来声明对 Data Manager API 实用程序库的依赖项,该条目包含 google-ads-datamanager-util-0.1.0.tgz 文件的完整路径和文件名。

    {
       "dependencies": {
          ...
          "@google-ads/data-manager-util": "file:PATH_TO_UTILITY_LIBRARY/google-ads-datamanager-util-0.1.0.tgz",
          ...
       }
    }
    

    如需格式化数据,请在 Node.js 项目中使用 UserDataFormatter 实用程序。

  6. 浏览 samples 子目录中的代码示例。请按照以下步骤运行示例:

    1. google-cloud-datamanager-0.1.4.tgz 复制到 data-manager-node 目录的父目录。

    2. 导航至 data-manager-node 下的 samples 目录。

    3. 运行以下命令编译示例。

      npm run compile
      
    4. 运行示例,并传递任何必需的实参。运行示例时传递 --help 实参,以打印包含预期形参的用法语句。

      例如,以下命令会运行 ingest_audience_members 示例并输出使用情况声明:

      npx ts-node audiences/ingest_audience_members.ts --help
      

    为了帮助您开始使用一些示例数据,请使用位于 samples/sampledata/audience_members_1.csv 的文件。

PHP

安装客户端库

  1. 下载并解压 google-cloud-ads-datamanager-v1-php.tar.gz
  2. 进入 google-cloud-ads-datamanager-v1-php 目录。
  3. 运行以下命令来解决库的依赖关系:

    composer update --prefer-dist
    
  4. 在同一主机上 PHP 项目的 composer.json 文件中,按照以下步骤声明对 Data Manager API 库的依赖项:

    1. 添加指向 google-cloud-ads-datamanager-v1-php 目录位置的 repositories 部分。

      "repositories" : [
         {
            "type" : "path",
            "url" : "PATH_TO_CLIENT_LIBRARY"
         }
      ]
      
    2. 声明对数据管理器 API 库的依赖关系。

      "require": {
         "googleads/data-manager": "0.1.4"
      }
      

(可选)获取实用程序库和代码示例。

  1. 下载并解压 data-manager-php.tar.gz
  2. 进入 data-manager-php 目录。
  3. 运行以下命令来解决库的依赖关系:

    composer update --prefer-dist
    
  4. 在同一主机上的 PHP 项目的 composer.json 文件中,按照以下步骤声明对实用程序库的依赖项:

    1. repositories 部分添加一个指向 data-manager-php 目录位置的条目。

      "repositories" : [
         {
            "type" : "path",
            "url" : "PATH_TO_UTILITY_LIBRARY"
         }
      ]
      
    2. 声明对实用程序库的依赖关系。

      "require": {
         "googleads/data-manager-util": "@dev"
      }
      

    要格式化数据,请在 PHP 项目中使用 Formatter 工具。

  5. 浏览 samples 子目录中的代码示例。请按照以下步骤运行示例:

    1. 进入 samples 目录。

    2. DATA_MANAGER_PHP_LIB 环境变量设置为您解压客户端库的路径。

      export DATA_MANAGER_PHP_LIB="PATH_TO_CLIENT_LIBRARY"
      
    3. 运行以下命令来解决库的依赖关系:

      composer update --prefer-dist
      
    4. 运行示例,并传递任何必需的实参。运行示例时传递 --help 参数,以打印带有预期参数的使用说明。

    如需帮助您开始使用一些示例数据,请使用 samples/sampledata/audience_members_1.csv 中的文件。

Python

安装客户端库

请按照 Python 客户端库安装指南 中的说明,在您的项目中添加对 google-ads-datamanager 客户端库的依赖项。

(可选)获取实用程序库和代码示例。

  1. 下载并解压 data-manager-python.tar.gz
  2. 进入 data-manager-python 目录。
  3. 如需在 Python 环境中安装实用程序库,请运行以下命令:

    pip install .
    
  4. 在你的 Python 项目中,声明对实用程序库的依赖关系。 例如,如果在项目中使用 requirements.txt 文件,请将以下行添加到该文件中:

    google-ads-data-manager-util=0.2.0
    
  5. 如需格式化和加密数据,请使用 Python 项目中的 FormatterEncrypter 实用程序。

  6. 浏览 samples 子目录中的代码示例。要运行示例,请安装必要的依赖项:

    pip install .[samples]
    

    运行示例时传递 --help 参数,以打印带有预期参数的使用说明。

    为了帮助您开始使用一些示例数据,请使用位于 samples/sampledata/audience_members_1.csv 的文件。

Ruby

安装客户端库

请按照 Ruby 客户端库安装指南 中的说明,在您的项目中添加对客户端库的依赖项。

后续步骤