Как получать динамические utm-метки в Telegram боте + интеграция по API с гугл-таблицей
Привет! Меня зовут Оля Некрасова, я автор канала “Фокус на Telegram Ads”. Делюсь решением, которое будет полезно всем, кто ведет трафик на бота.
Этот гайд будет полезен тем, кто не работал с Salebot и в первые создает бота, тем, кому нужны только метки и интеграция.
Сегодня расскажу:
1. Как получать utm-метки с динамическим параметром Start в Salebot
2. Покажу, как сделать интеграцию по API с гугл-таблицей, чтобы все стартовавшие сразу попадали туда, и вам было все легко анализировать
3. Создадим небольшого бота, который будет выдавать подарок за старт.
В моем канале есть видео формат этого гайда + супер бонус с дополнительным столбиком в гугл-таблице, чтобы трекать тех, кто забрал подарок -- это поможет увидеть детальную аналитику и работать с базой.
Подписывайтесь -- в канале больше полезностей)
Максимально полезная информация в пошаговой инструкции:
1. Регистрация бота и токен
1) Регистрируем бота в @BotFather – нужно нажать /newbot далее ввести название бота и адрес по которому бот будет доступен, с окончанием в адресе - bot, например test_utm_bot
2) Копируем выданный токен (сохраняем его в заметки)
Если бот зарегистрирован, то @BotFather нужно нажать /mybots, далее выбираем юзернейм бота и нажимаем на кнопку “API Token“
2. Регистрируемся в сервисе Salebot - salebot.pro
1) Создаем проект
2) На вкладке каналы подключаем бота, вставив токен (мы его сохраняли в заметки)
3. Создание динамических меток
Проблема состоит в том, что при передаче utm, в Salebot доходит не команда /start, а проброшенная utm-метка как текст, и бот с привычной командой запуска бота проверяющей на наличие команды /start – не видит начала диалога.
Делаем бота, который будет отдавать полезный файл и записывать данные с utm-меткой в гугл-таблицу.
Что делаем:
1) В конструкторе воронок добавляем первое сообщение, но не "начало диалога" а "первостепенная проверка условия"
В условии блока "Первостепенная проверка"
– В условии пишем например такое - ^utm.*|^/start$
– В поле - Выбор соответствия "Регулярное выражение"
Минутка образования:
💡 Расшифровка регулярного выражения:
^utm - строка должна начинаться с текста “utm”
.* - далее могут идти любые символы в любом количестве
| - или
^/start$ - строка должна быть равна значению “/start”
$ - означает конец строки
❗ Если нужно добавить несколько меток начинающихся с разных символов, то можно просто продолжить это выражение, например так:
^utm.*|^advert.*|^sell.*|^/start$
в данном случае будут учитываться метки начинающиеся с utm, advert, sell
Либо например добавим отслеживаемое слово в конец метки -
^utm.*|.*advert$|^/start$
В этом случае будут учитываться метки начинающиеся с utm, либо метки оканчивающиеся словом advert
Не удаляйте из выражения ^/start$ , иначе пользователи не смогут запустить бота без метки.
Примеры меток:
Обязательно, чтобы метка начиналась с указанного значения, но остальная часть может быть любой. И это очень удобно, при массовой выгрузке рекламных кампаний в сервисе аналитики, сегментируя 1 канал - 1 объявление
Например, вы поставите:
И у вас создаться 30 объявлений с уникальными метками за 1 секунду.
Очень удобно!
Конец минутки :)
-- Расширенные настройки -- Выключаем переключатель "Отвечать один раз"
Ссылка с меткой на бота может содержать только 1 параметр, и выглядит подобным образом - http://t.me/utm_test_bot?start=utmtest1
utmtest1 - передаваемая метка
4. Объяснение тегов для интеграции
При попадании в бота - данные клиента записываются в такие переменные:
#{tag} - в эту переменную попадает utm метка
#{tg_username} - username пользователя
#{date_of_creation} - дата первого обращения пользователя
5. Интеграция по API с гугл-таблицей
Для записи в гугл-таблицы нажимаем API-запрос, и заполняем данными:
1) Тип запроса – POST-json
2) URL запроса - https://store.salebot.pro/function/gsheets
3) JSON параметры - {"id": "id-вашей-гугл-таблицы", "mapping":{"a":"#{tg_username}", "b": "#{tag}", "c": "#{date_of_creation}"}, "list_name": "название-листа"}
Для проверки ошибок, можно посмотреть ответ от гугл-таблиц, он попадает в переменную #{custom_answer}
И не забудьте в гугл-таблице выдать доступы на редактирование по ссылке, id таблицы можно найти в ссылке на таблицу - https://docs.google.com/spreadsheets/d/id-вашей-гугл-таблицы/edit?gid=0#gid=0
6. Для теста ставим в поле “сообщения” теги, чтобы в самом боте проверить верную передачу данных
Записываем данные -
#{tag}
#{tg_username}
#{date_of_creation}
Ответ от гугла -
#{custom_answer}
После тестов, поставим просто приветственное сообщение 👋
И так, полный скрин нашей настройки выглядит так:
7. Нажимаем сохранить!
8. Переходим по ссылке на бота с вашей utm, тестируем
Я сделала такую метку -- метка
Все работает 😎
9. Добавление кнопки и сообщения с подарком
1) Нажимаем на “Кнопки” и добавляем кнопку
2) Даем название кнопки
3) Выбираем, например, кнопка в тексте
10. Создаем сообщение с подарком
1) 2 раза нажимаем на свободное поле и создаем новое сообщение
2) Пишем приветственное сообщение
3) Прикрепляем вложение -- подарок
4) Теперь соединяем 2 блока и тыкаем шестеренку
5) Здесь мы в условии добавляем кнопку "Получить подарок"
6) Сохраняем все и идем тестировать -- метка
Поздравляю >_<
Бонус 😎
Чтобы видеть в гугл-таблице не только тех, кто стартанул, но и получил подарок, показала в видео-инструкции, которую можете найти в моем канале “Фокус на Telegram Ads”. Подписывайтесь!
Ставьте лайки и комментарии, это поможет продвижению статьи)