Передача UTM - меток при подписке Senler в Автопилот
Сегодня мы научимся передавать данные при подписке на подписной Senler в Автопилот и Google Sheets. Урок бы сделан в Клубе, но добрый Андрей решил выложить решение для всех.
ПРЕДУПРЕЖДЕНИЕ! У Google-таблиц есть свои ограничения, по-моему 100 запросов за 100 секунд, поэтому есть огромный риск, что при большом наплыве данных они либо не запишутся, либо будут записаны некорректно. И ограничения тут не со стороны Автопилота, поэтому логируйте данные, как я показал в видео.
Содержание урока
- Подготовка таблицы
- Развертывание скрипта
- Интеграция с Senler
- Краткая инструкция по передаче меток из Senler в Автопилот
- Настройка команды в Автопилоте
Подготовка таблицы
- Создаём новую таблицу. Ссылка для быстрого создания таблицы
Чтобы скрипт знал, куда записывать данные, нам надо сообщить ему ID таблицы и название листа в этой таблице. Их мы будем указывать в Автопилоте.
Копируем из адресной строки браузера ID нашей таблицы. В примере ниже он выделен жирным шрифтом:
https://docs.google.com/spreadsheets/d/1xLd79xX6_4IRpphB0a1EH3OSGOlxngfhB8MEUksOe9k/edit#gid=0
В примере ID таблицы:
1xLd79xX6_4IRpphB0a1EH3OSGOlxngfhB8MEUksOe9k
Название листа и оформление таблицы оставляю на ваш вкус.
Развертывание скрипта
Открываем сайт https://script.google.com/ и выбираем «Создать проект» — откроется редактор скриптов.
Очищаем поле для кода. Вставляем в него готовый скрипт. Пример скрипта был по этой ссылке.
Сохраняем скрипт через меню Файл → Сохранить, либо комбинацией клавиш Ctrl + S.
Разворачиваем скрипт, как показано выше. Сохраняем URL на который будем отсылать запросы. Его мы будем использовать в Автопилоте в действии «Отправить GET/POST запрос».
Важно! После каждого изменения скрипта надо сохранять, а также разворачивать скрипт заново и выбирать версию «Новый». Без развёртывания все изменения скрипта недоступны при вызове Автопилотом
ПРЕДУПРЕЖДЕНИЕ! У Google-таблиц есть свои ограничения, по-моему 100 запросов за 100 секунд, поэтому есть огромный риск, что при большом наплыве данных они либо не запишутся, либо будут записаны некорректно. И ограничения тут не со стороны Автопилота, поэтому логируйте данные, как я показал в видео, либо пытайтесь настроить таймерами, но это дополнительные мили и нет 100% гарантии, что все сработает. Мы вас предупредили.
Интеграция с Senler
Ну там просто. Настраиваете вебхук по этой инструкции, создаете группу подписки и приступаете к настройке. Все получилось? Отлично, идем дальше.
Краткая инструкция по передаче меток из Senler в Автопилот
Компоновщик меток находится вот здесь.
Настройка команды в Автопилоте
Важно! Показан метод работы с одной группы подписчиков с ограничением запуска команды один раз
Событие:
1) Чтобы реагировать на подписку добавляем событие «Подписался на группу Senler» (указать конкретную группу подписки). Например, у нас группа подписки номером 2817780
2) Опционально: для того, чтобы подписаться можно было только один раз добавляем условие «Выполнена команда» № 0 ровно 0 раз.
Если вам нужно будет отменить запуск команды, то воспользуйтесь этой командой и отдельным действием.
Действия:
1) Чтобы обновить / записать метки добавляем действие «Обновить профиль Автопилота» и в расширенных параметрах устанавливаем нужный переключатель.
Если кликнуть на ссылку «Раскрыть расширенные параметры»,
Варианты перезаписи параметров (переключатель):
- Подписчику не будут сохранены (только переданы дальше) метки: — означает, что в профиле подписчика метки сохранятся не будут. Только будут обработаны для последующих действий.
- Подписчику будут единоразово присвоены метки: — означает, что в профиле подписчика метки присвоятся один раз. И при последующих сохранениях новых меток, первые не будут перезаписаны. На данный момент — это значение по умолчанию.
- Подписчику будут обновлены метки: — означает, что в профиле подписчика будут принудительно обновлены метки.
Ниже находятся поля для UTM-меток, которые используются для выделения источников трафика: Значения представлены переменными: %utm_source%, %utm_medium%, %utm_campaign%, %utm_content%, %utm_term%.
2) Для того, чтобы передать ID таблицы заводим временную переменную %documentid%с идентификатором таблицы. Например:
1xLd79xX6_4IRpphB0a1EH3OSGOlxngfhB8MEUksOe9k
3) Для того, чтобы передать название заводим временную переменную %sheetname%с названием листа. Например:
Октябрь
4) Для того, чтобы передать данные заводим временную переменную %data%с нужными данными, разделенными ~~. Например, имя, фамилия, VK ID и т.д.:
%first_name%~~%last_name%~~%vk_id%~~https://vk.com/id%vk_id%~~=HYPERLINK("https://vk.com/id%vk_id%";"%first_name% %last_name%")~~utm_medium:%utm_medium%
Если вы хотите добавить кликабельную ссылку на пользователя, то вот пример:
%first_name%~~%last_name%~~%vk_id%~~https://vk.com/id%vk_id%~~=HYPERLINK("https://vk.com/id%vk_id%";"%first_name% %last_name%")5) Чтобы попытаться обойти ограничения Гугла, действием «Отменить запущенный таймер» с названием:
Сенлер %subscription_id%
Перезапуск таймера (+1 миля к команде Автопилота) позволяет избежать ситуации когда пользователь что-то сделает и будет несколько таймеров, как показывано на видео.
6) Формируем задержку в переменной %sec% с помощью функции {rand_range} со значением:
{rand_range}10-600{/rand_range}В примере: берем случайное значение от 10 до 600. Свои значения подбирайте самостоятельно. Промежуток указывается в секундах.
7) Опционально: после установки значения в %sec% можете выводить отладочное сообщение себе как админу, действием «Отправить сообщение в VK» с переключателем сотруднику (добавить себя) и текстом:
Клиент: %vk_link%
Секунды: %sec%
8) Чтобы передать в таймер задержку, переключаем действием: «Запустить таймер» (+1 миля к команде Автопилота) в универсальный режим (человечек справа) с названием:
Сенлер %subscription_id%
переключателем сразу и %sec% секунд.
9) Для отправки данных в таблицу добавляем действие «Отправить GET/POST запрос» на адрес скрипта (адрес у вас будет свой) и параметрами (в примере я их передаю переменными):
Параметры запроса:
documentid - id таблицы (копируется из адресной строки таблицы как на скриншоте выше)
sheetname - название листа (По умолчанию «Лист1»)
data - данные, которые мы будем записывать, разделенные двойным знаком тильды ~~
mode - режим запроса: new, edit, delete
Если не передан, то по умолчанию NEW.
Режимы запроса mode:
new - с новой строки
edit - редактирование
delete - удаление ячейки
search - поиск текста
range - ячейка, с которой мы будем записывать. Например, a3. Используется для режимов edit и delete
deleteEntireRow (число) - 1 - удаление всей строки и 0 - удаление конкретной ячейки. (используется вместе с range). Используется для режима delete
editRow (число) - 0 - перезапись всей строки (начиная с range ) и 1 - редактирование конкретной ячейки. (используется вместе с range). Используется для режима edit
Важно! Если вы указываете editRow = 1 и в data несколько значений
%first_name%~~%last_name%~~%vk_id%~~https://vk.com/id%vk_id%
то скрипт запишет в ячейку только первое значение, т.е.
%first_name%
игнорируя остальные.
FindRow (число) - 0 - вернет адрес всей строки в которой найден искомый текст (указанный в search_text ) и 1 - вернет адрес конкретной ячейки в которой найден искомый текст (указанный в search_text). Используется для режима search
Важно! Если найденных строк будет много, то скрипт вернет только первую найденную)
Cell(число) - 0 - вернет адрес всей строки в которой найден искомый текст (указанный в search_text ) и 1 - вернет адрес конкретной ячейки в которой найден искомый текст (указанный в search_text). Используется для режима search
Для получения ответа от скрипта можно себе вывести переменную %response%, которая будет содержать в себе эти данные.
Я очень рекомендую выводить себе, как сотруднику %response%, каждый раз, когда идет работа с таблицей.
Пример %response%:
{"status":"success","message":"Данные успешно записаны в лист Январь
документа с ID
1b7xcio6_TgpQ7VKjpoNdnXW613lwizDmCZkJH0pDDws","cell":"A6","data":["Андрей","Горячих","408053834","https://vk.com/id408053834"]}Мы здесь видим status - success, что данные записаны корректно в ячейку A6. И да, я поправил скрипт, теперь он возвращает номер ячейки. Можно сохранять его в поле профиля игрока и использовать в других командах. Пример %response% сразу после отправки запроса
#ответ от гугла
Статус: %response.status%
Номер строки/ячейки: %response.cell%
Ссылка на таблицу: https://docs.google.com/spreadsheets/d/%documentid%/edit#gid=0
Все!
Хотя нет, если вы хотите больше мудрости от меня, то можете вступить в мой клуб.
Творческих взлётов и успешного внедрения.
Вернуться к списку инструкций