Workflow für die Multi-User-Authentifizierung

Im Authentifizierungsworkflow für mehrere Nutzer erstellen Sie Ihren eigenen OAuth-Workflow, um Ihre Nutzer zu authentifizieren. In der Google Identity-Dokumentation werden verschiedene Anwendungstypen sowie die Google API Console-Projektkonfiguration beschrieben, die Sie für die einzelnen Anwendungstypen benötigen. Alle diese App-Typen werden von der Google Ads API unterstützt. Weitere technische Details, die Sie beachten sollten:

  • Konfigurieren Sie Ihre Anwendung so, dass sie den folgenden OAuth 2.0-Bereich anfordert:

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

  • Schließen Sie den OAuth-App-Überprüfungsprozess ab, um Ihre App überprüfen zu lassen.

Workflowübersicht

Die Implementierung eines Workflows für die Authentifizierung mehrerer 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. Nutzer müssen sich mit einem Passkey authentifizieren, um den Autorisierungsablauf abzuschließen und ein Aktualisierungstoken zu generieren.
  2. Autorisierungscode gegen Tokens austauschen: Nachdem der Nutzer die Berechtigung erteilt hat, erfassen Sie den zurückgegebenen Autorisierungscode und tauschen ihn gegen ein Zugriffstoken und ein Aktualisierungstoken aus.
  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 die GoogleAdsClient-Instanz zur Laufzeit initialisieren.

Konfiguration für Clientbibliothek

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, der Ihrer Programmiersprache entspricht.

Java

Sie können Ihre GoogleAdsClient-Instanz zur Laufzeit mit den Anmeldedaten initialisieren, die Sie von dem Nutzer erhalten haben, für dessen Konten Sie API-Aufrufe ausführen.

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 von dem Nutzer erhalten haben, für dessen Konten Sie API-Aufrufe ausführen.

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 von dem Nutzer erhalten haben, für dessen Konten Sie API-Aufrufe ausführen.

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 von dem Nutzer erhalten haben, für dessen Konten Sie API-Aufrufe ausführen.

$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 von dem Nutzer erhalten haben, für dessen Konten Sie API-Aufrufe ausführen.

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 von dem Nutzer erhalten haben, für dessen Konten Sie API-Aufrufe ausführen.

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 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://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/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"

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"
}