Быстрый стартСкопируйте, вставьте, зарабатывайте
Замените 50001 на ID блока из кабинета паблишера Adsun. При тестировании используйте debug: true — тестовые показы не оплачиваются.
Чистый HTML
Любой Mini App без сборщика.
<script src="https://telegram.org/js/telegram-web-app.js"></script>
<script src="https://api.adsun.io/sdk.js"></script>
<script>
// Reward block (Interstitial: "int-50001")
const ad = window.Adsun.init({ blockId: "50001" });
document.querySelector("#watch").onclick = () =>
ad.show().then(() => giveReward()).catch(console.log);
</script>
<adsun-task data-block-id="task-50003">
<span slot="reward">+100 coins</span>
</adsun-task>
npm / TypeScript
Vite, Next.js, Svelte, Angular.
// npm i adsun-sdk
import { initAdsun } from "adsun-sdk";
const ad = await initAdsun({ blockId: "50001", debug: false });
ad.addEventListener("onStart", () => pauseGame());
ad.show()
.then((r) => r.done && giveReward())
.catch((r) => console.log(r.description));
React
Кнопка с наградой и карточка задания.
// npm i adsun-sdk
import { useAdsun, AdsunTask } from "adsun-sdk/react";
export function Earn() {
const showAd = useAdsun({ blockId: "50001", onReward: () => addCoins(100) });
return (
<>
<button onClick={showAd}>Watch ad · +100</button>
<AdsunTask blockId="task-50003" reward="+100" onReward={() => addCoins(100)} />
</>
);
}
Vue 3
Composable для любого компонента.
<script setup>
// npm i adsun-sdk
import { useAdsun } from "adsun-sdk/vue";
const showAd = useAdsun({ blockId: "50001", onReward: () => coins.value += 100 });
</script>
<template>
<button @click="showAd">Watch ad · +100</button>
</template>
Python-бот (aiogram)
Спонсорское сообщение по /bonus.
# pip install "adsun[aiogram]"
from aiogram.filters import Command
from adsun import AsyncAdsunBot
from adsun.integrations.aiogram import send_ad
ads = AsyncAdsunBot(token="YOUR_ACCOUNT_TOKEN", block_id="50001")
@dp.message(Command("bonus"))
async def bonus(message):
u = message.from_user
await send_ad(message.bot, message.chat.id, ads, u.id, u.language_code or "en")
Reward URL (сервер)
Начисляйте награду только после проверенного просмотра.
# Panel → Reward URL:
# https://your-app.com/adsun/reward?userid=[userId]&block=[blockId]&secret=SECRET
from adsun import parse_reward_callback
@app.get("/adsun/reward")
def reward(request):
cb = parse_reward_callback(request.query_params, secret=SECRET)
if cb is None:
return Response(status_code=403)
add_coins(cb.user_id) # idempotent: Adsun retries on 5xx
return {"ok": True}