目录
[TOC]
尊敬的开发者朋友,欢迎您使用ADJg广告聚合SDK。通过本文档,您可以快速完成多平台广告SDK的集成。
注意:本SDK仅支持中国大陆地区;如需发布到Google Play,请勿引入本SDK及相关依赖文件。
ADJg广告聚合SDK主要由ADJg核心SDK(简称ADJgSdk)和一个或多个三方平台适配器SDK(简称AdapterSdk)组成,开发者可以自由的在后台配置中选择需要接入的三方广告平台,然后导入所对应的AdapterSdk,其中天目平台的AdapterSdk是必须导入的。
Name | 平台名称 | 平台别称 |
---|---|---|
jgads | 极光Ads | 极光Ads |
tianmu | 天目 | 天目 |
gdt | 优量汇 | 优量汇 |
toutiao | 头条 | 穿山甲 |
baidu | 百度 | 百青藤 |
ksad | 快手 | 快手 |
mintegral | Mintegral(汇量) | Mobvsita |
jiguang | 极光联盟 | 极光联盟 |
Name | 大小 | 版本号 | MD5 |
---|---|---|---|
ADJg基础包 | 0.3M | V3.7.1.02171 | 905b424236e23abace1c1297df6ddd64 |
OAID | 1.1M | — | — |
Name | 容量 | 版本号 | MD5 |
---|---|---|---|
jgads | 1M | v1.3.5.11294 | 0edc8bf5b87249c6dbf57839083f4502 |
tianmu | 1.4M | v2.0.1.02151 | 96f1571a36c1eef9497526d5eb18ea0c |
gdt | 1.41M | v4.510.1380.02151 | c144bb669145aac2632166f544b14dfa |
toutiao | 4.11M | v5.1.0.2.02151 | 82bc6587fac539dfedbdf472ebe737db |
baidu | 1.20M | v9.26.02151 | 1c7c6466aaccd2609ca397803428058d |
ksad | 2.30M | v3.3.38.02151 | 4356df0b0e32f7f99d9308d256cb1469 |
mintegral | 2.80M | v16.3.57.02151 | 91cce511c030c92b5f22a4914909c6c8 |
jiguang | 0.67M | v5.0.6.03011 | 2e84fb765148742528b092c4e3123c7d |
类型 | 简介 | 适用场景 |
---|---|---|
开屏广告 | 开屏广告以APP启动作为曝光时机的模板广告,需要将开屏广告视图添加到承载的广告容器中,提供5s可感知广告展示 | APP启动界面常会使用开屏广告 |
Banner广告 | Banner广告是横向贯穿整个可视页面的模板广告,需要将Banner广告视图添加到承载的广告容器中 | 任意界面的固定位置,不建议放在RecyclerView、List这种滚动布局中当item |
信息流广告 | 信息流广告集合原生自渲染广告和模板广告两种,可以通过后台配置和SDK相关方法判断进行不同的渲染,以满足不同的样式需求 | 信息流列表,轮播控件,固定位置都是较为适合 |
激励视频广告 | 将短视频融入到APP场景当中,用户观看短视频广告后可以给予一些应用内奖励 | 常出现在游戏的复活、任务等位置,或者网服类APP的一些增值服务场景 |
插屏广告 | 插屏广告是移动广告的一种常见形式,在应用流程中弹出,当应用展示插屏广告时,用户可以选择点击广告,访问其目标网址,也可以将其关闭并返回应用 | 在应用执行流程的自然停顿点,适合投放这类广告 |
极光联盟接入必备配置,极光联盟渠道特有广告样式(非极光Ads)对接地址
请参考文档
版本号格式为3.0.0.xxxxn,其中xxxx代表日期,最后一位n为版本扩展号;
版本号格式为 y.y.xxxxn,y.y代表三方SDK版本号(可能两位、也可能三位、四位...),其中xxxx代表日期,最后一位n为版本扩展号;
AdapterSdk会指定支持的ADJgSdk版本,如果导入的AdapterSdk和ADJgSdk版本不对应会抛出异常提醒开发者使用相对应的版本;
接入环境:Android Studio。
首先需要在项目的build.gradle文件中引入如下配置:
allprojects {
repositories {
...
google()
jcenter()
mavenCentral()
//天目渠道maven地址
maven { url "https://maven.admobile.top/repository/maven-releases/" }
//汇量渠道maven地址(可选)
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_support/" }
}
}
将广告所需要的依赖集成进去,AdapterSdk可根据接入平台情况进行选择接入。
dependencies {
// support支持库,如果是AndroidX请使用对应的支持库
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:design:28.0.0'
// ADJg主SDK ,必须的
implementation "cn.jiguang.sdk.ad:core:3.7.1.02171"
//OAID ,必须的
implementation "cn.jiguang.sdk.ad:oaid:1.0.25.08024"
注意注意注意
需要在assets加入supplierconfig.json文件,不然oaid无法生效
注意注意注意
implementation(name: 'oaid_sdk_1.0.25', ext: 'aar')
// 极光Ads,必须的
implementation "cn.jiguang.sdk.ad.adapter:jgads:1.3.5.11294"
// 天目,必须的
implementation "cn.jiguang.sdk.ad.adapter:tianmu:2.0.1.02151"
// 优量汇AdapterSdk,可选的
implementation "cn.jiguang.sdk.ad.adapter:gdt:4.510.1380.02151"
// 头条AdapterSdk,可选的
implementation "cn.jiguang.sdk.ad.adapter:toutiao:5.1.0.2.02151"
// 百度增强版AdapterSdk,可选的
implementation "cn.jiguang.sdk.ad.adapter:baidu-enhanced:9.26.02151"
// 快手AdapterSdk,可选的
implementation "cn.jiguang.sdk.ad.adapter:ksadbase:3.3.38.02151"
// Mintegral(汇量) AdapterSdk,可选的
implementation "cn.jiguang.sdk.ad.adapter:mintegral:16.3.57.02151"
// 极光联盟 AdapterSdk,可选的,和极光Ads不是同一个广告SDK
implementation "cn.jiguang.sdk.ad.adapter:jiguang:5.0.6.03011"
implementation 'cn.jiguang.sdk:jcore:4.1.0'
}
支持主流架构,x86架构暂不支持
ndk {
// 设置支持的SO库架构,暂不支持x86
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
AdapterSdk默认已经集成了三方的广告SDK,如果因为项目中也使用了相同的三方广告SDK而发生冲突,可通过以下方法尝试避免或解决;
移除己方使用的三方广告SDK和相关配置;
使用AdapterSdk的without集成方式,该方式没有集成三方广告SDK和配置,开发者可自行集成三方广告SDK,但是需要注意,我们的AdapterSdk是基于三方广告SDK某个版本开发的,如果自行集成三方广告SDK,需要承担三方广告SDK版本不一致可能引起的兼容性和其他不可预知问题;
// 优量汇AdapterSdk的without集成示例,其中x.x.x.x为AdapterSdk版本号
implementation 'cn.jiguang.sdk.ad.adapter:gdt-without:x.x.x.x'
激励、全屏视频、插屏等广告对象一次成功拉取的广告数据只允许展示一次,还需展示请再次加载广告。
Mintegral(汇量)渠道与微信sdk冲突解决办法 由于Mintegral渠道16.1.7版本支持小程序跳转功能,若媒体已导入opensdk,会导致冲突,可通过以下方式移除Mintegral适配器中的opensdk
('cn.jiguang.sdk.ad.adapter:mintegral:16.3.57.02151') {
exclude group: "com.tencent.mm.opensdk", module: "wechat-sdk-android"
}
Android10之后IMEI等数据无法获取,这对广告投放将产生一定影响,所以移动安全联盟(MSA)提出OAID来代替IMEI参与广告投放决策,OAID的支持会在一定程度上影响广告收益;
OAID是必须集成项,没有集成将会抛出异常提醒开发者,OAID集成并不繁琐,SDK中已经进行了OAID的封装,只需以下几步即可完成OAID的支持;
导入安全联盟的OAID支持库 oaid_sdk_1.0.25.aar,可在Demo的libs目录下找到,强烈建议使用和Demo中一样版本的OAID库(包括项目中已存在的依赖的oaid版本);
媒体如果想获取ADJg中的oaid,可以使用改方法进行获取ADJgSdk.getInstance().getOAID(),由于oaid的获取是异步的,可能获取到空字符串的情况。
将Demo中assets文件夹下的supplierconfig.json文件复制到自己的assets目录下并按照supplierconfig.json文件中的说明进行OAID的 AppId 配置,supplierconfig.json文件名不可修改。需要设置 appid 的部分需要去对应厂商的应用商店的应用信息中查看。;
添加以下混淆配置;
-keep class com.bun.miitmdid.core.** {*;}
-keep class XI.CA.XI.**{*;}
-keep class XI.K0.XI.**{*;}
-keep class XI.XI.K0.**{*;}
-keep class XI.vs.K0.**{*;}
-keep class XI.xo.XI.XI.**{*;}
-keep class com.asus.msa.SupplementaryDID.**{*;}
-keep class com.asus.msa.sdid.**{*;}
-keep class com.bun.lib.**{*;}
-keep class com.bun.miitmdid.**{*;}
-keep class com.huawei.hms.ads.identifier.**{*;}
-keep class com.samsung.android.deviceidservice.**{*;}
-keep class com.zui.opendeviceidlibrary.**{*;}
-keep class org.json.**{*;}
-keep public class com.netease.nis.sdkwrapper.Utils {public <methods>;}
修改AndroidManifest.xml,OAID SDK minSdkVersion为21,如果应用的minSdkVersion小于21,则添加:
// 如果导入后有冲突可以不添加,jg中已经添加过了
<uses-sdk tools:overrideLibrary="com.bun.miitmdid"/>
PS:需要更多帮助可参考目录下《移动智能终端补充设备标识体系统一调用SDK开发者说明文档》;
使用SDK时可能需要以下权限,为了保证使用广告的正确,请在6.0及以上的手机中使用SDK前及时申请。
<!-- 广告必须的权限,允许网络访问 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 广告必须的权限,允许安装未知来源权限(如下载类广告下载完成后唤起安卓) -->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<!-- 广告必须的权限,地理位置权限,获取位置信息,用于广告投放。精准广告投放及反作弊 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 如果有视频相关的广告播放请务必添加,屏幕保持唤醒不锁屏(部分渠道未添加该权限时会出现视频类广告黑屏)-->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- 如果接入了优量汇渠道,必须加入以下权限,不然会导致优量汇填充失败 -->
<!-- 允许应用获取 MAC 地址。广告投放及广告监测归因、反作弊 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 允许应用检测网络状态,SDK 会根据网络状态选择是否发送数据 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 影响广告填充,强烈建议的权限,获取设备信息,允许应用获取手机状态(包括手机号码、IMEI、IMSI权限等)。广告投放及广告监测归因、反作弊 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 为了提高广告收益,建议设置的权限,写入权限,用于下载类广告数据写入 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 为了提高广告收益,建议设置的权限,读取权限,用于下载类广告数据读取(如判断是否已下载过该APK,避免重复下载)-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 为了提高广告收益,建议设置的权限,获取粗略位置信息。精准广告投放及反作弊 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
如果支持库是support
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/adjg_file_paths" />
</provider>
如果支持库为androidx
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/adjg_file_paths" />
</provider>
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_path" path="." />
<external-files-path name="external_files_path" path="." />
</paths>
PS : 为了适配下载和安装相关功能,在工程中引用的包 com.android.support:support-v4:x.x.x请使用26.0.0及以上版本。
<!--优量汇配置开始-->
<provider
android:name="com.qq.e.comm.GDTFileProvider"
android:authorities="${applicationId}.gdt.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/gdt_file_path" />
</provider>
<!--优量汇配置结束-->
<!--头条配置开始-->
<provider
android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
android:authorities="${applicationId}.TTFileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/adjg_toutiao_file_paths" />
</provider>
<provider
android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"
android:authorities="${applicationId}.TTMultiProvider"
android:exported="false" />
<!--头条配置结束-->
<!--百度配置开始-->
<activity
android:name="com.baidu.mobads.sdk.api.AppActivity"
android:configChanges="screenSize|keyboard|keyboardHidden|orientation"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity
android:name="com.baidu.mobads.sdk.api.MobRewardVideoActivity"
android:configChanges="screenSize|orientation|keyboardHidden"
android:launchMode="singleTask"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<provider
android:name="com.baidu.mobads.sdk.api.BdFileProvider"
android:authorities="${applicationId}.bd.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/bd_file_paths" />
</provider>
<!--百度配置结束-->
<!--汇量配置开始-->
<!--激励视频和插屏视频广告所需Activity-->
<activity
android:name="com.mbridge.msdk.reward.player.MBRewardVideoActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:excludeFromRecents="true" />
<!--插屏图片广告所需Activity-->
<activity
android:name="com.mbridge.msdk.interstitial.view.MBInterstitialActivity"
android:configChanges="orientation|screenSize"
android:excludeFromRecents="true" />
<!--交互广告所需Activity-->
<activity
android:name="com.mbridge.msdk.interactiveads.activity.InteractiveShowActivity"
android:excludeFromRecents="true"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<receiver android:name="com.mbridge.msdk.click.AppReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
<!--汇量配置结束-->
需要在 AndroidManifest.xml 添加依赖声明uses-library android:name="org.apache.http.legacy" android:required="false", 且 application标签中添加 android:usesCleartextTraffic="true",适配网络http请求,否则 SDK可能无法正常工作,接入代码示例如下:
<application
android:name=".MyApplication"
... ...
android:usesCleartextTraffic="true">
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
... ...
</application>
如果打包时开启了混淆配置,请按需添加以下混淆内容,并保证广告资源文件不被混淆
-ignorewarnings
# v4、v7(如果是Support支持库需添加)
-keep class android.support.v4.**{public *;}
-keep class android.support.v7.**{public *;}
# AndroidX (如果是AndroidX支持库需添加)
-keep class com.google.android.material.** {*;}
-keep class androidx.** {*;}
-keep class * extends androidx.**
# 资源文件混淆配置
-keep class **.R$* { *; }
-keep public class **.R$*{
public static final int *;
}
-keepclassmembers class **.R$* {
public static <fields>;
}
# ADJgSdk混淆
-dontwarn cn.jiguang.jgssp.**
-dontwarn org.apache.commons.**
-keep class cn.jiguang.jgssp.**{public *;}
-keep class com.android.**{*;}
-keep class com.ciba.**{ *; }
-keep class org.apache.**{*;}
# okhttp
-dontwarn okhttp3.**
-keep class okhttp3.**{*;}
# OAID混淆
-keep class com.bun.miitmdid.core.** {*;}
-keep class XI.CA.XI.**{*;}
-keep class XI.K0.XI.**{*;}
-keep class XI.XI.K0.**{*;}
-keep class XI.vs.K0.**{*;}
-keep class XI.xo.XI.XI.**{*;}
-keep class com.asus.msa.SupplementaryDID.**{*;}
-keep class com.asus.msa.sdid.**{*;}
-keep class com.bun.lib.**{*;}
-keep class com.bun.miitmdid.**{*;}
-keep class com.huawei.hms.ads.identifier.**{*;}
-keep class com.samsung.android.deviceidservice.**{*;}
-keep class org.json.**{*;}
-keep public class com.netease.nis.sdkwrapper.Utils {public <methods>;}
# 优量汇广告平台混淆
-keep class com.qq.e.** {public protected *;}
-keep class MTT.ThirdAppInfoNew {*;}
-keep class com.tencent.** {*;}
# 百度广告SDK混淆
-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.baidu.mobad.** { *; }
# 头条广告平台混淆
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
-keep class com.bytedance.sdk.openadsdk.** {*;}
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class com.pgl.sys.ces.* {*;}
-keep class com.bytedance.embed_dr.** {*;}
-keep class com.bytedance.embedapplog.** {*;}
# mintegral广告平台混淆
-dontwarn com.mintegral.**
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.mbridge.** {*; }
-keep interface com.mbridge.** {*; }
-keep class android.support.v4.** { *; }
-dontwarn com.mbridge.**
-keep class **.R$* { public static final int mbridge*; }
# 快手广告平台混淆
-keep class org.chromium.** { *; }
-keep class aegon.chrome.** { *; }
-keep class com.kwai.**{ *; }
-keep class com.kwad.**{ *; }
-dontwarn com.kwai.**
-dontwarn com.kwad.**
-dontwarn com.ksad.**
-dontwarn aegon.chrome.**
-keep class com.kwad.sdk.** { *;}
-keep class com.ksad.download.** { *;}
-keep class com.kwai.filedownloader.** { *;}
-keepclasseswithmembernames class * { native <methods>;}
# 极光Ads混淆
-keep class com.junion.**{ *; }
-keep class junion.com.** { *; }
-keep interface junion.com.** { *; }
# 天目广告混淆
-keep class com.tianmu.**{ *; }
-keep class tianmu.com.** { *; }
-keep interface tianmu.com.** { *; }
# 极光联盟混淆
-dontoptimize
-dontpreverify
-dontwarn cn.jpush.**
-keep class cn.jpush.** { *; }
-dontwarn cn.jiguang.**
-keep class cn.jiguang.** { *; }
# Jgid的混淆规则
-keep class jgssp.com.** { *; }
-keep interface jgssp.com.** { *; }
-keep interface cn.jiguang.jgssp.oaid.IGetter{public *;}
为了保证您的App顺利通过检测,结合当前监管关注重点,请务必将ADJgSdk的初始化放在用户同意隐私政策之后。
如合规有更高要求,可以使用以下方法进行控制,但会严重降低广告收益,可根据实际需求进行设置,或联系我发运营人员获取建议。 同时ADJgSDK初始化时开放以下接口,确保mac,imei等设备标识不被读取(目前部分三方广告平台支持):
//【慎改】是否同意隐私政策,将禁用一切设备信息读起严重影响收益
.agreePrivacyStrategy(true)
// 是否可获取定位数据
.isCanUseLocation(true)
// 是否可获取设备信息
.isCanUsePhoneState(true)
// 是否可读取设备安装列表
.isCanReadInstallList(true)
// 是否可读取设备外部读写权限
.isCanUseReadWriteExternal(true)
另外还可从根源上解决设备标识被读取等问题,可对配置清单中的权限增加tools:node="remove"配置; 如下:
<!-- 影响广告填充,强烈建议的权限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
<!-- 为了提高广告收益,建议设置的权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="remove" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove" />
以上操作会对广告填充造成影响,请斟酌使用。
ADJg的个性化开关可统一控制第三方广告SDK的个性化开关接口,目前支持天目、优量汇、穿山甲、百度、快手、汇量;
// true为开启、false为关闭,请在初始化ADJg后进行控制
ADJgSdk.setPersonalizedAdEnabled(boolean personalized);
统一由可选参数 : CustomDeviceInfoController 进行设置
ADJgSdk.getInstance().init(
this,
new ADJgInitConfig.Builder()
...
// 是否可读取wifi状态
.isCanUseWifiState(false)
// 是否可获取定位数据
.isCanUseLocation(false)
// 是否可获取设备信息
.isCanUsePhoneState(false)
.setCustomDeviceInfoController(new CustomDeviceInfoController() {
/**
* 当isCanUsePhoneState=false时,可传入imei信息,天目使用您传入的imei信息
* @return imei信息
*/
@Override
public String getImei() {
return super.getImei();
}
/**
* 当isCanUsePhoneState=false时,可传入AndroidId信息,天目使用您传入的AndroidId信息
* @return androidid信息
*/
@Override
public String getAndroidId() {
return super.getAndroidId();
}
/**
* 当isCanUseLocation=false时,可传入地理位置信息,天目使用您传入的地理位置信息
* @return 极光地理位置参数JUnionLocationProvider
*/
@Override
public Location getLocation() {
return super.getLocation();
}
/**
* 当isCanUseWifiState=false时,可传入Mac地址信息,天目使用您传入的Mac地址信息
* @return Mac地址
*/
@Override
public String getMacAddress() {
return super.getMacAddress();
}
/**
* 开发者可以传入oaid ,若不传或为空值,则不使用oaid信息
* @return oaid
*/
@Override
public String getOaid() {
return super.getOaid();
}
/**
* 开发者可以传入vaid ,若不传或为空值,则不使用oaid信息
* @return vaid
*/
@Override
public String getVaid() {
return super.getVaid();
}
})
...
.build()
);
在隐私同意后进行SDK的初始化(详情请参考Demo SplashAdActivity.java类)
ADJgSdk
cn.jiguang.jgssp.ADJgSdk
方法名 | 介绍 |
---|---|
init(Context context, ADJgInitConfig config) | 构造方法。参数说明:context(初始化SDK的上下文对象)、config(初始化配置信息)。 |
init(Context context, ADJgInitConfig config, ADJgInitListener listener) | 构造方法。参数说明:context(初始化SDK的上下文对象)、config(初始化配置信息)、listener(初始化状态监听)。 |
setPersonalizedAdEnabled(boolean enablePersonalized) | 设置个性化推荐开关。参数说明:enablePersonalized(true:开启,false:关闭, 默认:true)。 |
getPersonalizedAdEnabled() | 获取个性化推荐状态,true:开启,false:关闭。 |
ADJgInitConfig
cn.jiguang.jgssp.config.ADJgInitConfig
方法名 | 介绍 |
---|---|
appId(String appId) | 设置AppId,必填参数。 |
debug(boolean debug) | 设置是否是Debug模式。参数说明:debug(true:开启,false:关闭, 默认:false)开发阶段以及提交测试阶段可设置为true,方便异常排查。 |
isCanUseLocation(boolean isCanUseLocation) | 设置SDK是否可以使用定位信息。参数说明:isCanUseLocation(true:开启,false:关闭, 默认:true)。 |
isCanUsePhoneState(boolean isCanUsePhoneState) | 设置SDK是否可以使用IMEI等设备信息。参数说明:isCanUsePhoneState(true:开启,false:关闭, 默认:true)。 |
isCanUseWifiState(boolean isCanUseWifiState) | 设置SDK是否可以使用WIFI信息。参数说明:isCanUseWifiState(true:开启,false:关闭, 默认:true)。 |
agreePrivacyStrategy(boolean agreePrivacyStrategy) | 是否同意隐私政策。参数说明:agreePrivacyStrategy(true:开启,false:关闭, 默认:true)。 |
filterThirdQuestion(boolean filterThirdQuestion) | 设置是否过滤第三方平台的问题广告(例如: 已知某个广告平台在某些机型的Banner广告可能存在问题,如果开启过滤,则在该机型将不再去获取该平台的Banner广告)。参数说明:filterThirdQuestion(true:开启,false:关闭, 默认:true)。 |
setCustomDeviceInfoController(CustomDeviceInfoController controller) | 自定义设备信息。可选参数。 请参考5.7 向SDK传入设备标识 |
CustomDeviceInfoController
cn.jiguang.jgssp.config.CustomDeviceInfoController
方法名 | 介绍 |
---|---|
getImei() | 当isCanUsePhoneState=false时,可传入imei信息,使用您传入的imei信息。 |
getAndroidId() | 当isCanUsePhoneState=false时,可传入AndroidId信息,使用您传入的AndroidId信息。 |
getLocation() | 当isCanUseLocation=false时,可传入地理位置信息,使用您传入的地理位置信息。 |
getMacAddress() | 当isCanUseWifiState=false时,可传入Mac地址信息,使用您传入的Mac地址信息。 |
getOaid() | 开发者可以传入oaid ,若不传或为空值,则不使用oaid信息。 |
getVaid() | 开发者可以传入vaid ,若不传或为空值,则不使用oaid信息。 |
// 初始化ADJg广告SDK
ADJgSdk.getInstance().init(this, new ADJgInitConfig.Builder()
// 设置APPID,必须的
.appId(String appId)
// 是否开启Debug,开启会有详细的日志信息打印,如果用上ADJgToastUtil工具还会弹出toast提示。
// 注意上线后请置为false
.debug(boolean debug)
...
.build());
PS :AppId通过后台配置生成,初始化必须在主线程中进行,SDK暂不支持多进程。
开屏广告建议在闪屏页进行展示,开屏广告的宽度和高度取决于容器的宽高,都是会撑满广告容器;开屏广告的高度必须大于等于屏幕高度(手机屏幕完整高度,包括状态栏之类)的75%,否则可能会影响收益计费(优量汇的开屏甚至会影响跳过按钮的回调)。
ADJgSplashAd
cn.jiguang.jgssp.ad.ADJgSplashAd
方法名 | 介绍 |
---|---|
ADJgSplashAd(Activity activity, ViewGroup container) | 构造方法。参数说明:activity(当前页面activity对象)、container(展示广告视图的父容器)。 |
ADJgSplashAd(Fragment fragment, ViewGroup container) | 构造方法。参数说明:fragment(当前页面fragment对象)、container(展示广告视图的父容器)。 |
setLocalExtraParams(ADJgExtraParams extraParams) | 设置额外参数。参数说明:extraParams(广告额外参数)。 |
setImmersive(boolean isImmersive) | 设置沉浸效果。参数说明:isImmersive(true:沉浸,false:不沉浸,影响跳过按钮位置)。 |
setOnlySupportPlatform(String platform) | 设置广告定向,仅请求某一渠道。参数说明:platform(渠道名)。 |
setListener(ADJgSplashAdListener listener) | 设置广告相关状态。参数说明:listener(广告状态监听器)。 |
loadAd(String posId) | 请求广告并展示。参数说明:posId(广告位ID)。 |
loadOnly(String posId) | 仅请求广告不展示。参数说明:posId(广告位ID)。 |
loadAd(String posId, ADJgNetworkRequestInfo requestInfo) | 请求打底广告并展示,目前支持优量汇、头条、百度、快手。参数说明:posId(广告位ID)、requestInfo(打底广告对象,接口地址Gitee地址、Github地址)。 |
showSplash() | 展示广告。使用loadOnly方法去加载广告时,可在onAdReceive回调后去展示广告。 |
release() | 释放广告。 |
ADJgExtraParams
cn.jiguang.jgssp.ad.entity.ADJgExtraParams
方法名 | 介绍 |
---|---|
ADJgExtraParams.Builder().build() | 构造方法。 |
adSize(ADJgAdSize adSize) | 设置开屏视图宽高。参数说明:adSize(设置整个广告视图预期宽高(目前仅头条平台需要,没有接入头条可不设置),单位为px,如果不设置头条开屏广告视图将会以9 : 16的比例进行填充,小屏幕手机可能会出现素材被压缩的情况,大屏幕设备可能出现留白)。 |
ADJgAdSize
cn.jiguang.jgssp.ad.entity.ADJgAdSize
方法名 | 介绍 |
---|---|
ADJgAdSize(int width, int height) | 构造方法。参数说明: width(容器宽度,单位:px)请传入实际宽度、 height(容器高度,单位:px)请传入实际高度。 |
ADJgSplashAdListener
cn.jiguang.jgssp.ad.listener.ADJgSplashAdListener
方法名 | 介绍 |
---|---|
onADTick(long millisUntilFinished) | 广告倒计时剩余时长回调。参数说明:millisUntilFinished(剩余时间,单位:秒))。 |
onAdReceive(ADJgAdInfo adInfo) | 广告加载成功回调。 |
onAdExpose(ADJgAdInfo adInfo) | 广告展示回调。 |
onAdClick(ADJgAdInfo adInfo) | 广告点击回调。 |
onAdSkip(ADJgAdInfo adInfo) | 广告跳过回调,用户点击跳过按钮时触发。 |
onAdClose(ADJgAdInfo adInfo) | 广告关闭回调,用户点击跳过按钮、触发落地页后返回开屏页、倒计时结束,则触发。 |
onReward(ADJgAdInfo adInfo) | 广告奖励回调,目前仅优量汇渠道有效。 |
onAdFailed(ADJgError error) | 广告失败回调。参数说明:error(广告错误信息)。 |
// 创建开屏广告实例,第一个参数可以是Activity或Fragment,第二个参数是广告容器
ADJgSplashAd splashAd = new ADJgSplashAd(Activity activity, ViewGroup container);
// 创建额外参数实例
ADJgExtraParams extraParams = new ADJgExtraParams.Builder()
.adSize(new ADJgAdSize(int width, int height))
.build();
// 如果开屏容器不是全屏可以设置额外参数
splashAd.setLocalExtraParams(extraParams);
// 设置开屏广告监听
splashAd.setListener(new ADJgSplashAdListener() {
@Override
public void onADTick(long countdownSeconds) {
// 如果没有设置自定义跳过按钮不会回调该方法(单位为秒)
}
@Override
public void onReward(ADJgAdInfo adInfo) {
// 目前仅优量汇渠道支持该回调
}
@Override
public void onAdSkip(ADJgAdInfo adInfo) {
// 广告跳过回调,不一定准确,埋点数据仅供参考
}
@Override
public void onAdReceive(ADJgAdInfo adInfo) {
// 广告获取成功回调
}
@Override
public void onAdExpose(ADJgAdInfo adInfo) {
// 广告展示回调,有展示回调不一定是有效曝光,如网络等情况导致上报失败
}
@Override
public void onAdClick(ADJgAdInfo adInfo) {
// 广告点击回调,有点击回调不一定是有效点击,如网络等情况导致上报失败
}
@Override
public void onAdClose(ADJgAdInfo adInfo) {
// 广告关闭回调,需要在此进行页面跳转
}
@Override
public void onAdFailed(ADJgError error) {
// 广告关闭回调,需要在此进行页面跳转
}
});
// 加载并展示开屏广告
splashAd.loadAd(String posId);
// 创建广告对象的逻辑与6.2.2的案例相同,不同点在loadAd
...
// 仅加载开屏广告
splashAd.loadOnly(String posId);
// 需要开发者在onAdReceive回调之后再展示开屏广告
...
public void onAdReceive(ADJgAdInfo adInfo) {
// 广告获取成功回调...
// 展示开屏广告
splashAd.showSplash();
}
...
Banner横幅广告建议放置在 固定位置,而非ListView、RecyclerView、ViewPager等控件中充当Item,Banner广告支持多种尺寸比例,可在后台创建广告位时配置,Banner广告的宽度将会撑满容器,高度自适应,建议Banner广告容器高度也为自适应。
ADJgBannerAd
cn.jiguang.jgssp.ad.ADJgBannerAd
方法名 | 介绍 |
---|---|
ADJgBannerAd(Activity activity, ViewGroup container) | 构造方法。参数说明:activity(当前页面activity对象)、container(展示广告视图的父容器)。 |
ADJgBannerAd(Fragment fragment, ViewGroup container) | 构造方法。参数说明:fragment(当前页面fragment对象)、container(展示广告视图的父容器)。 |
setAutoRefreshInterval(long seconds) | 设置自刷新时间间隔。参数说明:seconds(0为不自动刷新(部分平台无效,如百度),其他取值范围为[30,120],单位秒)。 |
setOnlySupportPlatform(String platform) | 设置广告定向,仅请求某一渠道。参数说明:platform(渠道名)。 |
setListener(ADJgBannerAdListener listener) | 设置广告相关状态。参数说明:listener(广告状态监听器)。 |
setSceneId(String sceneId) | 设置广告场景id,用于区分同一个广告位在不同场景下使用的数据。参数说明:sceneId(场景ID)。 |
loadAd(String posId) | 请求广告并展示。参数说明:posId(广告位ID)。 |
release() | 释放广告。 |
ADJgBannerAdListener
cn.jiguang.jgssp.ad.listener.ADJgBannerAdListener
方法名 | 介绍 |
---|---|
onAdReceive(ADJgAdInfo adInfo) | 广告加载成功回调。 |
onAdExpose(ADJgAdInfo adInfo) | 广告展示回调。 |
onAdClick(ADJgAdInfo adInfo) | 广告点击回调。 |
onAdClose(ADJgAdInfo adInfo) | 广告关闭回调。 |
onAdFailed(ADJgError error) | 广告失败回调。参数说明:error(广告错误信息)。 |
// 创建Banner广告实例,第一个参数可以是Activity或Fragment,第二个参数是广告容器(请保证容器不会拦截点击、触摸等事件)
ADJgBannerAd bannerAd = new ADJgBannerAd(Activity activity, ViewGroup container);
// 设置Banner广告监听
bannerAd.setListener(new ADJgBannerAdListener() {
@Override
public void onAdReceive(ADJgAdInfo adInfo) {
// 广告获取成功回调
}
@Override
public void onAdExpose(ADJgAdInfo adInfo) {
// 广告展示回调,有展示回调不一定是有效曝光,如网络等情况导致上报失败
}
@Override
public void onAdClick(ADJgAdInfo adInfo) {
// 广告点击回调,有点击回调不一定是有效点击,如网络等情况导致上报失败
}
@Override
public void onAdClose(ADJgAdInfo adInfo) {
// 广告关闭回调
}
@Override
public void onAdFailed(ADJgError error) {
// 广告获取失败回调
}
});
// 加载Banner广告,参数为广告位ID,同一个ADJgBannerAd只有一次loadAd有效
bannerAd.loadAd(String posId);
信息流广告,具备自渲染和模板两种广告样式:自渲染是SDK将返回广告标题、描述、Icon、图片、多媒体视图等信息,开发者可通过自行拼装渲染成喜欢的样式;模板样式则是返回拼装好的广告视图,开发者只需将视图添加到相应容器即可,模板样式的容器高度建议是自适应。 请务必确保自渲染类型广告渲染时包含广告创意素材(至少包含一张图片)、平台logo、广告标识、关闭按钮;模板广告不得被遮挡。 注意,信息流广告点击关闭时,开发者需要在onAdClose回调中将广告容器隐藏或移除,避免如头条渠道点击关闭后视图依旧存在问题
ADJgBannerAd
cn.jiguang.jgssp.ad.ADJgNativeAd
方法名 | 介绍 |
---|---|
ADJgNativeAd(Activity activity) | 构造方法。参数说明:activity(当前页面activity对象)。 |
ADJgNativeAd(Fragment fragment) | 构造方法。参数说明:fragment(当前页面fragment对象)。 |
setLocalExtraParams(ADJgExtraParams extraParams) | 设置额外参数。参数说明:extraParams(广告额外参数)。 |
setOnlySupportPlatform(String platform) | 设置广告定向,仅请求某一渠道。参数说明:platform(渠道名)。 |
setListener(ADJgNativeAdListener listener) | 设置广告相关状态。参数说明:listener(广告状态监听器)。 |
setVideoListener(ADJgNativeVideoListener listener) | 设置广告相关状态。参数说明:listener(广告状态监听器)。 |
setSceneId(String sceneId) | 设置广告场景id,用于区分同一个广告位在不同场景下使用的数据。参数说明:sceneId(场景ID)。 |
loadAd(String posId) | 请求广告并展示。参数说明:posId(广告位ID)。 |
loadAd(String posId, int count) | 请求广告并展示。参数说明:posId(广告位ID)、count(广告数量,1~3条)。 |
release() | 释放广告。 |
ADJgExtraParams
cn.jiguang.jgssp.ad.entity.ADJgExtraParams
方法名 | 介绍 |
---|---|
ADJgExtraParams.Builder().build() | 构造方法。 |
adSize(ADJgAdSize adSize) | 设置整个广告视图预期宽高。参数说明:adSize(广告容器宽高,建议传入宽度为容器实际宽度,高度传入0(自适应高度))。 |
nativeAdMediaViewSize(ADJgAdSize adSize) | 设置广告视图中MediaView的预期宽高。参数说明:adSize(广告视频宽高,目前仅Inmobi平台需要,Inmobi的MediaView高度为自适应,没有接入Inmobi平台可不设置)。 |
nativeStyle(ADJgAdNativeStyle adNativeStyle) | 设置模板广告内外边距参数。参数说明:adNativeStyle(模板广告样式,目前仅天目平台需要)。 |
nativeAdPlayWithMute(boolean isMute) | 视频静音设置。参数说明:isMute(true:静音、false:不静音,默认:true)。 |
ADJgAdNativeStyle
cn.jiguang.jgssp.ad.entity.ADJgAdNativeStyle
方法名 | 介绍 |
---|---|
ADJgAdNativeStyle(int padding) | 构造方法。参数说明:padding(容器内边距)。 |
ADJgAdNativeStyle(int paddingLeft, int paddingTop, int paddingRight, int paddingBottom) | 构造方法。参数说明:paddingLeft(容器左边距)、paddingTop(容器上边距)、paddingRight(容器右边距)、paddingBottom(容器下边距)。 |
setTitleSize(int titleSize) | 设置标题大小。参数说明:titleSize(标题大小,单位:sp)。 |
setDescSize(int descSize) | 副标题大小。参数说明:descSize(副标题大小,单位:sp)。 |
ADJgNativeAdListener
cn.jiguang.jgssp.ad.listener.ADJgNativeAdListener
方法名 | 介绍 |
---|---|
onAdReceive(List<ADJgNativeAdInfo> adInfos) | 广告加载成功回调。 |
onAdExpose(ADJgNativeAdInfo adInfo) | 广告展示回调。 |
onAdClick(ADJgNativeAdInfo adInfo) | 广告点击回调。 |
onAdClose(ADJgNativeAdInfo adInfo) | 广告关闭回调,在此回调中移除页面中的视图。 |
onAdFailed(ADJgError error) | 广告失败回调。参数说明:error(广告错误信息)。 |
onRenderFailed(ADJgNativeAdInfo adInfo, ADJgError error) | 广告失败回调。参数说明:error(广告错误信息)。 |
ADJgNativeVideoListener
cn.jiguang.jgssp.ad.listener.ADJgNativeVideoListener
方法名 | 介绍 |
---|---|
onVideoLoad(ADJgNativeAdInfo nativeAdInfo) | 视频加载中回调。 |
onVideoStart(ADJgNativeAdInfo nativeAdInfo) | 视频播放回调。 |
onVideoPause(ADJgNativeAdInfo nativeAdInfo) | 视频暂停回调。 |
onVideoComplete(ADJgNativeAdInfo nativeAdInfo) | 视频播放完毕回调。 |
onVideoError(ADJgNativeAdInfo nativeAdInfo) | 视频异常回调。 |
信息流广告父对象ADJgNativeAdInfo
信息流模板和自渲染均继承自该类
cn.jiguang.jgssp.ad.data.ADJgNativeAdInfo
方法名 | 介绍 |
---|---|
isNativeExpress() | 广告类型,返回boolean类型,true模板类型,false自渲染类型。 |
当isNativeExpress返回true时,可强转为ADJgNativeExpressAdInfo类,否则转为ADJgNativeExpressAdInfo类
模板广告对象ADJgNativeExpressAdInfo继承自ADJgNativeAdInfo
cn.jiguang.jgssp.ad.data.ADJgNativeExpressAdInfo
方法名 | 类型 | 介绍 |
---|---|---|
getNativeExpressAdView() | View | 获取的是整个模板广告视图。 |
render(ViewGroup container) | void | 渲染视图,调用该方法才能响应曝光、点击等操作,影响广告收益。参数说明:container(承载广告的容器,不能为空) |
自渲染广告对象ADJgNativeFeedAdInfo继承自ADJgNativeAdInfo
cn.jiguang.jgssp.ad.data.ADJgNativeFeedAdInfo
方法名 | 类型 | 介绍 |
---|---|---|
getTitle() | String | 获取广告标题,可能为空。 |
getDesc() | String | 获取广告描述,可能为空。 |
getActionType() | int | 获取广告交互类型,未知:-1,应用内打开落地页:0,浏览器打开落地页:1,下载类型:2,拨打电话:3。 |
getCtaText() | String | 广告交互按钮文案,可能为空。 |
getIconUrl() | String | 广告图标地址,可能为空。 |
getImageUrl() | String | 图片地址,可能为空。。 |
getImageUrlList() | List | 广告图片集合,可能为空。 |
hasMediaView() | boolean | 判断是否包含多媒体广告视图。 |
getMediaView() | View | 获取的是多媒体广告视图。 |
registerViewForInteraction(ViewGroup container, View... actionViews) | void | 注册广告视图。参数说明:container(广告容器,若对接优量汇自渲染,此处一定要传入com.qq.e.ads.nativ.widget.NativeAdContainer布局,否则优量汇渠道无法曝光)、 actionViews(可点击的布局) |
registerCloseView(View close) | void | 注册关闭按钮。参数说明:close(点击关闭的view,不注册将不会回调onAdClose事件) |
// 创建信息流广告实例
ADJgNativeAd nativeAd = new ADJgNativeAd(Activity activity);
int widthPixels = getResources().getDisplayMetrics().widthPixels;
// 创建额外参数实例
ADJgExtraParams extraParams = new ADJgExtraParams.Builder()
// 设置整个广告视图预期宽高(目前仅头条,艾狄墨搏平台需要,没有接入头条、艾狄墨搏可不设置),单位为px,高度如果小于等于0则高度自适应
.adSize(new ADJgAdSize(widthPixels, 0))
.build();
// 设置一些额外参数,有些平台的广告可能需要传入一些额外参数,如果有接入头条、Inmobi平台,该参数必须设置
nativeAd.setLocalExtraParams(extraParams);
// 设置广告监听
nativeAd.setListener(new ADJgNativeAdListener() {
@Override
public void onRenderFailed(ADJgNativeAdInfo adInfo, ADJgError error) {
// 广告渲染失败,可在此回调中移除视图和释放广告对象
}
@Override
public void onAdReceive(List<ADJgNativeAdInfo> adInfos) {
// 广告获取成功回调
}
@Override
public void onAdExpose(ADJgNativeAdInfo adInfo) {
// 广告展示回调,有展示回调不一定是有效曝光,如网络等情况导致上报失败
}
@Override
public void onAdClick(ADJgNativeAdInfo adInfo) {
// 广告点击回调,有点击回调不一定是有效点击,如网络等情况导致上报失败
}
@Override
public void onAdClose(ADJgNativeAdInfo adInfo) {
// 广告关闭回调,可在此回调中移除视图和释放广告对象
}
@Override
public void onAdFailed(ADJgError error) {
// 广告获取失败回调
}
});
// 请求广告数据,参数一广告位ID,参数二请求数量[1,3]
nativeAd.loadAd(String posId, int count);
// 判断广告Info对象是否被释放(调用过ADJgNativeAd的release()或ADJgNativeAdInfo的release()会释放广告Info对象)
// 释放后的广告Info对象不能再次使用
if (!ADJgAdUtil.adInfoIsRelease(nativeExpressAdInfo)) {
// 当前是信息流模板广告,getNativeExpressAdView获取的是整个模板广告视图
View nativeExpressAdView = nativeExpressAdInfo.getNativeExpressAdView((ViewGroup) itemView);
// 将广告视图添加到容器中的便捷方法
ADJgViewUtil.addAdViewToAdContainer((ViewGroup) itemView, nativeExpressAdView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
// 渲染广告视图, 必须调用, 因为是模板广告, 所以传入ViewGroup和响应点击的控件可能并没有用
// 务必在最后调用
nativeExpressAdInfo.render((ViewGroup) itemView);
}
// 判断广告Info对象是否被释放(调用过ADJgNativeAd的release()或ADJgNativeAdInfo的release()会释放广告Info对象)
// 释放后的广告Info对象不能再次使用
if (!ADJgAdUtil.adInfoIsRelease(nativeFeedAdInfo)) {
NativeAdAdapter.setVideoListener(nativeFeedAdInfo);
// 交由子类实现加载图片还是MediaView
setImageOrMediaData(context, nativeFeedAdInfo);
Glide.with(context).load(nativeFeedAdInfo.getIconUrl()).into(ivIcon);
ivAdTarget.setImageResource(nativeFeedAdInfo.getPlatformIcon());
tvTitle.setText(nativeFeedAdInfo.getTitle());
tvDesc.setText(nativeFeedAdInfo.getDesc());
tvAdType.setText(nativeFeedAdInfo.getCtaText());
// 注册广告交互, 必须调用
// 注意:广点通只会响应View...actionViews的点击事件,且这些View都应该是com.qq.e.ads.nativ.widget.NativeAdContainer的子View
nativeFeedAdInfo.registerViewForInteraction((ViewGroup) itemView, rlAdContainer, tvAdType);
// 注册关闭按钮,将关闭按钮点击事件交于SDK托管,以便于回调onAdClose
// 务必最后调用
nativeFeedAdInfo.registerCloseView(ivClose);
}
将短视频融入到APP场景当中,用户观看短视频广告后可以给予一些应用内奖励。
ADJgRewardVodAd
cn.jiguang.jgssp.ad.ADJgRewardVodAd
方法名 | 介绍 |
---|---|
ADJgRewardVodAd(Activity activity) | 构造方法。参数说明:activity(当前页面activity对象)。 |
ADJgRewardVodAd(Fragment fragment) | 构造方法。参数说明:fragment(当前页面fragment对象)。 |
setLocalExtraParams(ADJgExtraParams extraParams) | 设置额外参数。参数说明:extraParams(广告额外参数)。 |
setOnlySupportPlatform(String platform) | 设置广告定向,仅请求某一渠道。参数说明:platform(渠道名)。 |
setListener(ADJgRewardVodAdListener listener) | 设置广告相关状态。参数说明:listener(广告状态监听器)。 |
setSceneId(String sceneId) | 设置广告场景id,用于区分同一个广告位在不同场景下使用的数据。参数说明:sceneId(场景ID)。 |
loadAd(String posId) | 请求广告并展示。参数说明:posId(广告位ID)。 |
release() | 释放广告。 |
ADJgExtraParams
cn.jiguang.jgssp.ad.entity.ADJgExtraParams
方法名 | 介绍 |
---|---|
ADJgExtraParams.Builder().build() | 构造方法。 |
rewardExtra(ADJgRewardExtra extra) | 设置服务端奖励验证额外参数。参数说明:extra(服务端奖励验证额外参数请参考:Gitee地址、Github地址)。 |
setVideoWithMute(boolean isMute) | 视频静音设置。参数说明:isMute(true:静音、false:不静音,默认:true)。 |
ADJgRewardVodAdListener
cn.jiguang.jgssp.ad.listener.ADJgRewardVodAdListener
方法名 | 介绍 |
---|---|
onAdReceive(ADJgRewardVodAdInfo adInfo) | 广告加载成功回调。 |
onAdExpose(ADJgRewardVodAdInfo adInfo) | 广告曝光回调。 |
onAdClick(ADJgRewardVodAdInfo adInfo) | 广告点击回调。 |
onAdClose(ADJgRewardVodAdInfo adInfo) | 广告关闭回调。 |
onReward(ADJgRewardVodAdInfo adInfo) | 广告奖励回调。 |
onVideoCache(ADJgRewardVodAdInfo adInfo) | 广告缓存成功回调。 |
onVideoComplete(ADJgRewardVodAdInfo adInfo) | 广告播放完毕回调。 |
onVideoError(ADJgRewardVodAdInfo adInfo, ADJgError error) | 视频播放错误回调。 |
onAdFailed(ADJgError error) | 广告获取失败回调。 |
ADJgRewardVodAdInfo
cn.jiguang.jgssp.ad.data.ADJgRewardVodAdInfo
方法名 | 介绍 |
---|---|
showRewardVod(Activity activity) | 展示广告。参数说明:activity(当前页面activity对象)。 |
// 创建激励视频广告实例
ADJgRewardVodAd rewardVodAd = new ADJgRewardVodAd(Activity activity);
// 设置激励视频广告监听
rewardVodAd.setListener(new ADJgRewardVodAdListener() {
@Override
public void onAdReceive(ADJgRewardVodAdInfo adInfo) {
// 广告获取成功回调
// 全屏视频广告对象一次成功拉取的广告数据只允许展示一次
// 广告展示
adInfo.showRewardVod(Activity activity)
}
@Override
public void onVideoCache(ADJgRewardVodAdInfo adInfo) {
// 广告视频缓存成功回调
// 部分渠道存在激励展示类广告,不会回调该方法,建议在onAdReceive做广告展示处理
}
@Override
public void onVideoComplete(ADJgRewardVodAdInfo adInfo) {
// 广告观看完成回调
}
@Override
public void onVideoError(ADJgRewardVodAdInfo adInfo, ADJgError error) {
// 广告播放错误回调
}
@Override
public void onReward(ADJgRewardVodAdInfo adInfo) {
// 广告激励发放回调
}
@Override
public void onAdExpose(ADJgRewardVodAdInfo adInfo) {
// 广告展示回调,有展示回调不一定是有效曝光,如网络等情况导致上报失败
}
@Override
public void onAdClick(ADJgRewardVodAdInfo adInfo) {
// 广告点击回调,有点击回调不一定是有效点击,如网络等情况导致上报失败
}
@Override
public void onAdClose(ADJgRewardVodAdInfo adInfo) {
// 广告关闭回调
}
@Override
public void onAdFailed(ADJgError error) {
// 广告获取失败回调
}
});
// 加载激励视频广告,参数为广告位ID
rewardVodAd.loadAd(String posId);
插屏广告是移动广告的一种常见形式,在应用流程中弹出,当应用展示插屏广告时,用户可以选择点击广告,也可以将其关闭并返回应用。
ADJgInterstitialAd
cn.jiguang.jgssp.ad.ADJgInterstitialAd
方法名 | 介绍 |
---|---|
ADJgInterstitialAd(Activity activity) | 构造方法。参数说明:activity(当前页面activity对象)。 |
ADJgInterstitialAd(Fragment fragment) | 构造方法。参数说明:fragment(当前页面fragment对象)。 |
setLocalExtraParams(ADJgExtraParams extraParams) | 设置额外参数。参数说明:extraParams(广告额外参数)。 |
setOnlySupportPlatform(String platform) | 设置广告定向,仅请求某一渠道。参数说明:platform(渠道名)。 |
setListener(ADJgInterstitialAdListener listener) | 设置广告相关状态。参数说明:listener(广告状态监听器)。 |
setSceneId(String sceneId) | 设置广告场景id,用于区分同一个广告位在不同场景下使用的数据。参数说明:sceneId(场景ID)。 |
loadAd(String posId) | 请求广告并展示。参数说明:posId(广告位ID)。 |
release() | 释放广告。 |
ADJgExtraParams
cn.jiguang.jgssp.ad.entity.ADJgExtraParams
方法名 | 介绍 |
---|---|
ADJgExtraParams.Builder().build() | 构造方法。 |
setVideoWithMute(boolean isMute) | 视频静音设置。参数说明:isMute(true:静音、false:不静音,默认:true)。 |
ADJgInterstitialAdListener
cn.jiguang.jgssp.ad.listener.ADJgInterstitialAdListener
方法名 | 介绍 |
---|---|
onAdReceive(ADJgInterstitialAdInfo adInfo) | 广告加载成功回调。 |
onAdExpose(ADJgInterstitialAdInfo adInfo) | 广告曝光回调。 |
onAdClick(ADJgInterstitialAdInfo adInfo) | 广告点击回调。 |
onAdClose(ADJgInterstitialAdInfo adInfo) | 广告关闭回调。 |
onAdReady(ADJgInterstitialAdInfo adInfo) | 广告准备完毕回调。 |
onAdFailed(ADJgError error) | 广告获取失败回调。 |
ADJgInterstitialAdInfo
cn.jiguang.jgssp.ad.data.ADJgInterstitialAdInfo
方法名 | 介绍 |
---|---|
showInterstitial(Activity activity) | 展示广告。参数说明:activity(当前页面activity对象)。 |
ADJgInterstitialAd interstitialAd = new ADJgInterstitialAd(Activity activity);
// 设置插屏广告监听
interstitialAd.setListener(new ADJgInterstitialAdListener() {
@Override
public void onAdReceive(ADJgInterstitialAdInfo adInfo) {
// 广告获取成功回调
// 插屏广告对象一次成功拉取的广告数据只允许展示一次
// 展示广告
adInfo.showInterstitial(Activity activity);
}
@Override
public void onAdReady(ADJgInterstitialAdInfo adInfo) {
// 广告准备完毕回调
}
@Override
public void onAdExpose(ADJgInterstitialAdInfo adInfo) {
// 广告展示回调,有展示回调不一定是有效曝光,如网络等情况导致上报失败
}
@Override
public void onAdClick(ADJgInterstitialAdInfo adInfo) {
// 广告点击回调,有点击回调不一定是有效点击,如网络等情况导致上报失败
}
@Override
public void onAdClose(ADJgInterstitialAdInfo adInfo) {
// 广告点击关闭回调
}
@Override
public void onAdFailed(ADJgError error) {
// 广告获取失败回调
}
});
// 加载插屏广告
interstitialAd.loadAd(String posId);
注意广告对象的获取是异步的,请在onAdReceive或onAdReady回调后展示广告
具体的接入代码和流程,请参考Demo
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。