Ähnlich wie beim Dienstkonto-Workflow werden beim Authentifizierungsablauf für einzelne Nutzer die Autorisierungs- und Nutzerverwaltungsfunktionen der Google Ads-Benutzeroberfläche verwendet, um der App Zugriff auf alle erforderlichen Konten zu gewähren. Dieser Authentifizierungsablauf umfasst zwei Schritte:
- Sie gewähren einem einzelnen Nutzer Zugriff auf alle Google Ads-Konten, die von der App verwaltet werden sollen.
- Der Nutzer autorisiert Ihre App, seine Google Ads-Konten in seinem Namen zu verwalten, und gewährt der App damit Zugriff auf alle Google Ads-Konten.
Da nur ein Nutzer beteiligt ist, können Sie Tools wie die gcloud CLI oder das Codebeispiel für GenerateUserCredential verwenden, anstatt einen eigenen OAuth 2.0-Nutzerauthentifizierungsablauf zu erstellen.
Ein ähnlicher Anwendungsfall für diesen Workflow ist, wenn auf Ihre Konten über eine Handvoll Nutzeranmeldungen (z. B. 3 bis 4 Nutzer) zugegriffen werden kann. In diesem Fall ist der Entwicklungsaufwand für die Erstellung eines umfassenden OAuth-Workflows für die Multi-Faktor-Authentifizierung im Vergleich zum Aufwand für die Autorisierung von 3 bis 4 Nutzern mit einem Befehlszeilentool wie der gcloud-Befehlszeile nicht gerechtfertigt.
Nachteile
Dieser Ablauf hat im Vergleich zum Workflow für Dienstkonten einige Nachteile:
- Für den Nutzerauthentifizierungsvorgang müssen Sie in der Google Cloud Console eine OAuth 2.0-Client-ID und ein ‑Secret erstellen. Das erfordert mehr Konfigurationsschritte als das Erstellen eines Dienstkontos und eines Schlüssels.
- Wenn der autorisierte Nutzer das Team oder Unternehmen verlässt, funktioniert Ihre App möglicherweise nicht mehr, wenn Sie den Nutzer aus Ihren Konten entfernen oder das Nutzerkonto deaktivieren. Dienstkonten sind nicht an einzelne Nutzer gebunden, sodass dieses Risiko vermieden wird.
- Der Nutzer, der das Google Ads-Konto autorisiert, sollte Passkeys in seinem Google-Konto aktivieren, um zu verhindern, dass sein Google-Konto aufgrund mangelnder Sicherheit, Malware oder Phishing kompromittiert wird. Dienstkonten sind nicht erforderlich, um Passkeys zu aktivieren, und sind weniger anfällig für dieses Problem, da einige dieser Angriffsmethoden nicht direkt auf sie angewendet werden können.
Anmeldedaten generieren
Konfigurieren Sie einen OAuth-Zustimmungsbildschirm für Ihre Anwendung und fügen Sie
https://www.googleapis.com/auth/adwordsals OAuth 2.0-Bereich hinzu. Weitere Informationen finden Sie unter OAuth-Zustimmungsbildschirm einrichten.Erstellen Sie eine Client-ID und einen Clientschlüssel. Folgen Sie dazu dieser Anleitung. Nachdem Sie den OAuth 2.0-Client erstellt haben, laden Sie die JSON-Datei des Clients herunter. Klicken Sie dazu im Bestätigungsdialogfeld auf den Button JSON herunterladen. Speichern Sie die Datei als
credentials.json.Suchen Sie ein Nutzerkonto, das Zugriff auf alle Google Ads-Konten hat, die Sie mit Ihrer App verwalten möchten. Wenn Konten ohne Zugriff vorhanden sind, gewähren Sie dem Nutzer Zugriff auf das Konto.
Laden Sie die gcloud CLI herunter und installieren Sie sie. Prüfen Sie nach der Installation, ob das Tool richtig funktioniert, indem Sie den Befehl
gcloud versionüber die Befehlszeile ausführen. Die Ausgabe sieht dann ungefähr so aus:gcloud versionGoogle Cloud SDK 492.0.0 alpha 2024.09.06 beta 2024.09.06 bq 2.1.8 bundled-python3-unix 3.11.9 core 2024.09.06 enterprise-certificate-proxy 0.3.2 gcloud-crc32c 1.0.0Generieren Sie ein OAuth 2.0-Aktualisierungstoken, indem Sie das gcloud CLI-Tool mit der Datei
credentials.jsonaus dem vorherigen Schritt ausführen. Die Übergabe von--client-id-fileist erforderlich, damit das Aktualisierungstoken für Ihr Google API Console-Projekt und nicht für das Standardprojekt der gcloud CLI ausgestellt wird:gcloud auth application-default login \ --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform \ --client-id-file=PATH_TO_CREDENTIALS_JSONMit dem Befehl
gcloudwird in einem neuen Browserfenster ein Anmeldefenster für das Google-Konto geöffnet, in dem Sie die OAuth 2.0-Authentifizierungsschritte durchlaufen. Melden Sie sich als der Nutzer an, den Sie in den vorherigen Schritten ausgewählt haben. Wenn Ihre App nicht überprüft ist, wird möglicherweise ein Warnbildschirm angezeigt. In solchen Fällen können Sie gefahrlos auf den Link Erweitert und dann auf die Option Zu PROJECT_NAME (unsicher) klicken.Klicken Sie nach der Bestätigung der Bereiche auf den Button Weiter, um die Berechtigung zu erteilen. Der Browser ruft
https://cloud.google.com/sdk/auth_successauf. Das bedeutet, dass die Authentifizierung erfolgreich war. Auf der Seite wird die folgende Meldung angezeigt:Authorization code granted. Close this tab.Der Befehl
gcloudgibt die folgende Meldung aus:Credentials saved to file: [/****/.config/gcloud/application_default_credentials.json]Öffnen Sie die Datei
application_default_credentials.json. Der Inhalt sieht etwa so aus:{ "account": "", "client_id": "******.apps.googleusercontent.com", "client_secret": "******", "refresh_token": "******", "type": "authorized_user", "universe_domain": "googleapis.com" }
Clientbibliotheken konfigurieren
Wählen Sie den Tab für Ihre Programmiersprache aus, um eine Anleitung zum Konfigurieren der Clientbibliothek zu erhalten. Wenn Ihr autorisierter Nutzer über ein Google Ads-Verwaltungskonto auf Kundenkonten zugreift, legen Sie login-customer-id (oder loginCustomerId) auf die 10-stellige Kundennummer dieses Verwaltungskontos ohne Bindestriche fest.
Java
Konfigurieren Sie die folgenden Schlüssel in der Datei ads.properties.
api.googleads.clientId=INSERT_OAUTH2_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_OAUTH2_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_OAUTH2_REFRESH_TOKEN_HERE
api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
Weitere Optionen finden Sie im Konfigurationsleitfaden.
.NET
Legen Sie die OAuth 2.0-Anmeldedaten für die GoogleAdsConfig-Instanz fest und verwenden Sie sie, um das GoogleAdsClient-Objekt zu initialisieren.
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
Konfigurieren Sie die folgenden Schlüssel in der Datei google-ads.yaml.
client_id: INSERT_OAUTH2_CLIENT_ID_HERE
client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE
refresh_token: INSERT_OAUTH2_REFRESH_TOKEN_HERE
login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE
use_proto_plus: True
Weitere Optionen finden Sie im Konfigurationsleitfaden.
PHP
Konfigurieren Sie die folgenden Schlüssel in Ihrer google_ads_php.ini.
[GOOGLE_ADS]
loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
[OAUTH2]
clientId = "INSERT_OAUTH2_CLIENT_ID_HERE"
clientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE"
refreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE"
Weitere Optionen finden Sie im Konfigurationsleitfaden.
Ruby
Konfigurieren Sie die folgenden Schlüssel in der Datei google_ads_config.rb.
Google::Ads::GoogleAds::Config.new do |c|
c.client_id = 'INSERT_OAUTH2_CLIENT_ID_HERE'
c.client_secret = 'INSERT_OAUTH2_CLIENT_SECRET_HERE'
c.refresh_token = 'INSERT_OAUTH2_REFRESH_TOKEN_HERE'
c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end
Weitere Optionen finden Sie im Konfigurationsleitfaden.
Perl
Konfigurieren Sie die folgenden Schlüssel in der Datei googleads.properties.
clientId=INSERT_OAUTH2_CLIENT_ID_HERE
clientSecret=INSERT_OAUTH2_CLIENT_SECRET_HERE
refreshToken=INSERT_OAUTH2_REFRESH_TOKEN_HERE
loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_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"
}