Скрипт автоматизации отчетов Google AdSense - нужен пользователь для входа

Я работал над сценарием автоматизации для автоматизации загрузки отчетов 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?

API не устарел, я бы назвал его стабильным. Пожалуйста, отредактируйте свой вопрос, включите свой код и опишите любые проблемы, которые у вас возникают с вашим решением. Вы также можете прочитать stackoverflow.com/help/how-to-ask

DaImTo 10.09.2018 09:11

ну, при попытке использовать примеры с реальной библиотекой php автозагрузчик классов не работает, а сами классы устарели.

PaaPs 10.09.2018 09:14

Если вы говорите, что это не работает, отредактируйте свой вопрос и включите код, который, по вашему мнению, не работает. Объясните нам, что не работает, и мы поможем вам это исправить. Не видя кода, который вы пытаетесь, и не видя ошибок, вам трудно помочь вам.

DaImTo 10.09.2018 09:15
Хост Adsence или управление добавлением У меня есть несколько более новых образцов.
DaImTo 10.09.2018 09:22

обновил вопрос

PaaPs 10.09.2018 09:41

Какой метод вы пытаетесь использовать жанровый отчет? какое сообщение об ошибке вы получаете?

DaImTo 10.09.2018 10:18

Я использую область AdSense, а не область управления. Но да, я использую метод генерации. github.com/google/google-api-php-client-services/blob/master‌ /…

PaaPs 10.09.2018 10:35

Я не могу проверить это, потому что у меня нет учетной записи хоста adsence. Но ты снова получаешь результаты. Ошибки нет. Вы пробовали добавить параметр полей в свой запрос.

DaImTo 10.09.2018 11:41

еще не пробовал, попробую еще раз

PaaPs 10.09.2018 11:42

У меня тоже нет учетной записи хоста AdSense, это не вызов API хоста AdSense.

PaaPs 10.09.2018 11:44
тест здесь Я не могу создавать отчеты. Тот, что под API управления, по-видимому, устарел.
DaImTo 10.09.2018 11:46

попробуйте что-то вроде $ adsense-> accounts-reports-> генерировать, но я думаю, что большая часть этого API больше не поддерживается.

DaImTo 10.09.2018 12:15

Я не пытаюсь составлять отчеты по аккаунту, я пытаюсь получить отчет admob с параметром app_name, потому что я пытаюсь получить доход на основе дня, страны и названия приложения. Проблема здесь в том, что я не могу указать alt = media, который снимет ограничение в 100000 строк (или что-то в этом роде) ... Я начал анализировать результат json в файл csv. Но я не могу продолжить, если будет ограничение на количество строк ..: / Тем не менее, спасибо за помощь .. В конце концов я кое-что выясню и добавлю ответ, если никто не будет быстрее меня

PaaPs 10.09.2018 12:20

И вы думаете, что api adsence даст вам доступ к отчетам admob?

DaImTo 10.09.2018 12:43

это уже происходит. Единственная проблема - это ограничение на количество строк и формат csv. admob - это часть API отчетов AdSense -> developers.google.com/admob/android/reporting

PaaPs 10.09.2018 13:21

Я отправил электронное письмо в Google, чтобы узнать, могу ли я получить информацию о том, какие методы действительно работают. Я отправил ссылку на ваш вопрос, кто-то может ответить, а может и не ответить. Я тоже не получил ответа.

DaImTo 10.09.2018 13:24

спасибо, я добавил проблему на их страницу github, возможно, кто-то увидит это и даст ответ.

PaaPs 10.09.2018 13:31
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
17
521
0

Другие вопросы по теме

Похожие вопросы

Автономный красноречивый не сохраняет значение bigint в удаленной базе данных mysql
Как справиться с ошибкой GCP WordPress "Эта страница не работает. В настоящее время example.com не может обработать этот запрос. HTTP ERROR 500
Как включить разрыв строки при динамической выборке единственной переменной в php
Две таблицы, обновите определенные столбцы и / или вставьте новую запись, если не существует
Использование RDKAFKA Назначение нескольких идентификаторов группы нескольким потребителям
Токен Laravel / Lumen Auth JWT недействителен в последующих запросах, возможно, срок его действия истек?
HEVC не воспроизводится в Moto G4 Plus во время потоковой передачи с сервера
Установите файл index.php, чтобы отображать сообщения только из одной категории
Как получить URL-адрес последней посещенной главы каждой книги в Laravel?
Почему в контроллере в yii2 возникает ошибка отправки заголовков?