广告
您可以通过在游戏中放置广告块来获得收入。为此:
广告放置的特点和建议
- 合理放置广告,让用户注意到这是一个广告单元,而不是游戏的一部分。
- 建议在用户操作后或按计时器显示广告,如果关卡通关时间超过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 参数中可以传递可选的回调函数:
|
回调函数 |
描述 |
|
|
在成功打开广告时调用。 |
|
|
在广告关闭、发生错误或广告因调用过于频繁而未能打开时调用。与 |
|
|
在发生错误时调用。错误对象会传递给 callback 函数。 |
示例
1const ysdk = await YaGames.init();
2
3ysdk.adv.showFullscreenAdv({
4 callbacks: {
5 onOpen: () => console.log('Ad opened.'),
6 onClose: (wasShown) => console.log(wasShown ? 'Shown and closed.' : 'Not shown.'),
7 onError: (error) => console.log('Call error.')
8 }
9});
视频广告(奖励视频)
带视频广告的区块,用户观看后可获得奖励,例如游戏内货币。
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 参数中可以传递可选的回调函数:
|
回调函数 |
描述 |
|
|
在屏幕上显示视频广告时调用。 |
|
|
在视频广告观看被计入时调用。请在此函数中指定用户观看后将获得的奖励。 |
|
|
在视频广告关闭时调用。 |
|
|
在发生错误时调用。错误对象会传递给 callback 函数。 |
示例
1const ysdk = await YaGames.init();
2
3ysdk.adv.showRewardedVideo({
4 callbacks: {
5 onOpen: () => console.log('Ad opened.'),
6 onRewarded: () => console.log('User received reward.'),
7 onClose: (wasShown) => console.log(wasShown ? 'Shown and closed.' : 'Not shown.'),
8 onError: (error) => console.log('Call error.')
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 方法管理粘性横幅显示,请在开发人员控制台的 Advertising 选项卡中启用 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,用于指示横幅缺失的原因:
|
原因 |
描述 |
|
|
横幅未连接。 |
|
|
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 Games 平台。 关于开发和测试的具体问题,其他开发者会在Discord 社区中给出针对性解答。
如果在使用 Yandex Games SDK 时遇到问题或有疑问,请联系技术支持:
callbacks——可选的 callback 函数。为每个广告块单独配置。
onOpen——在屏幕上显示视频广告的时候调用。
onRewarded——在计算视频广告展示次数时调用此函数。请在此函数中指定用户观看后将获得的奖励。
onClose——在广告关闭、发生错误或广告因调用过于频繁而未能打开时调用。与参数 wasShown(类型:boolean)一起使用,根据其值可以判断广告是否已显示。
onClose——在用户关闭视频广告的时候调用。
onError——在发生错误的时候调用。错误对象会传递给 callback 函数。