TagdsДокументация

Документация Tagds

Как устроена рекламная сеть Tagds для Telegram, шаг за шагом: публикуйте объявления и получайте за каждого игрока, запускайте продвижение, подключайте бота или Mini App, зарабатывайте на приложении и канале.

Содержание
С чего начать

Что такое Tagds?

Tagds — рекламная сеть для Telegram. Рекламодатель пополняет баланс; его реклама показывается в Mini App, ботах, каналах и в публикациях промоутеров. Тот, кто распространяет рекламу, получает за реальный результат.

РекламодательПополняет баланс

USDT или GRAM в сети TON; баланс ведётся в долларах.

Tagds

Измеряет, считает, отсеивает накрутки; закрывает день.

ИздательПоказы и клики

Стандартная доля 70 %; удержание 7 дней, от 10 $ — в очередь на выплату.

ПромоутерШаги игроков

Вся сумма шага; удержание 7 дней, Tagds платит вручную.

Движение денег. Доход фиксируется в конце дня и становится доступным к выводу после удержания.

Три роли, три панели

Рекламодатель
Нужны игроки, пользователи или подписчики. Пополняет баланс, запускает кампании и объявления для продвижения. Панель: advertiser.tagds.net
Издатель
Владелец Mini App, бота, канала или группы в Telegram. Показывает или публикует рекламу и зарабатывает на показах и кликах. Панель: publisher.tagds.net
Промоутер
Владелец аккаунта в X, канала или группы в Telegram — или никого из них: делится ссылкой где угодно. Публикует объявления и зарабатывает на шагах приведённых игроков. Панель: promoter.tagds.net

Все три роли — в одном аккаунте: зарегистрируйтесь с одной ролью и добавьте другую в меню аккаунта, раздел Мои панели. В Telegram отправьте /start боту @tagdsbot: кнопки Дать рекламу · Заработать на приложении · Заработать на репостах открывают те же панели прямо в Telegram. Языки панели: русский, английский, турецкий. Документы (KYC) не нужны.

Как движутся деньги?

  • Пополнение. Рекламодатель отправляет USDT или GRAM в сети TON и указывает в комментарии свой личный код. Минимум 1 $. GRAM пересчитывается в доллары по курсу на момент поступления; баланс всегда в долларах.
  • Расход. Показы (CPM), клики (CPC), вступления (CPA) или — в продвижении — шаги игроков. Расход сразу списывается с баланса и фиксируется в конце дня.
  • Доход издателя. Стандартно 70 % от того, что рекламодатели тратят в этом приложении или канале (может отличаться для приложения). Удержание 7 дней; когда сумма к выводу достигает 10 $, выплата сама встаёт в очередь и отправляется в USDT на TON-кошелёк издателя. Пока выплаты из очереди по порядку отправляет команда Tagds; когда включится автоматическая отправка, они будут уходить сами.
  • Доход промоутера. Вся сумма шага, указанная в объявлении; комиссия Tagds начисляется рекламодателю сверху. Удержание 7 дней; выплаты пока вручную, на адрес Tron (TRC-20) или TON.
  • Возвраты. Если в период удержания трафик признан накруткой, потраченные на него деньги возвращаются рекламодателю.
Промоутерам

Промоутерам

Платят не за подписчиков, а за пришедших игроков. Вы публикуете объявления рекламодателей в Telegram и X; когда игрок, пришедший по вашей ссылке, запускает игру, продолжает играть или вносит депозит, вы получаете сумму, указанную в объявлении.

  1. Регистрация

    На promoter.tagds.net или в Telegram: @tagdsbot → Заработать на репостах.

  2. Одобрение

    Публикации откроются после одобрения аккаунта командой Tagds.

  3. Способ публикации

    Публикует бот или Публикую сам.
  4. Публикация

    Возьмите текст, картинку и свою личную ссылку — и опубликуйте.

  5. Выплата

    Каждый шаг игрока зачисляется в ваш доход и через 7 дней становится доступен к выводу.

Регистрация и одобрение

Зарегистрироваться можно двумя способами:

  • Сайт: promoter.tagds.net → Создать аккаунт. Нужны только e-mail и пароль (10–200 символов; очень распространённые пароли и пароли, содержащие ваш e-mail, не принимаются).
  • Telegram: отправьте /start боту @tagdsbot → Заработать на репостах. Панель внутри Telegram тоже попросит e-mail и пароль; ваш Telegram привяжется к аккаунту, и в следующий раз вход будет сразу.

После регистрации аккаунт в статусе Аккаунт ждёт одобрения: можно смотреть объявления и добавлять аккаунты, но открывать публикации нельзя. Публикации откроются, как только команда Tagds одобрит аккаунт. Документы не нужны.

Первый вход: способ публикации

При первом входе панель спросит: Как вы будете публиковать объявления? Выбор делается один раз; изменить его можно в меню аккаунта (Способ публикации) или кнопкой Изменить на полосе вверху экрана «Объявления».

ВариантКак работаетЧто нужно
Публикует ботБот Tagds сам публикует объявления в вашем канале или группе в Telegram: каждый день с 10:00 до 22:00, не больше 3 постов на канал.Сделать бота админом канала или группы. Добавлять бота должен владелец чата.
Публикую самВы видите объявления карточками, берёте текст, картинку и личную ссылку и публикуете сами — в X, Telegram или где угодно.Ничего: публиковать можно и без добавленных аккаунтов.

Экран «Объявления»

Главный экран панели — Объявления. Вверху узкая полоса дохода: К выводу, В ожидании (и дата ближайшего открытия), Аванс или Долг, способ публикации и Выплаты. Ниже — график Приведённые игроки: по дням за 7, 14 или 30 дней — сколько ваших игроков запустили игру, играли 2+ дня, остались на 7 дней и внесли депозит (в объявлениях для Mini App — ещё и открыли); фильтр по объявлению и аккаунту. Затем карточки объявлений.

