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/

Native数据接口接入方法

###预加载,开发者可以在前一个页面调用预加载,这样在需要用广告的页面可以快速获取广告,如果你不打算集成第三方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.通过MvNativeHandlerload方法加载数据
  • 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();
⚠️ **GitHub.com Fallback** ⚠️