腾讯社交联盟广告

Android iOS Unity JS API Media API 常见问题

平台模板2.0

简介

权限等级:需申请

平台模板2.0广告:即4.332.1202版本及以前版本中原生模板2.0广告

前提要求Android SDK 4.230.1100及以上版本

需要在开发者平台创建模板2.0广告位,模板广告位不会返回广告!!!

平台模板2.0方式简介:平台模板2.0是优量汇推出的全新功能,是平台模板渲染方式的升级优化。平台模板2.0在保持旧模板既有的不需要考虑渲染样式、数据上报、广告交互问题等优势的同时,新增以下优势:

适用场景:如果我们提供的模板2.0广告样式符合您的需求,建议直接使用该接口

分类
平台模板2.0有11种广告样式可选:

上图下文
(图片尺寸1280×720)
上文下图
(图片尺寸1280×720)
左图右文
(图片尺寸1280×720)
左文右图
(图片尺寸1280×720)
双图双文
(大图尺寸1280×720)
三小图双文
(图片尺寸1280×720)
横版纯图片
(图片尺寸1280*720)
竖版纯图片
(图片尺寸1080×1920)
单图单文-文字浮层
(大图尺寸1280×720)
上文下图-文字浮层
(图片尺寸1280×720)
上图下文-文字浮层
(图片尺寸1280*720)

注意:接入代码和 API 均只适用于平台模板2.0广告位。误用其他广告位 ID 使用平台模板广告的接口,则会导致无广告返回。

接入代码示例

注意:需要在开发者平台创建平台模版2.0广告位,平台模版广告位不会返回广告!!!

仅展示部分代码,完整代码请参考 GDTUnionDemo 工程

