J'essaie de récupérer des données avec l'API Google Analytics via des comptes de service.
J'ai cherché sur stackoverflow comment faire et j'ai utilisé exactement le même code trouvé sur plusieurs messages, mais j'ai eu des problèmes pour le faire fonctionner.
Sources:
Applications de service et API Google Analytics V3: authentification OAuth2 de serveur à serveur?
Applications de service et API Google Analytics V3: erreur 101 (net :: ERR_CONNECTION_RESET)
Voici ce que j'ai obtenu:
require_once('googleAPIGoogle_Client.php');
require_once('googleAPI/contrib/Google_AnalyticsService.php');
const CLIENT_ID = 'xxxxxxxx001.apps.googleusercontent.com';
const SERVICE_ACCOUNT_NAME = '[email protected]';
$keyfile = $_SERVER['DOCUMENT_ROOT']."/xxxxxxx284-privatekey.p12";
$client = new Google_Client();
$client->setAccessType('offline');
$client->setApplicationName("cc insights");
$key = file_get_contents($keyfile);
$client->setClientId(CLIENT_ID);
$client->setAssertionCredentials(new Google_AssertionCredentials(
SERVICE_ACCOUNT_NAME,
array('https://www.googleapis.com/auth/analytics.readonly'),
$key)
);
$service = new Google_AnalyticsService($client);
$data = $service->data_ga->get("ga:xxxx7777", "2012-01-01", "2013-01-25", "ga:pageviews");
var_dump($data);
lors de l'exécution, j'ai eu l'erreur suivante:
Erreur irrécupérable: exception non détectée "Google_ServiceException" avec le message "Erreur lors de l'appel à GET https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3Axxxx7777&start-date=2012-01-01&end- date = 2013-01-25 & metrics = ga% 3Apageviews : (403) L'utilisateur ne dispose pas des autorisations suffisantes pour ce profil. ' dans /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php:66 Trace de pile: # 0/Applications/XAMPP/xamppfiles/htdocs/insights/application/bibliothèques/googleAPI/io/Google_REST .php (36): Google_REST :: decodeHttpResponse (Object (Google_HttpRequest)) # 1 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/service/Google_ServiceResource.php(178): Google_REST :: execute (Object (Object) (Google_HttpRequest)) # 2 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/contrib/Google_AnalyticsService.php(383): Google_ServiceResource -> __ call ('get', Array) # 3/Applications/XAMPP xamppfiles/htdocs/insights/application/bibliothèques/Google.php (46): Google_DataGaServiceResource-> get ('g dans /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php sur la ligne 66
Parce que j'utilise exactement le même code que les exemples de travail, je pense que cela pourrait être un problème avec les paramètres de l'API ou du compte de service?
Voici l'utilisateur que j'ai ajouté au compte analytique:
et voici les comptes d'accès api:
Quelqu'un sait-il ce que je fais mal?
J'obtenais exactement la même erreur et cela l'a résolu pour moi:
J'utilisais l'ID de compte au lieu de l'ID de vue. Le passage à l'ID de vue l'a corrigé - c'est toujours l '"ID de vue" et non l'ID de compte ou de propriété (qui ressemble à "UA-xxx"). L'ID d'affichage est pour une propriété Web spécifique et peut être trouvé dans Admin-> Affichage (3e colonne) -> Paramètres d'affichage. C'est un entier sans tirets.
J'ai eu le même problème aujourd'hui, le profileId est difficile à trouver, vous pouvez l'avoir dans chaque URL de l'analyse, disons https://www.google.com/analytics/web/#management/Settings/aXXXXXXwYYYYYYYpZZZZZZZZ/ c'est la partie ZZZZZZZ
Même problème. Résolu en utilisant l'ID VIEW au lieu de l'ID de compte (UA-XXXXX-1).
Analytics Console > Admin -> View (Profile) -> View Settings -> View ID
ET
Assurez-vous d'ajouter le compte de service à votre liste d'utilisateurs dans la console Google Analytics. Le configurer simplement dans la section Informations d'identification, API et autorisations de la console du développeur ne lui accordera toujours pas l'accès à vos analyses.
Analytics Console > Admin -> Account -> User Management -> "Add permissions for:"
J'ai la même erreur, mais après un certain temps, j'ai reconnu que j'utilisais ce script avec mon google chrome (ma propre adresse e-mail), mais l'API Analytics s'exécute sur l'e-mail de l'entreprise. La solution pourrait donc être de modifier les paramètres de votre google chrome. Il suffit de vous déconnecter du compte gmail dans votre google chrome (paramètres) et de le tester à nouveau.
Utilisez Afficher l'ID et non l'ID du compte, dans l'onglet Admin, "Afficher les paramètres" "Afficher l'ID".
M'a beaucoup aidé après 2 semaines à essayer de trouver une solution:
Console Analytics -> Admin -> Afficher (profil) -> Afficher les paramètres -> Afficher l'ID
Sur une autre application, j'obtenais "Autorisations insuffisantes" et j'ai découvert que mon fichier .htaccess comportait certaines restrictions de fichier à l'origine du problème.
J'ai eu le même problème en utilisant la bibliothèque .net, après quelques bricolages, j'ai trouvé la solution:
Accédez à votre site de gestion Google Analytics et ajoutez le compte de service en tant qu'utilisateur et accordez à ce compte les droits nécessaires
Veuillez créer un segment partagé ... Cela fonctionnera
http://www.periscopix.co.uk/blog/google-analytics-new-feature-shared-segments/
Eu le problème .. il s'avère que l'ID de compte est caché dans l'URL de votre compte d'analyse!
https://developers.google.com/analytics/devguides/reporting/core/v3/#user_reports
L'URL ressemble généralement à ceci:
https://www.google.com/analytics/web/?hl=en#management/Settings/a51343283w843304 p87396224 /%3Fm.page%3DAccountSettings/
L'ID que nous recherchons suit la lettre p.
Dans l'exemple ci-dessus, l'ID qui fonctionnera est: 87396224
vous utilisez peut-être un autre ID client: Client secret: pour obtenir les détails d'un autre identifiant de profil