Krótkie wprowadzenie

Z tego krótkiego przewodnika dowiesz się, jak wykonać pierwsze wywołanie interfejsu Google Ads API.

Kluczowe pojęcia

  • Projekt Google Cloud: projekt Google Cloud stanowi podstawę do tworzenia, włączania i używania wszystkich usług Google, w tym do zarządzania interfejsami API i danymi logowania do interfejsu API OAuth 2.0. Możesz go utworzyć w konsoli Google Cloud.
  • Poziom dostępu do interfejsu API: poziom dostępu do interfejsu API w projekcie Google Cloud określa liczbę wywołań interfejsu API, które możesz wykonać dziennie, oraz środowiska, w których możesz wykonywać wywołania interfejsu API. Poziom dostępu do interfejsu API w projekcie znajdziesz na stronie Przegląd interfejsu Google Ads API.
  • Konto menedżera Google Ads: konto menedżera Google Ads służy do zarządzania innymi kontami Google Ads, które mogą być zbiorem kont klientów Google Ads lub innych kont menedżera Google Ads.
  • Konto klienta Google Ads: konto Google Ads używane do wyświetlania reklam, na które chcesz kierować wywołania interfejsu API.
  • Identyfikator klienta: 10-cyfrowy numer identyfikujący konto klienta Google Ads. Jeśli ten identyfikator został skopiowany z interfejsu Google Ads, usuń łączniki.
  • OAuth 2.0: OAuth 2.0 to standardowy protokół branżowy do autoryzacji, używany przez wszystkie interfejsy API Google. Aby wygenerować dane logowania OAuth 2.0 i wykonywać wywołania interfejsu API, potrzebujesz konta usługi i klucza.
  • Konto usługi: specjalny rodzaj konta Google, które należy do aplikacji, a nie do użytkownika. Służy on do uwierzytelniania aplikacji w interfejsie Google Ads API. Aby uzyskać konto usługi, musisz mieć projekt Google Cloud.
  • Klucz konta usługi: plik JSON z danymi logowania aplikacji, który zawiera klucz prywatny konta usługi. Służy do generowania danych logowania OAuth 2.0 do uwierzytelniania konta usługi podczas wywoływania interfejsu Google Ads API. Aby uzyskać klucz konta usługi, musisz mieć konto usługi.

Wymagania wstępne

Aby wywołać interfejs Google Ads API, wykonaj te czynności.

Konfigurowanie projektu w chmurze pod kątem dostępu do interfejsu Google Ads API

Projekt Google Cloud służy do zarządzania interfejsami API Google i danymi logowania do interfejsu API OAuth 2.0. Istniejące projekty Google Cloud możesz znaleźć lub utworzyć w konsoli Google Cloud.

Zacznij od włączenia interfejsu Google Ads API w projekcie:

Włączanie interfejsu Google Ads API

Następnie wejdź na stronę z omówieniem interfejsu Google Ads API. Na stronie wyświetli się Twój obecny poziom dostępu do interfejsu API. Jeśli Twój obecny poziom dostępu do interfejsu API to Test, rozwiń sekcję Podnieś poziom dostępu. Postępuj zgodnie z instrukcjami, aby poprosić o poziom dostępu Odkrywca.

Gdy wypełnisz zgłoszenie, Google automatycznie je sprawdzi i w większości przypadków uaktualni Twoje konto do poziomu Explorer. Jeśli nie masz dostępu do Eksploratora, nie martw się – w tym przewodniku znajdziesz odpowiednie instrukcje dotyczące konfigurowania konta klienta Google Ads.

Tworzenie konta usługi

Aby wykonywać wywołania interfejsu API, potrzebujesz konta usługi i klucza konta usługi. Jeśli używasz już innego interfejsu API Google i masz utworzone konto usługi OAuth 2.0 oraz klucz, możesz pominąć ten krok i użyć dotychczasowych danych logowania.

Jak utworzyć konto usługi i klucz

  1. W konsoli Google Cloud otwórz Menu  > Administracja i uprawnienia > Konta usługi.

    Otwórz stronę Konta usługi

  2. Wybierz konto usługi.
  3. Kliknij Klucze > Dodaj klucz > Utwórz nowy klucz.
  4. Wybierz JSON, a następnie kliknij Utwórz.

    Nowa para kluczy publicznych/prywatnych zostanie wygenerowana i pobrana na Twoje urządzenie jako nowy plik. Zapisz pobrany plik JSON jako credentials.json w katalogu roboczym. Ten plik jest jedyną kopią tego klucza. Nie zatwierdzaj pliku credentials.json w systemie kontroli wersji (np. dodaj go do pliku .gitignore).

  5. Kliknij Zamknij.

Zacznij od zidentyfikowania konta Google Ads, na którym wykonujesz wywołania interfejsu API. Typ konta, na którym możesz wywoływać interfejs API, zależy od poziomu dostępu do interfejsu API w projekcie Google Cloud. Aby sprawdzić swój poziom dostępu do interfejsu API, wejdź na stronę Przegląd interfejsu Google Ads API.

Poziomy dostępu: Eksplorator, Basic i dostęp standardowy

Możesz wysyłać wywołania do swojego produkcyjnego konta Google Ads. W razie potrzeby możesz jednak utworzyć konto testowe Google Ads, postępując zgodnie z instrukcjami na karcie Dostęp testowy.

Testowanie dostępu

Projektu Google Cloud nie można używać do wywoływania interfejsu API na koncie produkcyjnym Google Ads. Wywołania interfejsu API możesz wykonywać tylko na kontach testowych Google Ads.

Jak utworzyć konto testowe Google Ads

Poniższe instrukcje pozwalają utworzyć testowe konto menedżera Google Ads i testowe konto reklamodawcy Google Ads.

  1. Kliknij niebieski przycisk, aby utworzyć testowe konto menedżera Google Ads. Jeśli pojawi się taka prośba, zaloguj się na konto Google, które nie jest połączone z produkcyjnym kontem menedżera Google Ads. Jeśli nie masz konta, kliknij przycisk Utwórz konto na tej stronie, aby utworzyć nowe konto Google.

    Tworzenie testowego konta menedżera Google Ads

  2. Na testowym koncie menedżera Google Ads utwórz testowe konto klienta Google Ads: kliknij Konta >  > Utwórz nowe konto i wypełnij formularz. Wszystkie konta Google Ads utworzone na testowym koncie menedżera Google Ads są automatycznie testowymi kontami Google Ads.
  3. Opcjonalnie utwórz kilka kampanii na testowym koncie klienta Google Ads na stronie Google Ads.

Aby wywołać interfejs API na koncie klienta Google Ads, musisz przyznać kontu usługi dostęp do konta klienta Google Ads i odpowiednie uprawnienia. Aby to zrobić, musisz mieć dostęp administracyjny do konta klienta.

Jak przyznać kontu usługi dostęp do konta Google Ads

  1. Zacznij od zalogowania się na konto Google Ads jako administrator.
  2. Kliknij kolejno Administracja > Dostęp i bezpieczeństwo.
  3. Kliknij przycisk  na karcie Użytkownicy.
    Strona Dostęp i bezpieczeństwo w Google Ads z widocznym przyciskiem dodawania użytkownika
  4. Wpisz adres e-mail konta usługi w polu E-mail. Wybierz odpowiedni poziom dostępu do konta i kliknij przycisk Dodaj konto. Pamiętaj, że w przypadku kont usługi nie jest obsługiwany poziom dostępu „Tylko e-maile”.
    Okno dodawania adresu e-mail konta usługi i wybierania poziomu dostępu
  5. Konto usługi otrzyma dostęp.
    Strona Dostęp i bezpieczeństwo z kontem usługi, które ma dostęp
  6. [Opcjonalnie] Podczas początkowej konfiguracji nie możesz przyznać kontu usługi dostępu administratora. Jeśli wywołania interfejsu API wymagają dostępu administratora, możesz go uaktualnić w ten sposób.
    1. W kolumnie Poziom dostępu kliknij strzałkę w dół obok poziomu dostępu konta usługi.
    2. Z listy wybierz Administrator.

