2016-09-07 1 views
2

J'utilise l'API Google V4 https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/service-phpPHP Google API d'analyse v4 Metrics setAlias ​​Fonction non retour correct Metrics titre

J'ai problème avec fonction setAlias. Lorsque plusieurs métriques sont sélectionnées, tous les en-têtes renvoyés sont identiques.

code:

<?php 
    $metrices = {FORM ARRY WITH MULTIPLE METRICES} 
     $nmetrices = array(); 
     if(is_array($metrices) && count($metrices) > 0){ 
      $i=0; 
      foreach($metrices as $metric){ 
      $nmetrices[$i] = new  Google_Service_AnalyticsReporting_Metric(); 
      $nmetrices[$i]->setExpression($metric); 
      $nmetrices[$i]->setAlias($metric); 
      $i+=1; 
      } 
     }?> 

Exemple:

J'ai choisi "ga: les utilisateurs" et "ga: percentNewSessions", mais les résultats retournés ont le titre: "ga: utilisateurs" pour les métrique.

ga:medium: (none) 
ga:date: 20150810 
Metric type: INTEGER 
**ga:users: 764 
ga:users: 97.38219895287958** 
ga:medium: (none) 
ga:date: 20150811 
Metric type: INTEGER 
**ga:users: 2495 
ga:users: 85.50284629981024** 

Répondre

1

Je viens de démarrer sur Analytics API v4 et j'ai rencontré ce problème. Le code PHP fourni ne permet pas de multiples métriques pour la fonction printResults() dans l'exemple, cependant les données de Google contiennent l'alias correct. L'objet métrique de google est une racine unique, mais l'objet d'en-tête metrics est une entrée distincte par type d'indicateur demandé.

Voici une fonction printResults() mise à jour qui prendra en charge plusieurs métriques.

function printResults($reports) { 
    for ($reportIndex = 0; $reportIndex < count($reports); $reportIndex++) { 
     $report = $reports[ $reportIndex ]; 
     $header = $report->getColumnHeader(); 
     $dimensionHeaders = $header->getDimensions(); 
     $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries(); 
     $rows = $report->getData()->getRows(); 

     for ($rowIndex = 0; $rowIndex < count($rows); $rowIndex++) { 
      $row = $rows[ $rowIndex ]; 
      $dimensions = $row->getDimensions(); 
      $metrics = $row->getMetrics(); 
      for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) { 
       print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n"); 
      } 

      for ($j = 0; $j < count($metricHeaders); $j++) { 
       $entry = $metricHeaders[$j]; 
       $values = $metrics[$rowIndex]; 
       $value = $values->getValues()[$j]; 
       print($entry->getName() . ": " . $value . "\n"); 
      } 
     } 
    } 
} 
+0

belle prise, ça me rendait fou – sathia