2016-05-25 3 views
0

Ich rufe Google Analytics an, während ich beim Erstellen des Projekts alles gut gemacht habe, kann ich die Daten problemlos aufrufen. Mit dem Aufruf von Echtzeitdaten gibt es jetzt 10k Anfragen pro Tag von einem Benutzer.Benutzer angeben, der die Google Analytics-API aufruft

https://developers.google.com/analytics/devguides/reporting/realtime/v3/limits-quotas#overview

In meinem Projekt habe ich 3 verschiedene Logins, die mit allen Arten von Daten drei verschiedene Vorlagen zeigen, auf jeder Seite i einen Ajax-Aufruf mache die Daten in die bestimmte Vorlage zu ziehen. Auch diese Logik funktioniert großartig und wie erwartet. aber wenn ich die App mit allen drei angemeldeten Benutzern teste und die Anrufe innerhalb einiger Stunden mache, wird das 10k-Limit bald getroffen.

Also habe ich meine Nachforschungen gemacht und festgestellt, dass die 10K-Anfragen pro Tag und auch pro GA-Benutzer sind. Jetzt versuche ich separate Benutzer in Google Analytics für jeden Benutzer in meinem Projekt zu erstellen und für die Ajax-Aufrufe, die ich in meinen Vorlagen mache, für die Aufrufe möchte ich natürlich die API als autorisierten Benutzer treffen.

Dies ist, wo ich bin in eine Wand laufen, ich finde es verwirrend, wie man einen neuen Benutzer unter dem gleichen GA-Konto erstellen und auth selbst als der Benutzer, wenn dem API

schlagen soll ich meinen Controller zeigen das macht Anrufe als Referenz für alle, wenn nötig unter

<?php 

namespace AppBundle\Controller\Api; 

use Symfony\Component\HttpFoundation\Response; 
use Google_Client; 

class GAGetVistorsCount 
{ 
protected $key; 
protected $email; 

public function __construct($key, $email) 
{ 
    $this->key  = $key; 
    $this->email = $email; 
} 

public function __invoke() 
{ 
    $client = new Google_Client(); 

    $gaAuth = 'https://www.googleapis.com/auth/analytics.readonly'; 
    $keyfile = file_get_contents($this->key); 

    $client->setApplicationName('TeamRock-Dashboard'); 
    $client->setAssertionCredentials(new \Google_Auth_AssertionCredentials(
       $this->email,[$gaAuth],$keyfile 
      )); 
    $analytics = new \Google_Service_Analytics($client); 

    $optParams = array(
     'dimensions' => 'rt:medium' 
    ); 

    $apiCall = $analytics->data_realtime->get('ga:<profileView>', 'rt:activeVisitors', $optParams); 
    $data = $apiCall->getTotalsForAllResults(); 

    return new Response(
     $data['rt:activeVisitors'] 
    ); 
    } 
} 

Jede Hilfe, Hinweise, Tipps und Anregungen für ein Paar von Tagen jetzt stressig geschätzt, gewesen auf dies bekommen würden: ')

Antwort

0

ich glaube, dass Anfragen werden pro Ansicht und nicht eingeschränkt pro Benutzer.

In jedem Fall glaube ich, dass der Versuch, Googles API-Grenzen zu umgehen, keine gute Idee ist. Meiner Meinung nach spiegelt das wider, dass Sie entweder die API oder den kostenlosen Dienst von Google missbrauchen. Ich empfehle Ihnen, Ihren Ansatz zu überdenken. Warum müssen Sie so viele Anfragen stellen?

Versuchen Sie, sich auf eine Anforderung pro Vorlage pro Tag zu beschränken, und stellen Sie sicher, dass Sie diese Daten entsprechend speichern, sodass Sie die gleichen Daten nicht mehr als einmal abrufen müssen.

+0

Sie haben das Limit pro Ansicht korrekt: https://developers.google.com/analytics/devguides/config/mgmt/v3/limits-quotas#core_reporting –