开始使用

您可以使用 Google Ad Manager API 构建具有以下功能的应用:管理广告资源、创建订单、生成报表等。

Ad Manager API 使用 SOAP。为了帮助您顺利上手,我们提供了 Java、.NET、Python、PHP 和 Ruby 语言的客户端库

如需发出第一个 API 请求,请按以下步骤操作:

获取对 Ad Manager 广告资源网的访问权限

注册一个 Ad Manager 帐号(如果您没有的话)。如果您想在单独的环境中测试 API,还可以创建一个测试广告联盟。请注意,您不需要使用 AdSense 帐号进行测试。

记下您的广告资源网代码。当您登录自己的网络时,可以在网址中找到此信息。例如,在网址 https://admanager.google.com/1234#home 中,1234 是您的网络代码。

创建身份验证凭据

您必须使用 OAuth 2.0 验证所有 Ad Manager API 请求。以下步骤涵盖了访问您自己的 Ad Manager 数据的用例。如需了解详情和其他选项,请参阅身份验证

  1. 打开 Google API 控制台“凭据”页面

  2. 从项目菜单中,选择创建项目,输入项目名称并根据需要修改提供的项目 ID。点击创建

  3. 在“凭据”页面上,选择创建凭据,然后选择服务帐号密钥

  4. 选择新的服务帐号,然后选择 JSON 作为密钥类型。

  5. 点击创建以下载包含私钥的文件。

配置 Ad Manager 广告资源网

  1. 登录 Google Ad Manager。

  2. 在边栏中,依次点击管理 > 全局设置

  3. 常规设置 > API 访问权限下,点击滑块切换到已启用

  4. 点击页面底部的保存按钮。

设置客户端

下载一个 Ad Manager 客户端库。这些库提供封装容器函数和功能,有助于更方便快捷地开发应用。

以下标签页提供了有关使用各种具有客户端库的语言进行编码的快速入门。

Java

下面的基本示例展示了如何使用 Java 客户端库。如需了解更详细的用法信息,请参阅客户端库发行版中的 README 文件。

  1. 设置凭据

    在 shell 中运行以下命令:

    curl https://raw.githubusercontent.com/googleads/googleads-java-lib/main/examples/admanager_axis/src/main/resources/ads.properties -o ~/ads.properties
    打开 ~/ads.properties 文件并填充以下字段:
    [...]
    api.admanager.applicationName=INSERT_APPLICATION_NAME_HERE
    api.admanager.jsonKeyFilePath=INSERT_PATH_TO_JSON_KEY_FILE_HERE
    api.admanager.networkCode=INSERT_NETWORK_CODE_HERE
    [...]
  2. 指定依赖项

    修改 pom.xml 文件,并将以下代码添加到 dependencies 标记中。您可在 GitHub 上找到最新版本号。

    <dependency>
      <groupId>com.google.api-ads</groupId>
      <artifactId>ads-lib</artifactId>
      <version>RELEASE</version>
    </dependency>
    <dependency>
      <groupId>com.google.api-ads</groupId>
      <artifactId>dfp-axis</artifactId>
      <version>RELEASE</version>
    </dependency>

  3. 编写代码并发出请求!

    import com.google.api.ads.common.lib.auth.OfflineCredentials;
    import com.google.api.ads.common.lib.auth.OfflineCredentials.Api;
    import com.google.api.ads.admanager.axis.factory.AdManagerServices;
    import com.google.api.ads.admanager.axis.v202402.Network;
    import com.google.api.ads.admanager.axis.v202402.NetworkServiceInterface;
    import com.google.api.ads.admanager.lib.client.AdManagerSession;
    import com.google.api.client.auth.oauth2.Credential;
    
    public class App {
      public static void main(String[] args) throws Exception {
        Credential oAuth2Credential = new OfflineCredentials.Builder()
            .forApi(Api.AD_MANAGER)
            .fromFile()
            .build()
            .generateCredential();
    
        // Construct an AdManagerSession.
        AdManagerSession session = new AdManagerSession.Builder()
            .fromFile()
            .withOAuth2Credential(oAuth2Credential)
            .build();
    
        // Construct a Google Ad Manager service factory, which can only be used once per
        // thread, but should be reused as much as possible.
        AdManagerServices adManagerServices = new AdManagerServices();
    
        // Retrieve the appropriate service
        NetworkServiceInterface networkService = adManagerServices.get(session,
            NetworkServiceInterface.class);
    
        // Make a request
        Network network = networkService.getCurrentNetwork();
    
        System.out.printf("Current network has network code '%s' and display" +
            " name '%s'.%n", network.getNetworkCode(), network.getDisplayName());
      }
    }
    

