2016-11-02 8 views
2

AdExchange Seller APIからレポートを取得しようとしています。 レポートが非常に大きい(> 100.000行)ように、ディメンションとメトリックの最大許容量を使用しています。 documentation on large reportsによれば、これは、alt=mediaパラメータを追加することによって、リミット・ブレイク機能を使用して可能です。しかし、私はGoogle API client for PHPを使ってそのパラメータをどのように追加するのか分かりません。私は公式のGoogleライブラリに固執することを好むだろうが、私は提案のために開いている。AdExchange Seller APIからレポートを生成中に、「alt」パラメータを追加

注:optParamsalt=csvまたはalt=mediaを追加すると機能しません。一部のディメンションおよび指標を削除するとデータに簡単にアクセスできます。

具体的には、accounts_reportsリソースを使用してからgenerateメソッドを使用しています。ソースコード(下記参照)を見ると、altパラメータを受け入れることはできませんが、明らかに何か不足しています。

$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', 
       ), 
      ), 
      ), 
     ) 
     ) 
    ); 

さらに詳しく調べると、この文はGoogle_Service_AdExchangeSeller_Resource_AccountsReportsクラスにあります。

クエリで送信されたレポート要求に基づいてAd Exchangeレポートを生成します。 JSONとして結果を返します。 CSV形式の出力を取得する クエリパラメータとして「alt = csv」を指定します。 (reports.generate)

しかし、それはどのように機能しますか?私が理解できる限り、それはしません。

答えて

2

答えは実際にはありませんが、コメントのために長いです。

私はあなたがクライアントライブラリで作業するつもりはないと思います。クライアントライブラリは、Discovery Services APIを介して生成されます。 APIがどのパラメータを取るかについての情報を提供します。何らかの理由により、このalt=csvは、そのAPIの検出サービスに登録されていません。それは記述の中にありますが、それはパラメータとして登録されていません。だから、クライアントライブラリ自体はあなたのためにそれを構築するつもりはありません。

あなたは、私がアイデアhere

で探しています応答は、コードを持っているクライアントライブラリを自分に変更を加えることであろう見ることができます。クライアントライブラリを手動で変更することは理想的ではありませんが、実行可能です。 altを試して追加し、CSVの値を付けます。

私はPHPクライアントライブラリの内部動作について十分な経験がありませんが、フォーラムにissueとして投稿することができます。それが発見されていないということは、クエリ文字列にランダムなパラメータを簡単に適用できるということです。私はそれを疑うが、それは価値がある。

+1

が答えてくれてありがとう!誰かが私の正気を確認できることを嬉しく思います。私は実際にクライアントのライブラリコードを変更しようとしましたが、あまりにも多くの時間を費やすことはありませんでした。もう一度やり直すかもしれない。しかし、alt = mediaパラメータを追加すると、ドキュメントに指定されているようにgzippedのcsvファイルが実際に返されることに気付きました。だから私は今、その解決策を使用します。回答ありがとうございます。私はあなたのものを正しいものとしてマークします。 –

1

これは、PHPクライアントライブラリで可能になるはずです。次の例では、ドライブのAPIでそれを行う方法を示します。

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

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

+0

こんにちは!確かに、それはすべきです。しかし、 'alt = media'パラメタを追加すると実際に動作します。そして、CSVで同じことをやっても、私が知る限りではありません。 –

関連する問題