Bidding Android iOS JS Media API 常见问题

应用下载弹窗确认

基本信息

4.430.1300新增

在广告播放中(广告展示和落地页),点击触发广告下载时对开发者注册的回调函数进行回调,开发者可以使用回调获取应用名称、版本等相关信息,并进行弹窗提示用户是否确认进行下载。

适用场景:在合规的场景,点击下载类广告必须向用户展示应用信息并二次确认是否下载,而sdk的内部弹窗的格式不符合开发者UI要求的时候。

适用广告类型:所有广告形态

接口详情

ApkDownloadComplianceInterface

com.qq.e.comm.compliance.ApkDownloadComplianceInterface

该接口定义了广告sdk提供获取应用类广告,应用的信息和设置下载回调的接口。

方法名 方法介绍
getApkInfoUrl 获取应用信息的url,通过该url可以获取应用的详细信息
setDownloadConfirmListener 设置发生应用下载时的回调
SCENES_AD_OR_NATIVE_LANDING_PAGE 常量,表明下载的场景是点击广告本身,或者原生落地页
SCENES_WEB_LANDING_PAGE 常量,表明下载的场景是点击落地页

DownloadConfirmListener

com.qq.e.comm.compliance.DownloadConfirmListener

开发者设置的发生下载时的回调接口,开发者需要实现该接口,并通过setDownloadConfirmListener设置给sdk。

方法名 方法介绍
onDownloadConfirm 在发生下载时sdk会回调该方法

onDownloadConfirm的参数

参数 参数介绍
context 发生下载时位于前台的activity,可能是开发者的activity,也可能是sdk的activity,使用这个参数弹窗才能保证弹窗可见
scenes 下载发生的场景,参见ApkDownloadComplianceInterface定义的场景常量
infoUrl 将要下载的应用信息的url地址,这个信息和ApkDownloadComplianceInterface.getApkInfoUrl相同
callBack 开发者通过这个callBack通知sdk是继续下载还是取消下载,具体定义参见下文

DownloadConfirmCallBack

com.qq.e.comm.compliance.DownloadConfirmCallBack

在发生下载时sdk回调给开发者的接口中的callBack参数,开发者通过该参数通知sdk是继续下载还是取消下载。

方法名 方法介绍
onConfirm 确认下载
onCancel 取消下载

接入注意事项

接入代码示例

根据广告形态的不同,有的通过拉取广告的对象设置下载回调,有的通过广告对象设置下载回调,具体可以参考demo中的实现代码。

(关键代码展示,详细请参考压缩包的代码)

// DownloadConfirmHelper.java 定义下载的回调函数

  public static final DownloadConfirmListener DOWNLOAD_CONFIRM_LISTENER =
      new DownloadConfirmListener() {

        @Override
        public void onDownloadConfirm(Activity context, int scenes, String infoUrl,
                                      DownloadConfirmCallBack callBack) {
          Log.d(TAG, "scenes:" + scenes + " info url:" + infoUrl);

          //获取对应的json数据并自定义显示
          new DownloadApkConfirmDialog(context, getApkJsonInfoUrl(infoUrl), callBack).show();

          //如果不想自己解析json数据可以直接使用webView展示应用信息,和上面二选一
          //new DownloadApkConfirmDialogWebView(context, infoUrl, callBack).show();//使用webview显示
        }
      };

// SplashActivity 开屏接入示例,开屏通过广告的拉取类设置下载回调,要在广告拉取成功才可以获取应用信息和设置下载回调

  @Override
  public void onADLoaded(long expireTimestamp) {
    if (DownloadConfirmHelper.USE_CUSTOM_DIALOG) {
      splashAD.setDownloadConfirmListener(DownloadConfirmHelper.DOWNLOAD_CONFIRM_LISTENER);
    }
  }

// NativeExpressRecyclerViewActivity 自渲染2.0 接入示例,自渲染2.0有对应的广告类要在广告类里设置下载回调

  @Override
  public void onADLoaded(List<NativeExpressADView> adList) {
    for (int i = 0; i < adList.size(); i++) {
      int position = count + FIRST_AD_POSITION + ITEMS_PER_AD * i + i;
      if (position < mNormalDataList.size()) {
        NativeExpressADView view = adList.get(i);
        if (DownloadConfirmHelper.USE_CUSTOM_DIALOG) {
          view.setDownloadConfirmListener(DownloadConfirmHelper.DOWNLOAD_CONFIRM_LISTENER);
        }
      }
    }
  }

//其他广告形态请参考demo里的使用示例

 文档反馈

腾讯公司 版权所有