Pobieranie narzędzi i bibliotek klienta

Możesz pobrać bibliotekę klienta lub klienta HTTP, w zależności od tego, jak chcesz wykonywać wywołania interfejsu API.

Korzystanie z biblioteki klienta

Pobierz i zainstaluj wybraną bibliotekę klienta.

Używanie klienta HTTP (REST)

curl

Pobierz i zainstaluj curl, narzędzie wiersza poleceń do przesyłania danych przez adres URL.

Interfejs wiersza poleceń Google Cloud

Aby zainstalować gcloud CLI, postępuj zgodnie z przewodnikiem instalacji Google Cloud CLI.

Instrukcje zawarte w pozostałej części tego przewodnika zostały zweryfikowane pod kątem działania z tą wersją narzędzia gcloud i mogą nie działać z poprzednimi wersjami ze względu na różnice w zachowaniu aplikacji lub opcjach wiersza poleceń.

:~$ gcloud version
Google Cloud SDK 492.0.0
alpha 2024.09.06
beta 2024.09.06
bq 2.1.8
bundled-python3-unix 3.11.9
core 2024.09.06
enterprise-certificate-proxy 0.3.2
gcloud-crc32c 1.0.0
gsutil 5.30

Wywoływanie interfejsu API

Wybierz klienta, aby zobaczyć instrukcje wykonywania wywołania interfejsu API:

Java

Artefakty biblioteki klienta są publikowane w repozytorium Maven Central.

Aby zarządzać wersjami zależności i zapobiegać konfliktom, zapoznaj się z przewodnikiem po liście materiałów (BoM) interfejsu Google Ads API.

Jeśli nie używasz BOM, dodaj bibliotekę klienta bezpośrednio do projektu, korzystając z jednego z tych narzędzi do kompilacji:

Maven: dodaj do pliku pom.xml tę zależność:

<dependency>
  <groupId>com.google.api-ads</groupId>
  <artifactId>google-ads</artifactId>
  <version>48.1.0</version>
</dependency>

Gradle dodaj do pliku build.gradle tę zależność:

implementation 'com.google.api-ads:google-ads:48.1.0'

Utwórz plik ads.properties w katalogu głównym (~/ads.properties w systemie Linux i macOS lub %USERPROFILE%\ads.properties w systemie Windows) z tą zawartością:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

Zanim zaczniesz wysyłać żądania do interfejsu API, utwórz instancję GoogleAdsClient. Domyślnie fromPropertiesFile() wczytuje dane logowania z pliku ads.properties znajdującego się w katalogu głównym:

GoogleAdsClient googleAdsClient;
try {
  googleAdsClient = GoogleAdsClient.newBuilder().fromPropertiesFile().build();
} catch (IOException e) {
  System.err.printf("Failed to create GoogleAdsClient: %s%n", e);
  throw new RuntimeException("Initialization failed", e);
}

Następnie utwórz raport kampanii za pomocą GoogleAdsService.SearchStream, aby skutecznie przesyłać strumieniowo duże zestawy wyników i pobierać kampanie na koncie:

    private void runExample(GoogleAdsClient googleAdsClient, long customerId) {
  try (GoogleAdsServiceClient googleAdsServiceClient =
      googleAdsClient.getLatestVersion().createGoogleAdsServiceClient()) {
    String query = "SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id";
    // Constructs the SearchGoogleAdsStreamRequest.
    SearchGoogleAdsStreamRequest request =
        SearchGoogleAdsStreamRequest.newBuilder()
            .setCustomerId(Long.toString(customerId))
            .setQuery(query)
            .build();

    // Creates and issues a search Google Ads stream request that will retrieve all campaigns.
    ServerStream<SearchGoogleAdsStreamResponse> stream =
        googleAdsServiceClient.searchStreamCallable().call(request);

    // Iterates through and prints all of the results in the stream response.
    for (SearchGoogleAdsStreamResponse response : stream) {
      for (GoogleAdsRow googleAdsRow : response.getResultsList()) {
        System.out.printf(
            "Campaign with ID %d and name '%s' was found.%n",
            googleAdsRow.getCampaign().getId(), googleAdsRow.getCampaign().getName());
      }
    }
  }
}

