AI Search

发布者传递的信号

本指南介绍如何配置 InMobi SDK,以便传递用于广告竞价定价或第一方数据的自定义信号。此外,您还可以随每个广告请求向 InMobi SDK 发送自定义用户级或请求级信号。这有助于提高广告相关性,从而提升填充率和有效每千次展示费用 (eCPM)。

集成

先决条件

从 InMobi SDK 10.7.8 版本开始支持。

对于 Unity 集成——无论是直接集成到 Unity 中,还是通过中介平台的 Unity 集成,您都需要从 下载 SDK下载 Unity 插件 并将其添加到您的项目中。

请按照以下说明操作:

  1. 请确保 InMobi SDK 已初始化。通常情况下,InMobi SDK 会由中介 SDK 自动初始化,因此此步骤为可选步骤。
  2. 创建一个字典,其中键为字符串,值为各种数据类型。具体的键名和支持的数据类型请参见信号列表
  3. 通过传递字典并调用相应方法,将值传递给 InMobi SDK putPublisherSignals。此方法必须在 InMobi SDK 成功初始化后调用。
  4. 请确保在每次广告请求之前调用此函数并更新值。
  5. 你可以调用getPublisherSignals方法来检查已经设置了哪些信号。
  6. resetPublisherSignals如果要清除用户的所有信号数据, 可以调用该方法。

    笔记

    有些信号,例如底价、曝光深度、用户点击率等,在每种格式中都有不同的值,而付费用户和留存率等信号在各种格式中则具有相同的值。 

示例实现

Android (Java)

// Ensure InMobi SDK is initialized

// Create a map with required values
Map<String, Object> publisherSignals = new HashMap<>();
publisherSignals.put("iap", true); // User has made IAP
publisherSignals.put("ua_type", "paid"); // User is acquired via paid medium
publisherSignals.put("iap_type", "minnow"); // User has made low purchases
publisherSignals.put("iaa_type", "whale"); // User has seen high number of ads
publisherSignals.put("s_dep_rew", 4); // User has seen 4 rewarded ads in current session
publisherSignals.put("i_dep_rew", 10); // User has seen 10 rewarded ads in lifetime
publisherSignals.put("ctr_rew", 9.25); // Historical CTR for user is 9.25%
publisherSignals.put("abp_5_rew", 0.01720); // Average winning bid price for last 5 rewarded auctions was $0.01720, eCPM is $17.2

 // Set the extras on InMobiSdk
InMobiSdk.PublisherSignals.INSTANCE.putPublisherSignals(publisherSignals);

Android (Kotlin)

// ensure InMobi SDK is initialised
// create map with required values
val publisherSignals = mapOf(
    "iap" to true, // User has made IAP
    "ua_type" to "paid", // User is acquired via paid medium
    "iap_type" to "minnow", //User has made low purchases
    "iaa_type" to "whale", //User has seen high number of ads
    "s_dep_rew" to 4, //User has seen 4 rewarded ads in current session
    "i_dep_rew" to 10, //User has seen 10 rewarded ads in lifetime
    "ctr_rew" to 9.25, //Historical CTR for user is 9.25%
    "abp_5_rew" to 0.01720 //average winning bid price for last 5 rewarded auctions was $0.01720, eCPM is $17.2
)
// Set the extras on InMobiSdk
InMobiSdk.PublisherSignals.putPublisherSignals(publisherSignals)

iOS(Swift)

// ensure InMobi SDK is initialised

// create map with required values
let publisherSignals: [String: Any] = [
    "iap": true, // User has made IAP
    "ua_type": "paid", // User is acquired via paid medium
    "iap_type": "minnow", // User has made low purchases
    "iaa_type": "whale", // User has seen high number of ads
    "s_dep_rew": 4, // User has seen 4 rewarded ads in current session
    "i_dep_rew": 10, // User has seen 10 rewarded ads in lifetime
    "ctr_rew": 9.25, // Historical CTR for user is 9.25%
    "abp_5_rew": 0.01720 // Average winning bid price for last 5 rewarded auctions was $0.01720, eCPM is $17.2
]

// Set the extras on InMobiSdk
IMSdk.putPublisherSignals(publisherSignals)

Unity

// create a dictionary with all required signals and corresponding values
Dictionary<string, object> publisherSignals = new Dictionary<string, object> { };

publisherSignals.Add("iap", "true"); // User has made IAP
publisherSignals.Add("ua_type", "paid"); // User is acquired via paid medium
publisherSignals.Add("iap_type", "minnow"); // User has made low purchases
publisherSignals.Add("iaa_type", "whale"); // User has seen high number of ads
publisherSignals.Add("s_dep_rew", 4); // User has seen 4 rewarded ads in current session
publisherSignals.Add("i_dep_rew", 10); // User has seen 10 rewarded ads in lifetime
publisherSignals.Add("ctr_rew", 9.25); // Historical CTR for user is 9.25%
publisherSignals.Add("abp_5_rew", 0.01720); // Average winning bid price for last 5 rewarded auctions was $0.01720, eCPM is $17.2

// example for passing signals in rewarded requests
InMobiplugin.putPublisherSignals(publisherSignals); 

传递竞价信号

先决条件

  • InMobi SDK 11.0.0 或更高版本
  • AppLovin MAX 集成

为了帮助优化变现并实现更精准的广告竞价定价,InMobi SDK 允许发布商在每次广告请求中传递与出价相关的信号。这些信号以编程方式提供精细的出价信息,从而提高收益。

注意:目前只有 AppLovin MAX 支持竞价信号。

工作原理

您可以在 SDK 初始化后使用该方法发送竞价信号putPublisherSignals。竞价信号的典型键值对如下:

钥匙 描述 价值
dir_r 竞价 来自 MaxAd 对象的收入(以双精度浮点数形式表示,而非 eCPM)
dir_nn 需求网络名称 来自 MaxAd 对象中的 NetworkName(例如,“AppLovin MAX”、“InMobi”)
dir_type 广告格式 广告格式标签(大写,例如"INTER""REWARDED"

或者,您可以传递整个MaxAd对象。InMobi SDK 将自动提取受支持的出价信号值。

实现方法

要正式启用此功能,必须提供平均清算价格。SDK
会在您提供所需输入后自动计算此平均值。

Android 和 iOS

您必须在回调函数putPublisherSignals内部调用onAdDisplayed,并按广告格式分组。

您可以通过以下任何一种方式来实现:

  • 单独传递所需值

这种方法适用于喜欢更精细控制的开发者。您可以显式提取并传递诸如收入、网络名称和广告格式等各个值。

Android (Java)

@Override
public void onAdDisplayed(MaxAd maxAd) {
    Map<String, Object> signals = new HashMap<>();
    signals.put("dir_r", maxAd.getRevenue());
    signals.put("dir_nn", maxAd.getNetworkName());
    signals.put("dir_type", maxAd.getFormat().getLabel());
    InMobiSdk.PublisherSignals.INSTANCE.putPublisherSignals(signals);
}

Android (Kotlin)

override fun onAdDisplayed(maxAd: MaxAd) {
    InMobiSdk.PublisherSignals.putPublisherSignals(
        mapOf(
            "dir_r" to maxAd.revenue,
            "dir_nn" to maxAd.networkName,
            "dir_type" to maxAd.format.label
        )
    )
}

iOS (Swift)

func onAdDisplayed(_ maxAd: MAAd) {
    let signals: [String: Any] = [
        "dir_r": maxAd.revenue,
        "dir_nn": maxAd.networkName,
        "dir_type": maxAd.format.label
    ]
    IMSdk.putPublisherSignals(signals)
}
  • 传递maxAd对象

在这种方法中,您可以将完整的 maxAd 对象直接传递给 SDK。SDK 会在内部提取所有必需的值,从而简化您的集成。

Android (Java)

@Override
public void onAdDisplayed(MaxAd maxAd) {
    Map<String, Object> signals = new HashMap<>();
    signals.put("obj_max", maxAd);
    InMobiSdk.PublisherSignals.INSTANCE.putPublisherSignals(signals);
}

Android (Kotlin)

override fun onAdDisplayed(maxAd: MaxAd) {
    InMobiSdk.PublisherSignals.putPublisherSignals(
        mapOf("obj_max" to maxAd)
    )
}

iOS (Swift)

func onAdDisplayed(_ maxAd: MAAd) {
    let signals: [String: Any] = [
        "obj_max": maxAd
    ]
    IMSdk.putPublisherSignals(signals)
}

统一

在 Unity 中,您必须从广告事件中提取各个属性,并将它们添加到字典中,然后才能将其传递给 SDK。Unity 不支持传递完整的广告信息对象。

private void OnAdDisplayed(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
    var signals = new Dictionary<string, object>();
    signals.Add("dir_r", adInfo.Revenue);
    signals.Add("dir_nn", adInfo.NetworkName);
    signals.Add("dir_type", adInfo.AdFormat.ToUpper());
    this.inmobiPlugin.PutPublisherSignals(signals);
}

信号列表

使用后缀“ban”、“int”、“rew”、“nat”分别表示横幅广告、插页式广告、激励广告和原生广告。

信号 键(区分大小写) 支持的数据类型 允许值
印迹深度

i_dep_(ad_type)

例如 i_dep_ban、i_dep_int、i_dep_rew 等。

整数 用户一生中看到的广告总数。
付费用户 应用内购买 布尔值 如果用户已进行应用内购买,则返回“true”,否则返回“false”。
最近 n 次拍卖的平均清算价格

abp_10_(ad_type)
abp_5_(ad_type)
abp_(ad_type)

例如 abp_10_ban、abp_10_int、abp_10_rew、abp_rew、abp_5_ban、abp_5_int、abp_5_rew

双倍的 以美元计价,以及出价(非每千次展示成本)。
收购来源 ua_type 细绳 “付费”→ 如果用户是通过付费广告获得的,
“自然”→ 如果用户是通过自然方式获得的
会话深度

s_dep_(ad_type)

例如 s_dep_ban、s_dep_int 等

整数 “10”、“15”、“20”或任何基于用户在当前会话中看到的广告数量的整数值。 
用户平均点击率

ctr_(ad_type)

例如 ctr_ban、ctr_int 等。

双倍的 根据用户的点击率,可以是“0.5”、“5.5”、“10”或介于 0 到 100 之间的任何双精度值。 
购买用户群 iap_type 细绳 仅当 iapis 设置为 true 且基于应用内购买价值时适用。

'小鱼'(&lt;$5), '海豚'(&gt;$5 & &lt;=$10), '鲨鱼'(&gt;$10 & &lt;=$50), '鲸鱼'(&gt;$50)

广告用户群体 iaa_type 细绳

根据用户看到的全屏广告或激励广告的数量。

'minnow'(&lt;5 条广告),'dolphin'(&gt;5 且 &lt;=10),'shark'(&gt;10 且 &lt;=25),'whale'(&gt;25)

笔记

  • 支持的数据类型仅适用于使用putPublisherSignals方法传递信号的情况。该setExtras方法要求所有值都以字符串形式传递。
  • “最近 5 次拍卖的平均清算价格”信号是强制性的,并且仅适用于竞价(不适用于瀑布式拍卖)。
  • 我们建议启用所有与您的受众和应用类型相符的相关信号,以最大限度地发挥 InMobi 的发布商传递信号的影响。

附加信号

信号 描述 键(区分大小写) 值类型

内容标题

内容标题

c_title

细绳

内容系列

内容系列

c系列

细绳

内容 URL

内容网址,供买方进行上下文关联或审核

卷曲

细绳

内容类别

以逗号分隔的 IAB 内容类别列表,用于描述内容。

c_cat

细绳

内容类别分类

当前使用的分类法。请参阅 列表:类别分类法

c_cattax

整数,默认值为 1

内容背景

内容类型(游戏、视频、文本等)。请参阅“内容上下文”列表。

c_context

细绳

内容分级(QAG 媒体分级)

根据IQG指南进行媒体评级。请参阅列表:媒体评级。

c_rating

整数

内容关键词

以逗号分隔的内容关键词列表

c_keywords

细绳

内容语言

内容语言采用 ISO-639-1-alpha-2。

细绳

欲了解更多信息,请阅读我们的博客《发出信号走向成功》第 1 部分第 2 部分。 

其他人口统计信号 

如果可用,您还可以将用户的年龄和性别信息传递给 InMobi SDK。这些信息有助于精准定位广告系列,从而提高广告效果。请确保在调用以下函数之前已初始化 InMobi SDK。

Android (Java)

InMobiSdk.setGender(InMobiSdk.Gender.MALE); // or InMobiSdk.Gender.FEMALE 
InMobiSdk.setAge(age);
InMobiSdk.setAgeGroup(InMobiSdk.AgeGroup.BELOW_18);    // other enums: BETWEEN_18_AND_20, BETWEEN_21_AND_24, BETWEEN_25_AND_34    // BETWEEN_35_AND_5, ABOVE_55

Android (Kotlin)

InMobiSdk.setGender(InMobiSdk.Gender.MALE)  // or InMobiSdk.Gender.FEMALE 
InMobiSdk.setAge(age) 
InMobiSdk.setAgeGroup(InMobiSdk.AgeGroup.BELOW_18)

iOS(Swift)

IMSdk.setGender(.female)
IMSdk.setAge(28)
IMSdk.setAgeGroup(.between25And29)

本页内容

最后更新于 : 10 Sep, 2026