广告

您可以通过在游戏中放置广告块来获得收入。为此:

  1. 查看广告放置的特点和建议
  2. 使用 SDK 配置广告调用
  3. 在开发人员控制台中启用变现

广告放置的特点和建议

  • 合理放置广告,让用户注意到这是一个广告单元,而不是游戏的一部分。
  • 建议在用户操作后或通过计时器显示广告(如果通过关卡需要超过 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})

视频广告(奖励视频)

用户可通过观看获得奖励(例如游戏内货币)的视频广告块。

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: () => console.log('用户已获得奖励。'),
 7        onClose: (wasShown) => console.log(wasShown ? '已显示并关闭。' : '未显示。'),
 8        onError: (error) => console.log('调用错误。'),
 9    }
10})

粘性横幅

在游戏过程中显示的广告块。

  1. 打开开发人员控制台并转到 Advertising 选项卡。
  2. Sticky banners 块中配置横幅显示:
    • 对于移动设备:
      • Sticky banner in portrait orientation —— 选择 At the bottomAt the top
      • Sticky banner in landscape orientation —— 选择 At the bottomAt the topOn 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,指示横幅缺失的原因:

原因

描述

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:在屏幕上显示视频广告的时候调用。

onRewarded:在计算视频广告展示次数时调用此函数。使用此函数可指定观看视频广告的奖励。

onClose:在广告关闭、发生错误或广告因调用过于频繁而未能打开的时候调用。与 wasShown 参数(boolean 类型)一起使用,它的值表示是否显示广告。

onClose:在用户关闭视频广告的时候调用。

onError:在发生错误的时候调用。错误对象会传递给回调函数。

上一篇