public class NativeExpressAd2SimpleDemoActivity extends Activity implements 
    View.OnClickListener, NativeExpressAD2.AdLoadListener {

  private FrameLayout mAdContainer; // 展示广告的广告位
  private NativeExpressAD2 mNativeExpressAD2;
  private NativeExpressADData2 mNativeExpressADData2;

  @Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    mAdContainer = findViewById(R.id.express_2_ad_container);
    // 创建广告
    mNativeExpressAD2 = new NativeExpressAD2(this, // context
        /*广告位id*/, 
        this // 广告状态监听的回调,NativeExpressAD2.AdLoadListener
    );
    loadAd();
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    // 使用完了每一个 NativeExpressADData2 之后都要释放掉资源
    destroyAd();
  }

  // 加载广告,设置条件
  private void loadAd() {
    mNativeExpressAD2.setAdSize(300, 300); // 单位dp

    // 如果您在平台上新建平台模板2.0广告位时,选择了支持视频,那么可以进行个性化设置(可选)
    VideoOption2.Builder builder = new VideoOption2.Builder();

   /**
    * 如果广告位支持视频广告,强烈建议在调用loadData请求广告前设置setAutoPlayPolicy,有助于提高视频广告的eCPM值 <br/>
    * 如果广告位仅支持图文广告,则无需调用
    */
    builder.setAutoPlayPolicy(VideoOption2.AutoPlayPolicy.WIFI) // WIFI 环境下可以自动播放视频
          .setAutoPlayMuted(true) // 自动播放时为静音
          .setDetailPageMuted(false)  // 视频详情页播放时不静音
          .setMaxVideoDuration(0) // 设置返回视频广告的最大视频时长(闭区间,可单独设置),单位:秒,默认为 0 代表无限制,合法输入为:5<=maxVideoDuration<=61. 此设置会影响广告填充,请谨慎设置
          .setMinVideoDuration(0); // 设置返回视频广告的最小视频时长(闭区间,可单独设置),单位:秒,默认为 0 代表无限制, 此设置会影响广告填充,请谨慎设置
    mNativeExpressAD2.setVideoOption2(builder.build());
    mNativeExpressAD2.loadAd(1);
    destroyAd();
  }

  /**
   *  释放前一个 NativeExpressADData2 的资源
   */
  private void destroyAd() {
    if (mNativeExpressADData2 != null) {
      Log.d(TAG, "destroyAD");
      mNativeExpressADData2.destroy();
    }
  }

  /**
   * 广告加载成功回调
   * @param adDataList
   */
  @Override
  public void onLoadSuccess(List<NativeExpressADData2> adDataList) {
    Log.i(TAG, "onLoadSuccess: size " + adDataList.size());
    // 渲染广告
    renderAd(adDataList);
  }

  /**
   * 广告加载失败回调
   * @param error
   */
  @Override
  public void onNoAD(AdError error) {
    @SuppressLint("DefaultLocale")
    String errorMsg = String
        .format("onNoAD, error code: %d, error msg: %s", error.getErrorCode(), error.getErrorMsg());
    Log.i(TAG, "onNoAD: " + errorMsg);
    Toast.makeText(this, errorMsg, Toast.LENGTH_SHORT).show();
  }

  /**
   * 渲染广告
   * @param adDataList
   */
  private void renderAd(List<NativeExpressADData2> adDataList) {
    if (adDataList.size() > 0) {
      mAdContainer.removeAllViews();
      mNativeExpressADData2 = adDataList.get(0);
      Log.i(TAG, "renderAd: " + "  eCPM level = " +
          mNativeExpressADData2.getECPMLevel() + "  Video duration: " + mNativeExpressADData2.getVideoDuration());
      mNativeExpressADData2.setAdEventListener(new AdEventListener() {
        @Override
        public void onClick() {
          Log.i(TAG, "onClick: " + mNativeExpressADData2);
        }

        @Override
        public void onExposed() {
          Log.i(TAG, "onExposed: " + mNativeExpressADData2);
        }

        @Override
        public void onRenderSuccess() {
          Log.i(TAG, "onRenderSuccess: " + mNativeExpressADData2);

          mAdContainer.removeAllViews();
          if (mNativeExpressADData2.getAdView() != null) {
            mAdContainer.addView(mNativeExpressADData2.getAdView());
          }
        }

        @Override
        public void onRenderFail() {
          Log.i(TAG, "onRenderFail: " + mNativeExpressADData2);
        }

        @Override
        public void onAdClosed() {
          Log.i(TAG, "onAdClosed: " + mNativeExpressADData2);
          mAdContainer.removeAllViews();
          mNativeExpressADData2.destroy();
        }
      });

      mNativeExpressADData2.setMediaListener(new MediaEventListener() {
        @Override
        public void onVideoCache() {
          Log.i(TAG, "onVideoCache: " + mNativeExpressADData2);
        }

        @Override
        public void onVideoStart() {
          Log.i(TAG, "onVideoStart: " + mNativeExpressADData2);
        }

        @Override
        public void onVideoResume() {
          Log.i(TAG, "onVideoResume: " + mNativeExpressADData2);
        }

        @Override
        public void onVideoPause() {
          Log.i(TAG, "onVideoPause: " + mNativeExpressADData2);
        }

        @Override
        public void onVideoComplete() {
          Log.i(TAG, "onVideoComplete: " + mNativeExpressADData2);
        }

        @Override
        public void onVideoError() {
          Log.i(TAG, "onVideoError: " + mNativeExpressADData2);
        }
      });

      mNativeExpressADData2.render();
    }
  }
}

主要 API

NativeExpressAD2

平台模板2.0广告入口,用于初始化并加载广告数据。

