SDK 接入准备及配置说明
SDK 接入准备及配置说明
概述
说明
本文档旨在为 Android 应用开发者提供快速集成优推流量变现平台的指南。通过简单的配置步骤,您即可在应用内展示个性化广告。请详细阅读本文档,了解 SDK 的详细使用方式。
术语介绍
AppID:应用 ID,是您在优推流量变现平台创建应用时获取的 ID,此 ID 是我们识别您应用的唯一 ID。
SposID:代码位 ID,是您在优推流量变现平台创建代码位时获取的 ID,此 ID 是我们识别您应用下代码位的唯一 ID。
SDK 接入准备
- 在优推平台注册账号后,创建应用、代码位。
a. 开发联调阶段建议创建测试应用/代码位,测试代码位几乎满填,方便验证广告加载和展示效果。 - 下载 SDK 并集成到应用内。集成完毕后,首先需要先初始化SDK,并填写平台创建的AppID(应用ID)。然后根据您的需求接入不同的广告功能,按照规范调用各个广告类型方法。
- 每一次广告加载时都需要填写sposId(代码位ID)。
SDK 接入配置
1.1 导入.aar
SDK 通过依赖 .aar 库文件的方式进行接入,点击下方链接,获取最新版本 SDK,并拷贝 .aar 文件到 libs/ 目录下。
SDK 下载地址:开发者可以从下载中心获取
1.2 添加依赖
在app工程下的build.gradle文件中添加依赖,示例如下:
dependencies {
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'
implementation 'com.google.code.gson:gson:2.8.0'
//Glide
implementation 'com.github.bumptech.glide:glide:4.7.1'
//优推
implementation(name: 'adalliance_adn_sdk.3.8.6', ext: 'aar')
implementation 'commons-codec:commons-codec:1.15'
}
1.3 AndroidManifest.xml⽂件配置
需要相关权限,请在您的App的AndroidManifest.xml⽂件中,添加配置如下:
<!--检测当前网络状态是2G、3G、4G还是WiFi-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--联网权限-->
<uses-permission android:name="android.permission.INTERNET" />
<!--获取设备标识IMEI。用于标识用户-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--获取MAC地址,用于标识用户-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--安装应用权限-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<!--读写权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<!--高采样率权限-->
<uses-permission android:name="android.permission.HIGH_SAMPLING_RATE_SENSORS"/>
1.4 在res/xml目录下添加xml文件
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-cache-path name="nmssp_external_download_path" path="nmssp_download"/>
</paths>
1.5 混淆配置
请确保您的应⽤打包混淆时,请在混淆配置⽂件proguard-rules.pro,添加如下配置:
-keep class com.alliance.ssp.ad.api.** { *; }
如果您的应⽤启⽤了资源混淆或资源缩减,您需要保留SDK的资源,SDK的资源名都是包含nmadssp关键字的。您可以在资源混淆配置⽂件添加如下配置:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@layout/layout_nmssp_*,@id/nmadssp_*,@style/nmadssp_*,
@drawable/nmadssp_*,@string/nmadssp_*,@color/nmadssp_*,@attr/
nmadssp_*,@dimen/nmadssp_*" />
1.SDK 初始化
1.1 初始化代码示例
请在您应⽤的 Application
的 onCreate()
⽅法中调⽤以下代码来初始化⼴告sdk。
SAAllianceAdInitParams initParams = new SAAllianceAdInitParams.Builder()
.build();
//sdk初始化
SAAllianceAdSdk.init("appid", getApplicationContext(), initParams);
1.2 SAAllianceAdInitParams.Builder 方法说明
方法 | 说明 | 是否必填 |
---|---|---|
setDebug(boolean debug) | 开启控制台日志 | 可选 |
setCustomAndroidId(String androidid) | 开发者自行获取传入AndroidId,设置之后sdk将不会主动获取AndroidId | 可选 |
setCustomImei(String imei) | 开发者自行获取传入imei,设置之后sdk将不会获取imei | 可选 |
setCustomOaid(String oaid) | 开发者自行获取传入oaid,设置之后sdk将不会获取oaid | 可选 |
2.获取 SDK 版本号
sdk 提供获取版本号的方法:
String sdkVer = SAAllianceAdSdk.getYouTuiADNSDKVersion();
3.广告加载
优推ADN广告加载统一使用SAAllianceAdSdk.getSAAllianceAdManager().createSAAllianceAd()获取SAAllianceAd接口类型对象进行广告加载、竞价等。
4.广告竞价(bidding)
开发者可以通过获取广告价格信息来自定义广告竞价策略,决定在应用中展示哪些广告。提供的接口功能包括:
- 获取竞价广告实时报价;
- 竞价成功后,上报排名第二的价格;
- 竞价失败时,反馈失败原因及胜出方的相关信息。
4.1 竞价方法介绍
加载成功后获取的广告对象都实现了 BaseAllianceAd 接口,实现了 String getECPM() 方法,通过 String getECPM() 方法可以获取实时价格。
方法 | 说明 |
---|---|
String getECPM(); | 返回价格,null表示无权限或异常,单位:分 |
void notifyBiddingWin(@NonNull float ecmp, @NonNull CurrencyEnum currency, @NonNull AdnTypeEnum adnType, @Nullable HashMap<String, Object> ext); | 竞胜回传,在展示之前调用 |
void notifyBiddingLose(@NonNull float ecmp, @NonNull CurrencyEnum currency, @NonNull AdnTypeEnum adnType, @NonNull LoseReasonEnum loseReason, @Nullable HashMap<String, Object> ext); | 竞败回传 |
4.2 竞价成功
当优推ADN竞胜时,在展示之前通过SAAllianceAd
广告对象调用,调用void notifyBiddingWin(@NonNull float ecmp, @NonNull CurrencyEnum currency, @NonNull AdnTypeEnum adnType, @Nullable HashMap<String, Object> ext)
方法回传竞败方价格排名第二的竞价信息
参数 | 含义 | 是否必填 |
---|---|---|
ecpm | 竞胜方的价格,单位分 | 是 |
currency | 币种 | 是 |
adnType | 竞胜方的渠道 | 是 |
ext | 备用额外字段 | 否,无特殊需求传nil |
4.3 竞价失败
当优推ADN竞败时,通过SAAllianceAd
广告对象调用notifyBiddingLose(@NonNull float ecmp, @NonNull CurrencyEnum currency, @NonNull AdnTypeEnum adnType, @NonNull LoseReasonEnum loseReason, @Nullable HashMap<String, Object> ext)
方法回传竞胜方的竞价信息
参数 | 含义 | 是否必填 |
---|---|---|
ecpm | 竞胜方的价格,单位分 | 是 |
currency | 币种 | 是 |
adnType | 竞胜方的渠道 | 是 |
loseReason | 优推ADN竞败的原因 | 是 |
ext | 备用额外字段 | 否,无特殊需求传nil |
4.4 币种枚举 CurrencyEnum
币种枚举 | 含义 |
---|---|
CNY | 人民币 |
USD | 美元 |
4.5 竞价渠道枚举 AdnTypeEnum
竞价渠道枚举 | 含义 |
---|---|
YT_NON_BIDDING | 优推其他非 bidding 代码位 |
YT_BIDDING | 优推其他 bidding 代码位 |
OTHER_ADN | 其他三方 ADN |
DIRECT_ADVERTISER | 自售广告主 |
OTHER | 其他 |
4.6 竞败失败原因枚举 LoseReasonEnum
竞价渠道枚举 | 含义 |
---|---|
PRICE_LOW | 价格过低,竞争力不足 |
LOAD_TIMEOUT | 广告返回超时 |
NO_SHOWING | 广告返回但未曝光 |
OTHER | 其他 |