Пример карточки объявления (рисунок; суммы условные).

  1. 1Картинка. Изображение рекламодателя; в наборе для публикации из него делается картинка нужного размера для каждой платформы.
  2. 2Платформы. Где можно публиковать это объявление (Telegram, X) — в правом верхнем углу.
  3. 3Шаги и суммы. Сколько вы получаете за каждый шаг каждого приведённого игрока. Шаг с пометкой «учёт» засчитывается, но не оплачивается.
  4. 4Ваш результат. Ваши публикации, игроки и доход по этому объявлению.
  5. 5Кнопки публикации. В режиме «сам» — Опубликовать в Telegram / Опубликовать в X для каждой платформы; в режиме бота — Публикует бот · сегодня n/G и переключатель Публиковать ботом.

Публикуете сами: набор для публикации

  1. Выберите объявление

    Нажмите на карточке Опубликовать в Telegram или Опубликовать в X.

  2. Аккаунт и язык

    Если на этой платформе есть привязанные аккаунты, выберите один или Без аккаунта; если аккаунтов нет, набор откроется сразу. Выберите Язык поста (RU, EN, TR) и нажмите Получить набор.

  3. Заберите набор

    Ваша ссылка (скопируйте), текст (Копировать текст; уже укладывается в 280 символов X) и картинка (Скачать картинку: 1280×720 для Telegram, 1200×675 для X). Внутри Telegram удерживайте картинку, чтобы сохранить.
  4. Опубликуйте

    Написать в X или Поделиться в Telegram открывают готовый текст; можно вставить и вручную. Используйте ссылку без изменений.
  5. По желанию: подтверждение

    Вставьте в набор ссылку на твит (X) или на пост (Telegram) — см. ниже.

Набор, открытый без аккаунта, до конца дня лежит на карточке в разделе Сегодняшние наборы; повторное открытие для того же объявления и платформы не тратит лимит. Старые ссылки tagds.net/r/… продолжают работать, а новые наборы дают прямую ссылку t.me.

Дневной лимит публикаций

Каждый аккаунт может открыть не больше 3 публикаций в день (Tagds держит это число в пределах от 1 до 3). Каждый открытый набор тратит одну публикацию этого аккаунта; лимит обновляется в полночь по времени Турции (UTC+3).

  • Набор, открытый с привязанным аккаунтом, тратит лимит этого аккаунта. У каждого аккаунта свой лимит.
  • Набор без аккаунта считается по платформе (3 для Telegram, 3 для X).
  • Публикации бота тратят тот же лимит — по каждому каналу.
  • Когда лимит исчерпан, появится Лимит на сегодня исчерпан, завтра обновится.

Лимит ограничивает только число наборов. Сколько игроков придёт с одной публикации — не ограничено; когда дневной или общий лимит расходов объявления исчерпан, шаги записываются, но не оплачиваются.

Подтверждение в X и Telegram

Подтверждение фиксирует, где вы опубликовали объявление; рекламодатель видит это в таблице результатов. Доход зависит от игроков, пришедших по вашей ссылке, — они засчитываются и без подтверждения.

X

