管理广告
您可以通过在游戏中放置广告单元来获得收入。为此:
- 请研究广告投放的特点和建议。
- 使用 SDK 配置广告调用。
- 在开发人员控制台中启用变现。
配置广告调用
插屏广告
带广告的区块,完全覆盖应用,并在用户请求某些信息(例如,进入游戏下一关时)与获得该信息之间展示。
要调用广告,请使用 ysdk.adv.show_fullscreen_adv() 方法。
ysdk.adv.show_fullscreen_adv(callbacks: table)
callbacks: table —— 可选的回调函数。为每个广告单元单独配置。
-
on_close—— 在广告关闭、发生错误或广告因调用过于频繁而未能打开时调用。与wasShown参数(boolean类型)一起使用,它的值表示是否显示了广告。 -
on_open—— 在成功打开广告的时候调用。 -
on_error—— 在发生错误的时候调用。错误对象会传递给回调函数。 -
on_offline—— 在网络连接丢失(进入离线模式)时被调用。
示例
1ysdk.adv.show_fullscreen_adv({
2 on_close = function (self, was_shown)
3 -- 关闭后的操作。
4 end,
5 on_error = function (self, error)
6 -- 发生错误时的操作。
7 end
8})
奖励视频
带视频广告的区块,用户观看后可获得奖励,例如游戏内货币。
要调用广告,请使用 ysdk.adv.show_rewarded_video() 方法。
ysdk.adv.show_rewarded_video(callbacks: table)
callbacks: table —— 可选的回调函数。为每个广告单元单独配置。
-
on_close—— 在用户关闭视频广告的时候调用。 -
on_open—— 在屏幕上显示视频广告的时候调用。 -
on_error—— 在发生错误的时候调用。错误对象会传递给回调函数。 -
on_rewarded—— 在计算视频广告展示次数的时候调用。请在此函数中指定用户观看后将获得的奖励。
示例
1ysdk.adv.show_rewarded_video({
2 on_open = function (self)
3 print("Video ad open")
4 end,
5 on_close = function (self)
6 print("Rewarded!")
7 end,
8 on_rewarded = function (self)
9 print("Video ad closed.")
10 end,
11 on_error = function (self, error)
12 print("Error while open video ad: " .. error)
13 end
14})
粘性横幅
游戏过程中展示的广告块。
关于在开发人员控制台中启用粘性横幅,请参阅主要文章。
默认情况下,粘性横幅在游戏启动时出现,并在整个会话期间显示。要配置横幅的显示时机:
- 在 Sticky banners 块中启用 Use the API to display a sticky-banner 选项。
- 使用以下方法设置横幅显示:
ysdk.adv.get_banner_adv_status()—— 显示横幅状态。ysdk.adv.show_banner_adv()—— 调用横幅。ysdk.adv.hide_banner_adv()—— 移除横幅。
方法 ysdk.adv.get_banner_adv_status() 返回 sticky_adv_is_showing: boolean 值。如果 sticky_adv_is_showing = false,方法
ysdk.adv.get_banner_adv_status() 可能返回可选字段 reason,其中包含可能的原因:
ADV_IS_NOT_CONNECTED—— 横幅未连接。UNKNOWN—— 在 Yandex 端显示广告时出错。
示例
1ysdk.adv.get_banner_adv_status(
2 function (self, sticky_adv_is_showing, reason)
3 if sticky_adv_is_showing then
4 -- 显示广告。
5 elseif reason then
6 -- 不显示广告。
7 print(reason)
8 else
9 ysdk.adv.show_banner_adv()
10 end
11 end
12)