Можно ли по меткам построить отчет в телеграм канале

Подскажите, пожалуйста, есть телеграм канал, на него закупается трафик с других каналов, можно ли как-то, на подобие utm метое на сайте, также получить данные по вступившим?

Например, я даю ссылку на рекламируемый ТГ канал подобного вида:

https://t.me/{advertised_channel}? source={source}&advert_campaign={some data}

Где source={source} - источник, другой тг канал, advert_campaign ещё какие-то нужные нам данные.

Задача - собрать информацию, а именно связку Пользователь-Источник откуда пользователь вступил, а если ещё и дополнительные можно собирать ещё какие-то данные, например связку Пользователь-Источник откуда пользователь вступил-Идентификатор рекламы - то будет вообще здорово

Можно ли, где-то и как-то получить статистику, по пользователям и меткам? как и где она хранится и как к ней обращаться?


Ответы (1 шт):

Автор решения: oleksandrigo

Тебе нужен deep-link
ССЫЛКА

from aiogram import Bot, Dispatcher, executor, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.types import AllowedUpdates
from aiogram.utils.deep_linking import get_start_link, decode_payload

bot = Bot(token=...)
dp = Dispatcher(bot, storage=MemoryStorage())


@dp.message_handler(commands=['start'])
async def start(msg: types.Message):
    # в функции старт обрабатываешь так
    if decode_payload(msg.get_args()) == "cur_chanel":
        ...


async def on_startup(_):
    # cur_chanel меняешь на то что тебе нужно,
    # к примеру (await bot.get_me()).username
    link = await get_start_link("cur_chanel", encode=True)
    # ссылка которую нужно дать юзеру
    print(link)


# allowed_updates просто полезная штука, чтобы не думать потом, 
# почему не работает edited_message_handler, к примеру
if __name__ == '__main__':
    executor.start_polling(dp, skip_updates=True, allowed_updates=AllowedUpdates.all(), on_startup=on_startup)
→ Ссылка