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

Превышено допустимое количество идентификаторов в массиве SelectionCriteria.CampaignIds при вызове yadirGetKeyWords #27

Closed
gitmexanism opened this issue Oct 24, 2019 · 3 comments

Comments

@gitmexanism
Copy link

Добрый день, Алексей.

Выполняю код:

library(ryandexdirect)

# Авторизация 
yadirAuth(Login     = "login",
          TokenPath = "C:/direct/tokens")

# Список рекламных кампаний
camp <- yadirGetCampaignList(Logins    = "login",
                             TokenPath = "C:/direct/tokens")
    
# Список ключевых слов
kw <- yadirGetKeyWords(Login       = "login",
                       TokenPath   = "C:/direct/tokens",
                       CampaignIds = camp$Id,
                       WithStats   = F)

# Загрузка баланса аккаунта
balance <- yadirGetBalance(Logins  = "login",
                           TokenPath   = "C:/direct/tokens")

Выдаёт ошибку:

Ошибка в yadirGetKeyWords(Login = "login", TokenPath = "C:/direct/tokens", :
Неверно заданы параметры фильтрации SelectionCriteria - Превышено допустимое количество идентификаторов в массиве SelectionCriteria.CampaignIds

В сообщениях встречал подобную ошибку для функции yadirGetBalance,
где SelectionCriteria.Logins содержал более 50 элементов.
Здесь (#4 (comment))

Как я понимаю, у меня то же самое, только для SelectionCriteria.CampaignIds в функции yadirGetKeyWords.

@selesnow
Copy link
Owner

Какая у вас версия пакета, скорее всего вам достаточно было просто его оновить?

@gitmexanism
Copy link
Author

gitmexanism commented Apr 23, 2020

@selesnow, версия пакета 3.2.3,
Решил проблему добавив фильтрацию после получения рекламных кампаний

# Список рекламных кампаний (Обязателен при получении других объектов)
campAll <- yadirGetCampaign(Login    = "login",
                            AgencyAccount = "acc",
                            TokenPath = "C:/path/tokens")
    
camp <- campAll[campAll$Clicks > 0, ]
    
# Список ключевых слов
kw <- yadirGetKeyWords(Login = "login",
                       AgencyAccount = "acc",
                       TokenPath = "C:/path/tokens",
                       CampaignIds = camp$Id,
                       WithStats = F)

До какого-то времени это работало, то сегодня снова появилась ошибка

Неверно заданы параметры фильтрации SelectionCriteria - Превышено допустимое количество идентификаторов в массиве SelectionCriteria.CampaignIds

Выходит что попадаю на ограничение по количеству выгружаемых фраз...
Пока не придумал как обойти.

@gitmexanism
Copy link
Author

gitmexanism commented Apr 23, 2020

Пока придумал только получать отдельно фразы для кампаний на поиске и РСЯ (фильтрация по названиям), а затем склеить эти списки. Какое-то время ещё поработает, возможно есть какой-то вариант с разбиением списка по количеству фраз, но пока не умею.
Вот что получилось:

# получаем все кампании логина
campAll <- yadirGetCampaign(Login    = "login",
                            AgencyAccount = "acc",
                            TokenPath = "C:/path/tokens")

# фильтруем, оставляя только кампании с кликами
camp <- campAll[campAll$Clicks > 0,]

# Получаем ключевые фразы кампаний на поиске (в названии содержат "_poisk")
kw_poisk <- yadirGetKeyWords(Login = "login",
                          AgencyAccount = "acc",
                          TokenPath = "C:/path/tokens",
                          CampaignIds = camp[grep("_poisk", camp$Name), "Id"],
                          WithStats = F)

# Получаем ключевые фразы кампаний в РСЯ (в названии содержат "_rsya")
kw_rsya <- yadirGetKeyWords(Login = "login",
                                  AgencyAccount = "acc",
                                  TokenPath = "C:/path/tokens",
                                  CampaignIds = camp[grep("_rsya", camp$Name), "Id"],
                                  WithStats = F)

#Склеиваем списки фраз
kw <- rbind(kw_poisk, kw_rsya)

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