Как не считать одного человека дважды
Ссылки-счётчики (вебхук для этапов воронки, а также ссылки-счётчики под роликами в «Контенте») по умолчанию засчитывают каждое обращение по ссылке. Если человек перейдёт по ссылке несколько раз (например, повторно напишет кодовое слово под тем же роликом, или нажмёт /start в боте несколько раз), это прибавит несколько единиц вместо одной — хотя человек один и тот же.
Чтобы этого избежать, нужно передать в ссылку уникальный идентификатор человека — тогда повторные обращения от того же самого человека мы просто проигнорируем и не станем считать заново.
Как это сделать
К вашей ссылке-вебхуку нужно дописать в конец параметр client_id, а вместо самого значения подставить переменную вашего бота, в которой хранится уникальный ID человека.
Пример для Salebot — базовая ссылка:
https://launchstats.ru/api/webhook/ваш_токен
дополняется так:
https://launchstats.ru/api/webhook/ваш_токен?client_id=#{client_id}
#{client_id} — это встроенная переменная Salebot, которая всегда одна и та же для конкретного человека в переписке.
Для ссылок-счётчиков в «Контенте»
То же самое работает и для ссылок под роликами (персональной /api/l/ваш_id и универсальной /api/l/ig?url=#{instagram_media_url} для автоответа) — просто допишите client_id ещё одним параметром через &:
https://launchstats.ru/api/l/ig?url=#{instagram_media_url}&client_id=#{client_id}
Здесь дедупликация считается в рамках одного ролика: если человек напишет кодовое слово под одним и тем же роликом несколько раз — засчитается только один клик. Если он напишет под разными роликами — это разные клики по разным роликам, и оба засчитаются (это нормально, это разное контент-взаимодействие).
А если бот сделан не на Salebot?
Идея та же самая — любая платформа (BotHelp, Puzzlebot, GetCourse и т.п.) подойдёт, потому что вся логика проверки повторов у нас на сервере, а не завязана на конкретный конструктор. Разница только в том, как называется переменная с уникальным ID клиента у конкретной платформы — это нужно посмотреть в её собственной документации.
Эта часть статьи будет дополняться: по мере того как мы проверим реальные переменные в популярных конструкторах ботов (BotHelp, Puzzlebot, GetCourse), здесь появятся точные примеры для каждого — чтобы не нужно было искать самостоятельно.
Если стабильного ID человека нет
Если у выбранной вами платформы нет подходящей переменной с ID — просто не дописывайте client_id вообще, ссылка продолжит работать как раньше (без защиты от повторного счёта). Это не ошибка, а обычный режим для тех случаев, где риск накрутки не критичен (например, «Переход в бот» по клику на ссылку — там один переход обычно и есть один клик).