Native广告集成说明
原生(Native)
1. 确定AdHubSDK的主SDK文件已经拷贝到工程文件的libs子目录下参考
2. 添加广告代码,添加广告代码前请确定已初始化SDK
- 例如:
private List<LyAdView> mAdViewList; NativeAd nativeAd = new NativeAd(activity, mAdUnitId, new NativeAdListener() { @Override public void onAdFailed(int errorcode) { Log.d("lance", "onAdFailed:" + errorCode); } @Override public void onAdLoaded(NativeAdResponse response) { /** * 因为该sdk接入了其他平台的sdk,所以native会返回两种类型 * 一种是直接返回渲染好的类型,另一种是返回数据 * 根据 response.getNativeInfoListView()是否为null判断选择广告类型 * 两种情况只能选一个 * 写法请务必参考以下代码: */ if (response.getNativeInfoListView() != null) { mAdViewList = response.getNativeInfoListView(); Log.i("lance", "getNativeInfoList:" + mAdViewList.size()); mLyContainer.removeAllViews(); for (int i = 0; i < mAdViewList.size(); i++) { LyAdView lyAdView = mAdViewList.get(i); mLyContainer.addView(lyAdView); lyAdView.render(); } } else { // 一个广告只允许展现一次,多次展现、点击只会计入一次 //返回设置的广告的多个图片的URL,SDK并未处理加载urls里面的图片,需要集成者自己去加载展示 ArrayList<String> imageUrls = response.getImageUrls(); //返回设置的广告的多个视频流的URL,SDK并未处理加载urls里面的视频,需要集成者自己去加载展示 ArrayList<String> vedioUrls = response.getVedioUrls(); //返回设置的广告的多个文本信息 ArrayList<String> texts = response.getTexts(); //广告字样 ServerResponse.AdLogoInfo adUrl = response.getAdUrl(); //广告来源标识 ServerResponse.AdLogoInfo adLogoInfo = response.getlogoUrl(); //根据广告法新规定,必须加入广告标识和广告来源。此处返回广告字样及广告来源标识图片。需要开发者分别放置于广告左下和右下角 //sdk内部提供了NativeAdUtil.addADLogo(View v,NativeAdResponse response)方法,可以将一个view加上logo并返回一个加入了logo的FrameLayout替代原本无logo的view; //注意若传入此方法的view之前已经有父view,调用了此方法之后原来的view会从父view中移除,须将方法framelayout加入之前view的父view之中。 //若此方法不满足要求,请开发者自己实现加入logo及广告字样。具体请参考本样例及样例效果 // HeartBeatResponse.AdLogoInfo结构 // public static class AdLogoInfo { // public static int TYPE_PIC = 0; // public static int TYPE_TEXT = 1; // String adurl; // int type = 0; // } //其中属性type为广告表示的类型共2种:图片和文字,如果type==TYPE_PIC则属性adurl是图片的url //如果是type==TYPE_TEXT则属性adurl是文字字符串 //此方法用于注册素材显示的view,集成者必须在onAdLoaded调用此方法注册此次广告,这样才能统计广告素材的展示。 NativeAdUtil.registerTracking(nativeResponse, findViewById(R.id.appinstall_layout), new NativeAdEventListener() { @Override //显示素材的view被点击时回调 public void onAdWasClicked() { Toast.makeText(NativeActivity.this, "onAdWasClicked", Toast.LENGTH_SHORT).show(); } @Override public void onAdWillLeaveApplication() { Toast.makeText(NativeActivity.this, "onAdWillLeaveApplication", Toast.LENGTH_SHORT).show(); } }); } } }); //加载广告 nativeAd.loadAd(); -------------------------------------------------- //在销毁的时候参照 @Override protected void onDestroy() { super.onDestroy(); // 使用完了每一个LyAdView之后都要释放掉资源。 if (mAdViewList != null) { for (LyAdView view : mAdViewList) { view.destroy(); } } }
PS:更多设置请参考Demo中的com.hubcloud.adhubsdkdemo.NativeActivity的代码.