Я работал над сценарием автоматизации для автоматизации загрузки отчетов 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
(
)
)
Я знаю о дезинфекции get, не ругайте меня слишком сильно, я хочу, чтобы сначала он заработал. Как добавить параметры alt = media и alt = csv?
ну, при попытке использовать примеры с реальной библиотекой php автозагрузчик классов не работает, а сами классы устарели.
Если вы говорите, что это не работает, отредактируйте свой вопрос и включите код, который, по вашему мнению, не работает. Объясните нам, что не работает, и мы поможем вам это исправить. Не видя кода, который вы пытаетесь, и не видя ошибок, вам трудно помочь вам.
обновил вопрос
Какой метод вы пытаетесь использовать жанровый отчет? какое сообщение об ошибке вы получаете?
Я использую область AdSense, а не область управления. Но да, я использую метод генерации. github.com/google/google-api-php-client-services/blob/master /…
Я не могу проверить это, потому что у меня нет учетной записи хоста adsence. Но ты снова получаешь результаты. Ошибки нет. Вы пробовали добавить параметр полей в свой запрос.
еще не пробовал, попробую еще раз
У меня тоже нет учетной записи хоста AdSense, это не вызов API хоста AdSense.
попробуйте что-то вроде $ adsense-> accounts-reports-> генерировать, но я думаю, что большая часть этого API больше не поддерживается.
Я не пытаюсь составлять отчеты по аккаунту, я пытаюсь получить отчет admob с параметром app_name, потому что я пытаюсь получить доход на основе дня, страны и названия приложения. Проблема здесь в том, что я не могу указать alt = media, который снимет ограничение в 100000 строк (или что-то в этом роде) ... Я начал анализировать результат json в файл csv. Но я не могу продолжить, если будет ограничение на количество строк ..: / Тем не менее, спасибо за помощь .. В конце концов я кое-что выясню и добавлю ответ, если никто не будет быстрее меня
И вы думаете, что api adsence даст вам доступ к отчетам admob?
это уже происходит. Единственная проблема - это ограничение на количество строк и формат csv. admob - это часть API отчетов AdSense -> developers.google.com/admob/android/reporting
Я отправил электронное письмо в Google, чтобы узнать, могу ли я получить информацию о том, какие методы действительно работают. Я отправил ссылку на ваш вопрос, кто-то может ответить, а может и не ответить. Я тоже не получил ответа.
спасибо, я добавил проблему на их страницу github, возможно, кто-то увидит это и даст ответ.
API не устарел, я бы назвал его стабильным. Пожалуйста, отредактируйте свой вопрос, включите свой код и опишите любые проблемы, которые у вас возникают с вашим решением. Вы также можете прочитать stackoverflow.com/help/how-to-ask