广告SDK接入文档
2025-06-09
版本说明
| 版本 | 更新内容 | 更新时间 |
|---|---|---|
| 1.2.5.1 | 【新增】扭一扭互动方式 【优化】点击以及埋点等功能优化 【修复】已知问题修复 | 2025.08.08 |
| 1.0.2.1 | 【兼容】荣耀设备兼容 【优化】开屏、信息流模板、信息流自渲染优化 【修复】其已知问题优化 | 2025.07.02 |
| 1.0.1.0 | 【优化】视频播放优化 【优化】初始化流程优化 【优化】交互方式优化 【修复】其他已知问题优化 | 2025.06.09 |
| 1.0.0.0 | 【新增】支持开屏广告 【新增】支持激励视频广告 【新增】支持插屏广告:半屏、全屏 【新增】支持信息流模板渲染:上图下文、上文下图、大图 【新增】支持信息流自渲染 | 2025.05.22 |
1 接入准备
1.1 添加SDK
1.1.1 本地依赖方式
将YoYo广告联盟提供的SDK压缩包解压
将libs中所有aar、jar包放入自己项目app模块的libs文件夹下
app模块下build.gradle中配置
android {
//其他配置
defaultConfig {
//其他配置
//配置ndk架构
ndk {
// 指定打包到 APK 的 ABI
abiFilters.addAll(listOf("armeabi-v7a", "x86", "arm64-v8a", "x86_64", "armeabi"))
}
}
}
dependencies {
//添加YoYoAd Sdk
implementation(files("libs/sdk_yoyo_ad_core.aar"))
//添加OAID_SDK
implementation(files("libs/oaid_sdk_1.0.25.aar"))
//添加微信开放平台SDK
implementation("com.tencent.mm.opensdk:wechat-sdk-android:+")
}1.1.2 远程Maven依赖方式
1.1.3其他相关SDK说明
1、信通院标识符SDK
为提升广告推荐精准度,建议引入信通院标识符SDK,目前支持1.0.25及以上版本。
历史版本详见 https://www.msa-alliance.cn/col.jsp?id=120
2、微信开放平台SDK
为拓展广告能力,支持微信小程序、微信小游戏类广告,建议引入微信开放平台SDK,目前支持6.8.0及以上版本。
历史版本详见 https://developers.weixin.qq.com/doc/oplatform/Downloads/Android_Resource.html
1.1.4 适配说明
当前SDK版本已经适配支持Android X。
当前SDK版本以适配支持Android 13。
1.2 配置AndroidManifest.xml文件
Androidmanifest中添加权限声明以及其他配置:
<!-- 必要权限 -->
<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.QUERY_ALL_PACKAGES" />
<!-- 可选权限,建议添加-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 如果接入了视频相关的广告, 请务必添加,否则可能出现视频广告黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:hardwareAccelerated="true" <!--支持硬件加速,建议-->
android:usesCleartextTraffic="true" <!--允许Http通信,必要-->
>
</application>1.3 代码混淆
如果您需要使用proguard混淆代码,需确保不要混淆SDK的代码。
请在混淆文件添加如下配置:
# 保留YoYoAd包名下所有类不混淆
-keep class com.yoyo.ad.** { *; }若使用资源混淆组件,则需将资源文件添加至白名单:
andResGuard {
whiteList = [
//YoYoAd
"R.drawable.yo_*",
"R.layout.yo_*",
"R.mipmap.yo_*",
"R.id.yo*",
"R.color.yo*",
"R.dimen.yo*",
"R.string.yo*",
"R.style.yo*",
"R.anim.yo_*",
"R.raw.yo_*",
"R.xml.yo_*",
]
}1.4 初始化SDK
为避免SDK在用户同意隐私协议与用户协议之前获取用户信息,YoYo广告联盟SDK向开发者提供了初始化方法,开发者可根据App具体情况选择初始化时机,建议Application或首个Activity。
建议开发者在APP首次运行时,通过弹窗等明显方式提示用户阅读《隐私政策》,用户确认同意《隐私政策》后,再调用此接口初始化SDK进行用户信息的收集与处理。
1、YoYoAd.init:只进行SDK初始化,不会获取用户隐私信息,建议在Application-onCreate中执行
//SDK初始化方法,不会获取用户隐私信息,建议在Application-onCreate中执行
YoYoAd.init(
//建议传Application类型的Context
getApplicationContext(),
//初始化参数设置
AdConfig.newBuilder()
//是否开启debug, 建议false
.setDebug(false)
//广告联盟平台的唯一应用标识,可通过管理后台获取
.setAppId("$appId")
//微信开放平台Id,建议传入
.setWechatAppId("$wechatAppId")
//自定义控制项:可使用YoCustomController全实现,也可使用YoCustomControllerSimple选择实现
.setCustomController(new YoCustomController() {
/**
* 建议传入
*/
@Override
public String getAndroidId() {
//回传AndroidId
return "$androidId";
}
@Override
public String getOaid() {
//回传oaid
return "$oaid";
}
@Override
public String getDevImei() {
//回传imei
return "$imei";
}
@Override
public YoLocationProvider getLocation() {
//回传经纬度
return new YoLocationProvider() {
@Override
public double getLatitude() {
return "$latitude";
}
@Override
public double getLongitude() {
return "$longitude";
}
};
}
@Override
public boolean isCanPersonalRecommend() {
//是否允许个性化广告推荐,默认允许。建议开启
return true;
}
/**
* 以下可选传
*/
@Override
public String getDevImsi() {
//回传imsi
return "$imsi";
}
@Override
public boolean isCanUsePhoneState() {
//是否允许获取设备信息如imei等,默认允许
return true;
}
@Override
public boolean isCanUseAndroidId() {
//是否允许读取AndroidId,默认允许。若不允许也可在getAndroidId方法主动回传
return true;
}
@Override
public boolean isCanUseWifiState() {
//是否允许获取网络信息(mac、ip等),默认允许
return true;
}
@Override
public String getMacAddress() {
//回传mac地址
return "$macAddress";
}
@Override
public boolean isCanUseAppList() {
//是否允许读取安装应用列表,默认允许
return true;
}
@Override
public boolean isCanUseLocation() {
//是否允许获取位置信息,默认允许。若不允许也可在getLocation方法中主动回传
return true;
}
})
.build(),
new InitCallback() {
@Override
public void onFailure(int code, String msg) {
//初始化失败回调:错误码与失败原因
}
@Override
public void onSuccess() {
//初始化成功回调
}
}
);2、YoYoAd.start:会获取设备信息,建议在同意隐私协议后调用。
//SDK启动方法,会获取设备信息,建议在同意隐私协议后调用
YoYoAd.start();2. 接入广告类型
每个广告对象仅允许加载、展示一次,且加载展示的顺序不能出错,如果使用出错不会有任何提示,请检查自己的使用是否有误。
2.1 开屏广告
开屏广告以App启动作为曝光时机,提供3~5s的可感知广告展示。用户可以点击广告跳转到目标页面;或者点击右上角的“跳过”按钮,跳转到app内容首页。
适用场景:开屏广告会在您的应用开启时加载,拥有固定展示时间(一般为3~5秒),展示完毕后自动关闭并进入您的应用主界面。
接入示例:
//广告加载
YoYoAd.loadSplashAd(
//建议使用Activity类型Context
context,
//广告加载参数
AdParams.newBuilder()
.setAdId("$adCode") //【必要】代码位,可在管理后台申请
.setAdCount(1) //填充数量,默认1
.setAcceptedWidth($width) //期望宽度,单位px,用于图片类素材
.setAcceptedHeight($height) //期望高度,单位px,用于图片类素材
.setExtra("$extra") //额外参数,json字符串格式
.build(),
//广告加载结果回调
new SplashLoadListener() {
@Override
public void onFail(int code, String msg) {
//广告加载失败回调
}
@Override
public void onLoaded(List<SplashAd> adList) {
//广告加载成功回调
if (adList != null && adList.size() > 0) {
splashAd = adList.get(0);
}
if (splashAd != null) {
//获取广告价格,单位:分
int price = splashAd.getPrice();
}
}
});
//广告展示
if (splashAd != null) {
//设置广告交互监听:可使用SplashInteractionListener全实现,也可使用SplashInteractionListenerSimple选择实现
splashAd.setInteractionListener(new SplashInteractionListenerSimple() {
@Override
public void onAdShowed() {
//广告展示成功回调
}
@Override
public void onAdShowFail(int code, String msg) {
//广告展示失败回调
}
@Override
public void onAdClicked() {
//广告点击回调
}
@Override
public void onAdClosed() {
//广告关闭回调,可在此跳转主页
}
@Override
public void onTimeOver() {
//广告倒计时结束回调
}
@Override
public void onVideoStart() {
//视频播放开始
}
@Override
public void onVideoSkipped() {
//视频跳过
}
@Override
public void onVideoComplete() {
//视频结束
}
@Override
public void onVideoError(int code, String msg) {
//视频错误
}
});
//广告View获取
View adView = splashAd.getAdView(activity, adContainer);
//广告View添加到广告容器
adContainer.addView(adView);
} else {
Toast.makeText(context, "请先加载广告", Toast.LENGTH_SHORT).show();
}
/**
* 【必要】生命周期相关方法,必须调用,避免内存泄漏等
*/
@Override
protected void onResume() {
super.onResume();
if (splashAd != null) {
splashAd.resume();
}
}
@Override
protected void onPause() {
super.onPause();
if (splashAd != null) {
splashAd.pause();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (splashAd != null) {
splashAd.destroy();
}
}2.2 激励视频广告
激励视频广告是指广告短视频融入到app场景当中,用户观看激励视频广告满足条件后可以得到一定的奖励。
适用场景:激励视频广告是一种常见的视频类的广告样式,多出现在游戏的复活、应用增值服务等位置。
接入示例:
//广告加载
YoYoAd.loadRewardVideoAd(
//建议使用Activity类型Context
context,
//广告加载参数
AdParams.newBuilder()
.setAdId("$adCode") //【必要】代码位,可在管理后台申请
.setAdCount(1) //填充数量,默认1
.setExtra("$extra") //额外参数,json字符串格式
.build(),
//广告加载结果回调
new RewardLoadListener() {
@Override
public void onFail(int code, String msg) {
//广告加载失败回调
}
@Override
public void onLoaded(List<RewardVideoAd> adList) {
//广告加载成功回调
if (adList != null && adList.size() > 0) {
rewardVideoAd = adList.get(0);
}
if (rewardVideoAd != null) {
//获取广告价格,单位:分
int price = rewardVideoAd.getPrice();
}
}
});
//广告展示
if (rewardVideoAd != null) {
//设置广告交互监听:可使用RewardInteractionListener全实现,也可使用RewardInteractionListenerSimple选择实现
rewardVideoAd.setInteractionListener(new RewardInteractionListener() {
@Override
public void onAdShowed() {
//广告展示成功回调
}
@Override
public void onAdShowFail(int code, String msg) {
//广告展示失败回调
}
@Override
public void onAdClicked() {
//广告点击回调
}
@Override
public void onAdClosed() {
//广告关闭回调
}
@Override
public void onRewardVerify(boolean isRewardValid, Bundle extraInfo) {
//激励回调
}
@Override
public void onVideoStart() {
//视频播放开始
}
@Override
public void onVideoSkipped() {
//视频跳过
}
@Override
public void onVideoComplete() {
//视频结束
}
@Override
public void onVideoError(int code, String msg) {
//视频错误
}
});
//广告展示, context为Activity示例,必要
rewardVideoAd.show(activity);
} else {
Toast.makeText(activity, "请先加载广告", Toast.LENGTH_SHORT).show();
}2.3 插屏广告
插屏广告是移动广告的一种常见形式,广告素材类型比较丰富,包括视频类、图文类,广告呈现方式也比较灵活,可在管理后台配置,选择使用半屏或全屏呈现。
适用场景:应用的大部分流程。
接入示例:
//广告加载
YoYoAd.loadInterstitialAd(
//建议使用Activity类型Context
context,
//广告加载参数
AdParams.newBuilder()
.setAdId("$adCode") //【必要】代码位,可在管理后台申请
.setAdCount(1) //填充数量,默认1
.setExtra("$extra") //额外参数,json字符串格式
.build(),
//广告加载结果回调
new InterstitialLoadListener() {
@Override
public void onFail(int code, String msg) {
//广告加载失败回调
}
@Override
public void onLoaded(List<InterstitialAd> adList) {
//广告加载成功回调
if (adList != null && adList.size() > 0) {
interstitialAd = adList.get(0);
}
if (interstitialAd != null) {
//获取广告价格,单位:分
int price = interstitialAd.getPrice();
}
}
});
//广告展示
if (interstitialAd != null) {
//设置广告交互监听:可使用InterstitialInteractionListener全实现,也可使用InterstitialInteractionListenerSimple选择实现
interstitialAd.setInteractionListener(new InterstitialInteractionListener() {
@Override
public void onAdShowed() {
//广告展示成功回调
}
@Override
public void onAdShowFail(int code, String msg) {
//广告展示失败回调
}
@Override
public void onAdClicked() {
//广告点击回调
}
@Override
public void onAdClosed() {
//广告关闭回调
}
@Override
public void onVideoStart() {
//视频播放开始
}
@Override
public void onVideoSkipped() {
//视频跳过
}
@Override
public void onVideoComplete() {
//视频结束
}
@Override
public void onVideoError(int code, String msg) {
//视频错误
}
});
//广告展示, context为Activity示例,必要
interstitialAd.show(activity);
} else {
Toast.makeText(activity, "请先加载广告", Toast.LENGTH_SHORT).show();
}2.4 信息流模板渲染广告
由广告联盟SDK提供渲染模板,开发者可在管理后台配置渲染样式,包括上图下文、上文下图、大图等。
适用场景:适用于动态信息流等广告场景。
接入示例:
//广告加载
YoYoAd.loadFeedAd(
//建议使用Activity类型Context
context,
//广告加载参数
AdParams.newBuilder()
.setAdId("$adCode") //【必要】代码位,可在管理后台申请
.setAdCount(1) //填充数量,默认1
.setAcceptedWidth($width) //期望宽度,单位px,用于图片类素材
.setAcceptedHeight($height) //期望高度,单位px,用于图片类素材
.setExtra("$extra") //额外参数,json字符串格式
.build(),
//广告加载结果回调
new FeedLoadListener() {
@Override
public void onFail(int code, String msg) {
//广告加载失败回调
}
@Override
public void onLoaded(List<FeedAd> adList) {
//广告加载成功回调
if (adList != null && adList.size() > 0) {
feedAd = adList.get(0);
}
if (feedAd != null) {
//获取广告价格,单位:分
int price = feedAd.getPrice();
}
}
});
//广告展示
if (feedAd != null) {
//设置广告交互监听:可使用FeedInteractionListener全实现,也可使用FeedInteractionListenerSimple选择实现
feedAd.setInteractionListener(new FeedInteractionListener() {
@Override
public void onAdShowed() {
//广告展示成功回调
}
@Override
public void onAdShowFail(int code, String msg) {
//广告展示失败回调
}
@Override
public void onAdClicked() {
//广告点击回调
}
@Override
public void onAdClosed() {
//广告关闭回调,在此移除广告视图等
//为避免页面闪屏,SDK在触发关闭时不会主动移除视图
}
@Override
public void onVideoStart() {
//视频播放开始
}
@Override
public void onVideoSkipped() {
//视频跳过
}
@Override
public void onVideoComplete() {
//视频结束
}
@Override
public void onVideoError(int code, String msg) {
//视频错误
}
});
//广告View获取
View adView = feedAd.getAdView(activity, adContainer);
//广告View添加到广告容器
adContainer.addView(adView);
} else {
Toast.makeText(context, "请先加载广告", Toast.LENGTH_SHORT).show();
}
/**
* 【必要】生命周期相关方法,必须调用,避免内存泄漏等
*/
@Override
protected void onResume() {
super.onResume();
if (feedAd != null) {
feedAd.resume();
}
}
@Override
protected void onPause() {
super.onPause();
if (feedAd != null) {
feedAd.pause();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (feedAd != null) {
feedAd.destroy();
}
}2.5 信息流自渲染广告
由广告联盟SDK提供渲染数据,开发者自定义渲染样式。
适用场景:适用于动态信息流等广告场景。
接入示例:
//广告加载
YoYoAd.loadFeedNativeAd(
//建议使用Activity类型Context
context,
//广告加载参数
AdParams.newBuilder()
.setAdId("$adCode") //【必要】代码位,可在管理后台申请
.setAdCount(1) //填充数量,默认1
.setAcceptedWidth($width) //期望宽度,单位px,用于图片类素材
.setAcceptedHeight($height) //期望高度,单位px,用于图片类素材
.setExtra("$extra") //额外参数,json字符串格式
.build(),
//广告加载结果回调
new NativeLoadListener() {
@Override
public void onFail(int code, String msg) {
//广告加载失败回调
}
@Override
public void onLoaded(List<NativeAd> adList) {
//广告加载成功回调
if (adList != null && adList.size() > 0) {
nativeAd = adList.get(0);
}
if (nativeAd != null) {
//获取广告价格,单位:分
int price = nativeAd.getPrice();
}
}
});
//广告展示
if (nativeAd != null) {
//设置广告交互监听:可使用NativeInteractionListener全实现,也可使用NativeInteractionListenerSimple选择实现
nativeAd.setInteractionListener(new NativeInteractionListener() {
@Override
public void onAdShowed() {
//广告展示成功回调
}
@Override
public void onAdShowFail(int code, String msg) {
//广告展示失败回调
}
@Override
public void onAdClicked() {
//广告点击回调
}
@Override
public void onAdClosed() {
//广告关闭回调,在此进行其他操作
//为避免页面闪屏,SDK在触发关闭时不会主动移除视图
}
@Override
public void onVideoStart() {
//视频播放开始
}
@Override
public void onVideoSkipped() {
//视频跳过
}
@Override
public void onVideoComplete() {
//视频结束
}
@Override
public void onVideoError(int code, String msg) {
//视频错误
}
});
//广告扩展View获取
View advanceView = nativeAd.getAdvanceView(activity, advanceContainer)
advanceContainer.addView(advanceView);
//广告素材自渲染
titleText.setText(nativeAd.getTitle());
summaryText.setText(nativeAd.getDescription());
submitBtn.setText(nativeAd.getButtonText());
adIcon.setImageResource(nativeAd.getAdLogoResource());
closeBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
nativeAd.destroy();
}
});
//注册交互View
//可使用 NativeViewProvider 实现所有方法,也可使用 NativeViewProviderSimple 选择实现部分方法
nativeAd.registerViewForInteraction(feedNativeView, new NativeViewProvider() {
@Override
public List<View> getClickViewList() {
//可点击的View列表
//扩展advanceView是否若需要支持点击,则加入点击列表
return Arrays.asList(summaryText, advanceView);
}
@Override
public List<View> getCreativeViewList() {
//触发创意交互的View列表
return Arrays.asList(titleText, summaryText, advanceContainer);
}
@Override
public List<View> getCloseViewList() {
//可关闭的View列表
return Arrays.asList(closeView);
}
@Override
public List<View> getDownloadViewList() {
//触发下载的View列表
return Arrays.asList(downloadView);
}
});
} else {
Toast.makeText(activity, "请先加载广告", Toast.LENGTH_SHORT).show();
}
/**
* 【必要】生命周期相关方法,必须调用,避免内存泄漏等
*/
@Override
protected void onResume() {
super.onResume();
if (nativeAd != null) {
nativeAd.resume();
}
}
@Override
protected void onPause() {
super.onPause();
if (nativeAd != null) {
nativeAd.pause();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (nativeAd != null) {
nativeAd.destroy();
}
}信息流自渲染API说明
/**
* YoYoAd广告Icon资源
*
* @return int
*/
int getAdLogoResource();
/**
* 标题
*
* @return String
*/
String getTitle();
/**
* 描述
*
* @return String
*/
String getDescription();
/**
* 按钮文案
*
* @return String
*/
String getButtonText();
/**
* 来源(DSP名称) ,文字
*
* @return String
*/
String getSource();
/**
* 产品Icon Url
*
* @return String
*/
String getProductIconUrl();
/**
* 产品版本名称
*
* @return String
*/
String getProductName();
/**
* 图片列表,多图类广告
*
* @return List<String>
*/
List<String> getImageUrlList();
/**
* 交互类型,枚举值详见{@link com.yoyo.ad.core.InteractionStyle}
*
* @return int
*/
int getInteractionType();
/**
* 扩展View
*
* @param context Activity类型的Context
* @param containerView 扩展View容器
* @return View
*/
public View getAdvanceView(Context context, ViewGroup containerView);
/**
* 额外信息
*
* @return Map<String, Object>
*/
Map<String, Object> getMediaExtraInfo();
/**
* 交互View设置
*
* @param viewGroup 根视图
* @param clickViewList 可点击View
* @param creativeViewList 触发创意交互View
* @param downloadViewList 触发下载View
*/
void registerViewForInteraction(ViewGroup viewGroup, List<View> clickViewList, List<View> creativeViewList, List<View> downloadViewList);
/**
* 产品版本号
*
* @return int
*/
int getProductVersionCode();
/**
* 产品版本名称
*
* @return String
*/
String getProductVersionName();
/**
* 开发者
*
* @return String
*/
String getProductDeveloper();
/**
* 隐私协议URL
*
* @return String
*/
String getProductPrivacyUrl();
/**
* 隐私协议URL
*
* @return String
*/
String getProductPermissionUrl();
/**
* 数字值 , 单位为Bit
*/
long getProductFileSize();NativeViewProvider 说明,也可使用 NativeViewProviderSimple 选择实现以下方法
public interface NativeViewProvider {
/**
* 可点击的View列表
*/
List<View> getClickViewList();
/**
* 可触发交互的View列表
*/
List<View> getCreativeViewList();
/**
* 可触发下载的View列表
*/
List<View> getDownloadViewList();
/**
* 可触发关闭的View列表
*/
List<View> getCloseViewList();
}交互样式枚举值详见 com.yoyo.ad.core.InteractionStyle,具体如下:
/**
* 交互类型:摇一摇
*/
public final static int INTERACTION_SHAKE = 1;
/**
* 交互类型:扭一扭
*/
public final static int INTERACTION_ROTATE = 2;3. 实时竞价
支持的广告类型:所有广告类型。
相关方法说明:
/**
* 获取价格
*
* @return 当前广告价格,单位分
*/
int getPrice();
/**
* 竟胜回传
*
* @param platform 对方平台名称 {@link com.yoyo.ad.core.AdPlatform}
* @param price 对方出价,单位分
*/
void bidWin(String platform, int price);
/**
* 竟败回传
*
* @param lossCode 竟败原因 {@link com.yoyo.ad.core.LossReason}
* @param platform 对方平台名称,如csj、BaiDu
* @param price 对方出价,单位分
*/
void bidLoss(int lossCode, String platform, int price);竞价平台枚举值详见 com.yoyo.ad.core.AdPlatform,具体如下:
/**
* 优优
*/
public final static String YoYo = "YoYo";
/**
* 穿山甲
*/
public final static String CSJ = "csj";
/**
* 广点通 或 优量汇
*/
public final static String GDT = "gdt";
/**
* 快手
*/
public final static String KuaiShou = "KuaiShou";
/**
* 百度 或 百青藤
*/
public final static String BaiDu = "Baidu";
/**
* VIVO
*/
public final static String VIVO = "vivo";
/**
* OPPO
*/
public final static String OPPO = "oppo";
/**
* 小米
*/
public final static String XiaoMi = "XiaoMi";
/**
* 华为
*/
public final static String HuaWei = "HuaWei";
/**
* 京东
*/
public final static String JingDong = "JingDong";
/**
* SIGMOB
*/
public final static String SIGMOB = "Sigmob";
/**
* 爱奇艺
*/
public final static String IQIYI = "IQiYi";
/**
* 阿里妈妈
*/
public final static String ALIMAMA = "AliMama";
/**
* 其他
*/
public final static String OTHER = "other";竟败回传原因枚举值详见 com.yoyo.ad.core.LossReason,具体如下:
/**
* 竞争力不足,如不是本次竞价的最高出价方,可上报此竞败原因
*/
public final static int LOSS_CODE_LOW_PRICE = 1;
/**
* 无广告回包,如优在本次竞价中未返回广告,可上报此竞败原因
*/
public final static int LOSS_CODE_NO_AD = 2;
/**
* 有广告回包但是未参与竞价
*/
public final static int LOSS_CODE_NO_JOIN = 101;
/**
* 其他(有回包)
*/
public final static int LOSS_CODE_OTHER = 10001;4. 其他API
4.1 com.yoyo.ad.core.YoYoAd
/**
* 获取SDK版本号
*
* @return int
*/
public static int getSdkVersionCode();
/**
* 获取SDK版本名称
*
* @return String
*/
public static String getSdkVersionName();5. 错误码
若出现的错误码在找不到,可联系我方。
| 错误码(code) | 错误说明(msg) |
|---|---|
| 700 | 正在初始化,无需重复初始化 |
| 701 | 初始化上下文Context不能为空 |
| 702 | 初始化参数AppId不能为空 |
| 800 | 初始化SDK失败 |
| 801 | 代码位不能为空 |
| 802 | 初始化未成功,请检查先调用YoYoAd.init进行初始化 |
| 810 | 接口请求参数异常 |
| 811 | 接口服务异常 |
| 812 | 请求参数不完整 |
| 820 | 接口连接异常 |
| 821 | 接口重试异常 |
| 831 | 接口请求读取数据流异常 |
| 832 | 接口返回数据为空 |
| 833 | 接口返回JSON数据异常 |
| 841 | 广告构建失败 |
| 851 | 图片加载异常 |
| 861 | 广告重复展示 |
| 862 | 用于广告展示的Activity异常 |
| 863 | 广告展示视图异常 |
| 864 | 广告展示时间过短 |
| 865 | 广告展示空间过小 |
| 866 | 播放器异常 |