方法名 方法介绍
NativeExpressAD2(Context context, String posID, AdLoadListener listener) 平台模板2.0广告构造函数,context 是指上下文环境,这里必须传入开发者的 Activity,posID 是广告位 ID,listener 指定广告状态回调接口。
loadAd(int count) 加载广告,count 指定期望加载的广告数量,根据广告填充情况不同,返回不大于 count 数量的广告
setAdSize(int width, int height) 设置广告的大小,宽度必须要传入,高度小于等于0时自适应,如果宽度传入小于等于0,则会赋值为当前屏幕宽度
setVideoOption2(VideoOption2 videoOption) (可选方法)指定视频广告的播放配置,配置包含:
1. autoPlayPolicy,指定不同网络下的视频播放策略,可选项包括:AutoPlayPolicy.WIFI(WiFi 网络自动播放,4G 网络手动点击播放),AutoPlayPolicy.ALWAYS(WiFi 和4G 网络都自动播放),AutoPlayPolicy.NEVER 永远不会自动播放。默认值为 AutoPlayPolicy.ALWAYS。
注:AutoPlayPolicy.ALWAYS 的配置能够一定程度优化广告收益
2. autoPlayMuted,指定视频播放时是否静音,可选项包括:true(播放时静音),false(播放时有声),默认值为 true。
3. detailPageMuted,指定视频详情页是否静音播放,可选项包括:true(视频详情页静音播放),false(视频详情页有声播放),默认值为 false。
4. minVideoDuration 设置返回视频广告的最小视频时长(闭区间,可单独设置),单位:秒 此设置会影响广告填充,请谨慎设置
5. maxVideoDuration 设置返回视频广告的最大视频时长(闭区间,可单独设置),单位:秒,合法输入为:5<=maxVideoDuration<=61. 此设置会影响广告填充,请谨慎设置
setBrowserType(BrowserType bt) 指定普链广告点击后用于展示落地页的浏览器类型,可选项包括:InnerBrowser(APP 内置浏览器),Sys(系统浏览器),Default(默认),SDK 按照默认逻辑选择
setDownAPPConfirmPolicy(DownAPPConfirmPolicy policy) 指定点击 APP 广告后是否展示二次确认,可选项包括 Default(wifi 不展示,非wifi 展示),NoConfirm(所有情况不展示)4.330.1200及以后版本支持工信部合规弹窗,在显示工信部弹窗时,该设置无效,工信部弹窗会替换二次确认的弹窗

AdLoadListener

方法名 方法介绍
onNoAD(AdError error) 无广告填充
onLoadSuccess(List<NativeExpressADData2> adDataList) 广告数据加载成功,返回了可以用来展示广告的 NativeExpressADData2,但是想让广告曝光还需要调用 NativeExpressADData2 的 render 方法

AdEventListener

方法名 方法介绍
onRenderFail() NativeExpressADData2 渲染广告失败
onRenderSuccess() NativeExpressADData2 渲染广告成功
onExposed() 广告曝光
onClick() 广告点击
onAdClosed() 广告被关闭,将不再显示广告,此时广告对象已经释放资源,不可以再次用来展示了

MediaEventListener

方法名 方法介绍
onVideoCache() 视频下载完成
onVideoStart() 视频开始播放
onVideoResume() 视频从暂停恢复播放
onVideoPause() 视频暂停
onVideoComplete() 视频播放结束时触发
onVideoError() 视频播放时出现错误

NativeExpressADData2

方法名 方法介绍
setAdEventListener(AdEventListener eventListener) 设置监听器,监听广告的点击,曝光,渲染成功/失败,关闭。
destroy() 释放 NativeExpressADData2 占用的资源,当不再展示广告时一定要调用这个方法去释放资源
render() 渲染广告,渲染结果会在 AdEventListener 回调,如果不调用这个方法,NativeExpressADData2 就不会把广告图片等资源加载进来,也不会产生曝光等收益
setMediaListener(MediaEventListener mediaListener) 设置监听器,监听视频广告的状态变化
View getAdView() 返回广告的 View,注意:这个方法只能在 AdEventListener 的 onRenderSuccess 回调之后才能调用,否则返回结果为 null。
boolean isVideoAd() 返回当前广告是否为视频广告。
String getECPMLevel() 获取本条广告实时的eCMP价格层级标签,每个层级标签对应线下预定的eCPM价格范围,成功返回一个包含数字的字符串,比如“1”,无权限调用该接口或后台异常会返回空字符串
int getVideoDuration() 获取视频广告的时长

接入注意事项

如果您的平台模板2.0广告位支持视频,您会在新建广告位时在广告素材栏看到视频选项。您需要注意以下几点:

  1. 您可以按需进行视频广告播放的个性化配置。
  2. 您需要处理好 Activity 的运行时变更,由于视频广告可以跟随手机屏幕的方向旋转和全屏播放,请处理好 Activity 的运行时变更(最简单的方式就是在 AndroidManifest 文件中给您的 Activity 加上 android:configChanges="keyboard|keyboardHidden|orientation|screenSize" 属性),不要让播放视频广告的 Activity 被销毁重建,具体代码可以参考 GDTUnionDemo。
  3. 如果广告位支持视频广告,在拉取广告前,调用setVideoOption2设置视频广告的播放策略。

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