Skip to main content

Как сохранить и показать дату регистрации юзера в боте

В этом руководстве мы разберём один из возможных подходов к фиксации даты регистрации ваших пользователей. Этот метод идеально подходит для инвестиционных, игровых, реферальных и airdrop-ботов.

❖ Почему не стоит сохранять дату при нажатии START

Многие спрашивают - как записать дату регистрации юзера сразу, при первом нажатии им команды /start в боте. В боты созданные на конструкторе @MenuBuilderBot КАЖДЫЙ МЕСЯЦ приходят МИЛЛИОНЫ новых юзеров. Огромный процент этих юзеров, запустивших очередной бот из любопытства, закрывают его в первую же минуту и больше никогда в него не возвращаются, являясь по сути «мёртвым» грузом - их данные нам не нужны, а создателю бота - бесполезны... По этой причине конструктор не сохраняет никаких данных о тех аккаунтах, что просто запустил бот. Таким образом, эти данные, вам, как адамину, не доступны. 

Для аналитики, реферальных выплат и распределения монет в airdrop важны только те люди, которые реально заинтересованы в вашем проекте. Поэтому фиксировать дату их регистрации (присоединения) лучше только тогда, когда пользователь реально совершил первое ключевое действие - например, успешно прошел проверку подписки на канал, заполнил Форму обратной связи или нажал кнопку «Выполнить Задание». Это подтверждает, что перед нами реальный, активный пользователь бота. Поэтому механизм фиксации даты регистрации мы предлагаем делать в нужном вам месте, а не для всех подряд.

❖ Приобретение функционала


Весь функционал приобретается В ВАШЕМ БОТЕ, для этого перейдите в свой бот:
☞ 🔐Админ | 🧩Расширения

ВАЖНО: Приобретение функционала для бота доступно только Создателю (хозяину) бота. Админы покупать функционал - НЕ МОГУТ!


Вам понадобится:

1. Переменная - 1 штука
☞ 🔐Админ | 🧩Расширения | 📂Переменные

2. Action-ы - 1 штука
☞ 🔐Админ | 🧩Расширения | 📂Action-ы

3. Плагин - Макросы и Выражения для Кнопок (если ещё не активирован ранее)
☞ 🔐Админ | 🧩Расширения | 📂Кнопки

Руководство по «Переменным»
Руководство по «Action-ам»
Руководство по «Выражениям»

❖ Создание функционала фиксации даты

Шаг 1. Создание переменной «Даты и Времени»

Для хранения даты нам понадобится специальная Переменная типа «Date and Time».

1. Перейдите в редактор переменных:
☞ 🔐Админ | 🗄Переменные | 📕Время

2. Нажмите кнопку «➕ Создать Переменную».

3. Введите имя переменной латиницей. Например: reg_date (дата регистрации).

Шаг 2. Привязка «Action-а Инициализации» к кнопке

Настроим ключевую кнопку действия так, чтобы в момент её нажатия бот, при помощи Action-а фиксировал текущее время.

Мы исходим из того что сама функциональная кнопка у вас уже создана и в целом схема вашего проекта уже принципиально готова.

2. Перейдите в «Редактор Кнопок» в меню вашего бота.
3. Нажмите кнопку, которая в вашем проекте подтверждает активность пользователя (например, «Проверить Подписку», «Получить Бонус» или «Выполнить Задание»). Это поместит выделение редактора на эту кнопку.
4. В появившемся сообщении с данными кнопки нажмите кнопку настроек со звёздочкой (*️⃣).
5. Выберите «Назначить Pre-Action» (чтобы выполнить действие ДО показа сообщения кнопки).
6. Выберите: «Action Инициализации».
7. Следуйте инструкциям пошагового мастера настройки:
  - Укажите переменную: выберите созданную ранее переменную reg_date.
  - Укажите значение: отправьте боту Выражение с функцией текущего времени: {dt_now()}.
8. По желанию вы можете настроить системные сообщения об успешном выполнении или оставить их пустыми, нажав «Set Empty».

«Action Инициализации» (вместо стандартного «Action-а Чисел») удобен тем что ему не нужно отдельное Условие для проверки данных. Он сработает только один раз: действие инициализации срабатывает исключительно тогда, когда переменная абсолютно пуста (не инициализирована). При этом переменная reg_date заполняется текущим временем. При всех последующих нажатиях этой же кнопки (например, когда пользователь забирает ежедневный бонус или проверяет статус) действие инициализации будет игнорироваться, потому что переменная уже инициализирована!

Шаг 3. Показ даты регистрации пользователю и использование его в логике проекта

1. Вывод даты в профиле пользователя (Личном Кабинете)

Вы можете вывести сохранённую дату регистрации в любом сообщении бота (например, в кнопке «Мой профиль») с помощью Макроса Переменной:
Пример Сообщения:
"👤 Ваш профиль
💵 Баланс: %balance% монет
📅 Дата регистрации: %reg_date%"

Из этой даты можно выводить производные (например - сколько дней прошло с момента регистрации) - смотри Руководство «Работа с Датой и Временем».

2. Отображение даты регистрации с учётом часового пояса бота

Функция {dt_now()} возвращает системное время сервера (UTC+3).
Если у вас другой часовой пояс, отобразить дату с его учётом можно с помощью Выражения:
{dt_add("%reg_date%", 1)}
(Где 1 - это разница +1 час с вашим часовым поясом. Используйте отрицательные значения (-1, -2 и т.д) если ваш часовой пояс UTC+2 и меньше.)

3. Экспорт данных

При завершении airdrop или проведении реферального конкурса вы можете легко выгрузить список всех проверенных пользователей вместе с датами их регистрации в формате таблицы Excel (.csv) с помощью команды:
/varexp - чтобы экспортировать все данные
или
/varexp reg_date - чтобы экспортировать только даты регистрации. Бот отправит вам файл, в котором будут содержаться только ID активных пользователей и точное время, когда они зафиксировали своё участие.

Смотри «Руководство по Экспорту данных».