Zurzeit sind 348 Mitglieder online.
Zurzeit sind 348 Mitglieder online.
Probleme bei der AdWords-Anmeldung? Stelle hier deine Fragen.
Anleitung
favorite_border
Antworten

API-Login mit OAUTH / Abfrage über Cronjob

Rang 5
# 1
Rang 5

Hallo,

 

wir wollen regelmäßig Reports abfragen. Dafür läuft dann ein Cronjob, der über PHP die Daten abfragt und in eine Datenbank schreibt.

 

Nun hab ich Probleme mit dem Login. Meine Einstellungen sind wie folgt:

 

Die folgene (anonymisierte) JSON-Datei habe ich mit dem Account, den ich auch in Adwords verwende, in der Google API Console erstellt:

{
  "type": "service_account",
  "project_id": "plusserver-adwords-report-1",
  "private_key_id": "XXXXXXXXXXXXXXXXXX",
  "private_key": "-----BEGIN PRIVATE KEY-----\nXXXXXXXXXXXXXXXXXXXXXXXX\n-----END PRIVATE KEY-----\n",
  "client_email": "adwords-report-1@plusserver-adwords-report-1.iam.gserviceaccount.com",
  "client_id": "??????",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/adwords-report-1%40plusserver-adwords-report-1.iam.gserviceaccount.com"
}

So rufe ich dann die API auf (anonymisierter Ausschnitt):

<?php
$config = array(
    'OAUTH2' => array(
	'jsonKeyFilePath' => $jsonKeyFilePath,
	'scopes' => "https://www.googleapis.com/auth/adwords",
	'impersonatedEmail' => "meine@gmail.de",
     ),
     'ADWORDS' => array(
	'developerToken' => 'xxxxxxxxxxx',
	'clientCustomerId' => '123-456-78910', 
     )
);

$configuration = new Configuration($config);

$adWordsServices = new AdWordsServices();

$oAuth2Credential = new OAuth2TokenBuilder();
$oAuth2CredentialResult = $oAuth2Credential->from($configuration)->build();

$adSession = new AdWordsSessionBuilder();
$this->adWordsSession = $adSession->from($configuration)->withOAuth2Credential($oAuth2CredentialResult)->build();
$this->connection = $adWordsServices->get($this->adWordsSession, ConversionTrackerService::class);
?>

Als clientCustomerId verwende ich die AdWords-ID von dem Konto, das ich abfragen wil.

Leider bekomme ich immer die Fehlermeldung "Invalid email or User ID".

Was ist falsch? Muss die API noch irgendwo freigeschaltet werden? Wo ist eine User-ID in diesen Daten?

 

Viele Grüße

Harald Kampen