it-swarm.com.de

Google Analytics-API-Fehler 403: "Der Nutzer hat kein Google Analytics-Konto."

Ich erstelle ein Skript, das auf der schrittweisen Anleitung von Google Analytics auf dieser Seite basiert:

https://developers.google.com/analytics/resources/tutorials/hello-analytics-api

Die Autorisierung erfolgt ohne Probleme, bis versucht wird, auf Daten zuzugreifen. Der Rückkehrcode ist 403 und die Fehlermeldung lautet:

Der Nutzer hat kein Google Analytics-Konto

Diese Nachricht hat keinen Sinn: Mein Konto enthält Google Analytics-Daten, die mehrere Websites verfolgen, und ich kann problemlos über den Webbrowser darauf zugreifen. Ich habe die Analytics-API über die Google-API-Konsole zugelassen, und der API-Zugriff gibt mir die richtigen Daten. 

124
user989501

Ich hatte auch dieses Problem. Ich habe das Problem behoben, indem ich die E-Mail-Adresse für mein Servicekonto dem Google Analytics-Profil hinzugefügt habe, auf das ich zugreifen wollte. 

Ich habe die E-Mail-Adresse (z. B. [email protected]) für das Dienstkonto erhalten, indem Sie auf der Registerkarte "API-Zugriff" in der Google APIs-Konsole nachschauen.

Dann folgte ich den Anweisungen von Google zum Hinzufügen einer E-Mail-Adresse zu einem Analytics-Profil . Jetzt funktioniert alles wie erwartet.

Viel Glück!

255

Fügen Sie einfach Ihre angegebene E-Mail hinzu (Format [email protected]nt.com)

an User Manager:

 User does not have any Google Analytics account

Ich wünschte, es hilft dir

67
itsnikolay

Es wird in einem Kommentar oben erwähnt, aber wenn Sie die E-Mail-Adresse unter der Benutzerverwaltung für Ihr Konto account hinzufügen, funktioniert es nicht. Sie müssen im Bereich view auf die Benutzerverwaltung klicken.

 enter image description here

8
Lukos

Ich stand vor demselben Problem. Es wurde behoben, indem die E-Mail-ID des Dienstkonto-Benutzers (Ihr [email protected]) den Benutzern in Ihrem Analytics-Konto unter-

Analytics-Startseite -> Admin (linker Bereich) -> Benutzerverwaltung -> Hinzufügen (klicken Sie auf das Pluszeichen auf der rechten Seite des Menüs) -> Neuen Benutzer hinzufügen -> E-Mail-ID hinzufügen in E-Mail-Adressen eingeben.

 enter image description here

Jetzt wird das Problem gelöst.

7
vikash singh

Sie erhalten diese Fehlermeldung auch, wenn Sie sich noch nie mit dem Google-Konto angemeldet haben, mit dem Sie sich authentifizieren möchten.

4
Andrew Bullock

Ich habe den Fehler 403 erhalten, bis ich die Berechtigungen des E-Mail-Kontos von Google Analytics aus von "Lesen & Analysieren" in etwas anderes geändert habe, es gespeichert habe und dann die Berechtigungen wieder in "Lesen & Analysieren" geändert habe und es funktioniert.

2
Pearce

Ich habe den Fehler 403 getroffen. Diese Schritte haben mich umgehauen. Um klar zu sein, habe ich versucht, Googles Beispiel "HelloAnalytics.php" mit OAuth (sans Benutzer-Interaktion, geeignet für Cron-Jobs usw.) zu arbeiten.

Nach dem Aktivieren der Analytics-API habe ich unter "APIs & Auth/Credentials" ein neues "Service-Konto" erstellt. und speicherte das .p12-Schlüsselpaar. Ich ging dann in die Analytics-Benutzerverwaltungskonsole und fügte die E-Mail-Adresse dieses Service-Benutzers hinzu. 

Die .p12-Autorisierung mit der API PHP funktioniert, wenn ich only "Read & Analyze" only in der Berechtigungsliste abhaken. Wenn ich "Benutzer verwalten" und/oder "Bearbeiten" hinzufüge, bekomme ich den 403. Hoffe, das ist hilfreich, ich habe ein paar Stunden damit herumgefressen ...

2
Johnny O

