Android iOS Unity JS API Media API 常见问题

Banner

简介

Banner 广告:即4.332.1202版本及以前的 Banner 2.0广告

Banner广告(横幅广告)位于app顶部、中部、底部任意一处,横向贯穿整个app页面;当用户与app互动时,Banner广告会停留在屏幕上,并可在一段时间后自动刷新

权限等级:开放

适用场景:Banner广告展现场景非常灵活,常见的展现场景为:文章页末尾,详情页面底部,信息流顶部等

分类:Banner 广告分为文字链、纯图片和图文描述,具体种类可以在开发者平台进行选择,系统将会根据您的选择生成对应的POSID:

文字链 纯图片 图文描述

代码接入示例

详细内容请参考压缩包中的代码示例

public class UnifiedBannerActivity extends Activity implements OnClickListener,
    UnifiedBannerADListener {

  private static final String TAG = UnifiedBannerActivity.class.getSimpleName();
  ViewGroup bannerContainer;
  UnifiedBannerView bv;
  String posId;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_unified_banner);
    bannerContainer = (ViewGroup) this.findViewById(R.id.bannerContainer);
    ((EditText) findViewById(R.id.posId)).setText(Constants.UNIFIED_BANNER_POS_ID);
    this.findViewById(R.id.refreshBanner).setOnClickListener(this);
    this.findViewById(R.id.closeBanner).setOnClickListener(this);
    this.getBanner().loadAD();
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    if (bv != null) {
      bv.destroy();
    }
  }

  private UnifiedBannerView getBanner() {
    String posId = getPosID();
    if( this.bv != null && this.posId.equals(posId)) {
      return this.bv;
    }
    if(this.bv != null){
      bannerContainer.removeView(bv);
      bv.destroy();
    }
    this.posId = posId;
    this.bv = new UnifiedBannerView(this, posId, this);
    bannerContainer.addView(bv, getUnifiedBannerLayoutParams());
    return this.bv;
  }

  /**
   *  Banner 规定banner宽高比应该为6.4:1 , 开发者可自行设置符合规定宽高比的具体宽度和高度值
   *
   * @return
   */
  private FrameLayout.LayoutParams getUnifiedBannerLayoutParams() {
    Point screenSize = new Point();
    getWindowManager().getDefaultDisplay().getSize(screenSize);
    return new FrameLayout.LayoutParams(screenSize.x,  Math.round(screenSize.x / 6.4F));
  }

  @Override
  public void onClick(View v) {
    switch (v.getId()) {
      case R.id.refreshBanner:
        doRefreshBanner();
        break;
      case R.id.closeBanner:
        doCloseBanner();
        break;
      default:
        break;
    }
  }

  private void doRefreshBanner() {
    DemoUtil.hideSoftInput(this);
    getBanner().loadAD();
  }

  private void doCloseBanner() {
    bannerContainer.removeAllViews();
    if (bv != null) {
      bv.destroy();
      bv = null;
    }
  }

  private String getPosID() {
    String posId = ((EditText) findViewById(R.id.posId)).getText().toString();
    return TextUtils.isEmpty(posId) ? Constants.BannerPosID : posId;
  }

  @Override
  public void onNoAD(AdError adError) {
    String msg = String.format(Locale.getDefault(), "onNoAD, error code: %d, error msg: %s",
        adError.getErrorCode(), adError.getErrorMsg());
    Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
  }

  @Override
  public void onADReceive() {
    Log.i(TAG, "onADReceive");
  }

  @Override
  public void onADExposure() {
    Log.i(TAG, "onADExposure");
  }

  @Override
  public void onADClosed() {
    Log.i(TAG, "onADClosed");
  }

  @Override
  public void onADClicked() {
    Log.i(TAG, "onADClicked");
  }

  @Override
  public void onADLeftApplication() {
    Log.i(TAG, "onADLeftApplication");
  }

  @Override
  public void onADOpenOverlay() {
    Log.i(TAG, "onADOpenOverlay");
  }

  @Override
  public void onADCloseOverlay() {
    Log.i(TAG, "onADCloseOverlay");
  }
}

主要API

加了删除线的方法即将废弃。

UnifiedBannerView

方法名 方法介绍
UnifiedBannerView(final Activity context, final String posID, final UnifiedBannerADListener listener) 构造函数
UnifiedBannerView(final Activity context, final String appID, final String appID, final String posID, final UnifiedBannerADListener listener) 构造函数
loadAD() 加载广告
destroy() 当不需要Banner广告实例时用于主动释放资源,调用后实例销毁,不可以再调用
setRefresh(int refresh) 设置刷新频率,为0或30~120之间的数字,单位为 s,0标识不自动轮播,默认30S

UnifiedBannerADListener

方法名 方法介绍
onNoAD(AdError error) 广告加载失败,error 对象包含了错误码和错误信息
onADReceive() 广告加载成功回调,表示广告相关的资源已经加载完毕,Ready To Show
onADExposure() 当广告曝光时发起的回调
onADClicked() 当广告点击时发起的回调,由于点击去重等原因可能和平台最终的统计数据有差异
onADClosed() 当广告关闭时调用
onADLeftApplication() 由于广告点击离开 APP 时调用
onADOpenOverlay() 当广告打开浮层时调用,如打开内置浏览器、内容展示浮层,一般发生在点击之后
onADCloseOverlay() 浮层关闭时调用

接入注意事项

Copyright © 1998 - 2020 Tencent Inc. All Rights Reserved.
腾讯公司 版权所有 | 加入优量汇