Search Ads 360 Reporting API 使用入门

以下各部分介绍了如何开始使用 Search Ads 360 Reporting API。

在 Google Cloud 上设置您的项目

若要使用 Search Ads 360 Reporting API,您需要在 Google Cloud 上为您的应用创建一个项目。

创建 Google 项目

Google 项目充当您的 Google Cloud 资源的资源容器。

  1. Go to the Google API Console.
  2. Kliknite Stvori projekt .
  3. Unesite ime ili prihvatite generirani prijedlog.
  4. Potvrdite ili uredite preostala polja.
  5. Kliknite Stvori .

创建 OAuth2 凭据

Search Ads 360 Reporting API 使用 OAuth 2.0 进行身份验证和授权。OAuth 凭据可让 Google 识别您的应用,并允许您生成用于管理 Search Ads 360 用户的 OAuth 令牌。

Da biste stvorili OAuth 2.0 vjerodajnicu u Google API Console , napravite sljedeće:

  1. Go to the Credentials page.
  2. Kliknite Stvori vjerodajnice> OAuth ID klijenta
  3. Odaberite vrstu aplikacije.
  4. Ispunite obrazac i kliknite Create .

启用 Search Ads 360 Reporting API

要使用该 API,您必须在 Google API 控制台中为您的项目启用 Search Ads 360 Reporting API

Da biste omogućili API za svoj projekt:

  1. Open the API Library u Google API Console .
  2. If prompted, select a project, or create a new one. API Library navodi sve dostupne API-je, grupirane po obitelji proizvoda i popularnosti.
  3. Ako API koji želite omogućiti nije vidljiv na popisu, pretražite ga kako biste ga pronašli ili kliknite Prikaži sve u obitelji proizvoda kojoj pripada.
  4. Odaberite API koji želite omogućiti, a zatim kliknite gumb Omogući .
  5. If prompted, enable billing.
  6. If prompted, read and accept the API's Terms of Service.

(可选)为您的项目启用结算功能

在 Google Cloud 中使用 Search Ads 360 Reporting API 无需付费。 不过,每个帐号的免费 Cloud 项目总数都有配额。如果您已达到限额,可以注册一个新的 Google 帐号,该帐号将包含免费的项目配额。

Da biste omogućili naplatu za svoj projekt:

  1. Posjetite Billing page .
  2. Ako nemate aktivni račun za naplatu, otvorite ga klikom na Dodaj račun za naplatu i slijedite upute.

Da biste omogućili zaslon pristanka vašeg projekta:

  1. Otvorite Consent Screen page u Google API Console .
  2. If prompted, select a project, or create a new one.
  3. Ispunite obrazac i kliknite Spremi .

创建、修改或查看重定向 URI

Da biste stvorili, pogledali ili uredili URI-ove preusmjeravanja za datu OAuth 2.0 vjerodajnicu, napravite sljedeće:

  1. Go to the Credentials page.
  2. U odjeljku OAuth 2.0 ID-ovi klijenta na stranici kliknite vjerodajnicu.
  3. Pregledajte ili uredite URI-ove preusmjeravanja.

Ako na stranici Credentials ne postoji odjeljak ID-a klijenta OAuth 2.0 , vaš projekt nema OAuth vjerodajnice. Da biste ga stvorili, kliknite Stvori vjerodajnice .

下载客户端库

建议使用 Search Ads 360 Reporting API 客户端库连接到 Search Ads 360 Reporting API。

下载适用于您的开发环境的 Search Ads 360 Reporting API 客户端库。按照如何设置客户端库配置文件中针对特定语言的说明操作。在大多数情况下,您可以在迁移到新版 Search Ads 360 Reporting API 客户端库时重复使用现有配置。

其中一项重要更改是新的 login-customer-id 标头。如需详细了解何时需要将其添加到配置中,请参阅登录客户 ID 标头

发出首次调用

配置完客户端库后,您就可以发出首次调用了。

获取广告系列

在您的 IDE 中执行以下代码:

Java

// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package sample;

import com.beust.jcommander.Parameter;
import com.google.ads.searchads360.v0.lib.SearchAds360Client;
import com.google.ads.searchads360.v0.services.SearchAds360Row;
import com.google.ads.searchads360.v0.services.SearchAds360ServiceClient;
import com.google.ads.searchads360.v0.services.SearchAds360ServiceClient.SearchPagedResponse;
import com.google.ads.searchads360.v0.services.SearchSearchAds360Request;

/** Get campaign details. */
public class GetCampaigns {
  private static final int PAGE_SIZE = 200;

  private static class GetCampaignsParams extends CodeSampleParams {