C#

Pakiety biblioteki klienta są publikowane w repozytorium NuGet.org. Zacznij od dodania odwołania do pakietu NuGet do pakietu Google.Ads.GoogleAds:

dotnet add package Google.Ads.GoogleAds --version 27.6.0

Aby wykonywać wywołania interfejsu API, utwórz obiekt GoogleAdsConfig na podstawie ustawień konfiguracji (takich jak appsettings.json, zmienne środowiskowe lub ustawienia niestandardowe) i przekaż go, aby zainicjować instancję GoogleAdsClient:

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
    OAuth2SecretsJsonPath = "JSON_KEY_FILE_PATH",
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};
GoogleAdsClient client = new GoogleAdsClient(config);

Następnie utwórz raport kampanii, korzystając z metody GoogleAdsService.SearchStream, aby pobrać kampanie na koncie. Ten przewodnik nie zawiera szczegółowych informacji o raportowaniu.

    public void Run(GoogleAdsClient client, long customerId)
{
    // Get the GoogleAdsService.
    GoogleAdsServiceClient googleAdsService = client.GetService(
        Services.V26.GoogleAdsService);

    // Create a query that will retrieve all campaigns.
    string query = @"SELECT
                    campaign.id,
                    campaign.name,
                    campaign.network_settings.target_content_network
                FROM campaign
                ORDER BY campaign.id";

    try
    {
        // Issue a search request.
        googleAdsService.SearchStream(customerId.ToString(), query,
            delegate (SearchGoogleAdsStreamResponse resp)
            {
                foreach (GoogleAdsRow googleAdsRow in resp.Results)
                {
                    Console.WriteLine("Campaign with ID {0} and name '{1}' was found.",
                        googleAdsRow.Campaign.Id, googleAdsRow.Campaign.Name);
                }
            }
        );
    }
    catch (GoogleAdsException e)
    {
        Console.WriteLine("Failure:");
        Console.WriteLine($"Message: {e.Message}");
        Console.WriteLine($"Failure: {e.Failure}");
        Console.WriteLine($"Request ID: {e.RequestId}");
        throw;
    }
}

PHP

Pakiety biblioteki klienta są publikowane w repozytorium Packagist. Upewnij się, że masz zainstalowaną zgodną wersję PHP i Composer, a następnie przejdź do katalogu głównego projektu i uruchom to polecenie, aby zainstalować bibliotekę i jej zależności w katalogu vendor/ projektu:

composer require googleads/google-ads-php:35.3.0

Utwórz kopię pliku google_ads_php.ini z repozytorium GitHub, zapisz ją w katalogu głównym lub katalogu głównym projektu i zmodyfikuj, aby zawierała Twoje dane logowania:

[GOOGLE_ADS]
loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"

[OAUTH2]
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"

Utwórz instancję GoogleAdsClient za pomocą pliku konfiguracji google_ads_php.ini:

use Google\Ads\GoogleAds\Lib\OAuth2TokenBuilder;
use Google\Ads\GoogleAds\Lib\V26\GoogleAdsClientBuilder;

$oauth2Credential = (new OAuth2TokenBuilder())
    ->fromFile('/path/to/google_ads_php.ini')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->fromFile('/path/to/google_ads_php.ini')
    ->withOAuth2Credential($oauth2Credential)
    ->build();

Następnie utwórz raport dotyczący kampanii, używając metody GoogleAdsService.SearchStream, aby pobrać kampanie na koncie:

    public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId)
{
    $googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
    // Creates a query that retrieves all campaigns.
    $query = 'SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id';
    // Issues a search stream request.
    /** @var GoogleAdsServerStreamDecorator $stream */
    $stream = $googleAdsServiceClient->searchStream(
        SearchGoogleAdsStreamRequest::build($customerId, $query)
    );

    // Iterates over all rows in all messages and prints the requested field values for
    // the campaign in each row.
    foreach ($stream->iterateAllElements() as $googleAdsRow) {
        /** @var GoogleAdsRow $googleAdsRow */
        printf(
            "Campaign with ID %d and name '%s' was found.%s",
            $googleAdsRow->getCampaign()->getId(),
            $googleAdsRow->getCampaign()->getName(),
            PHP_EOL
        );
    }
}

