Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 23.01.2020, 15:33   #11
Дмитрий Громов
Представитель
 
Регистрация: 16.08.2018
Адрес: Москва
Сообщений: 1,651
Репутация: 5987
Социальные сети Профиль в ВКонтакте Аккаунт в Telegram

По умолчанию Re: API Yandex.Metrica. Вопрос. Дм. Громову

Цитата:
Сообщение от keepersheet Посмотреть сообщение
Ок, я переформулирую.
Могу ли истолковать ваши ответы, Дмитрий, за которые очень благодарен - таким образом, что технически невозможно получить достоверные отчеты РСЯ, если в запросе к API Yandex.Metrica указан временной интервал

data1 => yesterday, data2 => yesterday

?
Да, все верно. Данные этого отчета гарантировано невозможно получить за вчерашний день так как существует отставание как минимум в одни сутки.
__________________
Не бойтесь задавать вопросы или писать про свои проблемы с Директом, РСЯ или ADFOX на: dgromov@yandex-team.ru. Я передам их в Яндекс.
Дмитрий Громов на форуме   Ответить с цитированием

Реклама
Старый 31.01.2020, 06:11   #12
keepersheet
Кандидат наук
 
Аватар для keepersheet
 
Регистрация: 21.06.2016
Сообщений: 341
Репутация: 11135
Социальные сети Профиль в LinkedIn

ТопикСтартер Re: API Yandex.Metrica. Вопрос. Дм. Громову

Дмитрий, позвольте вопрос.
Следуя вашему совету, экспериментирую следующим образом; вот такой примерно класс:

Код:
require 'typhoeus'
require 'json'

class YandexMetrika
  def self.start(token)
    params = {
                 'ids' => *******,
                 'metrics' => 'ym:s:visits,ym:s:users,ym:s:yanRequests,ym:s:yanShows,ym:s:yanRendersPerHit,ym:s:yanPartnerPrice,ym:s:yanCPMV,ym:s:yanRevenuePerVisit',
                 'dimensions' => 'ym:s:yanUrlHash',
                 'lang' => 'en',
                 'date1' => '2020-01-14',
                 'date2' => '2020-01-15',
                 'attribution' => 'Last',
                 'accuracy' => 'full'
               }
    inquiry(token, params)
    end

  def self.inquiry(token, params)
    response = Typhoeus::Request.get(
      'https://api-metrika.yandex.ru/stat/v1/data',
      params: params,
      headers: {
        Accept: 'application/x-yametrika+json',
        Authorization: 'OAuth' + token
      }
    )
    JSON.parse(response.body)
  end
end
возвращает json, который несложно разобрать в аккуратную табличку, да вот только понять не могу, объекты какого класса возвращает запрос метрики ym:s:yanPartnerPrice ? иными словами, какие цифры мне необходимо сложить, чтобы получить в сумме доход за указанный в запросе период времени? - исходя из логики примера, 0.424687, 0.352285 ? Это float?


