Migration checklist

Stay organized with collections Save and categorize content based on your preferences.
  1. Review the mappings from the old Search Ads 360 API to the new Search Ads 360 Reporting API:

  2. Enable the Search Ads Reporting 360 API in your Google Cloud project.

    • Open the API library in the Google API console. If prompted, select your project or create a new one. The API library lists all available APIs, grouped by product family and popularity.
    • Use search to find the Search Ads 360 Reporting API if it isn't visible in the list.
    • Select Search Ads 360 Reporting API and click Enable.
  3. Select your client library.

  4. Make your first call.

  5. Accept the updated Terms and Conditions and update your contact information in the API center.

    • Sign in to the API Center of the manager account: ads.google.com/aw/apicenter.
    • Scroll down to API contact email and update it.
    • Scroll down to Principal place of business, accept the new conditions, and click Save.

Use client libraries

Using a Search Ads 360 Reporting API client library is the recommended way to connect to the Search Ads 360 Reporting API.

Download the Search Ads 360 Reporting API client library for your development environment. The README file has language-specific instructions on how to set up your configuration file.

In most cases, you can reuse your existing configuration when migrating to a new Search Ads 360 Reporting API client library.

One important change is the new login-customer-id header. See Login customer ID header for details about when you need to add this to your configuration.

Java configuration example

This example shows you how to update your .properties file for the Java client library by replacing doubleclicksearch with searchads360 for your authentication properties.

api.doubleclicksearch.clientId       -> api.searchads360.clientId
api.doubleclicksearch.clientSecret   -> api.searchads360.clientSecret
api.doubleclicksearch.refreshToken   -> api.searchads360.refreshToken

Make your first call

Once you've updated the configuration file, you can make your first call.

GetCampaigns: Java

In your IDE, execute the following code:

// 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,
// 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. 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 =
              .setLoginCustomerId(loginCustomerId == null ? customerId : loginCustomerId)
      // 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);

  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 =

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

Download GetCampaigns.java

The console should print a listing of the campaigns in your account.


If you decide not to use a client library, you need to understand how to use REST.

If you used REST with the old Search Ads 360 API, your credentials will still work with the new Search Ads 360 Reporting API. Find the new endpoint and other details in the REST reference section.

Learn more

Learn more about the Search Ads 360 Reporting API