2016-05-27 7 views
0

arbeite ich einig Google Analytics-API-Statistik auf immer und bin in der Lage Metriken zu erhalten ganz gut diese mit ...Anruf auf eine Elementfunktion batchGet() auf einem Nicht-Objekt

$results = getResults($analytics, $profile->getId(), $value); 
$rows = $results->getRows(); 
$myvalue = $rows[0][0]; 
echo "<b>$value:</b> ". round($myvalue, 0) ."</br>"; 

aber die unten code löst einen Fehler aus (siehe Beitragstitel), wenn ich batchGet unter Verwendung des gleichen Analyseobjekts aufrufen, das im obigen Code funktioniert. Ich bin mir nicht sicher warum oder ob es einen alternativen Weg gibt, die Dimensionsdaten zu bekommen, nach denen ich suche.

$device = new Google_Service_AnalyticsReporting_Dimension(); 
$device->setName("ga:deviceCategory"); 
// Create the ReportRequest object. 
$request = new Google_Service_AnalyticsReporting_ReportRequest(); 
$request->setDimensions(array($device)); 
$body = new Google_Service_AnalyticsReporting_GetReportsRequest(); 
$body->setReportRequests(array($request)); 
return $analytics->reports->batchGet($body); 

Hier ist, wie ich die $ Analytik

Objekt instanziiert
function getService() 
{ 
// service account email, and relative location of your key file. 
$service_account_email = '[email protected]'; 
$key_file_location = 'pathto/file.p12'; 

// Create and configure a new client object. 
$client = new Google_Client(); 
$client->setApplicationName("Analytics"); 
$analytics = new Google_Service_Analytics($client); 

$key = file_get_contents($key_file_location); 
$cred = new Google_Auth_AssertionCredentials(
    $service_account_email, 
    array(Google_Service_Analytics::ANALYTICS_READONLY), 
    $key 
); 
$client->setAssertionCredentials($cred); 
if($client->getAuth()->isAccessTokenExpired()) { 
    $client->getAuth()->refreshTokenWithAssertion($cred); 
} 

return $analytics; 
} 
+0

Können Sie zeigen, wie Sie das Objekt '$ analytics' instanziieren? – Matt

Antwort

0

wissen immer noch nicht, warum batchGet einen Fehler wirft, aber der folgende Code funktioniert und wird die deviceCategories zurück.

$optParams = array(
    'dimensions' => 'ga:deviceCategory', 
    'filters' => 'ga:medium==organic'); 

$devices = $analytics->data_ga->get(
    'ga:'.$profile->getId(), 
    '2015-05-01', 
    '2015-05-15', 
    'ga:sessions', 
    $optParams); 

print_r($devices);