Python

下面的基本示例展示了如何使用 Python 客户端库。Python 客户端库支持 Python 3.6 及更高版本。如需更详细的使用信息,请参阅客户端库发行版中的 README 文件。

  1. 安装库并设置凭据。

    在 shell 中运行以下命令:

    pip install googleads
    curl https://raw.githubusercontent.com/googleads/googleads-python-lib/main/googleads.yaml \
         -o ~/googleads.yaml
    
  2. 设置您的 ~/googleads.yaml 文件。

    填写以下字段:

    ad_manager:
      application_name: INSERT_APPLICATION_NAME_HERE
      network_code: INSERT_NETWORK_CODE_HERE
      path_to_private_key_file: INSERT_PATH_TO_FILE_HERE
    
  3. 运行一些代码并发出请求。
    # Import the library.
    from googleads import ad_manager
    
    # Initialize a client object, by default uses the credentials in ~/googleads.yaml.
    client = ad_manager.AdManagerClient.LoadFromStorage()
    
    # Initialize a service.
    network_service = client.GetService('NetworkService', version='v202402')
    
    # Make a request.
    current_network = network_service.getCurrentNetwork()
    
    print("Current network has network code '%s' and display name '%s'." %
            (current_network['networkCode'], current_network['displayName']))
    

PHP

下面的基本示例展示了如何使用 PHP 客户端库

  1. 安装库并设置凭据。

    在 shell 中运行以下命令,以安装客户端库并将 adsapi_php.ini 文件下载到您的主目录:

    composer require googleads/googleads-php-lib
    curl https://raw.githubusercontent.com/googleads/googleads-php-lib/main/examples/AdManager/adsapi_php.ini -o ~/adsapi_php.ini
  2. 设置 ~/adsapi_php.ini 文件。

    填写以下字段:

    [AD_MANAGER]
    networkCode = "INSERT_NETWORK_CODE_HERE"
    applicationName = "INSERT_APPLICATION_NAME_HERE"
    
    [OAUTH2]
    jsonKeyFilePath = "INSERT_ABSOLUTE_PATH_TO_OAUTH2_JSON_KEY_FILE_HERE"
    scopes = "https://www.googleapis.com/auth/dfp"
    
  3. 运行一些代码并发出请求!
    <?php
    require 'vendor/autoload.php';
    use Google\AdsApi\AdManager\AdManagerSession;
    use Google\AdsApi\AdManager\AdManagerSessionBuilder;
    use Google\AdsApi\AdManager\v202402\ApiException;
    use Google\AdsApi\AdManager\v202402\ServiceFactory;
    use Google\AdsApi\Common\OAuth2TokenBuilder;
    
    // Generate a refreshable OAuth2 credential for authentication.
    $oAuth2Credential = (new OAuth2TokenBuilder())
        ->fromFile()
        ->build();
    // Construct an API session configured from a properties file and the OAuth2
    // credentials above.
    $session = (new AdManagerSessionBuilder())
        ->fromFile()
        ->withOAuth2Credential($oAuth2Credential)
        ->build();
    
    // Get a service.
    $serviceFactory = new ServiceFactory();
    $networkService = $serviceFactory->createNetworkService($session);
    
    // Make a request
    $network = $networkService->getCurrentNetwork();
    printf(
        "Network with code %d and display name '%s' was found.\n",
        $network->getNetworkCode(),
        $network->getDisplayName()
    );
    

.NET

