广告
您可以通过在游戏中放置广告块来获得收入。为此:
广告放置的特点和建议
- 合理放置广告,让用户注意到这是一个广告单元,而不是游戏的一部分。
- 建议在用户操作后或通过计时器显示广告(如果通过关卡需要超过 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 参数中可以传递可选的回调函数:
|
回调函数 |
描述 |
|
|
在成功打开广告时调用。 |
|
|
在广告关闭、发生错误或广告因调用过于频繁而未能打开时调用。与 |
|
|
在发生错误时调用。错误对象会传递给回调函数。 |
示例
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})
视频广告(奖励视频)
用户可通过观看获得奖励(例如游戏内货币)的视频广告块。
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 参数中可以传递可选的回调函数:
|
回调函数 |
描述 |
|
|
在屏幕上显示视频广告时调用。 |
|
|
在计算视频广告展示次数时调用。在此函数中指定用户观看后将获得的奖励。 |
|
|
在视频广告关闭时调用。 |
|
|
在发生错误时调用。错误对象会传递给回调函数。 |
示例
1const ysdk = await YaGames.init();
2
3ysdk.adv.showRewardedVideo({
4 callbacks: {
5 onOpen: () => console.log('广告已打开。'),
6 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 方法管理粘性横幅显示,请在开发人员控制台的 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 游戏平台。关于开发和测试方面的具体问题,其他开发人员将在Discord 频道中进行回答。
如果您遇到 Yandex Games SDK 方面的问题或有其他问题想要咨询,请联系支持部门:
callbacks:可选的回调函数。将为每个广告单元单独配置。
onOpen:在屏幕上显示视频广告的时候调用。
onRewarded:在计算视频广告展示次数时调用此函数。使用此函数可指定观看视频广告的奖励。
onClose:在广告关闭、发生错误或广告因调用过于频繁而未能打开的时候调用。与 wasShown 参数(boolean 类型)一起使用,它的值表示是否显示广告。
onClose:在用户关闭视频广告的时候调用。
onError:在发生错误的时候调用。错误对象会传递给回调函数。