Всем привет. Я уже примерно 3 года занимаюсь ведением рекламы на маркетплейсах, в частности ВБ, и поскольку люблю все автоматизировать - разработкой и поддержкой инструмента для управления рекламными кампаниями и аналитикой через публичный API Wildberries.
И в целом я уже привык к тому, что иногда новые версии методов абсолютно не соответствуют старым, даже там, где можно было сделать обновленную версию с минимальными изменениями, чтобы разработчик просто поменял URL ендпоинта. Привык что приходится иногда делать работу ради работы по сути, потому что кто-то не продумал заранее проблемные нюансы.
Но в последнее время в АПИ произошло такое количество изменений, и они настолько напрягают своими неочевидными ошибками, что уже "накипело", и хочется это сформулировать в виде какого-то структурированного текста с примерами, вдруг кто-то из команды обратит на это внимание.
Постараюсь описывать проблемы WB API не с позиции «пользователя, которому не понравилось», а с точки зрения интегратора, который отвечает за стабильную работу рекламы для нескольких клиентов с миллионными оборотами. Я сознательно опускаю детали реализации и не привожу конкретные ID кампаний и запросы, но описываю поведение, воспроизводимое на сотнях кампаний нескольких клиентов.
Обратная совместимость и бизнес-логика
Я понимаю что некоторые методы действительно сложно написать, не меняя структуру вопроса-ответа. Но в некоторых моментах складывается ощущение, что разработчики АПИ не просто не думали об удобстве использования для интеграторов, а специально накинули им работы. Чтобы не быть голословным, давайте свежий пример.
Были у нас поисковые кампании (они же Аукцион) типа 9, и автоматические кампании (сокращаю до АРК) типа 8. Если очень упростить, то Аукцион показывается в поиске по запросам и стоит дороже, АРК показываетс�� везде где только можно, но стоит дешевле. Все что не Поиск - называется Рекомендательные полки: в карточках товара, может кинуть на главную страницу, в корзине и тд, ВБ тестирует новые места показов иногда.
В обоих типах кампаний можно минусовать (исключать, останавливать показы) по поисковым запросам, которые вас не устраивают. Есть методы получения списков активных и исключенных запросов кампаний, есть методы исключения. Конечно были свои нюансы, например отдельно показами в рекомендательных полках мы не могли управлять. Но, как это бывает в жизни, спустя время мы понимаем, что было все не так уж плохо.
Что есть сейчас (вам не обязательно запоминать все). Появился еще тип ставки - единая или ручная. АРК представлены и в типе 8 и типе 9. Называется Единая ставка. В типе 8 у старых кампаний некоторых почему то технически тип ставки не проставился (будет важно потом). В типе 9 теперь может быть или Единая или Ручная ставка. В Ручной ставке могут быть показы или в поиске, или в рекполках, или комбинированные. Методы статистики и управления разбили на методы для ручной ставки и для единой ставки. И чё - спросите вы.
А например то, что для типа 8 у которых тип ставки не проставился почему то у них в системе - методы для единой ставки не работают. Никакой внятной ошибки об этом не выдается. Если вы отправили в запросе 100 кампаний - ляжет весь запрос без указания ошибочных кампаний. Велком ту ручная отправка 30-40 запросов по одной кампании, чтобы найти в какой ошибка, и сломать голову, в чем проблема.
То, что теперь мне нужно все места в системе, где раньше я делал выборки по типу 8 или 9 (у них тоже были разные методы для некоторых действий) - переписывать на "все типа 8 без ошибок типа ставки ИЛИ тип 9 с единой ставкой" и "тип 9 только с ручной ставкой". Ах кстати, в типе 9 же еще может быть оплата за показы и за клики, и некоторые методы статистики будут тоже падать с ошибкой из-за того что в 100 кампаниях встретится одна с оплатой за клики.
В итоге куча времени уходит на то, чтобы разобраться во всех этих нюансах, потому что не все они указаны в документации.
А давайте представим, как был бы прекрасен мир, если бы тип 8 не стали запихивать в тип 9, а оставили как он и был. Допустим в типе 9 сделали возможность управления местами показа, окей. Ну и кликовые кампании вынесли в отдельный тип, условно 10.
Для внешних интеграторов это означало бы минимальное количество изменений в своих системах.
А давайте еще один пример. Помните запросы можно было минусовать в авто и поисковых кампаниях? Вот сейчас в авто кампании все работает как работало, а в поисковых кампаниях ввели новое (старое) понятие - нормализованные запросы, они же кластеры запросов, они же пресеты.
Если кратко, то поиск у вб строится не отдельно по поисковым запросам, а по группам запросов - пресетам или кластерам. Например "одежда женская" и "одежда для женщин" будут в одном кластере. А нормализованный запрос - это как бы главный запрос кластера. Так работало всегда на моей памяти, но минусовать мы могли хоть все запросы из одного кластера.
А теперь ВБ сказали - минусовать можно только нормализованные запросы, у которых было более 100 показов. Оставим в стороне вопрос эффективности рекламы, рассмотрим как они это технически реализовали.
Раньше мы просто отправляли массив минус-фраз кампании размером не более 1000 фраз. В моменте этот метод продолжил работать корректно, и другой метод, возвращающий минус-фразы, их корректно возвращал.
НО ввели новые методы, при этом старые продолжали работать и были активны в документации, нигде не было написано что они не работают.
А вот показы по отминусованным старыми методами с какого то момента запросам продолжались, потому что они были не отминусованы новым методом.
Само собой после снижения эффективности рекламы и дебага это выяснилось, но разве так это должно быть организовано?
Ок, думаю, значит надо быстренько все переводить на новые методы минусации. Тут тоже свои приколы.
П��мните, что новый метод дает отминусовать запросы у которых было более 100 показов? Так то оно так, но только 100 показов - это очень эфемерное определение, как выяснилось.
У меня вся стата по всем запросам хранится в базе данных. Думаю, ну все же просто - было по запросу более 100 показов суммарно, значит можем минусовать. Нет. ВБ решили считать это как-то под капотом по новому. В итоге запросы которые по статистике из их же официальной документации ранее имели несколько ТЫСЯЧ показов - отминусовать нельзя.
Ответ - берите запросы из нового метода статистики по запросам, который показывает запросы у которых по каким-то новым расчетам ВБ было более 100 показов, и минусуйте по ним. Старый метод мол че-то другое вам показывает.
Да нет проблем, только эти методы на несколько дней начали показывать все запросы, даже которые нельзя минусовать - и соответственно у меня в системе данные что запрос можно минусовать, а он не минусуется...
И знаете в чем еще прикол? Из отправленной условно 1000 минус-фраз в ошибке АПИ вернет вам только ОДНУ ошибочную. То есть не "вот у тебя 300 запросов не минусуются, убери и пришли остальные 700 нормальных", а "вот у тебя из 1000 один не минусуется - ты его убери и еще раз попробуй, не знаю сколько у тебя там еще не минусуется, да ты и сам не знаешь, дерзай". И в итоге стабильно рабочего метода обнаружения и минусации всех запросов, которые можно минусовать - просто нет.
И чуете чем пахнет? Методы получения минус фраз кампании - новые с новой структурой. Методы минусации - новые с новой структурой и непонятным алгоритмом работы с ними. Методы статистики - новые. Поменялось буквально все в коде, с одним единственным изменением по сути - нельзя отминусовать запрос, если по нему было менее 100 показов.
А как был бы прекрасен мир (если бы вообще не вводили это ущербное правило) если бы оставили все те же самые методы с новой версией в URL, но например в метод минусации добавили возврат запросов, которые не может отминусовать ВБ по новому правилу. Отправил 1000 - 700 отминусовали, 300 нет, будь в курсе. И ВСЁ, это потребовало бы от интеграторов не несколько дней танцев с бубном, а 15 минут, из которых 10 ушло бы на кофе.
Магические ошибки
В принципе я описал это выше, но это отдельная боль, которую очень хотелось бы перестать ощущать. Какие то неверные данные в кампаниях мешают корректной работе метода, но ты вместо "кампании 123, 456, 789 у тебя cpc, а должны быть cpm, не тупи", ты получаешь "что то не так с кампаниями" и методом научного тыка находишь проблемные кампании, а потом пробуешь понять, какие поля в них отличаются от кампаний, где все работает. Очень блин информативно, спасибо.
Отсутствие важных данных в АПИ
Такая проблема есть в любом апи наверное, и к ней бы было сильно меньше вопросов, если бы апи просто не развивался. Но почему то у команды разрабов есть время на введение кучи изменений, часть из которых, как описано выше, можно было вообще не делать, и все бы выиграли от этого, а вот на то чтобы добавить пару методов или вообще полей в существующие методы - у них почему-то времени (желания) не хватило.
Из базовых примеров - уже несколько месяцев назад ввели показатель Показы в воронку продаж в личном кабинете. То есть вы можете увидеть сколько посетителей видело ваш товар в поиске, сколько перешло, сколько добавило в корзину и тд. Конкретно показатель Показы очень важен тем, что с ним можно будет более-менее понимать CTR карточки товара, и быстрее прорабатывать товары, на которые кликают хуже. При чем уже после его ввода выкатили новую версию АПИ воронки продаж, но показателя показы там нет ))
Есть на ВБ такая штука, как аналитика внешнего трафика - возможность ставить внешние ссылки на свои товары и отслеживать статистику по ним по UTM меткам. Существует она в личном кабинете несколько лет. Согласитесь, для автоматизации отчетности и оптимизации рекламы было бы логично иметь апи ендпоинт для получения этой статистики. Но его нет. Точка.
Еще пару лет просим добавить разделение статистики кампаний по местам показа. Новые методы статистики появляются, данные - нет. Ну это база, беспокоит не так сильно потому что отчасти решается разделением кампаний по типу. Но опять же, в единой кампании так сделать уже не получится.
Отрицание проблем селлеров
Это конечно не совсем про АПИ, но проблема крайне важна, поэтому оставлю ее здесь. Как писал выше, запретили минусацию кластеров, где было менее 100 показов.
И ладно бы сказали "нам дорого обслуживать такой объем данных" или "у нас план на 10% увеличить выручку с рекламы, идей больше нет", ну или какую-то другую более уверенно звучащую причину.
НО они говорят "ну по таким запросам могут быть заказы тоже", "чем больше трафика тем лучше", "100 показов мало для принятия решения". А если у меня товар условно акриловые краски показывается по запросам типа баночки для краски, ткани для росписи и так далее?
То есть откровенно нецелевые запросы за которые я не готов платить например 30 копеек за каждый показ, а минимальные ставки сейчас примерно такие в поиске, 300+ рублей за 1000 показов.
А если у меня однотипные товары добавляются в продвижение, я уже с ними 2 года работаю, и знаю заранее, какие запросы для товара точно не будут работать?
Есть товары у которых в кампанию накидывает по 2-3 тысячи запросов. Из них может быть 70-80% нерелевантных, а иногда и больше. И если раньше их можно было исключать заранее, или по крайней мере на этапе когда они еще не успели скрутить много показов, то теперь за них придется платить пока они не наберут эти пресловутые 100 показов. Каким бы ни был неподходящим к товару запрос - плати. Я понимаю что налоги растут, но это уже как налог на воздух.
А приводит это только к тому, что сейчас приходится снижать ставки в кампаниях (или значительно медленнее их повышать), потому что эффективность расходов на рекламу значительно снизилась. В итоге сам ВБ зарабатывает меньше, и скорее всего решать это будет повышением минимальных ставок.
Ну а селлерам останется только убирать из продвижения товары по мере того, как продвигать их становится экономически нецелесообразно. На мой взгляд было бы значительно эффективнее давать селлерам гибкие инструменты точечного управления рекламой, чтобы все были в выигрыше.
Насильно впихивать показы по запросам "мыть", "средство от", "для чистки", "подтеки" и так далее - это все равно что на рынке в ящик клубники подсыпать вниз гнилые ягоды. Продать-то может и продадите, но осадочек как миниум у покупателя останется. Конечно селлер привязан к ВБ сильнее, чем покупатель к рыночному торговцу, но все равно последнее время лояльность селлеров к этому маркетплейсу сильно снижается.
Вывод
Я если 2 года назад отдавал полностью предпочтение ВБ в битве за удобство и эффективность настройки рекламы по сравнению с другими маркетплейсами (конечно при наличии софта и интеграций, но тем не менее), то после всех этих изменений уже так сложно сказать.
Проблема не в сложности рекламной системы. С ней нет проблем разобраться и обычному селлеру, и тем более интегратору или разработчику. Проблема в том, что ошибки становятся неуловимыми, старая логика работы рушится без обратной совместимости там, где этого можно было легко избежать. И решение этих проблем перекладывается по сути на селлеров и интеграторов.
Если добавить ложку меда - конечно добавили управление ставкой по кластерам и это очень круто. И управление ставками по местам показа. Но стоит ли овчинка выделки - вопрос. Я надеюсь что рано или поздно ВБ эти проблемы решит с учетом интересов селлеров, потому что все участники рынка в этом заинтересованы.
MrSmitix
С Яндекс Маркетом была похожая история, а именно с их свагером (yandex-market-partner-api на гитхабе) который не соответствует реальности, и на самом деле во многих методах. Хотя находится на первой страницы документации.
Ещё летом отправлял ишью где указал что вот это поле описано в нём, и в доке не верно, так как API возвращает совсем другой ответ. Из-за чего вся валидация, созданного по их свагеру в клиенте падает. И вот пару дней назад пришло уведомление что ишью закрыт. Ишью и возможность их оставлять... Не уверен даже что ошибка исправлена, так как не было времени посмотреть. Скорее всего просто закрыли все что были
Ну ведь понятно что там далеко не дураки работают, но видя такие ошибки на которые на той стороне всем без разницы, кажется обратное. API метод для получения товаров магазина кстати, не что-то специфичное
DigitalSfera Автор
мда, не весело (( у вб вообще на гитхабе ничего нет, но есть их дев-сообщество, где хорошо если на 1 из нескольких десятков вопросов от разрабов придет ответ... у нас проблема что вроде и не дураки, но или осознанно забивают на проблемы разрабов, или не имея опыта работы со своим же детищем, не понимают чего от них хотят