Ich hatte auch dieses Problem und stellte fest, dass ich zu viele Berechtigungen angefordert hatte. Die Entwicklerkonsole fordert Sie auf, nach den Berechtigungen http://www.googleapis.com/auth/analytics und http://www.googleapis.com/auth/analytics.readonly zu fragen. Dies funktionierte nicht, als ich auch den sub-Claim verwendete. Eine sub-Anweisung weist Google an, ein Zugriffstoken auszugeben, das im Auftrag eines anderen Nutzers - in meinem Fall dem Google-Konto, das das Dienstkonto besitzt, betrieben wird. Ich entfernte die analytics-Berechtigung und blieb bei analytics.readonly mit dem Unteranspruch:

{
  "iss":"[email protected]nt.com",
  "sub":"[email protected]"
  "scope":"http://www.googleapis.com/auth/analytics",
  ...
}

Das ausgegebene Bearer-Token ermöglicht es mir, (zumindest einige) Google Analytics-Abfragen an Profile zu richten, deren Inhaber völlig unterschiedliche Google-Konten sind, die jedoch für meinen Google Mail-Nutzer (schreibgeschützt) freigegeben wurden ([email protected]) .

0
mogsie

Ich habe den gleichen Fehler erhalten, da ich mich nicht bei Google Analytics angemeldet habe. Also hatte ich es gelöst, indem ich mich im Analytics-Konto angemeldet hatte.

0
Rumman Siddiqui

Der Benutzer, für den Sie die API verwenden möchten, hat seinen GA -Dienst nicht aktiviert.
Einfach ein Google-Konto zu haben reicht nicht aus .

... Nur wenn Sie ein Google-Konto besitzen, erhalten Sie nicht automatisch Zugang zu Analytics. Zunächst müssen Sie sich für Google Analytics registrieren, eine einmaliger, einfacher Prozess ...

0
bldoron

Ich konnte das Problem beheben, indem ich sicherstellte, dass die

client = Google :: APIClient.new (: Anwendungsname => 'X',: Anwendungsversion => '1')

anwendungsnamenvariable 'X oben war der ACCOUNT-Name im Dashboard GA, nicht der PROPERTY-Name, der in meinem Fall die tatsächliche URL der Site war, auf die ich zugreifen möchte.

Verwirrend, aber dankbar behoben (ohne Google danke!)

0
Jonathan_W

Das Problem tritt auf, da wir kein "Unterargument" angeben. Wenn wir dies nicht bereitstellen, erfolgt der Anruf im Namen dieser E-Mail mit langem Servicekonto.

Geben Sie einfach ein Unterargument an, mit einer E-Mail, die Sie bereits im Bericht angegeben haben, und die Dinge sollten gut funktionieren!

0
Sony Kadavan

Anstatt ein Dienstkonto zu verwenden, können Sie die Notwendigkeit des Hinzufügens neuer Benutzerberechtigungen (gemäß den häufigsten Antworten in diesem Thread) umgehen, indem Sie OAuth client ID-Anmeldeinformationen verwenden.

Gehen Sie zum Dashboard API-Anmeldeinformationen und klicken Sie auf "Anmeldeinformationen erstellen" -> "OAuth-Client-ID". Anschließend sollten Sie eine Client-ID und ein Client-Geheimnis erhalten, die Sie zur Authentifizierung der API benötigen.

Jetzt können Sie OAuth2WebServerFlow verwenden, um sich nach Verwendungszweck zu authentifizieren. Hier ist ein Python3-Beispiel:

from apiclient.discovery import build
from oauth2client.client import OAuth2WebServerFlow

# TODO: Fill these in...
CLIENT_ID = ''
CLIENT_SECRET = ''
VIEW_ID = ''

flow = OAuth2WebServerFlow(
    CLIENT_ID, CLIENT_SECRET,
    'https://www.googleapis.com/auth/analytics.readonly',
    redirect_uri='urn:ietf:wg:oauth:2.0:oob'
)

authorize_url = flow.step1_get_authorize_url()
print('Receive code from:\n%s\n' % authorize_url)
code = input('Enter code here:').strip()
credentials = flow.step2_exchange(code)

api = build('analyticsreporting', 'v4', credentials=credentials)
body={
    'reportRequests': [{
        'viewId': VIEW_ID,
        'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
        'metrics': [{'expression': 'ga:sessions'}],
        'dimensions': [{'name': 'ga:country'}]
    }]
}

data = api.reports().batchGet(body=body).execute()
0
AlexG