广告
您可以通过在游戏中放置广告块来获得收入。为此,您需要:
关于放置广告的提示和建议
- 合理放置广告,让用户注意到这是一个广告单元,而不是游戏的一部分。
- 建议在用户操作后或通过计时器显示广告(如果通过关卡需要超过 5 分钟)。详见广告位置。
- 调用奖励视频的频率不受限制。
- 调用插屏广告单元的频率由 Yandex Games 平台控制。
注意
当用户随机点击广告单元时,Yandex 广告网络会将其视为广告欺诈的迹象,从而减少游戏的广告收入。
为避免发生这种情况,请不要在用户积极与游戏互动时调用广告显示,因为这时用户可能会无意中点击广告块。
错误调用的示例:
setInterval(() => ysdk.adv.showFullscreenAdv(), 180000)
配置广告调用
插屏广告
插屏广告是指完全覆盖应用背景并在用户请求某些信息(例如进入下一游戏关卡)与获得该信息之间显示的广告单元。
要调用广告,请使用 ysdk.adv.showFullscreenAdv() 方法。
方法签名:
1function showFullscreenAdv(callbacks?: {
2 onOpen?: () => void;
3 onClose?: (wasShown: boolean) => void;
4 onError?: (error: object) => void;
5}) => void {}
在 callbacks 参数中可以传递可选的回调函数:
onOpen— 在成功打开广告时调用。onClose— 在广告关闭、发生错误或广告因调用过于频繁而未能打开时调用。与wasShown参数(boolean类型)一起使用,它的值表示是否显示广告。onError— 在发生错误时调用。错误对象会传递给回调函数。
示例
1const ysdk = await YaGames.init();
2
3ysdk.adv.showFullscreenAdv({
4 callbacks: {
5 onOpen: () => console.log('广告已打开。'),
6 onClose: (wasShown) => console.log(wasShown ? '已显示并关闭。' : '未显示。'),
7 onError: (error) => console.log('调用错误。'),
8 }
9})
奖励视频 (rewarded video)
奖励视频是用于游戏货币化的视频广告块,用户可通过观看获得奖励,例如游戏内货币。
要调用广告,请使用 ysdk.adv.showRewardedVideo() 方法。
方法签名:
1function showRewardedVideo(callbacks?: {
2 onOpen?: () => void;
3 onRewarded?: () => void;
4 onClose?: (wasShown: boolean) => void;
5 onError?: (error: object) => void;
6}) => void {}
在 callbacks 参数中可以传递可选的回调函数:
onOpen— 在屏幕上显示视频广告时调用。onRewarded— 在计算视频广告展示次数时调用。在此函数中指定用户观看后将获得的奖励。onClose— 在视频广告关闭时调用。onError— 在发生错误时调用。错误对象会传递给回调函数。
示例
1const ysdk = await YaGames.init();
2
3ysdk.adv.showRewardedVideo({
4 callbacks: {
5 onOpen: () => console.log('广告已打开。'),
6 [onRewarded](onRewarded): () => console.log('用户已获得奖励。'),
7 onClose: (wasShown) => console.log(wasShown ? '已显示并关闭。' : '未显示。'),
8 onError: (error) => console.log('调用错误。'),
9 }
10})
启用粘性横幅显示
粘性横幅是在游戏过程中显示的广告块。要启用粘性横幅显示:
- 打开开发者控制台并转到Advertising选项卡。
- 在Sticky banners块中配置横幅显示:
- 对于移动设备:
- Sticky banner in portrait orientation — 选择 At the bottom 或 At the top。
- Sticky banner in landscape orientation — 选择 At the bottom、At the top 或 On the right。
- 对于计算机 — 启用Sticky banner on the desktop选项。横幅将在右侧显示。
- 对于移动设备:
管理粘性横幅显示
默认情况下,粘性横幅会在游戏启动时出现,并在整个会话期间显示。要使用 SDK 方法管理粘性横幅显示,请启用Use the API to display a sticky-banner选项。
ysdk.adv.getBannerAdvStatus()
获取粘性横幅的当前状态。
方法签名:
1function getBannerAdvStatus(): Promise<{
2 stickyAdvIsShowing: boolean;
3 reason?: 'ADV_IS_NOT_CONNECTED' | 'UNKNOWN';
4}> {}
返回粘性横幅显示状态 stickyAdvIsShowing。如果横幅未显示,还会返回可选字段 reason,指示横幅缺失的原因:
ADV_IS_NOT_CONNECTED— 横幅未连接。UNKNOWN— Yandex 端显示广告时出错。
ysdk.adv.showBannerAdv()
显示粘性横幅。
方法签名:
1function showBannerAdv(): Promise<{
2 stickyAdvIsShowing: boolean;
3 reason?: 'ADV_IS_NOT_CONNECTED' | 'UNKNOWN';
4}>
返回值与 ysdk.adv.getBannerAdvStatus() 相同。
ysdk.adv.hideBannerAdv()
隐藏粘性横幅。
方法签名:
1function hideBannerAdv(): Promise<{
2 stickyAdvIsShowing: boolean;
3}>
返回粘性横幅显示状态 stickyAdvIsShowing。
示例
1const ysdk = await YaGames.init();
2
3const { stickyAdvIsShowing , reason } = await ysdk.adv.getBannerAdvStatus();
4
5if (stickyAdvIsShowing) {
6 // 显示广告。
7} else if (reason) {
8 // 不显示广告。
9 console.log(reason);
10} else {
11 ysdk.adv.showBannerAdv();
12}
备注
技术支持团队将协助您将已完成的游戏发布到 Yandex 游戏平台。关于开发和测试方面的具体问题,其他开发人员将在Discord 频道中进行回答。
如果您遇到 Yandex Games SDK 方面的问题或有其他问题想要咨询,请联系支持部门:
callbacks:可选的回调函数。将为每个广告单元单独配置。
onOpen:在屏幕上显示视频广告的时候调用。
onClose:在广告关闭、发生错误或广告因调用过于频繁而未能打开的时候调用。与 wasShown 参数(boolean 类型)一起使用,它的值表示是否显示广告。
onClose:在用户关闭视频广告的时候调用。
onError:在发生错误的时候调用。错误对象会传递给回调函数。