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