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 dieses App-Typs benötigen. Alle diese App-Typen werden von der Google Ads API unterstützt. Weitere technische Details, die Sie beachten sollten:
Für den Zugriff auf die Google Ads API müssen Sie Ihre Anwendung so konfigurieren, dass sie sich für den folgenden Bereich authentifiziert:
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 Kontostatistiken im Offlinemodus, um Berichte zu erstellen und Kontoanalysen durchzuführen. Aus diesem Grund empfehlen wir, die Anforderung von OAuth-Offlinezugriff.
Sie sollten das OAuth-App-Überprüfungsverfahren durchlaufen und Ihre App zertifizieren lassen.
Clientbibliothek 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 für API-Aufrufe verwenden.
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 mit den Anmeldedaten initialisieren, die Sie vom Nutzer erhalten haben, dessen Konten Sie für API-Aufrufe verwenden.
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 mit den Anmeldedaten initialisieren, die Sie vom Nutzer erhalten haben, dessen Konten Sie für API-Aufrufe verwenden.
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 mit den Anmeldedaten initialisieren, die Sie vom Nutzer erhalten haben, dessen Konten Sie für API-Aufrufe verwenden.
$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 mit den Anmeldedaten initialisieren, die Sie vom Nutzer erhalten haben, dessen Konten Sie für API-Aufrufe verwenden.
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 mit den Anmeldedaten initialisieren, die Sie vom Nutzer erhalten haben, dessen Konten Sie für API-Aufrufe verwenden.
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
Verwenden Sie zuerst einen HTTP-Client, um ein OAuth 2.0-Zugriffstoken abzurufen. 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://www.googleapis.com/oauth2/v3/tokenSie können das Zugriffstoken jetzt in Ihren API-Aufrufen verwenden. Im folgenden Beispiel
wird gezeigt, wie Sie einen Kampagnenbericht mit der
GoogleAdsService.SearchStream Methode 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/v24/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"
}