Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ошибка при работе с агентским аккаунтом #4

Closed
energystuff opened this issue Apr 24, 2018 · 4 comments

Comments

@energystuff
Copy link

Выполняю Ваш код для агентского аккаунта:

library(ryandexdirect)
myToken <- yadirGetToken()
clientList <- yadirGetClientList(myToken)
campaignList <- yadirGetCampaignList(logins = clientList$Login, token = myToken)
stat <- yadirGetSummaryStat(campaignIDS = campaignList$Id,
dateStart = "2016-01-01",
dateEnd = "2016-06-30",
currency = "USD",
token = myToken)

======
Ошибка в dataRaw$data[[i]][c("FIO", "Login", "DateCreate", "Phone", "Email", :
неправильный тип подгруппы 'list'
Вызовы: yadirGetClientList
Выполнение остановлено
"

Подскажите, как исправить?

@selesnow
Copy link
Owner

Добрый день, подскажите а какая у вас установлена версия ryandexdirect? проверить это можно командой utils::packageDescription("ryandexdirect")$Version. Возможно ошибка вызвана тем, что у вас старая версия пакета.

Далее ошибка в названии аргументов в функции yadirGetCampaignList, после обновления, которое было пару месяцев назад аргументы необходимо именовать с заглавной буквы, т.е. не logins и token, а Logins и Token.

И ещё я вам не рекомендую использовать функцию yadirGetSummaryStat, она была написана до того как в 5 версии API появился Report Service, сейчас намного более гибкие возможности для запроса статистики даёт функция yadirGetReport

Пример кода для работы с ней:

library(ryandexdirect)
myToken <- yadirGetToken()
My_report <- yadirGetReport(ReportType = "CAMPAIGN_PERFORMANCE_REPORT", 
                            DateRangeType = "CUSTOM_DATE", 
                            DateFrom = '2017-01-01', 
                            DateTo = '2017-01-31', 
                            FieldNames = c("CampaignName","Impressions","Clicks"), 
                            FilterList = c("Clicks GREATER_THAN 49","Impressions LESS_THAN 1001"), 
                            Login = <YourLogin>, 
                            Token = myToken)

Пока попробуйте обновить пакет, наверняка у вас старая версия - devtools::install_github('selesnow/ryandexdirect').

@energystuff
Copy link
Author

energystuff commented Apr 25, 2018

Спасибо! Работает. Еще два вопроса возникло.

1)Вопрос касательно получения баланса:
Получаю баланс с помощью кода:
my_clients_balance <- yadirGetBalance(Logins = clientList$Login, Token = "***")

Ошибка в yadirGetBalance(Logins = clientList$Login, Token = "***") :
Error: code - 241, message - Превышен допустимый размер массива, detail - Массив SelectionCriteria.Logins должен содержать не более 50 элементов
Выполнение остановлено.

  1. Как не учитывать аккаунты в архиве? Уходит много времени на загрузку данных по ним.

@selesnow
Copy link
Owner

selesnow commented May 2, 2018

Добрый день.

  1. Error: code - 241, message - Превышен допустимый размер массива, detail - Массив SelectionCriteria.Logins должен содержать не более 50 элементов

Доработал функцию yadirGetBalance, теперь можно запрашивать данные более чем по 50 аккаунтам, для того что бы изменения вступили в силу у вас переустановите пакет с помощью команды devtools::install_github("selesnow/ryandexdirect")

Как не учитывать аккаунты в архиве? Уходит много времени на загрузку данных по ним.

Вы можете отфильтровать полученную таблицу клиентов, смотрите пример кода:

# подключаем пакет
library(ryandexdirect)
# получаем токен
yatoken <- yadirGetToken()
# получаем список клиентов из агентского аккаунта
clients <- yadirGetClientList(yatoken)
# оставляем только активных клиентов
active_cllients <- clients[clients$StatusArch == "No", ]
# запрашиваем остатки баланса по активным клиентам
client_balance <- yadirGetBalance(Logins = active_cllients$Login, yatoken)

@selesnow
Copy link
Owner

selesnow commented May 3, 2018

Подскажите получилось решить вашу проблему, если да прошу закрыть тикет.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants