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 beschrieben. Außerdem wird die Google Cloud Console-Projektkonfiguration erläutert, die für die Unterstützung der einzelnen App-Typen erforderlich ist. Alle diese App-Typen werden von der Google Ads API unterstützt. Beachten Sie die folgenden zusätzlichen technischen Details:

  1. Konfigurieren Sie Ihre Anwendung so, dass der folgende OAuth 2.0-Bereich angefordert wird:

    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. Schließen Sie den OAuth-App-Überprüfungsprozess ab, um Ihre App bestätigen zu lassen.

Workflowübersicht

Die Implementierung eines Authentifizierungs-Workflows für mehrere Nutzer umfasst drei Hauptschritte:

  1. Nutzer zum OAuth-Zustimmungsbildschirm weiterleiten:Leiten Sie jeden Nutzer zum OAuth 2.0-Autorisierungsendpunkt von Google weiter und fordern Sie den Bereich https://www.googleapis.com/auth/adwords und den Offlinezugriff an.
  2. Autorisierungscode gegen Tokens eintauschen:Nachdem der Nutzer die Berechtigung erteilt hat, erfassen Sie den zurückgegebenen Autorisierungscode und tauschen Sie ihn gegen ein Zugriffstoken und ein Aktualisierungstoken ein.
  3. Tokens speichern und Client zur Laufzeit initialisieren:Speichern Sie das Aktualisierungstoken jedes Nutzers sicher in Ihrem Datenspeicher und übergeben Sie die Anmeldedaten des Nutzers, wenn Sie Ihre GoogleAdsClient-Instanz zur Laufzeit initialisieren.

Clientbibliotheken konfigurieren

Nachdem Sie den Nutzer autorisiert und OAuth 2.0-Anmeldedaten erhalten haben, können Sie die Clientbibliothek konfigurieren. Folgen Sie dazu der Anleitung auf dem Tab für Ihre Programmiersprache.

Java

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

UserCredentials credentials =
    UserCredentials.newBuilder()
        .setClientId("INSERT_OAUTH2_CLIENT_ID_HERE")
        .setClientSecret("INSERT_OAUTH2_CLIENT_SECRET_HERE")
        .setRefreshToken("INSERT_OAUTH2_REFRESH_TOKEN_HERE")
        .build();

// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
    GoogleAdsClient.newBuilder()
        // Sets the OAuth credentials which provide Google Ads account
        // access.
        .setCredentials(credentials)
        // Optional: sets the login customer ID.
        .setLoginCustomerId(Long.valueOf("INSERT_LOGIN_CUSTOMER_ID_HERE"))
        .build();

Weitere Optionen finden Sie im Konfigurationsleitfaden.

.NET

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

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.APPLICATION,
    OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID_HERE",
    OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE",
    OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
};

GoogleAdsClient client = new GoogleAdsClient(config);

Weitere Optionen finden Sie im Konfigurationsleitfaden.

Python

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

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
    "refresh_token": "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
    "client_id": "INSERT_OAUTH2_CLIENT_ID_HERE",
    "client_secret": "INSERT_OAUTH2_CLIENT_SECRET_HERE",
    "use_proto_plus": True,
}

client = GoogleAdsClient.load_from_dict(credentials)

Weitere Optionen finden Sie im Konfigurationsleitfaden.

PHP

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

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_OAUTH2_CLIENT_ID_HERE')
    ->withClientSecret('INSERT_OAUTH2_CLIENT_SECRET_HERE')
    ->withRefreshToken('INSERT_OAUTH2_REFRESH_TOKEN_HERE')
    ->build();

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

Weitere Optionen finden Sie im Konfigurationsleitfaden.

Ruby

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

client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
  config.client_id = 'INSERT_OAUTH2_CLIENT_ID_HERE'
  config.client_secret = 'INSERT_OAUTH2_CLIENT_SECRET_HERE'
  config.refresh_token = 'INSERT_OAUTH2_REFRESH_TOKEN_HERE'
  config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end

Weitere Optionen finden Sie im Konfigurationsleitfaden.

Perl

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

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

my $oauth2_handler = $api_client->get_oauth2_applications_handler();
$oauth2_handler->set_client_id("INSERT_OAUTH2_CLIENT_ID_HERE");
$oauth2_handler->set_client_secret("INSERT_OAUTH2_CLIENT_SECRET_HERE");
$oauth2_handler->set_refresh_token("INSERT_OAUTH2_REFRESH_TOKEN_HERE");

Weitere Optionen finden Sie im Konfigurationsleitfaden.

curl

Rufen Sie zuerst mit einem HTTP-Client ein OAuth 2.0-Zugriffstoken ab. In diesem Leitfaden 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://oauth2.googleapis.com/token

Sie können das Zugriffstoken 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. In diesem Leitfaden werden die Details der Berichterstellung nicht behandelt.

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

Der Inhalt von query.json ist wie folgt:

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