API Yandex.Metrica. Вопрос. Дм. Громову

12
[Удален]
#11

Дмитрий, позвольте вопрос.

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

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
# -----
Дмитрий Громов
На сайте с 15.08.2018
Offline
339
#12
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", в котором уже указаны суммарные значения.

Буду рад ответить на ваши вопросы про Директ, РСЯ, ADFOX, Метрику и Бизнес.
[Удален]
#13
Дмитрий Громов:
Добрый день! Верно, в данном случае значение имеет тип "float". При этом, складывать значения самостоятельно нет необходимости – ответ сервера содержит отдельный массив "totals", в котором уже указаны суммарные значения.

Ага, вижу, спс:

"totals"=>[265.0, 247.0, 1274.0, 577.0, 3.65895954, 14.613789, 25.32719064, 0.05514637]

Т.е. 14.613789 нужно округлить до второго знака после запятой? получится 14 руб. 61 коп., итоговый доход до вычета налогов?

Дмитрий Громов
На сайте с 15.08.2018
Offline
339
#14
keepersheet:
Ага, вижу, спс:

"totals"=>[265.0, 247.0, 1274.0, 577.0, 3.65895954, 14.613789, 25.32719064, 0.05514637]


Т.е. 14.613789 нужно округлить до второго знака после запятой? получится 14 руб. 61 коп., итоговый доход до вычета налогов?

Да, всё верно.

[Удален]
#15

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

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

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

Anamnado
На сайте с 08.02.2010
Offline
242
#16

Ой нашел тему чтобы новую не создавать..

Поднаправьте на почитать пожалуйста, минуя все рассказы на 25 000 букаф про все прелести использования API Метрики в конкретное русло по существу..

- Нужен скриптик, маленький такой, который просто получает 3 самых посещаемые УРЛа сайта за день (вечером будет запускаться..)).

Дмитрий Громов
На сайте с 15.08.2018
Offline
339
#17
Anamnado:
Ой нашел тему чтобы новую не создавать..

Поднаправьте на почитать пожалуйста, минуя все рассказы на 25 000 букаф про все прелести использования API Метрики в конкретное русло по существу..

- Нужен скриптик, маленький такой, который просто получает 3 самых посещаемые УРЛа сайта за день (вечером будет запускаться..)).

Добрый день! Вам необходимо почитать документацию API. Например, группировки просмотра URL: https://yandex.ru/dev/metrika/doc/api2/api_v1/attributes/hitspageview_/url-docpage/

И синтаксис запроса: https://yandex.ru/dev/metrika/doc/api2/api_v1/data-docpage/

Если не получится составить запрос, тогда напишите коллегам через форму обратной связи или задайте вопрос мне в личные сообщения: https://yandex.ru/dev/metrika/doc/api2/troubleshooting-docpage/

[Удален]
#18
keepersheet :

Набросал скрипт, удобно выводящий таблицы информации счетчиков за вчера или сегодня - в консоль, т.к. веб-интерфейс формирования отчетов Метрики, перманентно предлагающий "сформировать отчет в фоновом режиме" - сильно замедляет работу, особенно когда отслеживаемых веб-ресурсов несколько.

Увы, как оказалось, под виндой запустить этот чудо-скрипт бывает совсем непросто. 🤣

Посему, в помощь виндозникам (из которых, как ни крути, выросли и все линуксмены) запилил аналогичное веб-приложение. Сервис не требует регистрации, быстр и неприхотлив: достаточно ввести идентификатор и токен доступа к Яндекс.Метрика, чтобы тут же получить статистику (функционал, в общем, аналогичен описанному выше) аккаунта. Велкам.

Сразу оговорюсь, приложение не сохраняет и не использует никаких данных, это попросту виджет, для которого в db даже не создавалось таблиц. Тем не менее, самые недоверчивые могут быстрехонько перегенерировать токен доступа аккурат сразу после использования... хотелось бы надеяться, токен Яндекса.Метрика перестает в этом случае работать сразу же, а не спустя сутки, как было (смутно припоминаю) год или два назад. 

Думаю, в целях получения самых разнообразных отчетов Метрики - API Яндекса остается самым удобным инструментом. Веб-интерфейс Метрики, увы, по-прежнему неповоротлив и небыстр до ужаса...

Ruby on Rails Web Development
Ruby on Rails Web Development
  • masterpro.herokuapp.com
Ruby on Rails Web Development. Development of high load projects.
12

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