Python

Biblioteka klienta interfejsu Google Ads API dla języka Python jest rozpowszechniana w PyPI. Sprawdź, czy masz zainstalowaną obsługiwaną wersję Pythona, a następnie zainstaluj bibliotekę za pomocą pip:

python -m pip install google-ads==35.0.0

Aby uwierzytelniać wywołania interfejsu API, skonfiguruj plik google-ads.yaml:

  1. Pobierz kopię przykładowego pliku google-ads.yaml z repozytorium GitHub.
  2. Zapisz plik w katalogu głównym (~/google-ads.yaml) lub w niestandardowej ścieżce.
  3. Otwórz plik google-ads.yaml i zaktualizuj go, aby zawierał Twoje dane logowania:

    login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE
    json_key_file_path: JSON_KEY_FILE_PATH
    

    Skonfiguruj logowanie przed zainicjowaniem klienta, aby biblioteka rejestrowała wszystkie ostrzeżenia dotyczące inicjowania lub konfiguracji. Poniższy przykład konfiguruje logger biblioteki tak, aby wysyłał logi INFO do standardowego strumienia wyjścia (stdout):

import logging
import sys

logger = logging.getLogger("google.ads.googleads.client")
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler(sys.stdout))

Utwórz instancję GoogleAdsClient, wywołując metodę GoogleAdsClient.load_from_storage i przekazując ścieżkę do pliku google-ads.yaml:

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")

Jeśli pominiesz argument ścieżki, load_from_storage() domyślnie wyszuka plik konfiguracji w katalogu głównym (~/google-ads.yaml).

Następnie utwórz raport dotyczący kampanii, używając metody GoogleAdsService.SearchStream, aby pobrać kampanie na koncie:

    def main(client: GoogleAdsClient, customer_id: str) -> None:
    ga_service: GoogleAdsServiceClient = client.get_service("GoogleAdsService")

    query: str = """
        SELECT
          campaign.id,
          campaign.name
        FROM campaign
        ORDER BY campaign.id"""

    # Issues a search request using streaming.
    stream: Iterator[SearchGoogleAdsStreamResponse] = ga_service.search_stream(
        customer_id=customer_id, query=query
    )

    for batch in stream:
        rows: List[GoogleAdsRow] = batch.results
        for row in rows:
            print(
                f"Campaign with ID {row.campaign.id} and name "
                f'"{row.campaign.name}" was found.'
            )

Ruby

Gemy Ruby dla biblioteki klienta są publikowane na stronie RubyGems. Sprawdź, czy masz zainstalowaną obsługiwaną wersję Ruby, i użyj Bundlera, aby zainstalować bibliotekę:

  1. Dodaj gem do pliku Gemfile aplikacji:

    gem 'google-ads-googleads', '~> 46.1.0'
    
  2. Zainstaluj gem, uruchamiając polecenie:

    bundle install

Aby skonfigurować dane logowania:

  1. Skopiuj przykładowy plik google_ads_config.rb z repozytorium GitHub.
  2. Zapisz plik w katalogu głównym projektu lub w katalogu domowym (~).
  3. Otwórz plik google_ads_config.rb i zastąp wartości zmiennych danymi logowania do interfejsu Google Ads API:

    Google::Ads::GoogleAds::Config.new do |c|
      c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
      c.keyfile = 'JSON_KEY_FILE_PATH'
    end
    

    Utwórz instancję GoogleAdsClient, przekazując ścieżkę do pliku konfiguracji (google_ads_config.rb):

client = Google::Ads::GoogleAds::GoogleAdsClient.new(
  'path/to/google_ads_config.rb'
)