После публикации вставьте ссылку на твит (https://x.com/<пользователь>/status/<номер>) в поле Ссылка на твит в наборе и нажмите Проверить. Tagds проверит автора твита и наличие вашей ссылки в тексте. Если ваш аккаунт X добавлен в панель, твит должен быть с него; первый подходящий твит заодно подтверждает аккаунт. Один твит подтверждает одну публикацию.

Telegram

Вставьте ссылку на пост (https://t.me/<канал>/<номер>) в поле Ссылка на пост (необязательно). Если вы публиковали через привязанный канал, ссылка должна вести в него. Содержимое поста не читается.

Публикует бот: настройка в два шага

Когда вы выбираете Публикует бот, панель открывает экран Настройка публикаций ботом. Пока оба шага не пройдены, объявления закрыты и бот нигде не публикует. Чтобы продолжить без бота, нажмите Публикую сам на том же экране.

  1. Привяжите Telegram

    Получить ссылку → Открыть в Telegram → Запустить в боте. Откройте из того Telegram, который владеет каналом или группой. Ссылка действует 15 минут и только для вас; экран сам перейдёт ко второму шагу. Если вы регистрировались внутри Telegram, этот шаг уже выполнен.
  2. Выберите канал или группу

    Тип (Канал или Группа) → Получить ссылку. Ссылка действует 30 минут.

  3. Сделайте бота админом

    Кнопка откроет Telegram. Выберите канал или группу и сделайте бота админом. Бот проверит, что вы владелец чата, и прочитает число участников; аккаунты, которые только админы, не принимаются.

  4. Готово

    Экран обновится сам, у канала появится статус Подтверждён, и откроются объявления. После одобрения профиля бот начнёт публиковать. Другие каналы: Мои аккаунты → Добавить аккаунт.

Как публикует бот?

  • Каждый день с 10:00 до 22:00 (время Турции), не больше 3 постов на канал, равномерно в течение дня (при 3 — не раньше 10:00, 14:00 и 18:00).
  • Между двумя постами в одном канале — не меньше 60 минут; одно и то же объявление попадает в один канал не чаще раза в 24 часа.
  • Объявления чередуются: первым идёт то, что дольше всех не публиковалось в этом канале.
  • В посте — картинка объявления, текст рекламодателя и ваша личная ссылка. Язык текста — язык вашей панели.
  • Публикуются только объявления для Telegram, у рекламодателя которых есть баланс. Объявления только для X бот не публикует — их вы размещаете сами.
  • Ненужное объявление отключается переключателем Публиковать ботом на его карточке.

Как заработать?

В каждом объявлении рекламодатель сам задаёт шаги игрока и сумму за каждый шаг. Когда игрок, пришедший по вашей ссылке, выполняет шаг, его сумма зачисляется вам. Суммы у объявлений разные — они указаны на карточке.

  1. 01ОткрылОткрыл Mini App по вашей ссылке (измеряется только в объявлениях для Mini App).
  2. 02ЗапустилЗапустил игру или бота.
  3. 032 дняИграл не меньше 2 дней.
  4. 047 днейБыл активен 7 дней.
  5. 05ДепозитВнёс деньги в игре.
Знак $ отмечает шаги, за которые могут платить. Какие шаги оплачиваются и сколько, решает рекламодатель; шаг с суммой 0 помечен «учёт» — засчитывается, но не оплачивается.

Пример расчёта

ШагЗа игрокаИгроковДоход
Запустил игру0,10 $10010 $
Активен 7 дней0,15 $304,50 $
Внёс депозит1 $55 $
Итого19,50 $

Пример: по вашей ссылке игру запустили 100 человек, 30 остались на 7 дней, 5 внесли депозит. Реальные суммы указаны в объявлении. За каждый шаг каждого игрока платят один раз.

Какие игроки засчитываются?

Засчитываются

  • Настоящий аккаунт Telegram, пришедший по вашей ссылке, чей шаг сообщил бот рекламодателя.
  • Каждый аккаунт Telegram — один раз на объявление, и каждый его шаг — тоже один раз.
  • Побеждает первое касание: по чьей ссылке человек впервые пришёл к объявлению, тому и засчитываются все его дальнейшие шаги.
  • Шаги в течение 30 дней с первого прихода игрока.

Не засчитываются

  • Тот, кто уже приходил к этому объявлению по ссылке другого промоутера.
  • Повторное выполнение того же шага.
  • Шаг, выполненный позже 30 дней после первого прихода.
  • Тот, кто открыл Mini App, но не запустил игру (отображается отдельно как «открыл, но не запустил»).

Удержание, аванс и выплаты

  • Удержание. Доход фиксируется в конце каждого дня и через 7 дней становится доступен к выводу. Календарь открытия в разделе Выплаты показывает, сколько и в какой день откроется.
  • Адрес выплат. Выплаты → Адрес выплат. Tron (TRC-20): 34 символа, начинается с T; приходит USDT (TRC-20) или TRX. TON: 48 символов, начинается с UQ… или EQ…; для адреса биржи (например, Binance TON) укажите memo — он может быть обязательным.
  • Выплата. Пока вручную: команда Tagds отправляет сумму к выводу на ваш адрес и записывает ID транзакции (tx) в панель — смотрите История выплат и авансов. Порог выплаты 10 $, который действует для издателей, к промоутерам не относится.
  • Аванс. Доверительная выплата от Tagds; удерживается из первых доходов. Пока доход не покроет аванс, на полосе виден Долг, и сумма к выводу не появляется.

Возвраты и накрутки

Рекламодатель платит за настоящих игроков. Накруткой считается:

  • Запуск игры своими аккаунтами Telegram, вторыми аккаунтами или ботами.
  • Приведение одного и того же человека через несколько аккаунтов.
  • Обман бота рекламодателя, чтобы он сообщал шаги.

Если накрутка найдена, аккаунт приостанавливается: новые публикации открыть нельзя, старые ссылки работают, но их конверсии не оплачиваются. Связанный доход, который ещё в удержании, забирается и возвращается рекламодателю. Доход, прошедший удержание, не забирается.

Частые вопросы

Что если одно объявление публикуют двое?

У каждого промоутера своя ссылка. Игрок засчитывается тому, по чьей ссылке он впервые пришёл к объявлению; переход по чужой ссылке позже ничего не меняет.

Что если мою ссылку опубликует кто-то другой?

Код в ссылке указывает на вас: где бы её ни опубликовали, пришедшие по ней игроки засчитываются вам. И за распространение ссылки спамом или накрутками отвечаете тоже вы.

Почему игрок не засчитался?

  • Он уже приходил к этому объявлению по другой ссылке (первое касание).
  • Он уже выполнял этот шаг, или с первого прихода прошло больше 30 дней.
  • Он открыл Mini App, но не запустил игру.
  • Бот рекламодателя не сообщил шаг.
  • Шаг засчитан, но не оплачен: у рекламодателя не хватило баланса, исчерпан дневной или общий лимит объявления, или ваш аккаунт в тот момент был приостановлен.

У меня мало подписчиков. Смогу заработать?

Да. Оплата зависит от шагов приведённых игроков, а не от числа подписчиков. Число подписчиков и участников — только для справки.

Что будет, если удалить пост?

Игроки, которые уже пришли по вашей ссылке, продолжают засчитываться за шаги в пределах 30 дней.

Можно публиковать без аккаунта?

Да. В режиме Публикую сам набор открывается и без аккаунтов; учёт идёт по ссылке. Для публикаций ботом нужен привязанный канал или группа.

Когда я получу выплату?

Доход за каждый день становится доступен к выводу через 7 дней. Команда Tagds отправляет выплаты вручную на сохранённый адрес Tron (TRC-20) или TON.

На каких языках можно публиковать?

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

Рекламодателям

Рекламодателям

Ваша реклама — в Mini App, ботах, каналах Telegram и в публикациях промоутеров. В формате «Продвижение» вы платите только за результат: игроков, которые запустили игру, продолжают играть и вносят депозит.

Регистрация и пополнение

  1. Регистрация

    advertiser.tagds.net → Создать аккаунт (e-mail и пароль) или в Telegram: @tagdsbot → Дать рекламу.
  2. Откройте «Баланс»

    Баланс: выберите USDT или GRAM. На экране — TON-адрес Tagds, ваш личный код для комментария (TG-XXXXXXXX), QR-код и кнопка Открыть в кошельке.
  3. Отправьте

    Переведите из кошелька в сети TON и вставьте код в поле комментария без изменений. Минимум 1 $.

  4. Проверьте баланс

    Когда транзакция подтвердится, сумма зачислится в долларах (обычно в течение минуты); экран обновляется сам.

Форматы рекламы

ФорматГде и какОплата
БаннерУзкая полоса на странице Mini App.CPM или CPC
С наградойПользователь досматривает рекламу и получает награду в приложении.CPM
МежстраничнаяОткрывается между экранами или уровнями; кнопка закрытия видна всегда.CPM
ЗаданиеПросит вступить в ваш канал или запустить бота.CPA (за вступление)
Пост в каналеБот Tagds публикует вашу рекламу в каналах и группах Telegram.CPC (за клик)
ПродвижениеПромоутеры публикуют ваше объявление в X и Telegram; игроки приходят в ваш бот или Mini App.За шаг (CPA)

Текущие минимальные ставки — в таблице «Форматы и цены» на главной. Таргетинг: страна и язык Telegram пользователя; для постов в каналах — минимальное число подписчиков. Реклама останавливается сама, когда дневной бюджет потрачен или баланс закончился.

Создание объявления для продвижения

Кампании → Новая кампания → формат Продвижение. Справа мастер показывает живую карточку объявления и предпросмотр текста; сохранение — один шаг.

Заголовок, описание
Заголовок и короткое описание на карточке промоутера.
Текст публикации (RU · EN · TR)
То, что копирует промоутер: хотя бы один язык, до 1000 символов. На место {link} подставляется личная ссылка промоутера; если его нет, ссылка добавляется в конец. В X текст длиннее 280 символов сокращается, ссылка остаётся в конце. Пропущенный язык заменяется первым написанным. Хештеги и короткие коды не нужны.
Картинка
PNG, JPEG или WebP; до 1 МБ, не меньше 300×150 px. В наборе вписывается в 1280×720 для Telegram и 1200×675 для X.
Платформы
Telegram, X или обе. Промоутеры публикуют только на выбранных платформах; бот публикует только объявления с Telegram.
Куда ведёт
Бот: игрок открывает ваш бот по t.me/<бот>?start=<код>. Mini App: ваш Mini App открывается по t.me/<бот>/<короткое имя>?startapp=<код>; проверка владения обязательна (ниже).
Бот
Имя вашего бота (t.me/<бот>; оканчивается на «bot»).
Шаги и суммы
Готовые шаги: baslatti (запустил игру), aktif_2 (играл не меньше 2 дней), aktif_7 (активен 7 дней), yatirdi (внёс депозит) — или своё имя (строчные латинские буквы, цифры, _). До 10 шагов. Сумма — то, что получает промоутер; при 0 шаг только учитывается. Хотя бы один шаг должен оплачиваться.
Дневной и общий лимит
Дневной лимит обязателен, общий — по желанию: сколько максимум может списаться с вашего баланса (с комиссией). Когда лимит исчерпан, шаги записываются, но не оплачиваются.
Адрес уведомлений
Необязательный https-адрес; см. интеграцию.

Как начисляется комиссия

Промоутер получает всю указанную вами сумму. Комиссия Tagds (30 %) добавляется сверху: вы платите сумма × 100 / (100 − 30) с округлением вверх. Мастер показывает вашу цену рядом с каждым шагом.

ПромоутеруС васTagds
0,10 $0,142858 $0,042858 $
0,15 $0,214286 $0,064286 $
1 $1,428572 $0,428572 $

Секретный ключ и запуск

При сохранении секретный ключ показывается один раз — сохраните его (им подписываются уведомления о конверсиях). Объявления без ключа промоутеры не видят. Затем нажмите Отправить на проверку.

Проверка

Каждую кампанию и объявление Tagds проверяет до запуска: Черновик → Отправить на проверку → На проверке → Активна или Отклонена (причина видна в панели; исправьте и отправьте снова).

  • Без баланса объявление не одобрят; сначала пополните.
  • Если в активном объявлении изменить текст публикации, платформы, бота или назначение (короткое имя Mini App, id бота), оно вернётся на проверку. Суммы шагов, лимиты и адрес уведомлений — нет.
  • В других форматах повторную проверку вызывает изменение заголовка, текста, кнопки, ссылки или картинки.
  • Объявление для Mini App нельзя отправить на проверку и запустить, пока владение не подтверждено.
  • Запрещённые категории (азартные игры, контент для взрослых) не принимаются.

Активным объявлением управляют кнопки Остановить / Возобновить; остановленное объявление пропадает из списка промоутеров.

Настройка Mini App и проверка владения

  1. Укажите назначение

    В объявлении выберите «Куда ведёт»: Mini App. Укажите имя бота, короткое имя Mini App (t.me/<бот>/<короткое имя>; пусто — основной Mini App бота) и числовой id бота. Числовой id — это число до «:» в токене бота; сам токен никуда не вставляйте.

  2. Добавьте скрипт измерения

    После сохранения в объявлении появится раздел Установка и подтверждение. Добавьте скрипт одной строкой в <head> страницы Mini App, после telegram-web-app.js:

    HTML
    <!-- HTML вашего Mini App: одна строка после скрипта Telegram -->
    <script src="https://telegram.org/js/telegram-web-app.js"></script>
    <script src="https://tagds.net/sdk/v1/tagds.js" data-olcum async></script>
  3. Откройте ссылку проверки

    Откройте ссылку проверки из панели (t.me/<бот>/<короткое имя>?startapp=<код проверки>) в Telegram. При открытии Mini App скрипт отправит в Tagds подписанные Telegram данные запуска. Эта ссылка — не публикация промоутера: она не засчитывается и не оплачивается.

  4. Подтверждено

    Tagds проверит, что подпись принадлежит вашему боту, — через несколько секунд в разделе появится Подтверждено (раздел обновляется сам). Теперь Отправить на проверку.

Если проверка не проходит

  • При неверном числовом id бота подпись не совпадёт; в панели растёт счётчик ошибок подписи.
  • Если у Mini App есть Content-Security-Policy, добавьте https://tagds.net в script-src и connect-src, иначе запрос не уйдёт.
  • Открывайте ссылку в Telegram, а не в браузере. Данные запуска должны быть не старше 24 часов.
  • Если позже изменить назначение, бота или короткое имя, проверка сбрасывается, а объявление возвращается на проверку; откройте ссылку снова.

Не убирайте скрипт после проверки: он измеряет каждый запуск по ссылке промоутера («Открыл») и отсеивает тех, кто «открыл, но не запустил».

Результаты

В разделе Промоутеры на странице кампании: включение объявления, шаги, лимиты, адрес уведомлений, секретный ключ (создать / обновить), примеры на Node.js и curl и таблица результатов за период. Каждая строка — промоутер × аккаунт (публикации без аккаунта — одна строка на платформу); там же дневной график.

  1. 01ОткрылОткрыл Mini App по ссылке промоутера (скрипт измерения).
  2. 02Запустилbaslatti
  3. 032 дняaktif_2
  4. 047 днейaktif_7
  5. 05Депозитyatirdi
В объявлениях для Mini App те, кто открыл больше 24 часов назад и не запустил игру, попадают в долю «открыл, но не запустил»; за них не платят.

Шаги, не оплаченные из-за нехватки баланса, считаются отдельно. Расход сразу списывается с баланса, фиксируется в конце дня и виден в разделе Операции.

Разработчикам

Интеграция

Учёт продвижения состоит из двух частей: поймать код, когда игрок пришёл по ссылке промоутера, и отправлять в Tagds подписанное уведомление при каждом шаге игрока. В Mini App запуск сообщает скрипт измерения.

Схема

  1. ПромоутерПубликует t.me/game_bot?start=AbC… или t.me/game_bot/play?startapp=AbC…
  2. ИгрокНажимает; Telegram открывает ваш бот с /start AbC… или Mini App с start_param = AbC….
  3. Ваш бот / Mini AppСохраняет код вместе с Telegram id игрока (первый код главный).
  4. Скрипт измеренияВ Mini App сообщает о запуске в Tagds («Открыл»); по желанию Tagds.basladi().
  5. Ваш серверКогда игрок выполнил шаг: POST /api/donusum + X-Tagds-Imza.
  6. TagdsПроверяет первое касание, повторы, окно 30 дней, лимиты и баланс; засчитывает и начисляет промоутеру.

Чтение параметра start / startapp

Бот

По ссылке t.me/<бот>?start=<код> Telegram присылает вашему боту сообщение /start <код>. Сохраните код вместе с Telegram id игрока; если игрок уже приходил с другим кодом, оставьте первый (Tagds тоже считает первое касание).

JavaScript
// В обработчике /start вашего бота: код из сообщения "/start AbC…"
// (Telegram присылает его, когда открывают t.me/<бот>?start=<код>)
const m = /^\/start(?:@\w+)?\s+([A-Za-z0-9_-]{16,64})$/.exec(message.text || "");
if (m) {
  const code = m[1]; // код промоутера (22 символа)
  await db.saveFirstCode(message.from.id, code); // храните первый код игрока; более поздний код его не заменяет
}

Mini App

По ссылке t.me/<бот>/<короткое имя>?startapp=<код> код лежит в поле start_param initData (на клиенте — Telegram.WebApp.initDataUnsafe.start_param). Telegram передаёт его только при открытии по ссылке, поэтому сохраните его при первом запуске. На сервере читайте его после проверки initData токеном своего бота:

JavaScript
// На сервере: сначала проверьте initData токеном своего бота (правило Telegram),
// затем прочитайте start_param и id игрока
const params = new URLSearchParams(initData); // Telegram.WebApp.initData (сырая строка)
const code = params.get("start_param");       // код промоутера или null
const user = JSON.parse(params.get("user"));  // user.id = telegramId

Скрипт измерения (Mini App)

Обязателен для объявлений, ведущих в Mini App. Без зависимостей и никогда не ломает игру (ошибки молча, тайм-аут 5 секунд).

HTML
<!-- HTML вашего Mini App: одна строка после скрипта Telegram -->
<script src="https://telegram.org/js/telegram-web-app.js"></script>
<script src="https://tagds.net/sdk/v1/tagds.js" data-olcum async></script>
  • При запуске, если start_param — код Tagds, скрипт отправляет подписанные Telegram initData на POST /api/olcum/acilis. Tagds проверяет подпись по id бота из объявления: запуск засчитывается как «Открыл», игрок привязывается к ссылке (первое касание).
  • При открытии с кодом проверки подтверждается только владение — ничего не записывается и не атрибутируется.
  • Без кода скрипт ничего не отправляет.

Tagds.basladi()

JavaScript
// Когда игрок действительно начал играть (например, вошёл в первый уровень)
if (window.Tagds) Tagds.basladi(); // шаг baslatti; секретный ключ не нужен

Вызывайте, когда игрок действительно начал играть: так сообщается шаг baslatti, секретный ключ не нужен. Если ваш сервер тоже отправит подписанный baslatti, засчитается то, что придёт первым, второе будет повтором. Если в объявлении нет такого шага, ничего не засчитывается.

HTTPОтветЗначение
200{"ok":true,"acilis":true,"eslesme":true}Запуск записан, игрок привязан к ссылке.
200{"ok":true,"dogrulama":true,…}Запуск с кодом проверки: подтверждено только владение.
400govde · bot_id_yokТело не {initData}, или в объявлении нет числового id бота.
401imza · zamaninitData не от этого бота или старше 24 часов.
404kod_yokНеизвестный код.

Уведомление о конверсии: POST /api/donusum

HTTP
POST /api/donusum HTTP/1.1
Host: tagds.net
Content-Type: application/json
X-Tagds-Imza: <hex(HMAC-SHA256(secret, raw body))>

{"clickId":"AbCdEfGhIjKlMnOpQrStUv","telegramId":123456789,"adim":"baslatti","ts":1760000000}
clickId · string
Код из ссылки (значение start или start_param): 16–64 символа; латинские буквы, цифры, _ и -.
telegramId · число
Telegram id пользователя-игрока (можно строкой из цифр).
adim · string
Шаг из объявления: baslatti, aktif_2, aktif_7, yatirdi или ваше имя (до 32 символов).
ts · целое
Unix-время в секундах; расхождение с часами Tagds не больше ±5 минут.

Подпись

X-Tagds-Imza = hex(HMAC-SHA256(секретный ключ, сырое тело)). Подпись считается по тем же байтам, что вы отправляете: не пересериализуйте тело и не добавляйте пробелы после подписи. Префикс sha256= тоже принимается. Тело — JSON, до 4 КБ.

Ответы

HTTPneden / durumЗначениеЧто делать
200sayildi: trueЗасчитано и начислено промоутеру (и для шагов с суммой 0).—
200durum: askida · tavan · bakiye_yokЗаписано, но не оплачено: промоутер приостановлен, лимит исчерпан или баланса не хватило.Не отправляйте снова; проверьте баланс и лимиты.
200neden: tekrarУ этого игрока такой шаг уже есть.Игнорируйте; повтор безопасен.
200neden: pencereС первого прихода игрока прошло больше 30 дней.Игнорируйте.
200neden: tik_baska_oyuncudaСтарый одноразовый код /r/ привязан к другому игроку.Игнорируйте.
400govdeТело испорчено или не хватает поля.Исправьте тело.
400adim_yokШаг не задан в объявлении.Проверьте шаги объявления.
401imzaПодпись не совпала.Ключ, сырое тело, hex в нижнем регистре.
401zamants вне ±5 минут.Синхронизируйте часы сервера (NTP).
404tik_yokНеизвестный код.Проверьте, правильно ли прочитан код.
413—Тело больше 4 КБ.—
429hizБольше 600 запросов в минуту с одного IP.Подождите и повторите.
200
{"ok":true,"sayildi":true,"durum":"sayildi","donusum_id":4182}
200 · повтор
{"ok":true,"sayildi":false,"neden":"tekrar"}
401
{"ok":false,"neden":"imza","error":"İmza geçersiz"}

Запрос: GET /api/donusum/tik/:код

Показывает, к какому объявлению и промоутеру относится код. Подпись: hex(HMAC-SHA256(секретный ключ, <код>.<ts>)) в том же заголовке X-Tagds-Imza, ts — в строке запроса.

Node.js
// Узнать, к какому объявлению и промоутеру относится код
export async function lookup(code) {
  const ts = Math.floor(Date.now() / 1000);
  const signature = crypto.createHmac("sha256", SECRET).update(code + "." + ts).digest("hex");
  const res = await fetch(TAGDS + "/api/donusum/tik/" + code + "?ts=" + ts, { headers: { "X-Tagds-Imza": signature } });
  return res.json(); // { ok, kampanya_id, tanitimci, hesap, platform, … }
}
200
{"ok":true,"clickId":"AbCdEfGhIjKlMnOpQrStUv","baslangic":true,"kampanya_id":12,"paylasim_id":345,"tanitimci_id":67,"tanitimci":"@promoter","hesap":"@channel","platform":"telegram","at":"2026-10-21T09:12:44.000Z","oyuncu":null,"adimlar":[]}

Для кода публикации (baslangic: true) поля oyuncu и adimlar пусты: код приводит многих игроков. Для старого кода /r/ возвращаются игрок и его шаги. Коды ошибок те же, что у уведомлений о конверсиях.

Адрес уведомлений (по желанию)

Если указать в объявлении https-адрес, Tagds вызовет его методом GET при первом шаге baslatti каждого нового игрока, пришедшего по ссылке, — так вы получите данные промоутера у себя.

URL
https://api.example.com/tagds?click=[clickId]&campaign=[campaignId]&promoter=[promoterId]&account=[account]&platform=[platform]&ts=[ts]
ПодстановкаЗначение
[clickId]Код из ссылки
[campaignId]Id кампании (объявления)
[promoterId]Id промоутера
[promoterName]Имя промоутера
[account]@канал или x.com/аккаунт; пусто, если неизвестно
[platform]telegram или x
[shareId]Id публикации
[ts]Время привязки (Unix, секунды)
  • Значения подставляются в URL-кодировке.
  • Только https, порт 443 и доменное имя (без IP-адресов и localhost).
  • Тайм-аут 5 секунд, 3 попытки (с паузой 1 и 2 секунды); успехом считается любой 2xx. Редиректы не выполняются, тело ответа не читается.
  • Для старых ссылок /r/ вызывается при каждом клике.

Секретный ключ

  • Страница кампании → Промоутеры → Создать ключ. Начинается с tgs_ (47 символов) и показывается один раз — сразу после создания.
  • Обновить: новый ключ действует сразу, старый мгновенно перестаёт работать. Будьте готовы заменить ключ на сервере.
  • Храните ключ только на сервере (в переменной окружения). Не кладите его в Mini App, клиентский код или репозиторий.
  • Объявления без ключа промоутеры не видят.

Примеры кода

Node.js
// Node.js 18+ — без зависимостей
import crypto from "node:crypto";

const TAGDS = "https://tagds.net";
const SECRET = process.env.TAGDS_SECRET; // tgs_… секретный ключ, показывается в панели один раз

// Вызывайте, когда игрок выполнил шаг.
// code: значение start / start_param; telegramId: Telegram id игрока
export async function reportStep(code, telegramId, step) {
  const body = JSON.stringify({ clickId: code, telegramId, adim: step, ts: Math.floor(Date.now() / 1000) });
  const signature = crypto.createHmac("sha256", SECRET).update(body).digest("hex");
  const res = await fetch(TAGDS + "/api/donusum", {
    method: "POST",
    headers: { "content-type": "application/json", "X-Tagds-Imza": signature },
    body, // отправляйте ровно те байты, что подписали
  });
  return { status: res.status, ...(await res.json()) };
}

// Проверка из командной строки
// TAGDS_SECRET=tgs_… node report.mjs <code> <telegramId>
const [code, telegramId] = process.argv.slice(2);
console.log(await reportStep(code, Number(telegramId), "baslatti"));
Python
# Python 3.8+ — без зависимостей
import hashlib, hmac, json, os, time, urllib.error, urllib.request

TAGDS = "https://tagds.net"
SECRET = os.environ["TAGDS_SECRET"].encode()  # tgs_… секретный ключ, показывается в панели один раз

def report_step(code, telegram_id, step):
    """Вызывайте, когда игрок выполнил шаг; возвращает (HTTP-код, ответ)."""
    # code: значение start / start_param; telegramId: Telegram id игрока
    body = json.dumps({"clickId": code, "telegramId": telegram_id, "adim": step, "ts": int(time.time())},
                      separators=(",", ":")).encode()
    signature = hmac.new(SECRET, body, hashlib.sha256).hexdigest()
    req = urllib.request.Request(TAGDS + "/api/donusum", data=body, method="POST",  # отправляйте ровно те байты, что подписали
                                 headers={"content-type": "application/json", "X-Tagds-Imza": signature})
    try:
        with urllib.request.urlopen(req, timeout=10) as r:
            return r.status, json.load(r)
    except urllib.error.HTTPError as e:  # тело ответов 4xx/5xx тоже JSON
        return e.code, json.load(e)

if __name__ == "__main__":  # Проверка из командной строки: TAGDS_SECRET=tgs_… python report.py <code> <telegramId>
    import sys
    print(report_step(sys.argv[1], int(sys.argv[2]), "baslatti"))
curl
# Bash + openssl: переменные окружения TAGDS_SECRET и CODE
BODY='{"clickId":"'"$CODE"'","telegramId":123456789,"adim":"yatirdi","ts":'"$(date +%s)"'}'
SIG=$(printf '%s' "$BODY" | openssl dgst -sha256 -hmac "$TAGDS_SECRET" | sed 's/^.* //')
curl -sS -X POST https://tagds.net/api/donusum \
  -H 'content-type: application/json' -H "X-Tagds-Imza: $SIG" -d "$BODY"

Как тестировать

Сначала сверьте подпись с этим тестовым примером (сеть не нужна); тело должно совпадать байт в байт:

Тестовый пример
secret    tgs_test_ornek
body      {"clickId":"AbCdEfGhIjKlMnOpQrStUv","telegramId":123456789,"adim":"baslatti","ts":1760000000}
signature 2c2a9365e74cf323166299bc1a23c8068ff2f59e6321305eddf97903ba55168c

secret    tgs_test_ornek
text      AbCdEfGhIjKlMnOpQrStUv.1760000000
signature 533d7df9f5ee87262b060eabc61544165c6d4a5b445d4020b52772b4904e39de
  • Чтобы сквозная проверка ничего не стоила, добавьте в объявление учётный шаг с суммой 0 (например, test): он засчитывается, но баланс не трогает.
  • Отправьте то же уведомление дважды: ждите 200 и neden: tekrar.
  • Сдвиньте ts на 10 минут назад: 401 zaman. Измените один символ ключа: 401 imza. Выдуманный код: 404 tik_yok.
  • Mini App: откройте ссылку проверки в Telegram — в панели должно появиться «Подтверждено».

SDK для издателей (кратко)

Чтобы показывать рекламу в своём Mini App (сторона издателя; к учёту продвижения не относится):

HTML
<script src="https://tagds.net/sdk/v1/tagds.js"></script>
<script type="module">
  // Реклама с наградой или межстраничная
  const ad = Tagds.init({ blockId: "blk_…" });
  const r = await ad.show(); // r = { done, state, error, description }
  if (r.done) giveReward();

  // Баннер: рисуется внутри переданного элемента
  await Tagds.banner({ blockId: "blk_…", el: "#banner" });
</script>
  • show() всегда завершается: done = true, если награда получена (с наградой), вступление подтверждено (задание) или реклама показана и закрыта (межстраничная). state: load (нет рекламы или ошибка запроса), playing (закрыта раньше времени), destroy (завершена), render (баннер отрисован).
  • События: ad.addEventListener("onStart" | "onReward" | "onSkip" | "onError", f).
  • Личность берётся из Telegram.WebApp.initData; токен вашего бота к нам не попадает. Если у вас есть CSP, добавьте https://tagds.net в connect-src и img-src.
  • Id блока (blk_…) и готовый код — на странице приложения в панели; там же видно, когда подключение заработало.

Next.js и TypeScript

SDK — обычный скрипт без зависимостей, он работает в любом фреймворке. В Next.js подключите его один раз, добавьте небольшой файл типов, чтобы TypeScript знал window.Tagds, и вызывайте его из клиентских компонентов.

  1. Подключите скрипты

    В App Router — в app/layout.tsx. В Pages Router те же два тега <Script> поместите в pages/_app.tsx.

  2. Добавьте типы

    Любой файл .d.ts, который входит в tsconfig.json (стандартный "**/*.ts" покрывает types/tagds.d.ts).

  3. Вызывайте из клиентских компонентов

    Только в компонентах "use client", внутри useEffect или обработчика нажатия: при серверном рендеринге window.Tagds нет.

app/layout.tsx
// app/layout.tsx — подключите скрипты один раз
import Script from "next/script";

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="en">
      <body>
        <Script src="https://telegram.org/js/telegram-web-app.js" strategy="beforeInteractive" />
        <Script src="https://tagds.net/sdk/v1/tagds.js" strategy="afterInteractive" />
        {children}
      </body>
    </html>
  );
}
types/tagds.d.ts
// types/tagds.d.ts — чтобы TypeScript знал window.Tagds
type TagdsResult = { done: boolean; state: "load" | "playing" | "destroy" | "render"; error: boolean; description: string };
type TagdsEvent = "onStart" | "onReward" | "onSkip" | "onError";

