Как автоматически проверять ссылки Яндекс Директа на 404 с отправкой в TG
Привет! Отслеживание ошибки 404 очень важно, так как из-за неработающих ссылок можно потерять бюджет, получить тумаков от клиента и разочароваться в своем профессионализме). Хотя Яндекс автоматически останавливает рекламные кампании при недоступных ссылках, это происходит не всегда и не оперативно.
Поэтому было принято решение, а можно ли написать скрипт(ы), которые позволят получать все активные ссылки из всех текущих аккаунтов клиентов, проверить их на доступность, делать это автоматически и как бонусом отправлять это всё в TG?
Сами скрипты:
За базу возьмем гугл-таблицы (ее функционала и возможностей тут будет достаточно), никакого Python и установок, просто базовый функционал App Script. Делайте по шагам, и у вас всё получится:
1. Для начала готовим пустую гугл-таблицу.
2. В ней создаем лист «config», в нем будут содержаться все логины и токены клиента. Где взять токен? Воспользоваться ссылкой.
3. Создаем листы content_ads_unique_hrefs, urls_unique, sitelinks_unique, feeds. Про каждый поговорим ниже.
4. Заполняем лист «urls_unique» — сюда будут попадать все уникальные активные ссылки из всего списка аккаунтов, которые вы укажете в config. Единственное, что пока нужно сделать, это добавить заголовок URL.
Открываем App Script.
Открываем файл из архива: «Парсинг ссылок.txt», копируем код и вставляем в первый исполняемый файл (его можно переименовать).
Сохраняем и запускаем, проверяем работоспособность на парочке аккаунтов.
5. Заполняем остальные аккаунты в config (логин и токен) и переходим в создание триггеров (триггер будет рассматриваться только один раз, по аналогии делается всё остальное).
6. Разбираем лист "sitelinks_unique" - это уникальные быстрые ссылки.
Вставляем в него код из "Парсинг быстрых ссылок.txt". Сохраняем и запускаем, также проверяя, что все работает корректно.
Проверяем, что всё работает корректно, и ставим следующий триггер.
7. Всё, проверку настроили, теперь нам нужен лист «feeds» — по сути, это единственная ручная работа, которая требует обновления и поддержания актуальности. Так как обращений к фиду через API на текущий момент нет.
8. Переходим к листу «content_ads_unique_hrefs» — по этому листу будут проверки всех 404 ошибок. Логика работы: сначала делаются редиректы (чтобы исключить появления 301 ошибки, после которой может быть 404), а потом уже по конечной ссылке проверяются коды ответа сервера. Так точнее. Но для начала его нужно подготовить.
Как вы уже наверное поняли, нам нужно сцепить все листы с ссылками в один, убрать дубли.
Вставляем на этот лист заголовок в А1 - TextAd_Href. А в ячейке А2 пишем формулу:
=UNIQUE(
FILTER(
{urls_unique!A2:A;
sitelinks_unique!A2:A; feeds!A2:A};
ДЛСТР({urls_unique!A2:A;
sitelinks_unique!A2:A;feeds!A2:A})
)
)
И получаем все уникальные ссылки со всех 3 листов, больше с этим листом делать ничего не надо.
10. Переходим в App Script. Создаём ещё один файл скрипта и вставляем значения из «Проверка 404.txt».
11. Ставим триггер на это событие.
12. Последний штрих, регаем бота в ТГ. Сам процесс создания бота описывать не буду, вам всего лишь нужно получить API при создании бота + chat ID через бота @username_to_id_bot, инструкция по созданию бота будет ниже. Туда будут приходить все 404 ошибки.
13. Создаём ещё один файл скрипта и вставляем туда код из «Отправка в бота.txt».
14. Последний шаг, нам нужно опять сделать триггер по времени на отправку в бот.
Давайте подытожим
1. Скрипт парсит только активные ссылки, сначала из обычных ссылок, потом из быстрых.
2. Скрипт не проверяет фиды, фиды вы должны держать в актуальном состоянии сами.
3. Скрипт проверяет редиректы, в том числе, отдает код ответа сервера и шлет это вам в ТГ в течение дня.
4. Вы самостоятельно можете подбирать тайминги, если вам нужна другая скорость реакции.
5. Удалять ссылки, править что-то еще не нужно. Скрипт делает это автоматом.
На текущем объеме в 47 аккаунтов багов не замечено, если будут вопросы — задавайте. Делитесь с друзьями, так как я пытаюсь сделать всю нашу рекламную жизнь чуть проще каждый день. Успехов!