Содержание
Что такое Tagds?
Tagds — рекламная сеть для Telegram. Рекламодатель пополняет баланс; его реклама показывается в Mini App, ботах, каналах и в публикациях промоутеров. Тот, кто распространяет рекламу, получает за реальный результат.
USDT или GRAM в сети TON; баланс ведётся в долларах.
Измеряет, считает, отсеивает накрутки; закрывает день.
Стандартная доля 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; когда игрок, пришедший по вашей ссылке, запускает игру, продолжает играть или вносит депозит, вы получаете сумму, указанную в объявлении.
Регистрация
На
promoter.tagds.netили в Telegram:@tagdsbot→ Заработать на репостах.Одобрение
Публикации откроются после одобрения аккаунта командой Tagds.
Способ публикации
Публикует бот или Публикую сам.Публикация
Возьмите текст, картинку и свою личную ссылку — и опубликуйте.
Выплата
Каждый шаг игрока зачисляется в ваш доход и через 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Картинка. Изображение рекламодателя; в наборе для публикации из него делается картинка нужного размера для каждой платформы.
- 2Платформы. Где можно публиковать это объявление (Telegram, X) — в правом верхнем углу.
- 3Шаги и суммы. Сколько вы получаете за каждый шаг каждого приведённого игрока. Шаг с пометкой «учёт» засчитывается, но не оплачивается.
- 4Ваш результат. Ваши публикации, игроки и доход по этому объявлению.
- 5Кнопки публикации. В режиме «сам» — Опубликовать в Telegram / Опубликовать в X для каждой платформы; в режиме бота — Публикует бот · сегодня n/G и переключатель Публиковать ботом.
Дневной лимит публикаций
Каждый аккаунт может открыть не больше 3 публикаций в день (Tagds держит это число в пределах от 1 до 3). Каждый открытый набор тратит одну публикацию этого аккаунта; лимит обновляется в полночь по времени Турции (UTC+3).
- Набор, открытый с привязанным аккаунтом, тратит лимит этого аккаунта. У каждого аккаунта свой лимит.
- Набор без аккаунта считается по платформе (3 для Telegram, 3 для X).
- Публикации бота тратят тот же лимит — по каждому каналу.
- Когда лимит исчерпан, появится Лимит на сегодня исчерпан, завтра обновится.
Лимит ограничивает только число наборов. Сколько игроков придёт с одной публикации — не ограничено; когда дневной или общий лимит расходов объявления исчерпан, шаги записываются, но не оплачиваются.
Подтверждение в X и Telegram
Подтверждение фиксирует, где вы опубликовали объявление; рекламодатель видит это в таблице результатов. Доход зависит от игроков, пришедших по вашей ссылке, — они засчитываются и без подтверждения.
X
После публикации вставьте ссылку на твит (https://x.com/<пользователь>/status/<номер>) в поле Ссылка на твит в наборе и нажмите Проверить. Tagds проверит автора твита и наличие вашей ссылки в тексте. Если ваш аккаунт X добавлен в панель, твит должен быть с него; первый подходящий твит заодно подтверждает аккаунт. Один твит подтверждает одну публикацию.
Telegram
Вставьте ссылку на пост (https://t.me/<канал>/<номер>) в поле Ссылка на пост (необязательно). Если вы публиковали через привязанный канал, ссылка должна вести в него. Содержимое поста не читается.
Публикует бот: настройка в два шага
Когда вы выбираете Публикует бот, панель открывает экран Настройка публикаций ботом. Пока оба шага не пройдены, объявления закрыты и бот нигде не публикует. Чтобы продолжить без бота, нажмите Публикую сам на том же экране.
Привяжите Telegram
Получить ссылку → Открыть в Telegram → Запустить в боте. Откройте из того Telegram, который владеет каналом или группой. Ссылка действует 15 минут и только для вас; экран сам перейдёт ко второму шагу. Если вы регистрировались внутри Telegram, этот шаг уже выполнен.Выберите канал или группу
Тип (Канал или Группа) → Получить ссылку. Ссылка действует 30 минут.
Сделайте бота админом
Кнопка откроет Telegram. Выберите канал или группу и сделайте бота админом. Бот проверит, что вы владелец чата, и прочитает число участников; аккаунты, которые только админы, не принимаются.
Готово
Экран обновится сам, у канала появится статус Подтверждён, и откроются объявления. После одобрения профиля бот начнёт публиковать. Другие каналы: Мои аккаунты → Добавить аккаунт.
Как публикует бот?
- Каждый день с 10:00 до 22:00 (время Турции), не больше 3 постов на канал, равномерно в течение дня (при 3 — не раньше 10:00, 14:00 и 18:00).
- Между двумя постами в одном канале — не меньше 60 минут; одно и то же объявление попадает в один канал не чаще раза в 24 часа.
- Объявления чередуются: первым идёт то, что дольше всех не публиковалось в этом канале.
- В посте — картинка объявления, текст рекламодателя и ваша личная ссылка. Язык текста — язык вашей панели.
- Публикуются только объявления для Telegram, у рекламодателя которых есть баланс. Объявления только для X бот не публикует — их вы размещаете сами.
- Ненужное объявление отключается переключателем Публиковать ботом на его карточке.
Как заработать?
В каждом объявлении рекламодатель сам задаёт шаги игрока и сумму за каждый шаг. Когда игрок, пришедший по вашей ссылке, выполняет шаг, его сумма зачисляется вам. Суммы у объявлений разные — они указаны на карточке.
- 01ОткрылОткрыл Mini App по вашей ссылке (измеряется только в объявлениях для Mini App).
- 02ЗапустилЗапустил игру или бота.
- 032 дняИграл не меньше 2 дней.
- 047 днейБыл активен 7 дней.
- 05ДепозитВнёс деньги в игре.
Пример расчёта
| Шаг | За игрока | Игроков | Доход |
|---|---|---|---|
| Запустил игру | 0,10 $ | 100 | 10 $ |
| Активен 7 дней | 0,15 $ | 30 | 4,50 $ |
| Внёс депозит | 1 $ | 5 | 5 $ |
| Итого | 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 и в публикациях промоутеров. В формате «Продвижение» вы платите только за результат: игроков, которые запустили игру, продолжают играть и вносят депозит.
Регистрация и пополнение
Регистрация
advertiser.tagds.net→ Создать аккаунт (e-mail и пароль) или в Telegram:@tagdsbot→ Дать рекламу.Откройте «Баланс»
Баланс: выберите USDT или GRAM. На экране — TON-адрес Tagds, ваш личный код для комментария (TG-XXXXXXXX), QR-код и кнопка Открыть в кошельке.Отправьте
Переведите из кошелька в сети TON и вставьте код в поле комментария без изменений. Минимум 1 $.
Проверьте баланс
Когда транзакция подтвердится, сумма зачислится в долларах (обычно в течение минуты); экран обновляется сам.
Форматы рекламы
| Формат | Где и как | Оплата |
|---|---|---|
| Баннер | Узкая полоса на странице 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 и проверка владения
Укажите назначение
В объявлении выберите «Куда ведёт»: Mini App. Укажите имя бота, короткое имя Mini App (
t.me/<бот>/<короткое имя>; пусто — основной Mini App бота) и числовой id бота. Числовой id — это число до «:» в токене бота; сам токен никуда не вставляйте.Добавьте скрипт измерения
После сохранения в объявлении появится раздел Установка и подтверждение. Добавьте скрипт одной строкой в
<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>Откройте ссылку проверки
Откройте ссылку проверки из панели (
t.me/<бот>/<короткое имя>?startapp=<код проверки>) в Telegram. При открытии Mini App скрипт отправит в Tagds подписанные Telegram данные запуска. Эта ссылка — не публикация промоутера: она не засчитывается и не оплачивается.Подтверждено
Tagds проверит, что подпись принадлежит вашему боту, — через несколько секунд в разделе появится Подтверждено (раздел обновляется сам). Теперь Отправить на проверку.
Если проверка не проходит
- При неверном числовом id бота подпись не совпадёт; в панели растёт счётчик ошибок подписи.
- Если у Mini App есть Content-Security-Policy, добавьте
https://tagds.netвscript-srcиconnect-src, иначе запрос не уйдёт. - Открывайте ссылку в Telegram, а не в браузере. Данные запуска должны быть не старше 24 часов.
- Если позже изменить назначение, бота или короткое имя, проверка сбрасывается, а объявление возвращается на проверку; откройте ссылку снова.
Не убирайте скрипт после проверки: он измеряет каждый запуск по ссылке промоутера («Открыл») и отсеивает тех, кто «открыл, но не запустил».
Результаты
В разделе Промоутеры на странице кампании: включение объявления, шаги, лимиты, адрес уведомлений, секретный ключ (создать / обновить), примеры на Node.js и curl и таблица результатов за период. Каждая строка — промоутер × аккаунт (публикации без аккаунта — одна строка на платформу); там же дневной график.
- 01ОткрылОткрыл Mini App по ссылке промоутера (скрипт измерения).
- 02Запустилbaslatti
- 032 дняaktif_2
- 047 днейaktif_7
- 05Депозитyatirdi
Шаги, не оплаченные из-за нехватки баланса, считаются отдельно. Расход сразу списывается с баланса, фиксируется в конце дня и виден в разделе Операции.
Интеграция
Учёт продвижения состоит из двух частей: поймать код, когда игрок пришёл по ссылке промоутера, и отправлять в Tagds подписанное уведомление при каждом шаге игрока. В Mini App запуск сообщает скрипт измерения.
Схема
- ПромоутерПубликует
t.me/game_bot?start=AbC…илиt.me/game_bot/play?startapp=AbC… - ИгрокНажимает; Telegram открывает ваш бот с
/start AbC…или Mini App сstart_param = AbC…. - Ваш бот / Mini AppСохраняет код вместе с Telegram id игрока (первый код главный).
- Скрипт измеренияВ Mini App сообщает о запуске в Tagds («Открыл»); по желанию
Tagds.basladi(). - Ваш серверКогда игрок выполнил шаг:
POST /api/donusum+X-Tagds-Imza. - TagdsПроверяет первое касание, повторы, окно 30 дней, лимиты и баланс; засчитывает и начисляет промоутеру.
Чтение параметра start / startapp
Бот
По ссылке t.me/<бот>?start=<код> Telegram присылает вашему боту сообщение /start <код>. Сохраните код вместе с Telegram id игрока; если игрок уже приходил с другим кодом, оставьте первый (Tagds тоже считает первое касание).
// В обработчике /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 токеном своего бота:
// На сервере: сначала проверьте 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 вашего 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()
// Когда игрок действительно начал играть (например, вошёл в первый уровень)
if (window.Tagds) Tagds.basladi(); // шаг baslatti; секретный ключ не нуженВызывайте, когда игрок действительно начал играть: так сообщается шаг baslatti, секретный ключ не нужен. Если ваш сервер тоже отправит подписанный baslatti, засчитается то, что придёт первым, второе будет повтором. Если в объявлении нет такого шага, ничего не засчитывается.
| HTTP | Ответ | Значение |
|---|---|---|
| 200 | {"ok":true,"acilis":true,"eslesme":true} | Запуск записан, игрок привязан к ссылке. |
| 200 | {"ok":true,"dogrulama":true,…} | Запуск с кодом проверки: подтверждено только владение. |
| 400 | govde · bot_id_yok | Тело не {initData}, или в объявлении нет числового id бота. |
| 401 | imza · zaman | initData не от этого бота или старше 24 часов. |
| 404 | kod_yok | Неизвестный код. |
Уведомление о конверсии: POST /api/donusum
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 КБ.
Ответы
| HTTP | neden / durum | Значение | Что делать |
|---|---|---|---|
| 200 | sayildi: true | Засчитано и начислено промоутеру (и для шагов с суммой 0). | — |
| 200 | durum: askida · tavan · bakiye_yok | Записано, но не оплачено: промоутер приостановлен, лимит исчерпан или баланса не хватило. | Не отправляйте снова; проверьте баланс и лимиты. |
| 200 | neden: tekrar | У этого игрока такой шаг уже есть. | Игнорируйте; повтор безопасен. |
| 200 | neden: pencere | С первого прихода игрока прошло больше 30 дней. | Игнорируйте. |
| 200 | neden: tik_baska_oyuncuda | Старый одноразовый код /r/ привязан к другому игроку. | Игнорируйте. |
| 400 | govde | Тело испорчено или не хватает поля. | Исправьте тело. |
| 400 | adim_yok | Шаг не задан в объявлении. | Проверьте шаги объявления. |
| 401 | imza | Подпись не совпала. | Ключ, сырое тело, hex в нижнем регистре. |
| 401 | zaman | ts вне ±5 минут. | Синхронизируйте часы сервера (NTP). |
| 404 | tik_yok | Неизвестный код. | Проверьте, правильно ли прочитан код. |
| 413 | — | Тело больше 4 КБ. | — |
| 429 | hiz | Больше 600 запросов в минуту с одного IP. | Подождите и повторите. |
{"ok":true,"sayildi":true,"durum":"sayildi","donusum_id":4182}{"ok":true,"sayildi":false,"neden":"tekrar"}{"ok":false,"neden":"imza","error":"İmza geçersiz"}Запрос: GET /api/donusum/tik/:код
Показывает, к какому объявлению и промоутеру относится код. Подпись: hex(HMAC-SHA256(секретный ключ, <код>.<ts>)) в том же заголовке X-Tagds-Imza, ts — в строке запроса.
// Узнать, к какому объявлению и промоутеру относится код
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, … }
}{"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 каждого нового игрока, пришедшего по ссылке, — так вы получите данные промоутера у себя.
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 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 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"))# 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. Измените один символ ключа: 401imza. Выдуманный код: 404tik_yok. - Mini App: откройте ссылку проверки в Telegram — в панели должно появиться «Подтверждено».
SDK для издателей (кратко)
Чтобы показывать рекламу в своём Mini App (сторона издателя; к учёту продвижения не относится):
<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, и вызывайте его из клиентских компонентов.
Подключите скрипты
В App Router — в
app/layout.tsx. В Pages Router те же два тега<Script>поместите вpages/_app.tsx.Добавьте типы
Любой файл
.d.ts, который входит вtsconfig.json(стандартный"**/*.ts"покрываетtypes/tagds.d.ts).Вызывайте из клиентских компонентов
Только в компонентах
"use client", внутриuseEffectили обработчика нажатия: при серверном рендерингеwindow.Tagdsнет.
// 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 — чтобы 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 или бота
Добавьте приложение
publisher.tagds.net→ Приложения → Добавить приложение: ссылка на Mini App (https://t.me/<бот>/<приложение>), имя бота и его числовой id (не токен). Для рекламы с наградой и заданий — адрес награды (https, с подстановкой[userId]).Дождитесь проверки
Приложение проверяется; после одобрения оно готово получать рекламу.
Добавьте блок и вставьте код
Выберите формат (баннер, с наградой, межстраничная, задание) и вставьте код из панели в приложение; панель покажет, когда подключение заработает.
- Отключайте ненужные категории рекламы и задавайте, сколько рекламы с наградой и межстраничной один человек видит в час.
- В каждой рекламе всегда видны метка «Реклама» и кнопка закрытия.
- Реклама показывается только настоящим пользователям, подтверждённым Telegram; подсчёт идёт на наших серверах.
Каналы и группы
Привяжите Telegram
Меню аккаунта → Привязать Telegram.
Добавьте канал
Каналы → Добавить канал или группу. Ссылка действует 30 минут; добавьте бота в канал админом (с правом публиковать и удалять сообщения). Добавлять должен админ этого чата.Подтвердите владение
Бот пришлёт вам в личные сообщения ссылку подтверждения — откройте её. После этого канал проверяется.
- 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 для проверки на мошенничество; они не продаются и не используются для таргетинга рекламы.
Обновлено: · Наверх