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的代码.

results matching ""

    No results matching ""