    @Parameter(names = "--customerId", required = true)
    private String customerId;

    @Parameter(names = "--loginCustomerId")
    private String loginCustomerId;
  }

  public static void main(String[] args) {
    GetCampaignsParams params = new GetCampaignsParams();
    if (!params.parseArguments(args)) {
      // Optional: You may pass the loginCustomerId on the command line or specify a loginCustomerId
      // here (10 digits, no dashes). If neither are set, customerId will be used as
      // loginCustomerId.
      // params.loginCustomerId = Long.parseLong("INSERT_LOGIN_CUSTOMER_ID_HERE");
    }
    final String loginCustomerId = params.loginCustomerId;
    final String customerId = params.customerId;

    try {
      // Creates a SearchAds360Client with the specified loginCustomerId. If there's
      // no loginCustomerId, customerId will be used instead.
      final SearchAds360Client searchAds360Client =
          SearchAds360Client.newBuilder()
              .setLoginCustomerId(loginCustomerId == null ? customerId : loginCustomerId)
              .fromPropertiesFile()
              .build();
      // Creates the Search Ads 360 Service client.
      SearchAds360ServiceClient client = searchAds360Client.create();
      new GetCampaigns().runExample(client, customerId);
    } catch (Exception exception) {
      System.err.printf("Failed with exception: %s%n", exception);
      exception.printStackTrace();
      System.exit(1);
    }
  }

  private void runExample(SearchAds360ServiceClient searchAds360ServiceClient, String customerId) {
    // Creates a query that retrieves all campaigns under the customerId.
    String query = "SELECT campaign.name, campaign.id, campaign.status FROM campaign";
    SearchSearchAds360Request request =
        SearchSearchAds360Request.newBuilder()
            .setCustomerId(customerId)
            .setQuery(query)
            .setPageSize(PAGE_SIZE)
            .build();

    // Issues a search request.
    final SearchPagedResponse searchPagedResponse = searchAds360ServiceClient.search(request);
    for (SearchAds360Row element : searchPagedResponse.iterateAll()) {
      System.out.printf(
          "Campaign found with name '%s', ID %d, and status: %s.%n",
          element.getCampaign().getName(),
          element.getCampaign().getId(),
          element.getCampaign().getStatus());
    }
  }
}

下载 GetCampaigns.java

Python

#!/usr/bin/env python
# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Retrieves campaigns for a customer using a pagination search request."""

import argparse
import traceback
from google.ads.searchads360.v0.services.types.search_ads360_service import SearchSearchAds360Request
from util_searchads360 import SearchAds360Client

_DEFAULT_PAGE_SIZE = 10000


def main(client, customer_id, page_size) -> None:
  search_ads_360_service = client.get_service()

  query = """
      SELECT
        campaign.name,
        campaign.id,
        campaign.status
      FROM campaign"""

  request = SearchSearchAds360Request()
  request.customer_id = customer_id
  request.query = query
  request.page_size = page_size

  # Issues a search request.
  results = search_ads_360_service.search(request=request)

  for row in results:
    campaign = row.campaign
    print(
        f'campaign "{campaign.name}" has id {campaign.id} and status {campaign.status.name}'
    )


if __name__ == "__main__":
  # SearchAds360Client will read the search-ads-360.yaml configuration file in
  # the home directory if none is specified.
  search_ads_360_client = SearchAds360Client.load_from_file()

  parser = argparse.ArgumentParser(
      description=("Retrieves campaigns for a customer."))
  # Arguments to provide to run the example.
  parser.add_argument(
      "-c",
      "--customer_id",
      type=str,
      required=True,
      help="The Search Ads 360 customer ID (10 digits, no dashes).",
  )

  parser.add_argument(
      "-l",
      "--login_customer_id",
      type=str,
      required=False,
      help="The Search Ads 360 login customer ID (10 digits, no dashes).",
  )

  args = parser.parse_args()

  search_ads_360_client.set_ids(args.customer_id, args.login_customer_id)

  try:
    main(search_ads_360_client, args.customer_id, _DEFAULT_PAGE_SIZE)
  except Exception:  # pylint: disable=broad-except
    traceback.print_exc()

下载 get_campaigns.py

控制台应输出您账号中的广告系列的列表。

使用 REST

如果您决定不使用客户端库,则需要了解如何使用 REST。

如果您曾将 REST 与旧版 Search Ads 360 API 搭配使用,则您的凭据仍可用于新版 Search Ads 360 Reporting API。在 REST 参考文档部分查找新端点和其他详细信息。

了解详情

详细了解 Search Ads 360 Reporting API