下面的基本示例展示了如何使用 .NET 客户端库

  1. 创建新项目

    打开 Visual Studio 并创建一个新项目(控制台应用)。

  2. 向项目添加所需的库引用

    Google.Dfp 添加 Nuget 依赖项。

  3. 设置 App.config

    将 src\App.config 复制到您的项目目录,并将其添加到您的项目。如果您的应用有自己的 App.config,那么您可以将以下节点复制到 App.config 中:

    • 配置/AdManagerApi
    • configuration/configSections/section[name="AdManagerApi"]
    • configuration/system.net
  4. 设置凭据

    打开 App.config 并修改以下键:

    <add key="ApplicationName" value="INSERT_YOUR_APPLICATION_NAME_HERE" />
    <add key="NetworkCode" value="INSERT_YOUR_NETWORK_CODE_HERE" />
    <add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
    <add key="OAuth2SecretsJsonPath" value="INSERT_OAUTH2_SECRETS_JSON_FILE_PATH_HERE" />
    

  5. 调用库

    您可以调用该库,如以下 C# 代码段所示

    AdManagerUser user = new AdManagerUser();
          using (InventoryService inventoryService = user.GetService<InventoryService>())
                {
                    // Create a statement to select ad units.
                    int pageSize = StatementBuilder.SUGGESTED_PAGE_LIMIT;
                    StatementBuilder statementBuilder =
                        new StatementBuilder().OrderBy("id ASC").Limit(pageSize);
    
                    // Retrieve a small amount of ad units at a time, paging through until all
                    // ad units have been retrieved.
                    int totalResultSetSize = 0;
                    do
                    {
                        AdUnitPage page =
                            inventoryService.getAdUnitsByStatement(statementBuilder.ToStatement());
    
                        // Print out some information for each ad unit.
                        if (page.results != null)
                        {
                            totalResultSetSize = page.totalResultSetSize;
                            int i = page.startIndex;
                            foreach (AdUnit adUnit in page.results)
                            {
                                Console.WriteLine(
                                    "{0}) Ad unit with ID \"{1}\" and name \"{2}\" was found.", i++,
                                    adUnit.id, adUnit.name);
                            }
                        }
    
                        statementBuilder.IncreaseOffsetBy(pageSize);
                    } while (statementBuilder.GetOffset() < totalResultSetSize);
    
                    Console.WriteLine("Number of results found: {0}", totalResultSetSize);
                }
            

如果您不想在 App.config 中设置凭据,请参阅这篇 Wiki 文章,了解使用 Ad Manager 类的其他方法。如需详细了解如何使用 .NET 客户端库,请参阅 README 。如果您想使用不含客户端库的 .NET 进行开发,请参阅这篇 NoClientLibrary Wiki 文章

Ruby

下面的基本示例展示了如何使用 Ruby 客户端库。Ruby 客户端库要求使用 Ruby 2.1 或更高版本。

  1. 安装 Ruby gem 并获取配置文件。

    在 shell 中运行以下命令:

    gem install google-dfp-api
    curl https://raw.githubusercontent.com/googleads/google-api-ads-ruby/main/ad_manager_api/ad_manager_api.yml -o ~/ad_manager_api.yml
    
  2. 设置凭据

    填充 ~/ad_manager_api.yml 文件中的必填字段。如果您还没有 OAuth2 密钥文件,则需要按照相应步骤创建 OAuth2 凭据

    :authentication:
      :oauth2_keyfile: INSERT_PATH_TO_JSON_KEY_FILE_HERE
      :application_name: INSERT_APPLICATION_NAME_HERE
      :network_code: INSERT_NETWORK_CODE_HERE
    
  3. 编写代码并发出请求!
    # Import the library.
    require 'ad_manager_api'
    
    # Initialize an Ad Manager client instance (uses credentials in ~/ad_manager_api.yml by default).
    ad_manager = AdManagerApi::Api.new
    
    # Get a service instance.
    network_service = ad_manager.service(:NetworkService, :v202402)
    
    # Make a request.
    network = network_service.get_current_network()
    
    puts "The current network is %s (%d)." %
            [network[:display_name], network[:network_code]]
    

如需更详细的使用入门步骤,请参阅随 Ruby 客户端库一起分发的 README 文件。此外,请查看 Ruby 的完整示例库

后续步骤

在客户端库启动并运行后,请修改提供的示例以根据需要扩展这些示例。

请浏览参考文档,详细了解此 API。

如需帮助,请访问我们的支持页面