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:
Konfigurieren Sie Ihre Anwendung so, dass der folgende OAuth 2.0-Bereich angefordert wird:
https://www.googleapis.com/auth/adwordsIhre 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.
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:
- 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/adwordsund den Offlinezugriff an. - 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.
- 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/tokenSie 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"
}