Код:
{"query"=>{"ids"=>[********], "dimensions"=>["ym:s:yanUrlHash"], "metrics"=>["ym:s:visits", "ym:s:users", "ym:s:yanRequests", "ym:s:yanShows", "ym:s:yanRendersPerHit", "ym:s:yanPartnerPrice", "ym:s:yanCPMV", "ym:s:yanRevenuePerVisit"], "sort"=>["-ym:s:visits"], "date1"=>"2020-01-14", "date2"=>"2020-01-15", "limit"=>100, "offset"=>1, "attribution"=>"Last", "group"=>"Week", "auto_group_size"=>"1", "quantile"=>"50", "offline_window"=>"21", "currency"=>"RUB", "adfox_event_id"=>"0"},

 "data"=>[{"dimensions"=>[{"id"=>"7002501226679576762", "page_id"=>"65195", "favicon"=>"masterpro.ws", "name"=>"https://masterpro.ws/forum/34-lokalnye-seti/4914-obkhod-blokirovki-razdachi-4g-interneta-beeline-po-wi-fi-cherez-mob-tochku-dostupa"}], "metrics"=>[22.0, 22.0, 68.0, 23.0, 2.95652174, 0.424687, 18.46465217, 0.01930395]},
{"dimensions"=>[{"id"=>"7232722633292861701", "page_id"=>"65195", "favicon"=>"masterpro.ws", "name"=>"https://masterpro.ws/forum/13-kak-sdelat-tak-chtoby-i-t-d/4554-pravilnyj-batnik-dlya-podklyucheniya-setevogo-diska"}], "metrics"=>[19.0, 18.0, 65.0, 34.0, 3.0, 0.352285, 10.36132353, 0.01854132]},
# etc
# -----
keepersheet вне форума   Ответить с цитированием
Старый 31.01.2020, 12:29   #13
Дмитрий Громов
Представитель
 
Регистрация: 16.08.2018
Адрес: Москва
Сообщений: 1,651
Репутация: 5987
Социальные сети Профиль в ВКонтакте Аккаунт в Telegram

По умолчанию Re: API Yandex.Metrica. Вопрос. Дм. Громову

Цитата:
Сообщение от keepersheet Посмотреть сообщение
Дмитрий, позвольте вопрос.
Следуя вашему совету, экспериментирую следующим образом; вот такой примерно класс:

Код:
require 'typhoeus'
require 'json'

class YandexMetrika
  def self.start(token)
    params = {
                 'ids' => *******,
                 'metrics' => 'ym:s:visits,ym:s:users,ym:s:yanRequests,ym:s:yanShows,ym:s:yanRendersPerHit,ym:s:yanPartnerPrice,ym:s:yanCPMV,ym:s:yanRevenuePerVisit',
                 'dimensions' => 'ym:s:yanUrlHash',
                 'lang' => 'en',
                 'date1' => '2020-01-14',
                 'date2' => '2020-01-15',
                 'attribution' => 'Last',
                 'accuracy' => 'full'
               }
    inquiry(token, params)
    end

  def self.inquiry(token, params)
    response = Typhoeus::Request.get(
      'https://api-metrika.yandex.ru/stat/v1/data',
      params: params,
      headers: {
        Accept: 'application/x-yametrika+json',
        Authorization: 'OAuth' + token
      }
    )
    JSON.parse(response.body)
  end
end
возвращает json, который несложно разобрать в аккуратную табличку, да вот только понять не могу, объекты какого класса возвращает запрос метрики ym:s:yanPartnerPrice ? иными словами, какие цифры мне необходимо сложить, чтобы получить в сумме доход за указанный в запросе период времени? - исходя из логики примера, 0.424687, 0.352285 ? Это float?


Код:
{"query"=>{"ids"=>[********], "dimensions"=>["ym:s:yanUrlHash"], "metrics"=>["ym:s:visits", "ym:s:users", "ym:s:yanRequests", "ym:s:yanShows", "ym:s:yanRendersPerHit", "ym:s:yanPartnerPrice", "ym:s:yanCPMV", "ym:s:yanRevenuePerVisit"], "sort"=>["-ym:s:visits"], "date1"=>"2020-01-14", "date2"=>"2020-01-15", "limit"=>100, "offset"=>1, "attribution"=>"Last", "group"=>"Week", "auto_group_size"=>"1", "quantile"=>"50", "offline_window"=>"21", "currency"=>"RUB", "adfox_event_id"=>"0"},

 "data"=>[{"dimensions"=>[{"id"=>"7002501226679576762", "page_id"=>"65195", "favicon"=>"masterpro.ws", "name"=>"https://masterpro.ws/forum/34-lokalnye-seti/4914-obkhod-blokirovki-razdachi-4g-interneta-beeline-po-wi-fi-cherez-mob-tochku-dostupa"}], "metrics"=>[22.0, 22.0, 68.0, 23.0, 2.95652174, 0.424687, 18.46465217, 0.01930395]},
{"dimensions"=>[{"id"=>"7232722633292861701", "page_id"=>"65195", "favicon"=>"masterpro.ws", "name"=>"https://masterpro.ws/forum/13-kak-sdelat-tak-chtoby-i-t-d/4554-pravilnyj-batnik-dlya-podklyucheniya-setevogo-diska"}], "metrics"=>[19.0, 18.0, 65.0, 34.0, 3.0, 0.352285, 10.36132353, 0.01854132]},
# etc
# -----
Добрый день! Верно, в данном случае значение имеет тип "float". При этом, складывать значения самостоятельно нет необходимости – ответ сервера содержит отдельный массив "totals", в котором уже указаны суммарные значения.
Дмитрий Громов на форуме   Ответить с цитированием
Старый 31.01.2020, 15:57   #14
keepersheet
Кандидат наук
 
Аватар для keepersheet
 
Регистрация: 21.06.2016
Сообщений: 341
Репутация: 11135
Социальные сети Профиль в LinkedIn

ТопикСтартер Re: API Yandex.Metrica. Вопрос. Дм. Громову

Цитата:
Сообщение от Дмитрий Громов Посмотреть сообщение
Добрый день! Верно, в данном случае значение имеет тип "float". При этом, складывать значения самостоятельно нет необходимости – ответ сервера содержит отдельный массив "totals", в котором уже указаны суммарные значения.
Ага, вижу, спс:

Код:
"totals"=>[265.0, 247.0, 1274.0, 577.0, 3.65895954, 14.613789, 25.32719064, 0.05514637]
Т.е. 14.613789 нужно округлить до второго знака после запятой? получится 14 руб. 61 коп., итоговый доход до вычета налогов?
keepersheet вне форума   Ответить с цитированием
Старый 31.01.2020, 17:11   #15
Дмитрий Громов
Представитель
 
Регистрация: 16.08.2018
Адрес: Москва
Сообщений: 1,651
Репутация: 5987
Социальные сети Профиль в ВКонтакте Аккаунт в Telegram

По умолчанию Re: API Yandex.Metrica. Вопрос. Дм. Громову

Цитата:
Сообщение от keepersheet Посмотреть сообщение
Ага, вижу, спс:

Код:
"totals"=>[265.0, 247.0, 1274.0, 577.0, 3.65895954, 14.613789, 25.32719064, 0.05514637]
Т.е. 14.613789 нужно округлить до второго знака после запятой? получится 14 руб. 61 коп., итоговый доход до вычета налогов?
Да, всё верно.
Дмитрий Громов на форуме   Ответить с цитированием
Сказали спасибо:
Старый 01.02.2020, 23:17   #16
keepersheet
Кандидат наук
 
Аватар для keepersheet
 
Регистрация: 21.06.2016
Сообщений: 341
Репутация: 11135
Социальные сети Профиль в LinkedIn

ТопикСтартер Re: API Yandex.Metrica. Вопрос. Дм. Громову

Спасибо за помощь, Дмитрий. Запилил скрипт. Потом чего-нибудь добавлю или урежу, подрефакторю, etc, а пока что вот так: при запуске в консоли требует две даты и выводит по ним перечень страниц рекламных событий РСЯ, количество визитов и расчетный по ним доход, в конце таблицы (в скрин не поместилось) - общая сумма дохода. Для длинных url установлено ограничение (срезается начало, чтоб табличка не рушилась) в 100 знаков, что легко, при желании, меняется:



На случай, если кто-либо захочет потестить - github. Не, я понимаю, что лениво ставить руби на свою винду, но (насколько слышал) - это всего несколько секунд. Зато потом сколько удовольствия... никого не хочу обидеть, всегда с большим удовольствием играю в разнообразные игрушки с API Yandex.Metrica, но вот веб-интерфейсы Метрики и РСЯ, имхо, ну очччень медленные... кое-где в регионах, слыхал от коллег, вообще порой не грузится.

А API у Яши действительно во всех отношениях супер, грех не использовать.
keepersheet вне форума   Ответить с цитированием
Ответ

Метки
api яндекс.метрика



Опции темы

Быстрый переход


Регистрация Справка Календарь Поддержка Все разделы прочитаны