Скрипт автоматизации отчетов Google AdSense - нужен пользователь для входа - PullRequest
0 голосов
/ 10 сентября 2018

Я работал над сценарием автоматизации для загрузки отчетов AdSense (AdMob), у меня был целый сценарий, который использовал пользовательские прямые http-вызовы API, однако при анализе кода ошибки я узнал, что API службы Рабочие учетные записи не могут получить доступ к «личным» данным, которые, по-видимому, являются отчетами. Каков наилучший способ автоматизации загрузки или отчетов без вмешательства человека (или почти никогда)? Я проверил документацию для библиотеки php api, которую поставляет Google, но API устарел - последнее обновление было 5 лет назад.

https://developers.google.com/adsense/management/ если вы идете в клиентские библиотеки-> узнать больше -> PHP -> просмотреть примеры.

Существует ли какая-либо новая и все еще релевантная информация, которую я мог бы использовать для выполнения своей задачи здесь?


Обновление. Используя этот код для генерации отчета:

<?php

  require_once 'vendor/autoload.php';
  $client = new Google_Client();
  $client->setAuthConfig('oauth_client.json');
  $client->setAccessType("offline");        // offline access
  $client->setIncludeGrantedScopes(true);   // incremental auth
  $client->addScope("https://www.googleapis.com/auth/adsense");
  $client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/go');
  $auth_url = $client->createAuthUrl();

  if( isset($_GET['code'])  ){
    $code=$_GET['code'];
  }else{
    $code=null;
  }

  if(!$code){ 
    header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
  }else{
    $client->authenticate($code);  
    $access_token = $client->getAccessToken();  
    $client->setAccessToken($access_token);
    $adsense = new Google_Service_Adsense($client);
    $reports = $adsense->reports;
     $csv = $reports->generate('2018-08-01','2018-08-05',array("metric" => ["VIEWED_IMPRESSIONS","CLICKS","EARNINGS"],"dimension"=>["DATE", "COUNTRY_CODE","APP_NAME"],"currency"=>"EUR"));
  }

Код работает как есть, однако, если я добавлю параметр «alt» => «csv»:

  $csv = $reports->generate('2018-08-01','2018-08-05',array("metric" => ["VIEWED_IMPRESSIONS","CLICKS","EARNINGS"],"dimension"=>["DATE", "COUNTRY_CODE","APP_NAME"],"currency"=>"EUR",'alt' =>'csv'));

результат "пусто":

Google_Service_AdSense_AdsenseReportsGenerateResponse Object
(
    [collection_key:protected] => warnings
    [averages] => 
    [endDate] => 
    [headersType:protected] => Google_Service_AdSense_AdsenseReportsGenerateResponseHeaders
    [headersDataType:protected] => array
    [kind] => 
    [rows] => 
    [startDate] => 
    [totalMatchedRows] => 
    [totals] => 
    [warnings] => 
    [internal_gapi_mappings:protected] => Array
        (
        )

    [modelData:protected] => Array
        (
        )

    [processed:protected] => Array
        (
        )

)

Я знаю о дезинфекции, не ругайте меня слишком много об этом, я хочу, чтобы это сначала заработало. Как добавить параметры alt = media и alt = csv?

...