WebApp快捷打包
星纪聚合广告
转到模块插件

敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多

JS-SDK 引用方式:

♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20240925.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;

♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package

事件监听

setListener 设置监听器

• 如需处理接口调用事件,请设置此监听器;

jsBridge.tz.setListener(function(event, data) {
    switch (event) {
        //激励视频 jsBridge.tz.reward(...)
        case "reward": {
            switch (data.action) {
                //成功获取广告信息
                case "onAdSucceed": {
                    break;
                }
                //广告曝光
                case "onAdExposure": {
                    break;
                }
                //广告点击
                case "onAdClicked": {
                    break;
                }
                //广告关闭
                case "onAdClose": {
                    break;
                }
                //视频播放完毕
                case "onVideoComplete": {
                    break;
                }
                //广告激励达成
                case "onAdReward": {
                    jsBridge.toast("奖励已达成!");
                    break;
                }
                //广告加载失败,data.message 为失败说明
                case "onAdFailed": {
                    break;
                }
            }
            break;
        }
        //全屏视频 jsBridge.tz.fullscreen(...)
        case "fullscreen": {
            switch (data.action) {
                //成功获取广告信息
                case "onAdSucceed": {
                    break;
                }
                //广告曝光
                case "onAdExposure": {
                    break;
                }
                //广告点击
                case "onAdClicked": {
                    break;
                }
                //广告关闭
                case "onAdClose": {
                    break;
                }
                //视频播放完毕
                case "onVideoComplete": {
                    break;
                }
                //广告加载失败,data.message 为失败说明
                case "onAdFailed": {
                    break;
                }
            }
            break;
        }
        //插屏广告 jsBridge.tz.dialog(...)
        case "dialog": {
            switch (data.action) {
                //成功获取广告信息
                case "onAdSucceed": {
                    break;
                }
                //广告曝光
                case "onAdExposure": {
                    break;
                }
                //广告点击
                case "onAdClicked": {
                    break;
                }
                //广告关闭
                case "onAdClose": {
                    break;
                }
                //广告加载失败,data.message 为失败说明
                case "onAdFailed": {
                    break;
                }
            }
            break;
        }
        //banner横幅广告 jsBridge.tz.banner(...)
        case "banner": {
            switch (data.action) {
                //成功获取广告信息
                case "onAdSucceed": {
                    break;
                }
                //广告曝光
                case "onAdExposure": {
                    break;
                }
                //广告点击
                case "onAdClicked": {
                    break;
                }
                //广告关闭
                case "onAdClose": {
                    break;
                }
                //广告加载失败,data.message 为失败说明
                case "onAdFailed": {
                    break;
                }
            }
            break;
        }
        //内容视频(短视频) jsBridge.tz.contentVideo(...)
        case "contentVideo": {
            switch (data.action) {
                //加载成功
                case "onLoad": {
                    break;
                }
                //关闭短视频窗口
                //持续时长(毫秒): data.data.duration
                case "onClose": {
                    break;
                }
            }
            break;
        }
    }
    //此函数仅用于显示回调参数在本 DEMO 页面上
    showResult({
        event: event,
        data : data
    });
});

//请拉到页面底部查看回调数据信息
$('html,body').animate({ scrollTop: $('#view').offset().top }, 500);

/**
回调参数说明:
event  //事件代码,字符串类型
data:  //事件数据,JSON 对象
{
  action : "onClick", //事件名称,字符串类型
  message: ""         //事件参数,字符串类型
}
**/

removeListener 移除监听器

//移除监听器,不会再收到回调通知
//在需要时可重新调用 setListener
jsBridge.tz.removeListener();

权限

requestPermissionIfNecessary 申请隐私权限

//不强制要求权限,但建议您申请,获得权限后能提升广告效果
jsBridge.tz.requestPermissionIfNecessary(function(succ, res) {
    //res.allowAll 是否同意了全部权限
    //res.neverAsk 拒绝时是否选中了 “不再提示”
    alert("allowAll: " + res.allowAll + "\n" +
          "neverAsk: " + res.neverAsk);
});

展示广告

reward 激励视频

adId:

//激励视频,setListener 的监听回调 event 为 reward
jsBridge.tz.reward({
  //字符串类型,广告平台上申请的代码位id
  adId: "{{reward.adId}}",
  //可选,用户标识,一般为用户ID,以便在处理服务器通知时给此用户发放奖励
  userId: "user123",
  //可选,自定义信息
  customInfo: ""
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

fullscreen 全屏视频

adId:

//全屏视频,setListener 的监听回调 event 为 fullscreen
jsBridge.tz.fullscreen({
  //字符串类型,广告平台上申请的代码位id
  adId: "{{fullscreen.adId}}"
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

contentVideo 内容视频(短视频)

adId:

jsBridge.tz.contentVideo({
  //字符串类型,广告平台上申请的代码位id
  adId: "{{contentVideo.adId}}"
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

dialog 插屏广告

adId:

//插屏广告,setListener 的监听回调 event 为 dialog
jsBridge.tz.dialog({
  //字符串类型,广告平台上申请的代码位id
  adId: "{{dialog.adId}}"
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

banner 横幅广告 - 展示广告 顶边距

adId:

//横幅广告,setListener 的监听回调 event 为 banner
jsBridge.tz.banner({
  //字符串类型,广告平台上申请的代码位id
  adId: $("#banner1").val(),
  //数字类型,到顶部的距离
  top   : 20
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

banner 横幅广告 - 展示广告 底边距

adId:

//横幅广告,setListener 的监听回调 event 为 Banner
jsBridge.tz.banner({
  adId: $("#banner2").val(),
  //数字类型,到底部的距离
  bottom: 20
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

banner 横幅广告 - 移除广告

//横幅广告
jsBridge.tz.banner({
  remove: true
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

最佳实践

adId:

//引用 js 库
//import jsBridge from 'ym-jsbridge'

const showReward = function (jsBridge) {
    //设置监听器
    jsBridge.tz.setListener(function (event, data) {
        switch (event) {
            //激励视频
            case "reward": {
                switch (data.action) {
                    //成功获取广告信息
                    case "onAdSucceed": {
                        //关闭加载动画
                        layer.closeAll();
                        break;
                    }
                    //广告加载失败,data.message 为失败说明
                    case "onAdFailed": {
                        //关闭加载动画
                        layer.closeAll();
                        //提示失败
                        layer.msg("广告加载失败:" + data.message);
                        break;
                    }
                    //广告激励达成
                    case "onAdReward": {
                        //奖励达成,客户端仅做简单提示;
                        //为避免刷单,强烈建议在处理服务器端通知时发放奖励;
                        jsBridge.toast("奖励已达成!");
                        break;
                    }
                }
                break;
            }
        }
    });
    //展示广告
    jsBridge.tz.reward({
        //字符串类型,广告平台上申请的代码位id
        adId: "{{practiceReward.adId}}",
        //可选,用户标识,一般为用户ID,以便在处理服务器通知时给此用户发放奖励
        userId: "user123",
        //可选,自定义信息
        customInfo: ""
    }, function (success, res) {
        if (success) {
            //执行成功,显示加载动画(拉取广告需要一点时间)
            layer.load(0, { shade: 0.2 });
        } else {
            //执行失败
            layer.alert(JSON.stringify(res));
        }
    });
};
showReward(jsBridge);

监听回调数据: