Unity 的高级设置
为 Unity 配置高级设置,包括用户细分段、自定义参数和价格下限,以优化广告投放和 Monetization。
阅读时间12 分钟最后更新于 2 天前
定义细分段
您现在可以轻松定制广告服务方式以适应指定的受众!您需要将用户的详细信息告知我们的服务器,以便 SDK 知道根据用户所属的细分段提供广告服务。
LevelPlay SDK 支持三种方法将数据传输到服务器以概括用户细分段,即:
- 设备属性:LevelPlay SDK 自动收集与用户设备相关的某些标准参数,例如设备模型、设备制造商、app 版本和操作系统。您无需将此数据传递给我们
- 用户属性:SDK 未收集的用户数据(例如年龄、性别或创建日期)必须通过 API 进行中继。(请参阅受支持的细分段属性的完整列表以及下一部分中的描述)。按照说明向我们发送这些详细信息,以便我们的 SDK 可以将相关广告设置应用于您在 LevelPlay 平台上定义的细分段
- 自定义细分段:您可以创建自定义细分段,而无需将用户详细信息传递给我们的服务器,并可为该用户细分段定制广告设置
通道用户属性
在 LevelPlay 平台上定义细分段后,您需要将用户的详细信息告知我们的服务器。
定义要发送到服务器的属性(这些属性是细分段底部的基础)。您可以通过以下方法之一传输此信息:
-
如果知道用户属于哪个细分段,请创建一个新细分段并设置其名称:var segment = new LevelPlaySegment();segment.SegmentName = "nameOfSegment";
-
否则,向我们发送用户详细信息。LevelPlay 提供了一范围标准用户属性,您可以将其设置为将用户属性 API 中的细分段。向下滚动以查找受支持的用户细分段属性的表。var segment = new LevelPlaySegment();segment.Level = 5;segment.UserCreationDate = 1758100075134;segment.IapTotal = 100;segment.IsPaying = 1;您还可以为每个细分段设置最多 5 个自定义用户属性:var key = "key1";var val = "value1";var segment = new LevelPlaySegment();segment.SetCustom(key, val);最后,调用以下函数,将新创建的细分段传递给它:LevelPlay.SetSegment(segment);
支持的用户细分段属性
细分段属性 | Type(类型) | 限制 | 描述 |
|---|---|---|---|
| SegmentName | 字符串 | 最多 32 个字母数字 | LevelPlay 帐户中细分段的给定名称 |
| IsPaying | Int | 0 或 1 | 1 如果用户在 app 内购买上花费了任何资金 0 如果用户在 app 内购买上没有花费任何资金 |
| IapTotal | 双倍 | 1-999999.99 | 用户在 app 内购买方面花费的总金额 |
| UserCreationDate | 长 | 不能小于 0 | 用户安装 app 的日期,例如 DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() |
| 自定义参数 | key=string、value=string | LevelPlay 最多支持 5 个自定义参数,字母数字最多 32 个字母 | 要发送到我们服务器的任何其他数据 |
奖励服务器到服务器回调的自定义参数
LevelPlay 基于奖励的广告单位支持服务器端事件,以通知您在广告成功完成事件后必须授予用户的奖励。您可以在此处了解更多信息。
除了服务器参数之外,还可以通过客户端共享运行时自定义参数。要实现此目的,只需使用 setMetadata API 将自定义参数通道到 LevelPlay_Rewarded_Server_Params。在整个会话中,可以多次更新自定义参数以覆盖以前的值。
要重置自定义参数,请将 LevelPlay_Rewarded_Server_Params 设置为空数组。
实现代码示例
LevelPlay.SetMetaData("LevelPlay_Rewarded_Server_Params", new [] { "key1=value1", "key2=value2" });
然后,您将收到相应的回调,如下所示:
http://www.mydomain.com/rewardsCallback?appUserId=[USER_ID]&rewards=[REWARDS]&eventId=[事件_ID]&itemName=[ITEM_NAME]&custom_key1=value1&custom_key2=value2
暂停游戏
API SetPauseGame 作为 LevelPlay SDK 8.5.0 版的一部分引入 LevelPlay 类,仅适用于 iOS 应用程序。
将 PauseGame 状态设置为“true”时,所有 Unity 3D 游戏活动都将暂停(广告回调除外)。广告关闭后,游戏活动将自动恢复。
您应该在会话中调用一次 SetPauseGame API,在初始化 LevelPlay SDK 之前或之后,因为它会影响会话中的所有广告服务(多个 AdUnit API 的奖励视频和插页广告服务)。
LevelPlay.SetPauseGame(true);
您可以通过调用值为 false 的 SetPauseGame 来停用此会话中的功能:
LevelPlay.SetPauseGame(false);
对于旧版 LevelPlay SDK(从 7.2.4 到 8.4.0),请使用以下 API:
// Pause all game activities except ad callbacks. The game activity will be resumed automatically when the ad is closedLevelPlay.SetPauseGame(true);// Deactivate the functionality in this sessionLevelPlay.SetPauseGame(false);
价格地面配置
地面配置 API 允许您为指定的广告单元设置价格地面。通过为每个用户设置价格地面,可以提高定向投放效率、减少延迟并优化广告效果。
在创建广告对象时,必须分配价格地面,并应用于该对象的所有后续加载。
属性 | Type(类型) | 描述 |
|---|---|---|
| 投标地面 | 双精度 | 定义应用于传统实例和出价者的最小 eCPM 的价格(美元)。 |
插页式广告示例
// Define a price floor configurationvar adConfig = new LevelPlayInterstitialAd.Config.Builder() .SetBidFloor(1.23) // 以美元设置价格地面 .Build()// Apply the configuration to an interstitial ad unitvar interstitialAd = new LevelPlayInterstitialAd("adUnitId", adConfig);
此处提供了完整的插补实现。
奖励广告服务示例
// Define a price floor configurationvar adConfig = new LevelPlayRewardedAd.Config.Builder() .SetBidFloor(1.23) // 以美元设置价格地面 .Build()// Apply the configuration to a rewarded ad unitvar rewardedAd = new LevelPlayRewardedAd("adUnitId", adConfig);
此处提供完整的奖励广告服务。
横幅广告服务示例
// Define a price floor configurationvar adConfig = new LevelPlayBannerAd.Config.Builder() .SetBidFloor(1.23) // 以美元设置价格地面 .Build();// Apply the configuration to a banner ad unitvar bannerAd = new LevelPlayBannerAd("adUnitId", adConfig);
此处提供了完整的横幅广告服务。
LevelPlay SDK 报错代码
LevelPlay 提供报错机制,用于解释 SDK 集成中的任何失败。当出现问题或集成的一个方面未正确完成时,您将收到这些错误。
LevelPlay 报错对象包含报错代码和消息。以下是所有可能的错误及其基于其函数的消息:
错误代码 | 广告单元 | 描述 |
|---|---|---|
| 508 | 不适用 |
|
| 509 | 插页式、奖励视频 | 显示失败:无广告服务展示 |
| 510 | 插页式、奖励视频、横幅 | 加载失败:服务器响应失败 |
| 520 | 插页式、奖励视频 | 显示失败:无互联网连接;已启用 ShouldTrackNetworkState
显示失败:无互联网连接 |
| 524 | 插页式、奖励视频 | 显示失败:放置/位置 %@ 已达到每个节奏定义的限制
显示失败:放置/位置 %@ 已达到其上限 |
| 526 | 插页式、奖励视频 | 显示失败:广告单元已达到每个会话的每日上限 |
| 604 | 横幅 | 无法加载,因为放置/位置已覆盖 |
| 605 | 横幅 | 加载横幅时出现意外异常 |
| 606 | 横幅 | 第一次加载时不在所有网络上填充横幅 |
| 1007 | 插页式、奖励视频 | Auction Fail:拍卖请求未包含所有必需信息 |
| 1022 | 奖励视频 | 显示失败:无法显示另一个 RV 时显示另一个 RV |
| 1023 | 奖励视频 | 显示失败:在没有可用的广告服务可供显示时显示调用的 RV |
| 1035 | Interstitial | 空瀑布 |
| 1036 | 间隙 | 显示失败:显示另一个间隙时无法显示间隙 |
| 1037 | 间隙 | 加载失败:显示另一个间隙时无法加载另一个间隙 |
| 1039 | 间隙 | 调用 show interstitial | 时发生异常