9 votes

l'api google analytics demande une url spécifique

J'accède à l'API de Google Analytics avec PHP, ce qui fonctionne de mon côté, mais j'aimerais pouvoir filtrer les résultats un peu plus. Pour l'instant, j'utilise :

$OBJresult = $analytics -> data_ga -> get(
    'ga:' . $profilID,
    '2012-01-01',
    date( "Y-m-d" ),
    'ga:visits',
    array(
        'dimensions' => 'ga:pagePath',
        'metrics' => 'ga:pageviews',
        'sort' => '-ga:pageviews',
        'max-results' => '25'
    )
);

Actuellement, la recherche renvoie un ensemble de 25 pages triées en fonction de leurs occurrences. J'aimerais restreindre les résultats à un chemin spécifique au sein du serveur. Par exemple, interroger uniquement domain.com/news et voir uniquement les pages d'actualités les plus consultées. Je peux filtrer avec PHP mais je préfère que la requête soit aussi spécifique que possible.

Merci pour votre aide

19voto

Barmar Points 135986

Utilisez le filters option.

$OBJresult = $analytics->data_ga->get(
    'ga:' . $profilID,
    '2012-01-01',
    date("Y-m-d"),
    'ga:visits',
    array(
        'filters' => 'ga:pagePath==/news',
        'dimensions' => 'ga:pagePath',
        'metrics' => 'ga:pageviews',
        'sort' => '-ga:pageviews',
        'max-results' => '25'
    )
);

Voir aquí pour obtenir la liste des dimensions de suivi des pages sur lesquelles vous pouvez filtrer.

11voto

David Shaw Points 545

Vous devez utiliser la chaîne de filtres pour dire "if path includes /news", ce qui peut être fait comme suit :

$OBJresult=$analytics->data_ga->get(
    'ga:'.$profilID,
    '2012-01-01',
    date("Y-m-d"),
    'ga:visits',
    array(
        'filters' => 'ga:pagePath=@/news',
        'dimensions' => 'ga:pagePath',
        'metrics' => 'ga:pageviews',
        'sort' => '-ga:pageviews',
        'max-results' => '25'));

La réponse fournie par Barmar ne trouvera qu'une correspondance exacte pour la page /news.

0voto

Robert Sinclair Points 1342

Exemple de rapport V4 qui peut être utile. Dieu merci pour ces requêtes, leurs objets et la mauvaise documentation peuvent causer un grave cancer de l'âne

function segmentRequest(&$analyticsreporting) {

$query = [
        "viewId" => "XXXXXXX",
        "dateRanges" => [
            "startDate" => "2018-02-01",
            "endDate" => "2018-02-15"
        ],
        "metrics" => [
            "expression" => "ga:pageviews"
        ],
        "dimensions" => [
            "name" => "ga:pagepath"
        ],
        "dimensionFilterClauses" => [
            'filters' => [
                "dimension_name" => "ga:pagepath",
                "operator" => "EXACT",
                "expressions" => "/en/some_cool_page.php"
            ]
        ]
    ];

  // Call the batchGet method.
  $body = new Google_Service_AnalyticsReporting_GetReportsRequest();
  $body->setReportRequests( array( $query) );
  $response = $analyticsreporting->reports->batchGet( $body );

  printResults($response->getReports());
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X