Następnie utwórz raport kampanii za pomocą metody GoogleAdsService.SearchStream, aby pobrać kampanie na koncie:

    def get_campaigns(customer_id)
  # GoogleAdsClient will read a config file from
  # ENV['HOME']/google_ads_config.rb when called without parameters
  client = Google::Ads::GoogleAds::GoogleAdsClient.new

  responses = client.service.google_ads.search_stream(
    customer_id: customer_id,
    query: 'SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id',
  )

  responses.each do |response|
    response.results.each do |row|
      puts "Campaign with ID #{row.campaign.id} and name '#{row.campaign.name}' was found."
    end
  end
end

Perl

Biblioteka klienta Perl jest rozpowszechniana w CPAN i wymaga Perla w wersji 5.28 lub nowszej oraz menedżera pakietów cpan lub cpanm.

  1. Sklonuj repozytorium google-ads-perl w wybranym katalogu:

    git clone https://github.com/googleads/google-ads-perl.git
  2. Przejdź do katalogu google-ads-perl i uruchom te polecenia, aby zainstalować wymagane zależności i utworzyć bibliotekę:

    cd google-ads-perl
    cpan install Module::Build
    perl Build.PL
    perl Build installdeps
    perl Build
    perl Build install

Aby skonfigurować dane logowania:

  1. Skopiuj przykładowy plik konfiguracji googleads.properties z repozytorium GitHub do katalogu domowego (~/googleads.properties):

    cp googleads.properties ~/googleads.properties
  2. Zmodyfikuj plik ~/googleads.properties, aby uwzględnić swoje dane logowania:

    jsonKeyFilePath=JSON_KEY_FILE_PATH
    loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
    

    Utwórz instancję Client, przekazując ścieżkę do skonfigurowanego pliku googleads.properties (np. ~/googleads.properties):

my $api_client = Google::Ads::GoogleAds::Client->new({
  properties_file => "/path/to/googleads.properties"
});

Następnie utwórz raport dotyczący kampanii, używając metody GoogleAdsService.SearchStream, aby pobrać kampanie na koncie:

    sub get_campaigns {
  my ($api_client, $customer_id) = @_;

  # Create a search Google Ads stream request that will retrieve all campaigns.
  my $search_stream_request =
    Google::Ads::GoogleAds::V26::Services::GoogleAdsService::SearchGoogleAdsStreamRequest
    ->new({
      customerId => $customer_id,
      query      =>
        "SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id"
    });

  # Get the GoogleAdsService.
  my $google_ads_service = $api_client->GoogleAdsService();

  my $search_stream_handler =
    Google::Ads::GoogleAds::Utils::SearchStreamHandler->new({
      service => $google_ads_service,
      request => $search_stream_request
    });

  # Issue a search request and process the stream response to print the requested
  # field values for the campaign in each row.
  $search_stream_handler->process_contents(
    sub {
      my $google_ads_row = shift;
      printf "Campaign with ID %d and name '%s' was found.\n",
        $google_ads_row->{campaign}{id}, $google_ads_row->{campaign}{name};
    });

  return 1;
}

Po uruchomieniu skrypt przesyła strumieniowo pasujące wiersze i wyświetla identyfikator oraz nazwę każdej kampanii na Twoim koncie.

curl

Zacznij od ustawienia konta usługi jako aktywnych danych logowania w interfejsie wiersza poleceń gcloud.

gcloud auth login --cred-file=JSON_KEY_FILE_PATH

Następnie pobierz token dostępu OAuth 2.0 dla interfejsu Google Ads API.

gcloud auth \
  print-access-token \
  --scopes='https://www.googleapis.com/auth/adwords'

Utwórz plik o nazwie query.json zawierający żądanie w języku Google Ads Query Language (GAQL):

{
  "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}

Aby pobrać kampanie na koncie, wygeneruj raport kampanii za pomocą metody GoogleAdsService.SearchStream:

curl -i -X POST \
  https://googleads.googleapis.com/v26/customers/CUSTOMER_ID/googleAds:searchStream \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "login-customer-id: LOGIN_CUSTOMER_ID" \
  --data-binary "@query.json"

Jeśli podczas pierwszego wywołania wystąpią błędy, zapoznaj się z artykułem Obsługa błędów interfejsu API, aby dowiedzieć się, jak rozwiązać problem.