API aufrufen

Für diese Anleitung sind mehrere Voraussetzungen erforderlich, die in vorherigen Schritten. Beginnen Sie mit der Einführung, wenn die Sie noch nicht getan haben.

In diesem Leitfaden werden auch Aktualisierungstokens verwendet. Dabei handelt es sich um einen Workflow, bei dem ein Nutzer mit ausreichenden Mit dem Zugriff auf das Google Ads-Konto wird Ihre App einmalig eingerichtet, Offline-API-Aufrufe an das Konto ohne weiteren Nutzereingriff ausführen Sie können Aktualisierungstokens verwenden, um beide Offline-Workflows wie Cronjobs zu erstellen. oder Datenpipelines und interaktive Workflows wie Web- oder mobile Apps.

Aktualisierungstoken abrufen

Für die Google Ads API wird OAuth 2.0 als Autorisierungsmechanismus verwendet. Standardmäßig wird OAuth Bei der 2.0-Authentifizierung wird ein Zugriffstoken ausgegeben, das nach einer gewissen Zeit . Um das Zugriffstoken automatisch zu erneuern, sollten Sie eine Aktualisierung Token.

  1. Generieren Sie das Aktualisierungstoken, indem Sie den oauth2l-Tool:

    oauth2l fetch --credentials credentials.json --scope adwords \
        --output_format refresh_token
    

    Die Datei credentials.json stammt aus einer vorherigen .

  2. Mit dem Befehl oauth2l wird ein Anmeldefenster für das Google-Konto in einem neuen Browser geöffnet. und führt Sie durch die Schritte zur OAuth 2.0-Authentifizierung.

    Melden Sie sich mit der E-Mail-Adresse an, die Sie im Schritt Ihre Log-in-Kundennummer ermittelt haben.

    Wenn Ihre Anwendung nicht bestätigt ist, wird möglicherweise ein Warnbildschirm angezeigt. In solchen Fällen können Sie auf den Link Erweitert klicken und die Option PROJECT_NAME (nicht überprüft) aufrufen.

  3. Nachdem Sie die Bereiche geprüft haben, erteilen Sie die Berechtigung, indem Sie auf das Schaltfläche Weiter.

    Im Browser wird eine Aufforderung mit dem folgenden Text angezeigt:

    Authorization code granted. Please close this tab.
    

    Der Befehl oauth2l gibt das folgende JSON-Snippet aus:

    {
      "client_id": "******.apps.googleusercontent.com",
      "client_secret": "******",
      "token_uri": "https://oauth2.googleapis.com/token",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "refresh_token": "******",
      "type": "authorized_user"
    }
    

API aufrufen

Wählen Sie den Client Ihrer Wahl aus, um eine Anleitung zum Ausführen eines API-Aufrufs zu erhalten:

Java

Die Artefakte der Clientbibliothek werden im Maven Central veröffentlicht . Hinzufügen wie folgt die Clientbibliothek als Abhängigkeit zu Ihrem Projekt an:

Die Maven-Abhängigkeit ist:

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

Die Gradle-Abhängigkeit ist:

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

Erstellen Sie eine ~/ads.properties-Datei mit folgendem Inhalt:

api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE
api.googleads.developerToken=INSERT_DEVELOPER_TOKEN_HERE
api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

Erstellen Sie so ein GoogleAdsClient-Objekt:

GoogleAdsClient googleAdsClient = null;
try {
  googleAdsClient = GoogleAdsClient.newBuilder().fromPropertiesFile().build();
} catch (FileNotFoundException fnfe) {
  System.err.printf(
      "Failed to load GoogleAdsClient configuration from file. Exception: %s%n",
      fnfe);
  System.exit(1);
} catch (IOException ioe) {
  System.err.printf("Failed to create GoogleAdsClient. Exception: %s%n", ioe);
  System.exit(1);
}

Erstellen Sie als Nächstes einen Kampagnenbericht mit dem GoogleAdsService.SearchStream , um die Kampagnen in Ihrem Konto abzurufen. In diesem Leitfaden werden die Informationen zur Berichterstellung.

  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#

Die Pakete der Clientbibliothek werden auf der Website von Nuget.org . Fügen Sie zuerst ein nuget-Referenz auf das Google.Ads.GoogleAds-Paket

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

Erstellen Sie ein GoogleAdsConfig-Objekt mit den entsprechenden Einstellungen und verwenden Sie es für folgende Aktionen: Erstellen Sie ein GoogleAdsClient-Objekt.

GoogleAdsConfig config = new GoogleAdsConfig()
{
    DeveloperToken = "******",
    OAuth2Mode = "APPLICATION",
    OAuth2ClientId = "******.apps.googleusercontent.com",
    OAuth2ClientSecret = "******",
    OAuth2RefreshToken = "******",
    LoginCustomerId = ******
};
GoogleAdsClient client = new GoogleAdsClient(config);

