Bibliothèques des clients
El Bibliothèques clientes PHP sont générés à partir des descriptions des ressources trouvées dans le documents de référence . Tout Object()
deviendra une classe dans la bibliothèque client de PHP. Par exemple, la classe [Object(Metric]
](https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet#metric) deviendra Google_Service_AnalyticsReporting_Metric
. Il est important d'être capable de regarder la description de la ressource et de comprendre la structure des classes générées, sinon, utilisez la source générée pour vous guider dans la façon dont les classes sont structurées.
Ainsi, dans le titre de votre question, vous demandez : "Comment définir l'alias de la dimension ?" Si vous regardez la description de la ressource et la source générée, vous remarquerez que seul l'attribut Metric
a la propriété alias
. Cela s'explique par le fait que le Metric
prend un expression
et non un name
domaine. Vous pouvez en fait fournir une expression mathématique telle que ga:sessions * ga:users
mais une telle chaîne de caractères peut prêter à confusion et il est donc préférable de définir un paramètre alias
pour cela expression
.
Limites et quotas de l'API
Vous demandez 10 rangées à la fois et vous voulez les paginer. Je vous encourage vivement à faire la demande maximale afin d'utiliser le plus efficacement possible votre serveur de données. Quota API . L'API est une ressource partagée et si vous l'utilisez de manière inefficace, elle ne vous mènera pas aussi loin. Ceci étant dit, je décrirai ci-dessous comment effectuer la pagination.
Pagination PHP
Supposons que vous sachiez comment effectuer une requête réussie avec auth et tout puisque vous avez lu attentivement la page d'accueil du site. Bonjour Analytics PHP guide :
// Create the ReportRequest object.
$request = new Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId($VIEW_ID);
$request->setDateRanges($dateRange);
$request->setMetrics($metrics);
$request->setDimensions($dimensions);
$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests( array( $request) );
$response = $analytics->reports->batchGet( $body );
Génial, bien joué. La partie la plus difficile est derrière vous. Tu es un codeur intelligent donc tu vas t'accrocher à ça. $response
y $request
parce que vous pensez qu'ils pourraient être importants. Donc vous allez de l'avant et analysez la réponse :
for ( $reportIndex = 0; $reportIndex < count( $response ); $reportIndex++ ) {
$report = $response[ $reportIndex ];
$header = $report->getColumnHeader();
$dimensionHeaders = $header->getDimensions();
$metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries();
$rows = $report->getData()->getRows();
$nextPageToken = $report->getNextPageToken();
...
}
Vous avez obtenu de belles informations de ce rapport, quelques dimensions et métriques, il semble que votre nouveau site de commerce électronique se porte bien. Tellement bien en fait que vous avez besoin d'obtenir plus de données de ce rapport depuis que vous avez atteint le seuil de rentabilité. pageSize avant d'avoir toutes les lignes nécessaires pour planifier votre stratégie de Q3. Ce n'est pas grave, vous êtes un codeur intelligent et vous vous êtes accroché à ce $request
y que $nextPageToken
. Vous savez exactement ce qu'il faut faire ; vous allez appeler l'API à nouveau avec l'option $nextPageToken
:
$request->setPageToken($nextPageToken);
$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests( array( $request) );
$response = $analytics->reports->batchGet( $body );
Vous venez donc de paginer à travers plusieurs pages. Rincer, laver et répéter. Pour ceux qui souhaitent que le JSON
équivalent ici :
Exemple de pagination JSON
Demande originale :
{
"reportRequests":
[
{
"viewId": "XXXX",
"metrics":
[
{
"expression": "ga:users"
}
],
"dimensions":
[
{
"name": "ga:pagepath"
},
{
"name": "ga:browser"
},
{
"name": "ga:country"
}
]
}
]
}
Réponse :
{
"reports": [
{
"columnHeader": {
"dimensions": [
"ga:pagepath",
"ga:browser",
"ga:country"
],
"metricHeader": {
"metricHeaderEntries": [
{
"name": "ga:users",
"type": "INTEGER"
}
]
}
},
"data": {
"rows": [
...
],
"totals": [
{
"values": [
"3739"
]
}
],
"rowCount": 1109,
"minimums": [
{
"values": [
"1"
]
}
],
"maximums": [
{
"values": [
"359"
]
}
]
},
"nextPageToken": "1000"
}
]
}
Deuxième demande :
{
"reportRequests":
[
{
"viewId": "XXXX",
"metrics":
[
{
"expression": "ga:users"
}
],
"dimensions":
[
{
"name": "ga:pagepath"
},
{
"name": "ga:browser"
},
{
"name": "ga:country"
}
],
"pageToken": "1000"
}
]
}