interface TagdsController {
  show(): Promise<TagdsResult>;
  addEventListener(event: TagdsEvent, cb: (r: TagdsResult) => void): void;
  removeEventListener(event: TagdsEvent, cb: (r: TagdsResult) => void): void;
}

interface Window {
  Tagds?: {
    init(o: { blockId: string }): TagdsController;
    banner(o: { blockId: string; el: string | HTMLElement; onClose?: () => void }): Promise<TagdsResult>;
    basladi(): void;
    version: string;
  };
}
Баннер
"use client";
// components/TagdsBanner.tsx — только на клиенте
import { useEffect, useRef } from "react";

export function TagdsBanner({ blockId }: { blockId: string }) {
  const ref = useRef<HTMLDivElement>(null);
  useEffect(() => {
    if (!ref.current || !window.Tagds) return;
    window.Tagds.banner({ blockId, el: ref.current });
  }, [blockId]);
  return <div ref={ref} />;
}
С наградой / межстраничная
"use client";
// components/WatchAdButton.tsx — с наградой или межстраничная
export function WatchAdButton({ blockId }: { blockId: string }) {
  const onClick = async () => {
    if (!window.Tagds) return;
    const r = await window.Tagds.init({ blockId }).show();
    if (r.done) {
      // обновите интерфейс; настоящая награда приходит на ваш reward URL (сервер к серверу)
    }
  };
  return <button onClick={onClick}>Watch ad</button>;
}
  • Настоящую награду выдавайте по reward URL (Tagds вызывает его сервер к серверу после завершения рекламы); r.done — для интерфейса.
  • Учёт продвижения в Mini App на Next.js: добавьте data-olcum в тот же тег (<Script src="…/sdk/v1/tagds.js" data-olcum strategy="afterInteractive" />) и вызовите window.Tagds?.basladi(), когда игрок действительно начал играть.