Erstellen Sie als Nächstes einen Kampagnenbericht mit dem GoogleAdsService.SearchStream , um die Kampagnen in Ihrem Konto abzurufen. In diesem Leitfaden werden die Informationen zur Berichterstellung.

  public void Run(GoogleAdsClient client, long customerId)
{
    // Get the GoogleAdsService.
    GoogleAdsServiceClient googleAdsService = client.GetService(
        Services.V17.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

Die Clientbibliothekspakete werden im Packagist . Ändern in das Stammverzeichnis Ihres Projekts und führen Sie den folgenden Befehl aus, um die Bibliothek und alle zugehörigen Abhängigkeiten im Verzeichnis vendor/ Ihrer im Stammverzeichnis des Projekts.

composer require googleads/google-ads-php:22.0.0

Erstellen Sie eine Kopie der google_ads_php.ini aus dem GitHub-Repository und ändern Sie sie so, dass Ihre Anmeldedaten enthalten sind.

[GOOGLE_ADS]
developerToken = "INSERT_DEVELOPER_TOKEN_HERE"
loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"

[OAUTH2]
clientId = "INSERT_OAUTH2_CLIENT_ID_HERE"
clientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE"
refreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE"

Erstellen Sie eine Instanz des GoogleAdsClient-Objekts.

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

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

Erstellen Sie als Nächstes einen Kampagnenbericht mit dem GoogleAdsService.SearchStream , um die Kampagnen in Ihrem Konto abzurufen. In diesem Leitfaden werden die Informationen zur Berichterstellung.

  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

Die Clientbibliothek wird auf PyPI verteilt. kann mit dem Befehl pip installiert werden wie folgt:

python -m pip install google-ads==21.3.0

Kopie des google-ads.yaml erstellen aus dem GitHub-Repository und ändern Sie sie so, dass Ihre Anmeldedaten enthalten sind.

client_id: INSERT_OAUTH2_CLIENT_ID_HERE
client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE
refresh_token: INSERT_REFRESH_TOKEN_HERE
developer_token: INSERT_DEVELOPER_TOKEN_HERE
login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE

Erstellen Sie eine GoogleAdsClient-Instanz, indem Sie die Methode GoogleAdsClient.load_from_storage-Methode. Übergeben Sie den Pfad zu Ihrem google-ads.yaml als String für die Methode beim Aufrufen:

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

Erstellen Sie als Nächstes einen Kampagnenbericht mit dem GoogleAdsService.SearchStream , um die Kampagnen in Ihrem Konto abzurufen. In diesem Leitfaden werden die Informationen zur Berichterstellung.

def main(client, customer_id):
    ga_service = client.get_service("GoogleAdsService")

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

    # Issues a search request using streaming.
    stream = ga_service.search_stream(customer_id=customer_id, query=query)

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

Ruby

Die RubyGems für die Clientbibliothek wurden im Rubygems-Gem veröffentlicht Host-Website. Die empfohlene Methode zu installieren ist, ist Bundler. Fügen Sie Ihrer Gemfile eine Zeile hinzu:

gem 'google-ads-googleads', '~> 30.0.0'

Führen Sie dann diesen Befehl aus:

bundle install

Erstellen Sie eine Kopie der google_ads_config.rb aus dem GitHub-Repository und ändern Sie sie so, dass Ihre Anmeldedaten enthalten sind.

Google::Ads::GoogleAds::Config.new do |c|
  c.client_id = 'INSERT_CLIENT_ID_HERE'
  c.client_secret = 'INSERT_CLIENT_SECRET_HERE'
  c.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
  c.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE'
  c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end

Erstellen Sie eine GoogleAdsClient-Instanz, indem Sie den Pfad dorthin übergeben, wo Sie diese speichern -Datei.

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

Erstellen Sie als Nächstes einen Kampagnenbericht mit dem GoogleAdsService.SearchStream , um die Kampagnen in Ihrem Konto abzurufen. In diesem Leitfaden werden die Informationen zur Berichterstellung.

  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

Die Bibliothek wird auf CPAN. Klonen Sie zuerst das google-ads-perl-Repository im Verzeichnis Ihrer Wahl.

git clone https://github.com/googleads/google-ads-perl.git

Wechseln Sie in das Verzeichnis google-ads-perl und führen Sie den folgenden Befehl aus: Eingabeaufforderung, um alle Abhängigkeiten zu installieren, die für die Verwendung der Bibliothek erforderlich sind.

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

Erstellen Sie eine Kopie der googleads.properties aus dem GitHub-Repository und ändern Sie sie so, dass Ihre Anmeldedaten enthalten sind.

clientId=INSERT_OAUTH2_CLIENT_ID_HERE
clientSecret=INSERT_OAUTH2_CLIENT_SECRET_HERE
refreshToken=INSERT_OAUTH2_REFRESH_TOKEN_HERE
developerToken=INSERT_DEVELOPER_TOKEN_HERE
loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

Erstellen Sie eine Client-Instanz, indem Sie den Pfad zum Speicherort dieser Datei übergeben.

my $properties_file = "/path/to/googleads.properties";

my $api_client = Google::Ads::GoogleAds::Client->new({
  properties_file => $properties_file
});

Erstellen Sie als Nächstes einen Kampagnenbericht mit dem GoogleAdsService.SearchStream , um die Kampagnen in Ihrem Konto abzurufen. In diesem Leitfaden werden die Informationen zur Berichterstellung.

  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::V17::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;
}

REST

Rufen Sie zuerst mit einem HTTP-Client ein OAuth 2.0-Zugriffstoken ab. Dieser Leitfaden verwendet den Befehl curl.

curl \
  --data "grant_type=refresh_token" \
  --data "client_id=CLIENT_ID" \
  --data "client_secret=CLIENT_SECRET" \
  --data "refresh_token=REFRESH_TOKEN" \
  https://www.googleapis.com/oauth2/v3/token

Erstellen Sie als Nächstes einen Kampagnenbericht mit dem GoogleAdsService.SearchStream , um die Kampagnen in Ihrem Konto abzurufen. In diesem Leitfaden werden die Informationen zur Berichterstellung.

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

Der Inhalt von query.json sieht so aus:

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