指南
付费奖励广告
复制页面
提供一个视频作为奖励,检查您的服务器以确认该玩家观看了该视频,然后每观看一个视频支付一次。
页面播放视频并获得一个 adId。您的服务器检查 adId 与Lia,然后给予奖励,一次。
#在你的页面中
async function secondChance() {
const result = await Lia.showRewardedAd({
onState: function (state) {
if (state === "loading") pauseGame();
},
});
if (!result.watched) {
if (result.reason === "no_ad") Lia.toast("No video right now. Try again soon.");
return endRun();
}
const { ok } = await api("/api/second-chance", { adId: result.adId });
ok ? continueRun() : endRun();
}使用您自己的按钮提供视频("观看视频以继续前进")。人们选择奖励视频,所以 Lia 不会'让他们保持节奏。
#在您的服务器上
app.post("/api/second-chance", async (req, res) => {
const playerId = await playerFrom(req.body.session);
if (!playerId) return res.status(401).end();
let ad;
try {
ad = await lia("POST", "/ads/verify", { adId: req.body.adId });
} catch {
return res.json({ ok: false });
}
if (!ad.watched || ad.playerId !== playerId) return res.json({ ok: false });
// Once per video: a second request with the same adId gets nothing more.
const first = await db.useOnce(`ad:${ad.adId}`);
if (!first) return res.json({ ok: false });
await db.grantSecondChance(playerId);
res.json({ ok: true });
});#为视频支付$LIA
如果奖励是$LIA来自你的 池,奖励密钥执行 "一次" 给你:
await lia("POST", "/rewards", { playerId, amount: 0.5, key: `ad:${ad.adId}`, reason: "Watched a video" });#在回合之间
在回合之间,使用插页而不是奖励视频:它们'是短暂且可关闭的,没有人必须选择它们。它们不需要服务器,也不会提供任何东西。在每个自然断点处询问并让 Lia 按照自己的节奏进行(默认情况下最多每 90 秒一次,每 2nd 轮一次):
async function nextRound() {
await Lia.showInterstitialAd(); // often answers "too_soon" at once, and that's fine
startRound();
}为玩家要求的内容保留奖励视频,放在一个写着他们得到什么的按钮后面。
奖励插屏广告位于两者之间:Lia 提供观看和跳过选项,观看完的广告有一个 adId 像奖励视频一样检查。
#需要知道的
/ads/verify说watched: true对于显示过的插页广告,也一样。只有奖励adId的页面从奖励格式中获得watched: true.- 如果视频因手机问题中途停止,Lia 会将其视为已观看,以免因损坏的广告而失去奖励。
- 暂停游戏及其声音
"loading";你的页面也会听到pause和resume围绕视频。
自动翻译。英语是真实来源。 阅读英文