Издателям

Издателям

Показывайте рекламу в своём Mini App, боте, канале или группе Telegram и зарабатывайте на показах и кликах. Стандартная доля — 70 %.

Добавление Mini App или бота

  1. Добавьте приложение

    publisher.tagds.net → Приложения → Добавить приложение: ссылка на Mini App (https://t.me/<бот>/<приложение>), имя бота и его числовой id (не токен). Для рекламы с наградой и заданий — адрес награды (https, с подстановкой [userId]).
  2. Дождитесь проверки

    Приложение проверяется; после одобрения оно готово получать рекламу.

  3. Добавьте блок и вставьте код

    Выберите формат (баннер, с наградой, межстраничная, задание) и вставьте код из панели в приложение; панель покажет, когда подключение заработает.

  • Отключайте ненужные категории рекламы и задавайте, сколько рекламы с наградой и межстраничной один человек видит в час.
  • В каждой рекламе всегда видны метка «Реклама» и кнопка закрытия.
  • Реклама показывается только настоящим пользователям, подтверждённым Telegram; подсчёт идёт на наших серверах.

Каналы и группы

  1. Привяжите Telegram

    Меню аккаунта → Привязать Telegram.

  2. Добавьте канал

    Каналы → Добавить канал или группу. Ссылка действует 30 минут; добавьте бота в канал админом (с правом публиковать и удалять сообщения). Добавлять должен админ этого чата.
  3. Подтвердите владение

    Бот пришлёт вам в личные сообщения ссылку подтверждения — откройте её. После этого канал проверяется.

  • 1, 2 или 3 рекламы в день; часы публикации и через сколько часов удалять пост (или не удалять) выбираете вы. Между двумя рекламами — не меньше 4 часов.
  • Вы зарабатываете за каждого настоящего человека, нажавшего кнопку (CPC). Ваши собственные клики и повторные клики того же человека не оплачиваются.
  • Число оплачиваемых кликов на пост ограничено относительно числа подписчиков; каналы сверх лимита отправляются на проверку.
  • Если удалить бота из канала, публикации прекратятся.

Доход и выплаты

  • Вам начисляется стандартно 70 % от того, что рекламодатели тратят в вашем приложении или канале (для приложения может отличаться; свою ставку вы видите в панели).
  • Доход фиксируется в конце каждого дня и удерживается 7 дней, затем становится доступен к выводу.
  • Когда сумма к выводу достигает 10 $, заявка на выплату сама встаёт в очередь (просить не нужно), и сумма отправляется в USDT на ваш TON-кошелёк. Пока выплаты по порядку отправляет команда Tagds; когда включится автоматическая отправка, они будут уходить сами. Статус виден в разделе Выплаты; крупные суммы могут проходить одобрение Tagds.
  • Выплаты → адрес TON-кошелька (48 символов, начинается с UQ… или EQ…). Если сменить сохранённый адрес, 48 часов новые выплаты не открываются; первый адрес ждать не нужно.
Правила использования

Правила использования

Это не юридический документ, а краткая сводка правил, которые система действительно применяет.

Контент и проверка

  • Каждая кампания и объявление проверяются до запуска и повторно — при изменении видимого содержимого.
  • Запрещённые категории: азартные игры и контент для взрослых. Издатели могут дополнительно отключить ненужные категории в своих приложениях.
  • У каждой рекламы есть метка «Реклама»; в межстраничной рекламе всегда видна кнопка закрытия.
  • Реклама в постах каналов и задания ведут только на адреса t.me.
  • Объявление для продвижения ведёт только в собственный бот или Mini App рекламодателя; для Mini App проверка владения обязательна.

Накрутки

  • Показы, клики и конверсии считаются на наших серверах; показы в Mini App приходят с данными пользователя, подписанными Telegram.
  • В рекламе в каналах собственные клики владельца и повторные клики того же человека не оплачиваются.
  • В продвижении каждый аккаунт Telegram засчитывается один раз на объявление, побеждает первое касание, а шаги сообщает бот рекламодателя с подписью.
  • Боты, вторые аккаунты, клики и запуски самим собой — это накрутка.

Возвраты и приостановка

  • Деньги, потраченные на трафик, признанный накруткой в период удержания (7 дней), возвращаются рекламодателю.
  • Приложение или канал издателя, признанные накруткой, закрываются, а открытая выплата отменяется.
  • Промоутер с накрученным трафиком приостанавливается: новых публикаций нет, конверсии не оплачиваются, доход в удержании возвращается рекламодателю.
  • Доход, прошедший удержание и ставший доступным к выводу, не забирается.

Аккаунт и безопасность

  • Вход — по e-mail и паролю; привязка Telegram необязательна. Один аккаунт Telegram можно привязать только к одному аккаунту Tagds.
  • Канал или группа может принадлежать только одному аккаунту Tagds.
  • Tagds никогда не просит токен бота — только его числовой id.
  • Секретные ключи (tgs_…) хранятся только на вашем сервере; никому их не передавайте.

Конфиденциальность и защита от мошенничества

  • Чтобы предотвращать мошенничество (несколько аккаунтов, фейковые игроки, злоупотребления выплатами), при регистрации, входе, привязке Telegram, смене адреса выплат, публикациях и запросах выплат мы сохраняем IP-адрес, сведения о браузере (user agent), сведения об устройстве и отпечаток устройства.
  • Отпечаток — это хеш, который браузер вычисляет из параметров экрана, часового пояса, языка, оборудования и отрисовки; исходные данные не покидают устройство. Также в браузере хранится случайный идентификатор устройства.
  • В Mini App с кодом измерения при каждом открытии сохраняются Telegram ID игрока, IP-адрес и те же сведения об устройстве.
  • Эти записи хранятся 180 дней, затем удаляются. Их видят только администраторы Tagds для проверки на мошенничество; они не продаются и не используются для таргетинга рекламы.

Обновлено: · Наверх