Mobvista_Native - mobvistateam/Android_SDK_7.6.0 GitHub Wiki
##Native广告接入方式:
如果想要展示FaceBook的广告、adMob广告、myTarget广告,请加入以下Jar
mobvista_native.jar
AudienceNetwork.jar
google-play-services.jar
myTarget.jar
##FaceBook聚合功能特殊说明
FaceBook 需要 安卓API版本在 9 或者 9以上
facebook SDK的下载地址:https://developers.facebook.com/docs/android?locale=zh_CN
MyTarget SDK的下载地址:https://target.my.com/partners/help/sdk/download/
###预加载,开发者可以在前一个页面调用预加载,这样在需要用广告的页面可以快速获取广告,如果你不打算集成第三方SDK,你可以不用添加第三方的UNITID,例如:你不打算集成Admob广告,你可以不用添加ID_ADMOB_UNITID
public void preload(){
MobVistaSDK sdk = MobVistaSDKFactory.getMobVistaSDK();
Map<String,Object> preloadMap = new HashMap<String,Object>();
preloadMap.put(MobVistaConstans.PROPERTIES_LAYOUT_TYPE, MobVistaConstans.LAYOUT_NATIVE);//广告样式
preloadMap.put(MobVistaConstans.ID_FACE_BOOK_PLACEMENT, "1611993839047594_1614040148842963");//fbid
preloadMap.put(MobVistaConstans.ID_MY_TARGET_AD_UNITID, "6590");//MyTarget id
preloadMap.put(MobVistaConstans.PREIMAGE,true);//设置为true为预加载图片
preloadMap.put(MobVistaConstans.PROPERTIES_UNIT_ID, "12");//unit
//请求广告category,一共有2种分类:game和app,category不是必传参数
preloadMap.put(MobVistaConstans.PROPERTIES_API_REUQEST_CATEGORY,
MobVistaConstans.API_REUQEST_CATEGORY_APP);
//preloadMap.put(MobVistaConstans.PROPERTIES_API_REUQEST_CATEGORY,
// MobVistaConstans.API_REUQEST_CATEGORY_GAME)
List<Template> list = new ArrayList<Template>();//为支持多模板需要添加的部分
list.add(new Template(MobVistaConstans.TEMPLATE_BIG_IMG, 1));//支持大图模板,每次获取1条
list.add(new Template(MobVistaConstans.TEMPLATE_MULTIPLE_IMG, 1));//支持多图模板,每次获取1条
String nativeInfo = MvNativeHandler.getTemplateString(list);//将native_info参数传入
preloadMap.put(MobVistaConstans.NATIVE_INFO, nativeInfo);
sdk.preload(preloadMap);
}
- 1.确保sdk已经初始化
- 2.初始化 MvNativeHandler
MvNativeHandler nativeHandle = new MvNativeHandler(properties, this);
//如果需要facebookPlacementId作用于当次请求,可以设置如下参数替换全局facebookPlacementId,如果不设置则用初始化的 facebookPlacementId
Map<String,Object> properties = MvNativeHandler.getNativeProperties("12");
properties.put(MobVistaConstans.ID_FACE_BOOK_PLACEMENT, "1611993839047594_1614040148842963");
properties.put(MobVistaConstans.ID_MY_TARGET_AD_UNITID, "6590");//MyTarget ID
properties.put(MobVistaConstans.PROPERTIES_AD_NUM, 1);//请求广告条数,不设默认为1
nativeHandle = new MvNativeHandler(properties, this);
- 3.使用多模板(可选)
nativeHandle.addTemplate(new Template(MobVistaConstans.TEMPLATE_BIG_IMG, 1));
nativeHandle.addTemplate(new Template(MobVistaConstans.TEMPLATE_MULTIPLE_IMG, 1));
数字1是ad_num
,开发者可以自定义
MobVistaConstans.TEMPLATE_BIG_IMG
表示大图模板,MobVistaConstans.TEMPLATE_MULTIPLE_IMG
表示多图模板;
该参数表示该广告位支持的类型,可以同时使用。如果广告位支持两种模板的话,可以通过NativeAdListener的onAdLoaded(List<Campaign> campaigns, int template)
中的temlate
参数来判断返回的模板类型
- 4.添加回调,通过
MvNativeHandler.setAdListener(NativeAdListener)
和 MvNativeHandler.setTrackingListener(NativeTrackingListener)设置请求回调 - 5.通过
MvNativeHandler
的load
方法加载数据 - 6.通过
registerView(View view)
注册广告显示的view
到sdk,后续会在这个view点击的时候直接跳转广告展示 - 7.在Activity的
ondestroy
方法中,通过MvNativeHandler的release()
方法释放MvNativeHandler
Sample:
//STEP1: Initialization the SDK
MobVistaSDK sdk = MobVistaSDKFactory.getMobVistaSDK();
Map<String,String> map = sdk.getMVConfigurationMap("19343", "7c22942b749fe6a6e361b675e96b3ee9");
sdk.init(map, this);
//STEP2: new nativeController
Map<String,Object> properties = MvNativeHandler.getNativeProperties("12");
properties.put(MobVistaConstans.ID_FACE_BOOK_PLACEMENT, "1611993839047594_1614040148842963");
properties.put(MobVistaConstans.ID_MY_TARGET_AD_UNITID, "6590");//如果集成有mytarget,请添加mytarget的unitId
//请求广告category,一共有2种分类:game和app,category不是必传参数
preloadMap.put(MobVistaConstans.PROPERTIES_API_REUQEST_CATEGORY,
MobVistaConstans.API_REUQEST_CATEGORY_APP);
//preloadMap.put(MobVistaConstans.PROPERTIES_API_REUQEST_CATEGORY,
// MobVistaConstans.API_REUQEST_CATEGORY_GAME)
nativeHandle = new MvNativeHandler(properties, this);
nativeHandle.addTemplate(new Template(MobVistaConstans.TEMPLATE_BIG_IMG, 1));//该广告位支持大图模板
nativeHandle.addTemplate(new Template(MobVistaConstans.TEMPLATE_MULTIPLE_IMG, 1));// 该广告位支持多图模板
nativeHandle.setAdListener(new NativeAdListener() {
@Override
public void onAdLoaded(List<Campaign> campaigns,int template) {
if(template == MobVistaConstans.TEMPLATE_BIG_IMG){
//大图模板
}
Log.e("", "onAdLoaded");
}
@Override
public void onAdLoadError(String message) {
Log.e("", "onAdLoadError");
}
@Override
public void onAdClick(Campaign campaign) {
Log.e("", "onAdClick");
}
});
nativeHandle.setTrackingListener(new NativeTrackingListener() {
@Override
public void onStartRedirection(Campaign campaign, String url) {
// TODO Auto-generated method stub
}
@Override
public void onRedirectionFailed(Campaign campaign, String url) {
// TODO Auto-generated method stub
}
@Override
public void onFinishRedirection(Campaign campaign, String url) {
// TODO Auto-generated method stub
}
@Override
public void onDownloadStart(Campaign campaign) {
// TODO Auto-generated method stub
}
@Override
public void onDownloadFinish(Campaign campaign) {
// TODO Auto-generated method stub
}
//该回调用于展示下载进度
@Override
public void onDownloadProgress(int progress) {
// TODO Auto-generated method stub
}
});
//STEP3: Load native ad
nativeHandle.load();
//STEP4: when UI is ready, register your view to SDK and Let SDK to handle the tracking.
nativeHandle.registerView(btn2click,campaign);
//STEP5: release the nativeController
nativeAd.release();