最近项目需要接入海外的广告SDK,国内相关的资源比较少,特此拿出来分享,以便大家参考参考。
广告效果图:
banner:
插屏/激励:
详情请参考 官方接入文档
如果网站进不去,建议翻墙!!!
Vungle的接入比较简单,代码也少,特别要注意的是 插屏和激励是调用同一个广告接口的,只是参数有区别。
SDK初始化:
Vungle.init(VungleId.app_id, context, new InitCallback() {
@Override
public void onSuccess() {
Log.e(TAG,"onSuccess-----");
//加载
}
@Override
public void onError(VungleException exception) {
Log.e(TAG,"onError exception = " + exception.getMessage());
}
@Override
public void onAutoCacheAdAvailable(String placementId) {
Log.e(TAG,"onAutoCacheAdAvailable-----");
//当广告缓存好时触发。
}
});
示例:
banner加载:
if (Vungle.isInitialized()) {
Banners.loadBanner(id, AdConfig.AdSize.BANNER, new LoadAdCallback() {
@Override
public void onAdLoad(String placementReferenceId) {
Log.e(TAG,"onAdLoad-----");
}
@Override
public void onError(String placementReferenceId, VungleException e) {
Log.e(TAG,"onError-----e = " + e.getMessage());
}
});
}
banner展示:
if (Banners.canPlayAd(id, AdConfig.AdSize.BANNER)) {
vungleBanner = Banners.getBanner(id, AdConfig.AdSize.BANNER, new PlayAdCallback() {
@Override
public void onAdStart(String id) {
Log.e(TAG,"onAdStart-----");
}
@Override
public void onAdEnd(String id, boolean completed, boolean isCTAClicked) {
Log.e(TAG,"onAdEnd-----");
}
@Override
public void onAdViewed(String id) {
Log.e(TAG,"onAdViewed-----");
isFirst = false;
}
@Override
public void onAdEnd(String id) {
Log.e(TAG,"onAdEnd-----");
}
@Override
public void onAdClick(String id) {
Log.e(TAG,"onAdClick-----");
}
@Override
public void onAdRewarded(String id) {
Log.e(TAG,"onAdRewarded-----");
}
@Override
public void onAdLeftApplication(String id) {
Log.e(TAG,"onAdLeftApplication-----");
}
@Override
public void onError(String id, VungleException exception) {
Log.e(TAG,"onError-----exception = " + exception.getMessage());
}
});
initView(activity, vungleBanner);
}
调用:
加载:
VungleBannerAd.getInstance().loadVungleBannerAd(VungleId.banner_id);
展示:
VungleBannerAd.getInstance().showVungleBannerAd(MainActivity.this,VungleId.banner_id);
如果用mumu,夜神等模拟器广告无法出现,建议用AS自带的模拟器测试,或者开VPN。
最后,附上Demo链接: Vungle Demo