跳至主要內容

SDK 接入准备及配置说明

大约 5 分钟

SDK 接入准备及配置说明

概述

说明

本文档旨在为 Android 应用开发者提供快速集成优推流量变现平台的指南。通过简单的配置步骤,您即可在应用内展示个性化广告。请详细阅读本文档,了解 SDK 的详细使用方式。

术语介绍

AppID:应用 ID,是您在优推流量变现平台创建应用时获取的 ID,此 ID 是我们识别您应用的唯一 ID。

SposID:代码位 ID,是您在优推流量变现平台创建代码位时获取的 ID,此 ID 是我们识别您应用下代码位的唯一 ID。

SDK 接入准备

  1. 在优推平台注册账号后,创建应用、代码位。
    a. 开发联调阶段建议创建测试应用/代码位,测试代码位几乎满填,方便验证广告加载和展示效果。
  2. 下载 SDK 并集成到应用内。集成完毕后,首先需要先初始化SDK,并填写平台创建的AppID(应用ID)。然后根据您的需求接入不同的广告功能,按照规范调用各个广告类型方法。
  3. 每一次广告加载时都需要填写sposId(代码位ID)。

SDK 接入配置

1.1 导入.aar

SDK 通过依赖 .aar 库文件的方式进行接入,点击下方链接,获取最新版本 SDK,并拷贝 .aar 文件到 libs/ 目录下。

SDK 下载地址:开发者可以从下载中心open in new window获取

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 初始化代码示例

请在您应⽤的 ApplicationonCreate() ⽅法中调⽤以下代码来初始化⼴告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)

开发者可以通过获取广告价格信息来自定义广告竞价策略,决定在应用中展示哪些广告。提供的接口功能包括:

  1. 获取竞价广告实时报价;
  2. 竞价成功后,上报排名第二的价格;
  3. 竞价失败时,反馈失败原因及胜出方的相关信息。

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其他
上次编辑于: