2016-11-02 1 views
2

Ich versuche, einen Bericht aus der AdExchange Seller API abrufen. Ich verwende die maximal zulässige Menge an Dimensionen und Metriken, so dass die Berichte ziemlich groß sind (> 100.000 Zeilen). Gemäß der documentation on large reports ist dies möglich, indem die Grenzwertunterbrechungsfunktion durch Hinzufügen des Parameters alt=media verwendet wird. Aber ich kann nicht herausfinden, wie man diesen Parameter unter Verwendung der Google API client for PHP hinzufügt. Ich würde es vorziehen, bei den offiziellen Google-Bibliotheken zu bleiben, aber ich bin offen für Vorschläge.Hinzufügen von `alt` Parameter beim Generieren von Berichten von AdExchange Seller API

Hinweis: Hinzufügen alt=csv oder 10 zu der optParams funktioniert nicht und ich kann problemlos auf die Daten zugreifen, wenn ich einige der Dimensionen und Metriken entfernen.

Genauer gesagt verwende ich die accounts_reports Ressource und dann die generate Methode. Betrachtet man den Quellcode (siehe unten), kann ich nirgendwo sehen, dass es einen alt Parameter akzeptieren würde, aber ich vermisse offensichtlich etwas.

$this->accounts_reports = new Google_Service_AdExchangeSeller_Resource_AccountsReports(
     $this, 
     $this->serviceName, 
     'reports', 
     array(
      'methods' => array(
      'generate' => array(
       'path' => 'accounts/{accountId}/reports', 
       'httpMethod' => 'GET', 
       'parameters' => array(
       'accountId' => array(
        'location' => 'path', 
        'type' => 'string', 
        'required' => true, 
       ), 
       'startDate' => array(
        'location' => 'query', 
        'type' => 'string', 
        'required' => true, 
       ), 
       'endDate' => array(
        'location' => 'query', 
        'type' => 'string', 
        'required' => true, 
       ), 
       'dimension' => array(
        'location' => 'query', 
        'type' => 'string', 
        'repeated' => true, 
       ), 
       'filter' => array(
        'location' => 'query', 
        'type' => 'string', 
        'repeated' => true, 
       ), 
       'locale' => array(
        'location' => 'query', 
        'type' => 'string', 
       ), 
       'maxResults' => array(
        'location' => 'query', 
        'type' => 'integer', 
       ), 
       'metric' => array(
        'location' => 'query', 
        'type' => 'string', 
        'repeated' => true, 
       ), 
       'sort' => array(
        'location' => 'query', 
        'type' => 'string', 
        'repeated' => true, 
       ), 
       'startIndex' => array(
        'location' => 'query', 
        'type' => 'integer', 
       ), 
      ), 
      ), 
     ) 
     ) 
    ); 

Graben weiter fand ich diese Aussage in der Google_Service_AdExchangeSeller_Resource_AccountsReports Klasse.

Generieren eines Ad Exchange-Berichts basierend auf der Berichtsanforderung, die in der Abfrage Parameter gesendet wurde. Gibt das Ergebnis als JSON zurück; Zum Abrufen der Ausgabe im CSV-Format geben Sie "alt = csv" als Abfrageparameter an. (reports.generate)

Aber wie genau würde das funktionieren? Soweit ich herausfinden kann, tut es das nicht.

Antwort

2

Nicht wirklich eine Antwort, sondern nach einem Kommentar zu verlangen.

Ich glaube nicht, dass Sie das mit der Client-Bibliothek arbeiten. Die Clientbibliotheken werden über die Discovery Services-API generiert. Dies gibt Informationen darüber, welche Parameter die API annimmt. Aus irgendeinem Grund ist diese alt=csv nicht in den Erkennungsdiensten für diese API registriert. Es ist in der Beschreibung, aber es ist nicht als Parameter registriert. Die Client-Bibliothek selbst wird es nicht für Sie erstellen.

Sie können die Antwort sehe ich bin auf der Suche here

Eine Idee, die Änderung der Client-Bibliothek selbst Sie den Code haben zu machen wäre. Obwohl das manuelle Ändern der Client-Bibliotheken nicht ideal ist, ist es machbar. Versuchen Sie, Alt hinzuzufügen und geben Sie einen Wert von CSV.

Ich habe nicht genug Erfahrung mit den inneren Arbeiten der PHP-Client-Bibliothek, aber Sie können dies als issue auf ihrem Forum veröffentlichen. Erwähnen Sie, dass es nicht in der Entdeckung sie eine leichtere Möglichkeit der Anwendung eines zufälligen Parameters auf die Abfrage-Zeichenfolge haben. Ich bezweifle es, aber es ist einen Versuch wert.

+1

Danke für die Antwort! Ich bin froh, dass jemand meine geistige Gesundheit bestätigen kann. Ich habe tatsächlich versucht, den Code der Client-Bibliothek zu ändern, aber ich habe nicht zu viel Zeit damit verbracht, es zu versuchen. Ich werde es bald wieder versuchen.Mir ist jedoch klargeworden, dass das Hinzufügen des alt = media-Parameters die CSV-Datei, die in der Dokumentation angegeben ist, tatsächlich zurückgibt. Also werde ich diese Lösung für jetzt verwenden. Danke für die Antwort. Ich werde dich als richtig markieren. –

1

Dies sollte mit der PHP-Client-Bibliothek möglich sein. Das folgende Beispiel zeigt, wie es mit dem Drive API zu tun:

$fileId = '0BwwA4oUTeiV1UVNwOHItT0xfa2M'; 
$content = $driveService->files->get($fileId, array(
    'alt' => 'media')); 

https://developers.google.com/drive/v3/web/manage-downloads#examples

+0

Hallo zusammen! Es stimmt, es sollte. Das Hinzufügen des Parameters alt = media funktioniert jedoch. Und das selbe mit csv zu machen, ist nicht so weit, wie ich sagen kann. –

Verwandte Themen