Workflow für die Multi-User-Authentifizierung

Im Workflow für die Authentifizierung mehrerer Nutzer erstellen Sie Ihren eigenen OAuth-Ablauf, um Ihre Nutzer zu authentifizieren. In der Google Identity-Dokumentation werden mehrere App-Typen und die Google Cloud Console-Projektkonfiguration beschrieben, die Sie zur Unterstützung des jeweiligen App-Typs benötigen. Alle diese App-Typen werden von der Google Ads API unterstützt. Weitere technische Details, die Sie beachten sollten:

  1. Wenn Sie auf die Google Ads API zugreifen möchten, müssen Sie Ihre Anwendung so konfigurieren, dass sie sich für den folgenden Bereich authentifiziert:

    https://www.googleapis.com/auth/adwords
    
  2. Ihre App muss möglicherweise API-Aufrufe im Namen des Nutzers ausführen, während dieser offline ist. Ein häufiges Szenario ist das Herunterladen von Kontomesswerten, um Berichte zu erstellen und Kontoanalysen durchzuführen. Aus diesem Grund empfehlen wir, OAuth-Offlinezugriff anzufordern.

  3. Sie sollten das Überprüfungsverfahren für OAuth-Apps durchlaufen und Ihre App zertifizieren lassen.

Clientbibliothek konfigurieren

Nachdem Sie den Nutzer autorisiert und OAuth 2.0-Anmeldedaten abgerufen haben, können Sie die Clientbibliothek konfigurieren. Folgen Sie dazu der Anleitung auf dem Tab, der Ihrer Programmiersprache entspricht.

Java

Sie können Ihre GoogleAdsClient-Instanz zur Laufzeit initialisieren. Verwenden Sie dazu die Anmeldedaten, die Sie vom Nutzer erhalten haben, dessen Konten Sie API-Aufrufe senden.

UserCredentials credentials =
    UserCredentials.newBuilder()
        .setClientId(OAUTH_CLIENT_ID)
        .setClientSecret(OAUTH_CLIENT_SECRET)
        .setRefreshToken(REFRESH_TOKEN)
        .build();

// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
    GoogleAdsClient.newBuilder()
        // Sets the developer token which enables API access.
        .setDeveloperToken(DEVELOPER_TOKEN)
        // Sets the OAuth credentials which provide Google Ads account access.
        .setCredentials(credentials)
        // Optional: sets the login customer ID.
        .setLoginCustomerId(Long.valueOf(LOGIN_CUSTOMER_ID))
        .build();
``` See the [configuration guide][java-config-guide] for additional options.

.NET

Sie können Ihre GoogleAdsClient-Instanz zur Laufzeit initialisieren. Verwenden Sie dazu die Anmeldedaten, die Sie vom Nutzer erhalten haben, dessen Konten Sie API-Aufrufe senden.

GoogleAdsConfig googleAdsConfig = new GoogleAdsConfig()
{
    DeveloperToken = DEVELOPER_TOKEN,
    LoginCustomerId = LOGIN_CUSTOMER_ID,
    OAuth2ClientId = OAUTH_CLIENT_ID,
    OAuth2ClientSecret = OAUTH_CLIENT_SECRET,
    OAuth2RefreshToken = REFRESH_TOKEN,
};

GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig);

Weitere Optionen finden Sie im Konfigurationsleitfaden.

Python

Sie können Ihre GoogleAdsClient-Instanz zur Laufzeit initialisieren. Verwenden Sie dazu die Anmeldedaten, die Sie vom Nutzer erhalten haben, dessen Konten Sie API-Aufrufe senden.

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "developer_token": "INSERT_DEVELOPER_TOKEN_HERE",
    "login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
    "refresh_token": "REFRESH_TOKEN",
    "client_id": "OAUTH_CLIENT_ID",
    "client_secret": "OAUTH_CLIENT_SECRET"}

client = GoogleAdsClient.load_from_dict(credentials)

Weitere Optionen finden Sie im Konfigurationsleitfaden.

PHP

Sie können Ihre GoogleAdsClient-Instanz zur Laufzeit initialisieren. Verwenden Sie dazu die Anmeldedaten, die Sie vom Nutzer erhalten haben, dessen Konten Sie API-Aufrufe senden.

$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

Weitere Optionen finden Sie im Konfigurationsleitfaden.

Ruby

Sie können Ihre GoogleAdsClient-Instanz zur Laufzeit initialisieren. Verwenden Sie dazu die Anmeldedaten, die Sie vom Nutzer erhalten haben, dessen Konten Sie API-Aufrufe senden.

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

Weitere Optionen finden Sie im Konfigurationsleitfaden.

Perl

Sie können Ihre GoogleAdsClient-Instanz zur Laufzeit initialisieren. Verwenden Sie dazu die Anmeldedaten, die Sie vom Nutzer erhalten haben, dessen Konten Sie API-Aufrufe senden.

my $api_client = Google::Ads::GoogleAds::Client->new({
  developer_token   => "INSERT_DEVELOPER_TOKEN_HERE",
  login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});

my $oauth2_applications_handler = $api_client->get_oauth2_applications_handler();
$oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID");
$oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET");
$oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN");

Weitere Optionen finden Sie im Konfigurationsleitfaden.

curl

Rufen Sie zuerst mit einem HTTP-Client ein OAuth 2.0-Zugriffstoken ab. In dieser Anleitung wird der Befehl curl verwendet.

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

Sie können das Zugriffstoken jetzt in Ihren API-Aufrufen verwenden. Im folgenden Beispiel wird gezeigt, wie Sie einen Kampagnenbericht mit der Methode GoogleAdsService.SearchStream ausführen, um die Kampagnen in Ihrem Konto abzurufen. Details zum Erstellen von Berichten werden in diesem Leitfaden nicht behandelt.

curl -i -X POST https://googleads.googleapis.com/v21/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"
}