跳至主要內容

SDK 接入准备及配置说明

大约 12 分钟

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.9.2', 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地址,用于标识用户;访问WIFI状态权限-->
<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_COARSE_LOCATION" />
<!--读取安装列表权限-->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<!--获取通知权限,api大于等于33时需要-->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

权限用途及其推荐申请时机如下:

权限权限说明用途申请时机

READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE
QUERY_ALL_PACKAGES

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.** { *; }
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken

如果您的应⽤启⽤了资源混淆或资源缩减,您需要保留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 方法说明

设备信息(AndroiID、IMEI、OIAD)至少允许/传入一个,否则无填充

方法说明是否必填
开启控制台日志可选
是否允许SDK获取AndroidId,默认true;设置为false后,sdk不会再获取AndroidId可选
开发者自行获取传入AndroidId,设置之后sdk将不会主动获取AndroidId可选
是否允许SDK获取imei,默认true;设置为false后,sdk不会再获取imei可选
开发者自行获取传入imei,设置之后sdk将不会获取imei可选
是否允许SDK获取oaid,默认true;设置为false后,sdk不会再获取oaid可选
开发者自行获取传入oaid,设置之后sdk将不会获取oaid可选
是否允许SDK获取地理位置信息,默认true;设置为false后,sdk不会再获取地理位置信息可选
开发者自行获取传入位置信息,设置之后sdk将不会获取位置信息可选
是否允许SDK获取运营商信息,默认true;设置为false后,sdk不会再获取运营商信息可选
开发者自行获取传入运营商信息,设置之后sdk将不会获取运营商信息可选
是否允许SDK获取mac信息,默认true;设置为false后,sdk不会再获取mac信息可选
开发者自行获取传入mac,设置之后sdk将不会获取mac可选
个性化推荐开关,默认为true。设置为false后,sdk将不再根据个性化能力推荐广告。(3.9.3版本开始支持)可选
是否允许SDK获取传感器信息,默认true;设置为false后,sdk不会再获取传感器信息可选
是否允许SDK获取应用安装列表信息,默认true;设置为false后,sdk不会再获取应用安装列表信息可选
是否允许SDK获取网络状态信息,默认true;设置为false后,sdk不会再获取网络状态信息可选
自定义必选

2.获取 SDK 版本号

sdk 提供获取版本号的方法:

String sdkVer = SAAllianceAdSdk.getYouTuiADNSDKVersion();

3.广告加载

优推ADN广告加载统一使用SAAllianceAdSdk.getSAAllianceAdManager().createSAAllianceAd()获取SAAllianceAd接口类型对象进行广告加载、竞价等。

4.广告竞价(bidding)

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

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

4.1 竞价方法介绍

优推ADN,负责加载广告的SAAllianceAd接口类型中包含竞胜、竞败方法

加载成功后获取的广告对象都实现了BaseAllianceAd接口,实现了String getECPM()方法,通过String getECPM()方法可以获取实时价格。

方法说明

4.2 竞价成功

当优推ADN竞胜时,在展示之前通过SAAllianceAd广告对象调用,调用void notifyBiddingWin(@NonNull float ecmp, @NonNull CurrencyEnum currency, @NonNull AdnTypeEnum adnType, @Nullable HashMap<String, Object> ext)方法回传竞败方价格排名第二的竞价信息

参数

4.3 竞价失败

当优推ADN竞败时,通过SAAllianceAd广告对象调用notifyBiddingLose(@NonNull float ecmp, @NonNull CurrencyEnum currency, @NonNull AdnTypeEnum adnType, @NonNull LoseReasonEnum loseReason, @Nullable HashMap<String, Object> ext)方法回传竞胜方的竞价信息

参数

4.4 币种枚举 CurrencyEnum

币种枚举含义

4.5 竞价渠道枚举 AdnTypeEnum

竞价渠道枚举含义

4.6 竞败失败原因枚举 LoseReasonEnum

竞价渠道枚举含义
上次编辑于: