OpenSet Android SDK接入文档(AndroidStudio)
特别说明
从6.5.0.0版本开始,AdSet聚合SDK与自营广告(奇点广告)SDK融合,在对接上相对于旧版本做了很大的调整,如果是旧版本SDK升级,请格外注意。 如果是第一次对接SDK,则直接阅读文档对接即可。如果对接过程中有疑问的地方,可以在对接群里联系我方技术人员
接入前注意事项(请先阅读注意事项再进行sdk对接)
1、SDK有两种对接方式,一种是maven,一种是arr包引入,开发者按需对接
2、SDK会依赖一些第三方库,通过maven方式对接的默认会自动依赖对应的第三方库。通过arr包对接的则需要手动引入第三方库的依赖。具体的引入方式文档会有说明。
3、如果Maven引入的第三方库和你自己项目中引入的三方库重复同时版本不同,并且想使用自己引入的版本,则自己exclude。需要注意的是所有依赖的第三方库都是必须的,可以替换版本,但不能移除。否则会造成广告无法播放,闪退等问题。
4、原则上不允许同时对接多家聚合广告,如果有需求并且两家引入的相同的第三方广告sdk造成冲突的,请联系我方技术人员。
5、原则上请使用每次官网上最新版本的AdSet SDK和适配的第三方广告SDK。并且第三方SDK版本和适配器版本必须一一匹配。如果不得已下(例如同时对接多家聚合广告并且两家最新适配的第三方广告SDK版本不一样的)需要使用跟当前AdSet SDK版本不匹配的第三方广告SDK版本。请联系我方技术人员
6、每次对接和更新应该详细查看混淆的忽略文件内容。版本更新和新增第三方广告SDK都有可能对混淆文件进行调整。
7、suppor和androidx的对接会有所区别,对接时请注意。
8、快手有ad版本和ct版本的sdk,如果只需要广告,则引入ad版本即可,ad版本更新会更快,并且包更小。如果需要使用短视频短剧等功能,再引入ct包,ct包包含短视频短剧以及广告,包更大,更新频率慢。ad和ct不能同时使用,只能选择一个。
9、虽然初始化以及每种广告都有设置UserId的方法,但是不管在什么广告类型设置,不管在代码中任务位置设置,都是全局生效的,即在banner中设置了userid,在激励广告中也是同一个userid,除非再设置一次进行重置,所以对于需要服务端回调并且回调中带有场景值等透传信息的,在播放对应广告前应该先调用setUserId设置一下userid,并且在这次广告看完之前不允许再设置新的userid。
10、startLoad方法可以预加载广告放在首页调用。但用户今日没有看广告的需求则不建议调用。startload只是预加载,最终播放广告还需要调用showAd方法
11、除了开屏广告,其他的广告类型都有startLoad方法对广告进行预加载。全局只需要调用一次即可。没有状态回调。
12、所有广告必须在主线程调用
SDK接入配置
方法一:maven接入(推荐)
1、在项目根目录的build.gradle文件中引入 adset、荣耀和gromore仓库
buildscript {
repositories {
.
.
.
maven { url "https://artifact.bytedance.com/repository/Volcengine/" }
maven { url "https://artifact.bytedance.com/repository/pangle" }
maven { url 'https://developer.hihonor.com/repo' }
maven {
allowInsecureProtocol = true
url "http://maven.shenshiads.com/nexus/repository/adset/"
}
}
}
allprojects {
repositories {
maven { url "https://artifact.bytedance.com/repository/Volcengine/" }
maven { url "https://artifact.bytedance.com/repository/pangle" }
maven { url 'https://developer.hihonor.com/repo' }
maven {
allowInsecureProtocol = true
url "http://maven.shenshiads.com/nexus/repository/adset/"
}
}
}
2、在module的build.gradle中引入sdk和第三方ADN
android {
...
defaultConfig {
...
multiDexEnabled true
}
}
dependencies {
implementation 'com.shenshi:ad-openset-sdk:6.5.0.1'
implementation 'com.shenshi:ad-tanx-adapter:3.6.0.1'
implementation 'com.shenshi:ad-beizi-adapter:4.90.4.31.2'
implementation 'com.shenshi:ad-guangdiantong-adapter:4.603.1473.2'
implementation 'com.shenshi:ad-kuaishou-ad-adapter:3.3.69.2'
implementation 'com.shenshi:ad-kuaishou-ct-adapter:3.3.69.2'
implementation 'com.shenshi:ad-sigmob-adapter:4.19.5.2'
implementation 'com.shenshi:ad-gromore-adapter:6.4.3.6.2'
implementation 'com.shenshi:ad-baidu-adapter:9.371.2'
implementation 'com.shenshi:ad-hailiang-adapter:3.467.10.433.2'
implementation 'com.shenshi:ad-zhangyu-adapter:1.6.1.7.2'
implementation 'com.shenshi:ad-jingdong-androidx-adapter:2.6.10.1'
implementation 'com.shenshi:ad-jingdong-support-adapter:2.6.10.1'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.28'
}
方式二:arr引入
1、官网下载SDK包后解压,将adapter文件夹和adn文件夹内容以及外面的oaid包全部复制到项目的libs文件夹中,如果没有libs文件夹,则自己在modlue下创建一个,adn中ks-ad和ks-ct只能使用一个。
注意,这里adn文件夹中缺少tanx的包,是因为tanx只支持maven引入,没有离线的arr包。所以需要在gradle中单独引入,下面会说明
2、在项目的根目录引入以下内容
buildscript {
repositories {
.
.
.
maven { url "https://artifact.bytedance.com/repository/Volcengine/" }
maven { url "https://artifact.bytedance.com/repository/pangle" }
maven { url 'https://developer.hihonor.com/repo' }
}
}
allprojects {
repositories {
maven { url "https://artifact.bytedance.com/repository/Volcengine/" }
maven { url "https://artifact.bytedance.com/repository/pangle" }
maven { url 'https://developer.hihonor.com/repo' }
}
}
3、在module的build文件中引入以下内容
android {
...
defaultConfig {
...
multiDexEnabled true
}
}
dependencies {
implementation fileTree("libs")
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.github.bumptech.glide:glide:4.9.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.squareup.okhttp3:okhttp:4.8.1'
implementation 'io.github.aliyun-sls:aliyun-log-android-sdk:2.7.0'
implementation 'com.hihonor.mcs:ads-identifier:1.0.2.301'
implementation("com.tanx:TanxUISDK:3.4.5") {
exclude group: 'com.squareup.okhttp3'
}
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.28'
}
权限和配置
1、将解压后的xml文件夹复制到res文件夹下面
2、打开AndroidManifest.xml文件,将以下内容复制到指定的位置
<manifest ...>
...
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<application
...
android:networkSecurityConfig="@xml/network_security_config"
tools:replace="android:allowBackup"
>
...
<provider
android:name="com.sigmob.sdk.SigmobFileV4Provider"
android:authorities="${applicationId}.sigprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/sigmob_provider_paths"/>
</provider>
</application>
</manifest>
混淆配置
-keep class com.kc.openset.**{*;}
-keep class com.od.**{*;}
-dontwarn com.kc.openset.**
-keep @com.qihoo.SdkProtected.OSETSDK.Keep class **{*;}
-keep,allowobfuscation interface com.qihoo.SdkProtected.OSETSDK.Keep
-keep class com.bytedance.sdk.openadsdk.** { *; }
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class com.ss.**{*;}
-dontwarn com.ss.**
-keep class bykvm*.**
-keep class com.bytedance.msdk.adapter.**{ public *; }
-keep class com.bytedance.msdk.api.** {
public *;
}
-keep class com.bytedance.msdk.base.TTBaseAd{*;}
-keep class com.bytedance.msdk.adapter.TTAbsAdLoaderAdapter{
public *;
protected <fields>;
}
-keep class org.chromium.** {*;}
-keep class org.chromium.** { *; }
-keep class aegon.chrome.** { *; }
-keep class com.kwai.**{ *; }
-dontwarn com.kwai.**
-dontwarn com.kwad.**
-dontwarn com.ksad.**
-dontwarn aegon.chrome.**
-dontoptimize
-keep class sun.misc.Unsafe { *; }
-keep class com.sigmob.**.**{*;}
-keep interface com.sigmob.**.**{*;}
-keep class com.czhj.**{*;}
-keep interface com.czhj.**{*;}
-keep class com.google.android.material.** {*;}
-keep class androidx.** {*;}
-keep public class * extends androidx.**
-keep interface androidx.** {*;}
-dontwarn com.google.android.material.**
-dontnote com.google.android.material.**
-dontwarn androidx.**
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.** { *; }
-keep public class * extends android.support.v4.**
-keep class com.bun.supplier.** {*;}
-dontwarn com.bun.supplier.core.**
-keep class XI.**{*;}
-keep class com.bun.miitmdid.**{*;}
-keep class com.asus.msa.**{*;}
-keep class com.bun.**{*;}
-keep class com.huawei.hms.ads.identifier.**{*;}
-keep class com.netease.nis.sdkwrapper.**{*;}
-keep class com.samsung.android.deviceidservice.**{*;}
-keep class com.zui.**{*;}
-keep class XI.**{*;}
-keep class com.qq.e.** {*;}
-dontwarn com.qq.e.**
-ignorewarnings
-dontwarn com.baidu.mobads.sdk.api.**
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class com.baidu.mobads.** { *; }
-keep class com.style.widget.** {*;}
-keep class com.component.** {*;}
-keep class com.baidu.ad.magic.flute.** {*;}
-keep class com.baidu.mobstat.forbes.** {*;}
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.squareup.okhttp.* { *; }
-keep interface com.squareup.okhttp.** { *; }
-dontwarn com.squareup.okhttp.**
-keepattributes Signature
-keepattributes *Annotation*
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**
-keepattributes InnerClasses
-dontwarn com.squareup.**
-dontwarn okio.**
-keep public class org.codehaus.* { *; }
-keep public class java.nio.* { *; }
-keep class com.aliyun.sls.android.producer.** { *; }
-keep interface com.aliyun.sls.android.producer.* { *; }
-dontwarn com.beizi.fusion.**
-dontwarn com.beizi.ad.**
-keep class com.beizi.fusion.** {*; }
-keep class com.beizi.ad.** {*; }
-keep class com.qq.e.** {
public protected *;
}
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
-dontwarn org.apache.**
-dontwarn com.bumptech.glide.**
-keep class com.bumptech.glide.**{*;}
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public class * extends com.bumptech.glide.module.AppGlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
-dontwarn com.alibaba.fastjson.**
-keep class com.alibaba.fastjson.**{*;}
-keep class com.bumptech.glide.**{*;}
-keep class com.alimm.tanx.**{*;}
-keep class * implements java.io.Serializable{
<fields>;
<methods>;
}
-keep class com.hihonor.ads.** {*; }
-dontwarn com.octopus.ad.**
-keep class com.octopus.ad.** {*;}
-keep class com.jd.ad.sdk.** { *; }
隐私合规配置
接入示例
new OSETCustomController() {
public boolean canReadLocation() {
return true;
}
public Location getLocation() {
return null;
}
public boolean canUsePhoneState() {
return true;
}
public String getImei() {
return "";
}
public String getAndroidId() {
return "";
}
public boolean canUseOaid() {
return true;
}
public String getOaid() {
return "";
}
public boolean canUseMacAddress() {
return true;
}
public String getMacAddress() {
return "";
}
public boolean canUseNetworkState() {
return true;
}
public boolean canUseStoragePermission() {
return true;
}
public boolean canReadInstalledPackages() {
return true;
}
public List<String> getInstalledPackages() {
return null;
}
public boolean canUsePersonalizedAd() {
return true;
}
}
测试id
appkey | E6097975B89E83D6 |
---|
开屏广告位id | 7D5239D8D88EBF9B6D317912EDAC6439 |
插屏广告位id | 1D273967F51868AF2C4E080D496D06D0 |
banner广告位id | 107EB50EDFE65EA3306C8318FD57D0B3 |
激励视频广告位id | 09A177D681D6FB81241C3DCE963DCB46 |
全屏视频广告位id | D879C3DED01D5CE319CD2751474BA8E4 |
信息流(原生)广告位id | 89FEEA66F9228ED3F6420294B89A902B |
draw视频流广告位id | 7D5239D8D88EBF9B6D317912EDAC6439 |
短视频内容模块id | C5F4F13C421B10664D9D21EDB52C8C5D |
双排短视频内容模块id | 77C8E2D8F5C1D88CBF0D118F7F1FC50B |
横屏长视频内容模块id | E144B8229BC47DF6A8FBBBB21074F9F2 |
短剧视频内容模块id | C80DDB16A8F5D77B7EE1012C984C84DE |
短剧视频内容模块2id | C4AD0620230B028DCB87D0B304651C5A |
信息流内容模块id | 4EC4251D616C69030A161A930A938596 |
信息流内容模块2id | EBE266AAE65F52C37A28BF2D586132EB |
悬浮窗模块id | C20D0FDCA88E06E6718A33279AAD2B4D |
初始化SDK
接入示例 开发者需要在用户同意APP的隐私政策之后调用以下代码来初始化SDK。
public class MyApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
Log.e("aaaaaa", "进程名:" + getProcessName());
try {
WebView.setDataDirectorySuffix(getProcessName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void onCreate() {
super.onCreate();
OSETSDK.getInstance()
.setUserId("aaa")
.setCustomController(new OSETCustomController(){})
.init(Application, APPKEY, new OSETInitListener(){});
}
}
OSETSDK | 初始化 |
---|
setUserId(String var1) | 设置用户id(对接的app的用户唯一id,没有可不传) |
setCustomController() | 隐私合规设置 |
getVersionCode() | 获取AdSet SDK 版本号 |
getVersionName() | 获取AdSet SDK 版本名 |
init(Application var1, String var2,OSETInitListener var3) | SDK初始化 (var1:Application、var2:AppKey、var3:回调监听) |
OSETInitListener | 初始化结果状态回调接口 |
---|
onError(String var1) | 初始化失败 (var1:失败信息) |
onSuccess() | 初始化成功 |
广告模块
开屏广告
xml文件添加
<FrameLayout
android:id="@+id/fl"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
java代码
layout = findViewById(R.id.fl);
OSETSplash.getInstance()
.setContext(this)
.setPosId(Common.POS_ID_Splash)
.loadAd(osetSplashAdLoadListener)
private OSETSplashAdLoadListener osetSplashAdLoadListener = OSETSplashAdLoadListener {
void onLoadSuccess(OSETSplashAd osetSplashAd){
osetSplashAd.showAd(Activity, FrameLayout, OSETSplashListener())
}
void onLoadFail(String errorCode, String errorMessage){
}
}
OSETSplash | 开屏广告 |
---|
setContext(Activity activity) | 设置Activity |
setUserId(String userId) | 设置UserId。注意,这里会全局设置,设置以后对任意类型广告都生效,如果想更改,请在播放广告之前调用广告对象的setUserId方法,广告对象的setUserId只对当前设置的广告对象有效,不会影响全局设置 |
setPosId(String posId) | 设置广告位id |
loadAd(OSETSplashAdLoadListener var) | 加载广告(var 广告加载结果监听) |
startLoad() | 预加载广告,不会回调 OSETSplashAdLoadListener 监听,可以提前加载广告,节省首次广告加载曝光时间,但是注意,预加载广告会获取设备id等用户隐私信息,审核可能会被拒,请酌情使用 |
OSETSplashAdLoadListener | 开屏广告加载监听 |
---|
onLoadSuccess(OSETSplashAd osetSplashAd) | 广告加载成功,osetSplashAd:广告对象 |
onLoadFail(String errorCode, String errorMessage) | 广告加载失败,errorCode:错误码,errorMessage:错误信息 |
OSETSplashAd | 开屏广告对象 |
---|
setUserId(String userId) | 设置userId,注意:这里设置只对单个广告对象有效,并且不影响全局广告的设置。一旦广告曝光结束,这里设置的userid不再持有 |
getECPM() | 获取广告ecpm,单位:千次分:注意,只有自营奇点广告返回价格,聚合广告AdSet不返回价格 |
getRequestId() | 获取单个广告对象唯一ID |
isUsable() | 广告是否有效,返回true:广告有效,false:广告已失效过期 。失效后的广告继续播放是没有收益的,在调用广告曝光前请先检查广告是否有效 |
bidSuccess(BidAdInfo bidAdInfo) | 广告竞胜上报,bidAdInfo:竞败的广告媒体信息 |
bidFail(BidAdInfo bidAdInfo) | 广告竞败上报,bidAdInfo:竞败的广告媒体信息 |
showAd(Activity, FrameLayout, OSETSplashListener) | 广告曝光,activity:Activity,FrameLayout:广告容器 ,OSETSplashListener:广告状态监听 |
destroy() | 对象销毁 |
OSETSplashListener | 开屏广告状态监听 |
---|
onShow | 广告曝光 |
onError(String var1,String var2) | 广告曝光失败(var1:错误码,var2:错误信息) |
onClick | 广告点击 |
onClose | 广告关闭 |
banner广告
java代码
OSETBanner.getInstance()
.setContext(this)
.setPosId(Common.POS_ID_Banner)
.loadAd(osetBannerAdLoadListener)
private OSETBannerAdLoadListener osetBannerAdLoadListener = OSETBannerAdLoadListener {
void onLoadSuccess(OSETBannerAd osetBannerAd){
osetBannerAd.render(Activity, OSETBannerListener())
}
void onLoadFail(String errorCode, String errorMessage){
}
}
OSETBanner | Banner广告 |
---|
setContext(Activity activity) | 设置Activity |
setUserId(String userId) | 设置UserId。注意,这里会全局设置,设置以后对任意类型广告都生效,如果想更改,请在播放广告之前调用广告对象的setUserId方法,广告对象的setUserId只对当前设置的广告对象有效,不会影响全局设置 |
setPosId(String posId) | 设置广告位id |
loadAd(OSETBannerAdLoadListener var) | 加载广告(var 广告加载结果监听) |
startLoad() | 预加载广告,不会回调 OSETBannerAdLoadListener 监听,可以提前加载广告,节省首次广告加载曝光时间,但是注意,预加载广告会获取设备id等用户隐私信息,审核可能会被拒,请酌情使用 |
OSETBannerAdLoadListener | banner广告加载监听 |
---|
onLoadSuccess(OSETBannerAd osetBannerAd) | 广告加载成功,osetBannerAd:广告对象 |
onLoadFail(String errorCode, String errorMessage) | 广告加载失败,errorCode:错误码,errorMessage:错误信息 |
OSETBannerAd | banner广告对象 |
---|
setUserId(String userId) | 设置userId,注意:这里设置只对单个广告对象有效,并且不影响全局广告的设置。一旦广告曝光结束,这里设置的userid不再持有 |
getECPM() | 获取广告ecpm,单位:千次分:注意,只有自营奇点广告返回价格,聚合广告AdSet不返回价格 |
getRequestId() | 获取单个广告对象唯一ID |
isUsable() | 广告是否有效,返回true:广告有效,false:广告已失效过期 。失效后的广告继续播放是没有收益的,在调用广告曝光前请先检查广告是否有效 |
bidSuccess(BidAdInfo bidAdInfo) | 广告竞胜上报,bidAdInfo:竞败的广告媒体信息 |
bidFail(BidAdInfo bidAdInfo) | 广告竞败上报,bidAdInfo:竞败的广告媒体信息 |
render(Activity, OSETBannerListener) | 广告渲染,activity:Activity ,OSETBannerListener:广告状态监听 |
destroy() | 对象销毁 |
OSETBannerListener | Banner广告状态监听 |
---|
onShow(View view) | 广告曝光 |
onError(String var1,String var2) | 广告渲染/曝光失败(var1:错误码,var2:错误信息) |
onClick(View view) | 广告点击 |
onClose(View view) | 广告关闭 |
onRenderSuccess(View view) | 渲染成功,view就是广告的控件,通过addView展示 |
插屏广告
OSETInterstitial
.getInstance()
.setContext(this)
.setUserId(Common.USER_ID)
.setPosId(Common.POS_ID_INTERSTITIAL)
.loadAd(OSETInterstitialAdLoadListener);
private OSETInterstitialAdLoadListener osetInterstitialAdLoadListener = OSETInterstitialAdLoadListener {
void onLoadSuccess(OSETInterstitialAd osetInterstitialAd){
osetInterstitialAd.showAd(Activity, OSETInterstitialListener())
}
void onLoadFail(String errorCode, String errorMessage){
}
}
OSETInterstitial | 插屏广告 |
---|
setContext(Activity activity) | 设置Activity |
setUserId(String userId) | 设置UserId。注意,这里会全局设置,设置以后对任意类型广告都生效,如果想更改,请在播放广告之前调用广告对象的setUserId方法,广告对象的setUserId只对当前设置的广告对象有效,不会影响全局设置 |
setPosId(String posId) | 设置广告位id |
loadAd(OSETInterstitialAdLoadListener var) | 加载广告(var 广告加载结果监听) |
startLoad() | 预加载广告,不会回调 OSETInterstitialAdLoadListener 监听,可以提前加载广告,节省首次广告加载曝光时间,但是注意,预加载广告会获取设备id等用户隐私信息,审核可能会被拒,请酌情使用 |
OSETInterstitialAdLoadListener | 插屏广告加载监听 |
---|
onLoadSuccess(OSETInterstitialAd osetInterstitialAd) | 广告加载成功,osetInterstitialAd:广告对象 |
onLoadFail(String errorCode, String errorMessage) | 广告加载失败,errorCode:错误码,errorMessage:错误信息 |
OSETInterstitialAd | 插屏广告对象 |
---|
setUserId(String userId) | 设置userId,注意:这里设置只对单个广告对象有效,并且不影响全局广告的设置。一旦广告曝光结束,这里设置的userid不再持有 |
getECPM() | 获取广告ecpm,单位:千次分:注意,只有自营奇点广告返回价格,聚合广告AdSet不返回价格 |
getRequestId() | 获取单个广告对象唯一ID |
isUsable() | 广告是否有效,返回true:广告有效,false:广告已失效过期 。失效后的广告继续播放是没有收益的,在调用广告曝光前请先检查广告是否有效 |
bidSuccess(BidAdInfo bidAdInfo) | 广告竞胜上报,bidAdInfo:竞败的广告媒体信息 |
bidFail(BidAdInfo bidAdInfo) | 广告竞败上报,bidAdInfo:竞败的广告媒体信息 |
showAd(Activity, OSETInterstitialListener) | 广告渲染,activity:Activity ,OSETInterstitialListener:广告状态监听 |
destroy() | 对象销毁 |
OSETInterstitialListener | 插屏广告状态监听 |
---|
onShow() | 广告曝光 |
onError(String var1,String var2) | 广告曝光失败(var1:错误码,var2:错误信息) |
onClick() | 广告点击 |
onClose() | 广告关闭 |
插屏横屏广告
OSETInterstitialHorizontal
.getInstance()
.setContext(this)
.setUserId(Common.USER_ID)
.setPosId(Common.POS_ID_INTERSTITIAL_HORIZONTAL)
.loadAd(OSETInterstitialAdLoadListener);
private OSETInterstitialAdLoadListener osetInterstitialAdLoadListener = OSETInterstitialAdLoadListener {
void onLoadSuccess(OSETInterstitialAd osetInterstitialAd){
osetInterstitialAd.showAd(Activity, OSETInterstitialListener())
}
void onLoadFail(String errorCode, String errorMessage){
}
}
OSETInterstitialHorizontal | 插屏横屏广告 |
---|
setContext(Activity activity) | 设置Activity |
setUserId(String userId) | 设置UserId。注意,这里会全局设置,设置以后对任意类型广告都生效,如果想更改,请在播放广告之前调用广告对象的setUserId方法,广告对象的setUserId只对当前设置的广告对象有效,不会影响全局设置 |
setPosId(String posId) | 设置广告位id |
loadAd(OSETInterstitialAdLoadListener var) | 加载广告(var 广告加载结果监听) |
startLoad() | 预加载广告,不会回调 OSETInterstitialAdLoadListener 监听,可以提前加载广告,节省首次广告加载曝光时间,但是注意,预加载广告会获取设备id等用户隐私信息,审核可能会被拒,请酌情使用 |
OSETInterstitialAdLoadListener | 插屏横屏广告加载监听 |
---|
onLoadSuccess(OSETInterstitialAd osetInterstitialAd) | 广告加载成功,osetInterstitialAd:广告对象 |
onLoadFail(String errorCode, String errorMessage) | 广告加载失败,errorCode:错误码,errorMessage:错误信息 |
OSETInterstitialAd | 插屏横屏广告对象 |
---|
setUserId(String userId) | 设置userId,注意:这里设置只对单个广告对象有效,并且不影响全局广告的设置。一旦广告曝光结束,这里设置的userid不再持有 |
getECPM() | 获取广告ecpm,单位:千次分:注意,只有自营奇点广告返回价格,聚合广告AdSet不返回价格 |
getRequestId() | 获取单个广告对象唯一ID |
isUsable() | 广告是否有效,返回true:广告有效,false:广告已失效过期 。失效后的广告继续播放是没有收益的,在调用广告曝光前请先检查广告是否有效 |
bidSuccess(BidAdInfo bidAdInfo) | 广告竞胜上报,bidAdInfo:竞败的广告媒体信息 |
bidFail(BidAdInfo bidAdInfo) | 广告竞败上报,bidAdInfo:竞败的广告媒体信息 |
showAd(Activity, OSETInterstitialListener) | 广告渲染,activity:Activity ,OSETInterstitialListener:广告状态监听 |
destroy() | 对象销毁 |
OSETInterstitialListener | 插屏横屏广告状态监听 |
---|
onShow() | 广告曝光 |
onError(String var1,String var2) | 广告曝光失败(var1:错误码,var2:错误信息) |
onClick() | 广告点击 |
onClose() | 广告关闭 |
全屏视频广告
OSETFullVideo.getInstance()
.setContext(this)
.setUserId(Common.USER_ID)
.setPosId(Common.POS_ID_FULL_VIDEO)
.loadAd(Activity,OSETFullAdLoadListener);
private OSETFullAdLoadListener osetFullAdLoadListener = OSETFullAdLoadListener {
void onLoadSuccess(OSETFullAd osetFullAd){
osetFullAd.showAd(Activity, OSETFullVideoListener())
}
void onLoadFail(String errorCode, String errorMessage){
}
}
OSETFullVideo | 全屏广告 |
---|
setContext(Activity activity) | 设置Activity |
setUserId(String userId) | 设置UserId。注意,这里会全局设置,设置以后对任意类型广告都生效,如果想更改,请在播放广告之前调用广告对象的setUserId方法,广告对象的setUserId只对当前设置的广告对象有效,不会影响全局设置 |
setPosId(String posId) | 设置广告位id |
loadAd(OSETFullAdLoadListener var) | 加载广告(var 广告加载结果监听) |
startLoad() | 预加载广告,不会回调 OSETFullAdLoadListener 监听,可以提前加载广告,节省首次广告加载曝光时间,但是注意,预加载广告会获取设备id等用户隐私信息,审核可能会被拒,请酌情使用 |
OSETFullAdLoadListener | 全屏广告加载监听 |
---|
onLoadSuccess(OSETFullAd osetFullAd) | 广告加载成功,osetFullAd:广告对象 |
onLoadFail(String errorCode, String errorMessage) | 广告加载失败,errorCode:错误码,errorMessage:错误信息 |
OSETFullAd | 全屏广告对象 |
---|
setUserId(String userId) | 设置userId,注意:这里设置只对单个广告对象有效,并且不影响全局广告的设置。一旦广告曝光结束,这里设置的userid不再持有 |
getECPM() | 获取广告ecpm,单位:千次分:注意,只有自营奇点广告返回价格,聚合广告AdSet不返回价格 |
getRequestId() | 获取单个广告对象唯一ID |
isUsable() | 广告是否有效,返回true:广告有效,false:广告已失效过期 。失效后的广告继续播放是没有收益的,在调用广告曝光前请先检查广告是否有效 |
bidSuccess(BidAdInfo bidAdInfo) | 广告竞胜上报,bidAdInfo:竞败的广告媒体信息 |
bidFail(BidAdInfo bidAdInfo) | 广告竞败上报,bidAdInfo:竞败的广告媒体信息 |
showAd(Activity, OSETFullVideoListener) | 广告渲染,activity:Activity ,OSETFullVideoListener:广告状态监听 |
destroy() | 对象销毁 |
OSETFullVideoListener | 全屏广告状态监听 |
---|
onVideoStart() | 视频开始播放(不一定回调) |
onError(String var1,String var2) | 广告曝光失败(var1:错误码,var2:错误信息) |
onClick() | 广告点击 |
onClose() | 广告关闭 |
onShow() | 广告关曝光 |
onVideoEnd() | 视频播放结束(不一定回调) |
激励视频广告
缓存广告
OSETRewardVideo.getInstance()
.setContext(this)
.setUserId(Common.USER_ID)
.setPosId(Common.POS_ID_REWARD_VIDEO)
.loadAd(OSETRewardAdLoadListener);
private OSETRewardAdLoadListener osetRewardAdLoadListener = OSETRewardAdLoadListener {
void onLoadSuccess(OSETRewardAd osetRewardAd){
osetRewardAd.showAd(Activity, OSETRewardListener())
}
void onLoadFail(String errorCode, String errorMessage){
}
}
OSETRewardVideo | 激励广告 |
---|
setContext(Activity activity) | 设置Activity |
setUserId(String userId) | 设置UserId。注意,这里会全局设置,设置以后对任意类型广告都生效,如果想更改,请在播放广告之前调用广告对象的setUserId方法,广告对象的setUserId只对当前设置的广告对象有效,不会影响全局设置 |
setPosId(String posId) | 设置广告位id |
loadAd(OSETRewardAdLoadListener var) | 加载广告(var 广告加载结果监听) |
startLoad() | 预加载广告,不会回调 OSETRewardAdLoadListener 监听,可以提前加载广告,节省首次广告加载曝光时间,但是注意,预加载广告会获取设备id等用户隐私信息,审核可能会被拒,请酌情使用 |
OSETRewardAdLoadListener | 激励广告加载监听 |
---|
onLoadSuccess(OSETRewardAd osetRewardAd) | 广告加载成功,osetRewardAd:广告对象 |
onLoadFail(String errorCode, String errorMessage) | 广告加载失败,errorCode:错误码,errorMessage:错误信息 |
OSETRewardAd | 激励广告对象 |
---|
setUserId(String userId) | 设置userId,注意:这里设置只对单个广告对象有效,并且不影响全局广告的设置。一旦广告曝光结束,这里设置的userid不再持有 |
getECPM() | 获取广告ecpm,单位:千次分:注意,只有自营奇点广告返回价格,聚合广告AdSet不返回价格 |
getRequestId() | 获取单个广告对象唯一ID |
isUsable() | 广告是否有效,返回true:广告有效,false:广告已失效过期 。失效后的广告继续播放是没有收益的,在调用广告曝光前请先检查广告是否有效 |
bidSuccess(BidAdInfo bidAdInfo) | 广告竞胜上报,bidAdInfo:竞败的广告媒体信息 |
bidFail(BidAdInfo bidAdInfo) | 广告竞败上报,bidAdInfo:竞败的广告媒体信息 |
showAd(Activity, OSETRewardListener) | 广告渲染,activity:Activity ,OSETRewardListener:广告状态监听 |
destroy() | 对象销毁 |
OSETRewardListener | 激励广告状态监听 |
---|
onVideoStart() | 视频开始播放(不一定回调) |
onError(String var1,String var2) | 广告曝光失败(var1:错误码,var2:错误信息) |
onClick() | 广告点击 |
onClose() | 广告关闭 |
onShow() | 广告关曝光 |
onVideoEnd() | 视频播放结束(不一定回调) |
onReward() | 广告产生收益,可以发放奖励 |
onServiceResponse() | 服务端回调 |
原生广告
java代码
OSETNative.getInstance()
.setContext(this)
.setUserId(Common.USER_ID)
.setPosId(Common.POS_ID_FULL_VIDEO)
.loadAd(OSETNativeAdLoadListener);
private OSETNativeAdLoadListener osetNativeAdLoadListener = OSETNativeAdLoadListener {
void onLoadSuccess(OSETNativeAd osetNativeAd){
osetNativeAd.render(Activity, OSETNativeListener())
}
void onLoadFail(String errorCode, String errorMessage){
}
}
OSETNative | 原生信息流广告 |
---|
setContext(Activity activity) | 设置Activity |
setUserId(String userId) | 设置UserId。注意,这里会全局设置,设置以后对任意类型广告都生效,如果想更改,请在播放广告之前调用广告对象的setUserId方法,广告对象的setUserId只对当前设置的广告对象有效,不会影响全局设置 |
setPosId(String posId) | 设置广告位id |
loadAd(OSETNativeAdLoadListener var) | 加载广告(var 广告加载结果监听) |
startLoad() | 预加载广告,不会回调 OSETNativeAdLoadListener 监听,可以提前加载广告,节省首次广告加载曝光时间,但是注意,预加载广告会获取设备id等用户隐私信息,审核可能会被拒,请酌情使用 |
OSETNativeAdLoadListener | 原生信息流广告加载监听 |
---|
onLoadSuccess(OSETNativeAd osetNativeAd) | 广告加载成功,osetNativeAd:广告对象 |
onLoadFail(String errorCode, String errorMessage) | 广告加载失败,errorCode:错误码,errorMessage:错误信息 |
OSETNativeAd | 原生信息流广告对象 |
---|
setUserId(String userId) | 设置userId,注意:这里设置只对单个广告对象有效,并且不影响全局广告的设置。一旦广告曝光结束,这里设置的userid不再持有 |
getECPM() | 获取广告ecpm,单位:千次分:注意,只有自营奇点广告返回价格,聚合广告AdSet不返回价格 |
getRequestId() | 获取单个广告对象唯一ID |
isUsable() | 广告是否有效,返回true:广告有效,false:广告已失效过期 。失效后的广告继续播放是没有收益的,在调用广告曝光前请先检查广告是否有效 |
bidSuccess(BidAdInfo bidAdInfo) | 广告竞胜上报,bidAdInfo:竞败的广告媒体信息 |
bidFail(BidAdInfo bidAdInfo) | 广告竞败上报,bidAdInfo:竞败的广告媒体信息 |
render(Activity, OSETNativeListener) | 广告渲染,activity:Activity ,OSETNativeListener:广告状态监听 |
destroy() | 对象销毁 |
OSETNativeListener | 原生信息流广告状态监听 |
---|
onShow(View view) | 广告曝光 |
onError(String var1,String var2) | 广告渲染/曝光失败(var1:错误码,var2:错误信息) |
onRenderSuccess(View view) | 渲染成功,view就是广告的控件,通过addView展示 |
onClick(View view) | 广告点击 |
onClose(View view) | 广告关闭 |
原生自渲染广告
请参考demo中native_view_layout文件的控价类型,控件类型不能更改
NativeViewConfig nativeViewConfig = new NativeViewConfig.Builder()
.setLayoutId(R.layout.native_view_layout)
.setTitleId(R.id.tv_title)
.setAdSourceId(R.id.tv_ad_source)
.setAdSourceImgId(R.id.iv_ad_source_img) 广告来源图标
.setContentId(R.id.tv_content)
.setActBtnId(R.id.btn_action)
.setCloseImgId(R.id.iv_close)
.setAppNameId(R.id.tv_app_name)
.setAppAuthorNameId(R.id.tv_app_auother)
.setAppVersionId(R.id.tv_app_version)
.setAppPermissionId(R.id.tv_app_permission)
.setAppPrivacyId(R.id.tv_app_privacy)
.setAppFunctionId(R.id.tv_app_function)
.setAdIconId(R.id.iv_icon)
.setAdImgId(R.id.iv_img)
.setAdVideoId(R.id.fl_video)
.builder();
OSETNativeView.getInstance()
.setContext(this)
.setUserId(Common.USER_ID)
.setPosId(Common.POS_ID_NATIVE_VIEW)
.setNativeViewConfig(nativeViewConfig)
.loadAd(Activity,OSETNativeViewListener);
private OSETNativeViewAdLoadListener osetNativeViewAdLoadListener = OSETNativeViewAdLoadListener {
void onLoadSuccess(OSETNativeViewAd osetNativeViewAd){
osetNativeViewAd.render(Activity, OSETNativeViewListener())
}
void onLoadFail(String errorCode, String errorMessage){
}
}
方法名 | 方法描述 |
---|
NativeViewConfig | 广告UI配置 |
setLayoutId | 布局文件 |
setTitleId | 标题 |
setAdSourceId | 广告来源 |
setAdSourceImgId | 广告来源图标 |
setContentId | 广告内容 |
setActBtnId | 广告事件按钮 |
setCloseImgId | 广告关闭按钮图片 |
setAppNameId | 下载类广告 app名字 |
setAppAuthorNameId | 下载类广告 app作者 |
setAppVersionId | 下载类广告 app版本 |
setAppPermissionId | 下载类广告 app权限跳转按钮 |
setAppPrivacyId | 下载类广告 app隐私跳转按钮 |
setAppFunctionId | 下载类广告 app功能跳转按钮 |
setAdIconId | 广告图标 |
setAdImgId | 图片类广告容器 |
setAdVideoId | 视频类广告容器 |
OSETNativeView | 原生自渲染广告 |
---|
setContext(Activity activity) | 设置Activity |
setNativeViewConfig(NativeViewConfig nativeViewConfig) | 自渲染view配置 |
setUserId(String userId) | 设置UserId。注意,这里会全局设置,设置以后对任意类型广告都生效,如果想更改,请在播放广告之前调用广告对象的setUserId方法,广告对象的setUserId只对当前设置的广告对象有效,不会影响全局设置 |
setPosId(String posId) | 设置广告位id |
loadAd(OSETNativeViewAdLoadListener var) | 加载广告(var 广告加载结果监听) |
startLoad() | 预加载广告,不会回调 OSETNativeViewAdLoadListener 监听,可以提前加载广告,节省首次广告加载曝光时间,但是注意,预加载广告会获取设备id等用户隐私信息,审核可能会被拒,请酌情使用 |
OSETNativeViewAdLoadListener | 原生自渲染广告加载监听 |
---|
onLoadSuccess(OSETNativeViewAd osetNativeViewAd) | 广告加载成功,osetNativeViewAd:广告对象 |
onLoadFail(String errorCode, String errorMessage) | 广告加载失败,errorCode:错误码,errorMessage:错误信息 |
OSETNativeViewAd | 原生自渲染广告对象 |
---|
setUserId(String userId) | 设置userId,注意:这里设置只对单个广告对象有效,并且不影响全局广告的设置。一旦广告曝光结束,这里设置的userid不再持有 |
getECPM() | 获取广告ecpm,单位:千次分:注意,只有自营奇点广告返回价格,聚合广告AdSet不返回价格 |
getRequestId() | 获取单个广告对象唯一ID |
isUsable() | 广告是否有效,返回true:广告有效,false:广告已失效过期 。失效后的广告继续播放是没有收益的,在调用广告曝光前请先检查广告是否有效 |
bidSuccess(BidAdInfo bidAdInfo) | 广告竞胜上报,bidAdInfo:竞败的广告媒体信息 |
bidFail(BidAdInfo bidAdInfo) | 广告竞败上报,bidAdInfo:竞败的广告媒体信息 |
render(Activity, OSETNativeViewListener) | 广告渲染,activity:Activity ,OSETNativeViewListener:广告状态监听 |
destroy() | 对象销毁 |
OSETNativeViewListener | 原生自渲染广告状态监听 |
---|
onShow(View view) | 广告曝光 |
onError(String var1,String var2) | 广告渲染/曝光失败(var1:错误码,var2:错误信息) |
onRenderSuccess(View view) | 渲染成功,view就是广告的控件,通过addView展示 |
onClick(View view) | 广告点击 |
onClose(View view) | 广告关闭 |
Draw信息流广告
java代码
OSETDrawNative.getInstance()
.setContext(this)
.setUserId(Common.USER_ID)
.setPosId(Common.POS_ID_DRAW_NATIVE)
.loadAd(OSETDrawNativeAdLoadListener);
OSETDrawNative | draw视频广告 |
---|
setContext(Activity activity) | 设置Activity |
setUserId(String userId) | 设置UserId。注意,这里会全局设置,设置以后对任意类型广告都生效,如果想更改,请在播放广告之前调用广告对象的setUserId方法,广告对象的setUserId只对当前设置的广告对象有效,不会影响全局设置 |
setPosId(String posId) | 设置广告位id |
loadAd(OSETNativeViewAdLoadListener var) | 加载广告(var 广告加载结果监听) |
startLoad() | 预加载广告,不会回调 OSETNativeViewAdLoadListener 监听,可以提前加载广告,节省首次广告加载曝光时间,但是注意,预加载广告会获取设备id等用户隐私信息,审核可能会被拒,请酌情使用 |
OSETNativeViewAdLoadListener | draw视频广告加载监听 |
---|
onLoadSuccess(OSETDrawNativeAd osetDrawNativeAd) | 广告加载成功,osetDrawNativeAd:广告对象 |
onLoadFail(String errorCode, String errorMessage) | 广告加载失败,errorCode:错误码,errorMessage:错误信息 |
OSETDrawNativeAd | draw视频广告对象 |
---|
setUserId(String userId) | 设置userId,注意:这里设置只对单个广告对象有效,并且不影响全局广告的设置。一旦广告曝光结束,这里设置的userid不再持有 |
getECPM() | 获取广告ecpm,单位:千次分:注意,只有自营奇点广告返回价格,聚合广告AdSet不返回价格 |
getRequestId() | 获取单个广告对象唯一ID |
isUsable() | 广告是否有效,返回true:广告有效,false:广告已失效过期 。失效后的广告继续播放是没有收益的,在调用广告曝光前请先检查广告是否有效 |
bidSuccess(BidAdInfo bidAdInfo) | 广告竞胜上报,bidAdInfo:竞败的广告媒体信息 |
bidFail(BidAdInfo bidAdInfo) | 广告竞败上报,bidAdInfo:竞败的广告媒体信息 |
render(Activity, OSETDrawNativeListener) | 广告渲染,activity:Activity ,OSETDrawNativeListener:广告状态监听 |
destroy() | 对象销毁 |
OSETDrawNativeListener | draw视频广告状态监听 |
---|
onVideoAdStartPlay(View view) | 视频开始播放 |
onError(String var1,String var2) | 广告渲染/曝光失败(var1:错误码,var2:错误信息) |
onRenderSuccess(View view) | 渲染成功,view:广告的控件,通过addView展示 |
onVideoAdPaused(View view) | 广告暂停 |
onVideoAdContinuePlay(View view) | 广告暂停后播放 |
onVideoAdComplete(View view) | 广告播放完成 |
onClicked(View view) | 广告点击 |
onShow(View view) | 广告曝光 |
H5广告
使用方法
1、本质上H5广告加载的仍是安卓SDK的广告,demo中只是提供了一个安卓桥接H5打开广告页面的方案(具体详见 AdH5Activity 页面) 2、在安卓代码中,打开广告的方法参考不同的广告类型加载即可,如激励广告、插屏广告、全屏视频广告的加载方法
桥接方法参考
WebView mWebView = findViewById(R.id.webView);
mWebView.loadUrl("file:///android_asset/ad_h5.html");
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(this, "adSetSdkJSInterface");
@JavascriptInterface
public void showRewardAd(String adId) {
OSETRewardVideo.getInstance()
.setPosId(adId)
.setContext(this)
.loadAd(new OSETRewardAdLoadListener() {
@Override
public void onLoadSuccess(OSETRewardAd osetRewardAd) {
osetRewardAd.showAd(AdH5Activity.this, new OSETRewardListener());
}
@Override
public void onLoadFail(String s, String s1) {
}
});
}
@JavascriptInterface
public void showInsertAd(String adId) {
OSETInterstitial.getInstance()
.setPosId(adId)
.setContext(AdH5Activity.this)
.loadAd(new OSETInterstitialAdLoadListener() {
@Override
public void onLoadSuccess(OSETInterstitialAd osetInterstitialAd) {
osetInterstitialAd.showAd(AdH5Activity.this, new OSETInterstitialListener());
}
@Override
public void onLoadFail(String s, String s1) {
}
});
}
@JavascriptInterface
public void showFullVideoAd(String adId) {
OSETFullVideo.getInstance()
.setPosId(adId)
.setContext(this)
.loadAd(new OSETFullAdLoadListener() {
@Override
public void onLoadSuccess(OSETFullAd osetFullAd) {
osetFullAd.showAd(AdH5Activity.this, new OSETFullVideoListener());
}
@Override
public void onLoadFail(String s, String s1) {
}
});
}
短视频短剧内容插件
1、打开Activity播放短视频,只支持普通短视频。其他类型(例如双排短视频、短剧等)不支持
VideoContentConfig videoContentConfig = new VideoContentConfig.Builder()
.setRewardDownTime(30)
.setRewardCount(2)
.setNeedBack(true)
.build();
OSETVideoContent
.getInstance()
.setPosId(Common.POS_ID_VIDEO_CONTENT)
.showByActivity(this, videoContentConfig, new OSETVideoContentTaskListener())
VideoContentConfig | 短视频内容配置 |
---|
setRewardDownTime | 单词奖励需要浏览的时间,单位s,根据业务需求设定,不用可不设置 |
setRewardCount | 奖励次数2 |
setNeedBack | 是否需要返回按钮 |
OSETVideoContent | 视频内容 |
---|
setPosId | 视频内容id |
showByActivity (Activity var1,VideoContentConfig var2,OSETVideoContentTaskListener var3) | 跳转Activity播放短视频(var1:Activity, var2:短视频配置, var3:短视频播放状态回调) |
2、获取短视频/短剧fragment开发者自己渲染
OSETVideoContent.getInstance()
.setPosId(Common.POS_ID_VIDEO_CONTENT)
.loadRecommend(new OSETVideoContentListener())
OSETVideoContent.getInstance()
.setPosId(Common.POS_ID_VIDEO_CONTENT_FEED)
.loadPopular(new OSETVideoContentListener())
OSETVideoContent.getInstance()
.setPosId(Common.POS_ID_VIDEO_HORIZONTAL_FEED)
.loadDiscover(new OSETVideoContentListener())
OSETVideoContent.getInstance()
.setPosId(Common.POS_ID_VIDEO_HORIZONTAL_FEED)
.loadTuBe(new OSETVideoTuBeListener())
@Override
public void onBackPressed() {
super.onBackPressed();
if (videoContentResult != null) {
if (videoContentResult.onBackPress()) {
return;
}
}
super.onBackPressed();
}
OSETVideoContent | 视频内容 |
---|
setPosId | 视频内容id |
loadRecommend | 短视频 |
loadPopular | 双排短视频 |
loadDiscover | 长视频 |
loadTuBe | 短剧 |
OSETVideoContentListener | 视频内容回调 |
---|
onLoadFail(String var1,String var2) | 加载失败(var1:错误码,var2:错误信息) |
onLoadSuccess(VideoContentResult var1) | 加载成功(var1:视频内容对象) |
onVideoStart(int var1, boolean var2, String var3) | 广告播放(var1:视频索引, var2:是否是广告, var3 视频唯一id) |
onVideoPause(int var1, boolean var2, String var3) | 页面pause(var1:视频索引, var2:是否是广告, var3 视频唯一id) |
onVideoResume(int var1, boolean var2, String var3) | 页面reseume(var1:视频索引, var2:是否是广告, var3 视频唯一id) |
onVideoComplete(int var1, boolean var2, String var3) | 视频播放完成(var1:视频索引, var2:是否是广告, var3 视频唯一id) |
onVideoPlayError(int var1, boolean var2, String var3, String var4, String var5) | 视频播放错误(var1:视频索引, var2:是否是广告, var3 视频唯一id,var4:错误码,var5:错误信息) |
OSETVideoTuBeListener | 短剧回调 |
---|
onLoadFail(String var1, String var2) | 加载失败(var1:错误码,var2:错误信息) |
onLoadSuccess(VideoContentResult var) | 加载成功(var:视频内容对象) |
unlockFail(String var1, String var2) | 解锁失败(var1:错误码, var2:错误信息) |
unlockSuccess() | 解锁成功() |
VideoContentResult | 视频内容/短剧加载结果 |
---|
getFragment() | 获取短剧/视频内容Fragment |
onBackPress() | 返回处理 |
destroy() | 对象销毁 |
资讯内容
1. activity模式加载
OSETNews.getInstance().setInsertId(Common.POS_ID_Insert);
OSETNews.getInstance().setBannerId(Common.POS_ID_Banner);
OSETNews.getInstance().showNews(activity, 信息流模块id, time,num,OSETNewsListener);
2. fragment模式加载
OSETNews.getInstance().setInsertId(Common.POS_ID_Insert);
OSETNews.getInstance().setBannerId(Common.POS_ID_Banner);
getSupportFragmentManager().beginTransaction()
.replace(R.id.fl, OSETNews.getInstance()
.getNewsFragment(activity, 信息流模块id,视频内容id(可传""), num))
.commit();
幸运大抽奖
OSETDial.getInstance().show(activity, "大奖的描述", int(大奖的概率:0到100), "小奖的描述",
banner广告位id, 插屏广告位id, 激励视频广告位id, int(免费摇奖次数),
int(每天最多摇奖次数),OSETDialListener );
星座运势
OSETConstellatory.getInstance().show(activity, banner广告位id,
插屏广告位id, 激励视频广告位id,OSETConstellatoryListener);
老黄历
OSETAlmanac.getInstance().showAlmanac(activity,激励视频广告位id,
banner广告位id, OSETVideoListener);
周公解梦
OSETOneiromancy.getInstance().showOneiromancy(activity,激励视频广告位id,
banner广告位id, OSETVideoListener);
天气预报
OSETWeather.getInstance().showWeather(activity, banner广告位id, 插屏广告位id,
激励视频广告位id, OSETVideoListener);
学习天地
new OSETStudy().showStudy(activity, 激励视频广告位id, 插屏广告位id, banner广告位id,
答题数量(int), OSETVideoListener);
监听方法说明
信息流模块监听
new OSETNewsListener() {
@Override
public void onTimeOver() {
}
@Override
public void onClose() {
}
}
摇奖监听
new OSETDialListener() {
@Override
public void onTopPrize() {
}
@Override
public void onSmallAward() {
}
}
星座运势监听
new OSETConstellatoryListener() {
@Override
public void onReward(String key) {
}
}