注意: 由于应用程序没有统一资源定位符(URL),测试模式是默认激活的。一旦激活,你可以点击链接进入如下图所示仪表板的统一资源定位符(URL)。
你的应用程序已经为赢利做好准备了。
放置 ID是 AdMob广告单元的InMobi专有名词。例如,如果你正尝试通过 InMobi 网络利用横幅广告单元盈利,你需要创建一个“横幅广告”类型的放置ID。
为了能更好地盈利,请参考下表:
AdMob广告单元类型 | InMobi 放置类型 |
横幅 | 横幅 |
插播式 | 插播式 |
奖励插播式 | 奖励插播式 |
原生 | 原生内容 |
创建、验证和激活付款配置文件,使您的收入兑现。InMobi有60天的支付周期。这意味着,指定月份的收入将在60天支付周期末存入。您可以选择通过PayPal或电汇/实时全额结算系统兑现您的收入。
更多付款方式信息点击 这里。
你的账户ID在InMobi 账户中可以使用,如下截图所示。
放置ID在放置部分,如下截图所示。
你可以在AdMob仪表板或InMobi的仪表板上配置奖励。
在 InMobi仪表板上的配置相同,选择 Use third-party ad network settings(使用第三方广告网络设置)。
填写奖励细节的关键值,用户观看完视频后, InMobi SDK 将会兑现。例如,你可以填写下列奖励细节:
Key = Coins, Value = 1000
在 InMobi 仪表板上安装奖励时,要确保奖励的值是整数形式。
当创建原生内容放置类型以支持AdMob仪表板的原生广告单元时,确保在InMobi 仪表板上不要改变关键名称。这是为了确保InMobi集成可以在原生广告格式上运行。
注意:
shouldRequestMultipleImages
标示。getImageOrientation/preferredImageOrientation
标示。InMobi SDK 和AdMob适配器集成起来非常流畅。从 InMobi获取广告,你需要整合 InMobi SDK和适配器。
方法 1: 通过jCenter拖拽最新的SDK
如果你使用Gradle来创建你的安卓应用程序,你可以从jCenter拖拽最新版本的SDK。
这样操作:
将此包含进你顶层的 build.gradle
文件:
allprojects {
repositories {
jcenter()
}
}
添加以下代码行到你应用模块 build.gradle
中的依赖关系元素。
compile 'com.inmobi.monetization:inmobi-ads:6.0.0'
方法2: 将SDK库添加到你的应用项目
此外,你可以在 这里下载InMobi SDK的最新版本,并复制库到你应用模块的libs/目录下。
添加库到你项目的依赖关系,并且添加该代码行到你模块 build.gradle
的依赖关系元素中。
compile fileTree(dir: 'libs', include: ['*.jar'])
要使用InMobi 广告SDK盈利,你必须添加下列依赖关系:
安卓的InMobi SDK 需要 Google Play Services库通过Google Play Advertising ID激活更好的广告定位。另外, SDK还使用 Google Play Services获得位置修正,用户应同意获取位置。
添加Google Play Services客户端库到你的应用:
添加下列代码行到你应用模块的依赖关系元素。
compile 'com.google.android.gms:play-services:8.4.0'
添加下列元素到你的应用清单。
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
/pre>
安卓 InMobi SDK使用常用的Picasso库来加载广告资产。
添加Picasso库到你的应用:
添加下列代码行到Gradle 构建脚本中的应用模块依赖关系元素。
compile 'com.squareup.picasso:picasso:2.5.2'
Note: Failure to include Picasso
dependency in your application gradle scripts will cause interstitial ad requests to fail, thus affecting monetization of your app with the InMobi SDK.
要支持原生股广告格式,你必须添加V4支持库。
这样,添加下列代码行到Gradle构建脚本的应用模块依赖元素中。
compile 'com.android.support:appcompat-v7:24.0.0'
For supporting free scroll of a deck of images or ads, you must use RecyclerView
.
To do so, add the following line to the application module’s dependency element in the Gradle build script.
compile 'com.android.support:recyclerview-v7:24.0.0'
Failure to include RecyclerView
dependency in your application gradle scripts will cause interstitial ad requests to fail, thus affecting monetization of your app with the InMobi SDK.
授权
你的应用清单中必须包含下列强制许可。没有包含这些许可会影响你在InMobi网络利用应用赢利的能力。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
除了以上强制许可外,强烈推荐你考虑 ACCESS_COARSE_LOCATION
或ACCESS_FINE_LOCATION
来激活更佳的广告定位。这并不是强制许可。然而,它能帮助你激活准确的广告定位。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
进一步改进定位,你可以添加 ACCESS_WIFI_STATE
和 CHANGE_WIFI_STATE
许可到清单中。
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
如果你正在请求富媒体广告,可以添加下列许可。
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
应用程序安装属性
Mandatory permission:
需要应用程序安装属性,在清单文件中添加下列代码。
<receiver android:enabled="true" android:exported="true" android:name="com.inmobi.commons.core.utilities.uid.ImIdShareBroadCastReceiver" tools:ignore="ExportedReceiver">
<intent-filter>
<action android:name="com.inmobi.share.id" />
</intent-filter>
</receiver>
硬件加速
硬件加速可以使你播放HTML5 视频广告。如需播放,请添加 hardwareAccelerated:true
元素到application标签。
混淆器配置
混淆器帮助删除未使用的符号,并减少最终应用痕迹。下面的移位指令应添加到你应用的混淆器配置文件中。
-keepattributes SourceFile,LineNumberTable
-keep class com.inmobi.** { *; }
-keep public class com.google.android.gms.**
-dontwarn com.google.android.gms.**
-dontwarn com.squareup.picasso.**
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient{
public *;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info{
public *;
}
# skip the Picasso library classes
-keep class com.squareup.picasso.** {*;}
-dontwarn com.squareup.picasso.**
-dontwarn com.squareup.okhttp.**
# skip Moat classes
-keep class com.moat.** {*;}
-dontwarn com.moat.**
# For old ads classes
-keep public class com.google.ads.**{
public *;
}
# For mediation
-keepattributes *Annotation*
# For Google Play services
-keep public class com.google.android.gms.ads.**{
public *;
}
安卓的SDK 6.0.0是安卓平台的最新版本,与 安卓 N (API level 24)兼容。你可以用应用清单的微小变化在安卓N上盈利。
如果你的应用程序目标是API 24级或更高版本,请声明你应用中的 InMobiAdActivity
元素与之类似
<activity android:configchanges="keyboardHidden|orientation|keyboard|smallestScreenSize|screenSize|screenLayout" android:hardwareaccelerated="true" android:name="com.inmobi.rendering.InMobiAdActivity" android:resizeableactivity="false" android:theme="@android:style/Theme.NoTitleBar" tools:ignore="UnusedAttribute" />
特别需要注意, android:resizeableActivity=”false”
属性和配置该活动的screenLayout
发生了变化。
从 这里下载适配器。添加 InMobi 适配器到你的Android Studio项目中。
代码步骤与之类似,因为他们是为获取和加载广告而进行的常规AdMob集成。使用 AdMob 账户ID初始化AdMob SDK 和“广告单元ID”来请求和获取广告。
从 这里下载示例代码。
AdMob SDK最新的文档和代码示例见 这里。 .
确保AdMob SDK传递广告请求到InMobi进行测试。
执行过以上操作步骤后,你可以测试并传送请求到InMobi SDK申请广告加载。
你可以添加下列代码行到你正在整合广告单元来激活关键SDK日志的活动。
InMobiSdk.setLogLevel(LogLevel.DEBUG);
如果已经激活了 InMobi 门户上的“测试模式”,你也可以利用广告单元和广告请求的诊断标签上的可得反馈。
Recommended: If your app collects location from the user, we recommend passing it up, as impressions with location signal have higher revenue potential. InMobi SDK will automatically pass the location signals if available in the app. If you use location in your app, but would like to disable passing location signals to InMobi, then TURN OFF the “Location Automation” for your property on the InMobi dashboard.
你可以在中介广告请求对象中,调用Admob SDK中 MediationAdRequest
类的 setLocation()
API 来传递位置信息。
InMobi支持下列参数:
项名 | 值 | 描述 |
InMobiNetworkKeys.AGE_GROUP | InMobiNetworkValues.ABOVE_55(55岁以上), InMobiNetworkValues.BELOW_18(18岁以下), InMobiNetworkValues.BETWEEN_18_AND_20(18-20岁), InMobiNetworkValues.BETWEEN_25_AND_34(25-30岁), InMobiNetworkValues.BETWEEN_35_AND_54(35-54岁), InMobiNetworkValues.BETWEEN_21_AND_24(21-24岁) |
用户年龄段 |
InMobiNetworkKeys.HOUSEHOLD_INCOME | InMobiNetworkValues.ABOVE_USD_150K(150000美元以上), InMobiNetworkValues.BELOW_USD_5K(5000美元以下), InMobiNetworkValues.BETWEEN_USD_100K_AND_150K(100000-150000美元), InMobiNetworkValues.BETWEEN_USD_10K_AND_15K(10000-15000美元), InMobiNetworkValues.BETWEEN_USD_15K_AND_20K(15000-20000美元), InMobiNetworkValues.BETWEEN_USD_20K_AND_25K(20000-25000美元), InMobiNetworkValues.BETWEEN_USD_25K_AND_50K(25000-50000美元), InMobiNetworkValues.BETWEEN_USD_50K_AND_75K(50000-75000美元), InMobiNetworkValues.BETWEEN_USD_5K_AND_10K(5000-10000美元), InMobiNetworkValues.BETWEEN_USD_75K_AND_100K(75000-100000美元) |
用美元表示的用户家庭收入 |
InMobiNetworkKeys.EDUCATION | InMobiNetworkValues.EDUCATION_HIGHSCHOOLORLESS(高中或以下), InMobiNetworkValues.EDUCATION_COLLEGEORGRADUATE(本科), InMobiNetworkValues.EDUCATION_POSTGRADUATEORABOVE(研究生及以上) |
教育水平:
|
InMobiNetworkKeys.ETHNICITY | InMobiNetworkValues.ETHNICITY_ASIAN, InMobiNetworkValues.ETHNICITY_HISPANIC, InMobiNetworkValues.ETHNICITY_AFRICAN_AMERICAN, InMobiNetworkValues.ETHNICITY_CAUCASIAN, InMobiNetworkValues.ETHNICITY_OTHER |
用户种族:
|
InMobiNetworkKeys.INCOME | 任何字符串类型 | 家庭年收入(美元) |
InMobiNetworkKeys.AGE | 任何字符串类型 | 用户年龄 |
InMobiNetworkKeys.INTERESTS | 任何字符串类型 | 与用户相关的其它描述,或用户的喜好,用逗号隔开。下面提到了有效的可接受值 |
InMobiNetworkKeys.POSTAL_CODE | 任何字符串类型 | 邮编(一般是5位数字) |
InMobiNetworkKeys.AREA_CODE | 任何字符串类型 | 区号(电话号码的一部分) |
InMobiNetworkKeys.LANGUAGE | 任何字符串类型 | 用户的母语(如果可知) |
InMobiNetworkKeys.NATIONALITY | 任何字符串类型 | 用户国籍 |
InMobiNetworkKeys.ImIdType_LOGIN | InMobiNetworkValues.ImIdType_LOGIN | 表示在发行者域中登录ID |
InMobiNetworkKeys.ImIdType_SESSION | InMobiNetworkValues.ImIdType_SESSION | 表示在发行者域中会话ID |
InMobiNetworkKeys.CITY | 任何字符串 | 城市 |
InMobiNetworkKeys.STATE | 任何字符串 | 州 |
InMobiNetworkKeys.COUNTRY | 任何字符串 | 国家 |
InMobiNetworkKeys.LOGLEVEL | InMobiNetworkValues.LOGLEVEL_NONE, InMobiNetworkValues.LOGLEVEL_DEBUG, InMobiNetworkValues.LOGLEVEL_ERROR |
SDK的日志等级 |