敬告:此 demo 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,九游会j9备用网址-j9九游会登录入口首页新版。
♦ js-sdk 引用方式:
♦ 普通网页 script 方式加载:下载最新版 jsbridge-v20250416.zip,请在页面上调用 jsbridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge
♦ 今日头条 ,去申请接入 ;
事件监听
• 如需接口调用事件,请设置此监听器;
jsbridge.ttgm.setlistener(function(event, data) { switch (event) { //激励视频 jsbridge.ttgm.reward(...) case "reward": { switch (data.action) { //加载功取 case "onrewardvideoadload": { break; } //缓冲完成 case "onrewardvideocached": { break; } //加载失败,data.message 为失败说明 case "onrewardvideoloadfail": { break; } //激励达成 case "onrewardverify": { break; } //点击 case "onrewardclick": { break; } //关闭 case "onrewardedadclosed": { break; } //展示 case "onrewardedadshow": { break; } //展示失败 case "onrewardedadshowfail": { break; } //跳过 case "onskippedvideo": { break; } //播放完成 case "onvideocomplete": { break; } //视频错误 case "onvideoerror": { break; } } break; } //插全屏 jsbridge.ttgm.interstitialfull(...) case "interstitialfull": { switch (data.action) { //加载功取 case "oninterstitialfulladload": { break; } //缓冲完成 case "oninterstitialfullcached": { break; } //加载失败,data.message 为失败说明 case "oninterstitialfullloadfail": { break; } //激励达成 case "onrewardverify": { break; } //此方法会在用户点击打开其他应用(例如 google play)时于 onadopened() 之后调用 case "onadleftapplication": { break; } case "onadopened": { break; } //点击 case "oninterstitialfullclick": { break; } //关闭 case "oninterstitialfullclosed": { break; } //展示 case "oninterstitialfullshow": { break; } //展示失败 case "oninterstitialfullshowfail": { break; } //跳过视频播放(针对全屏广告) case "onskippedvideo": { break; } //视频播放完毕(针对全屏广告) case "onvideocomplete": { break; } //视频播放失败(针对全屏广告) case "onvideoerror": { break; } } break; } //banner jsbridge.ttgm.banner(...) case "banner": { switch (data.action) { //加载成功 case "onadloaded": { break; } //加载失败,data.message 为失败说明 case "onadfailedtoload": { break; } //点击 case "onadclicked": { break; } //关闭 case "onadclosed": { break; } //此方法会在用户点击打开其他应用(例如 google play)时于 onadopened() 之后调用 case "onadleftapplication": { break; } case "onadopened": { break; } //展示 case "onadshow": { break; } //展示失败 case "onadshowfail": { break; } } break; } } //此函数仅用于显示回调参数在本 demo 页面上 showresult({ event: event, data: data }); }); //请拉到页面底部查看回调数据信息 $('html,body').animate({ scrolltop: $('#view').offset().top }, 500); /** 回调参数说明: event - 事件代码,字符串 data - 事件数据,json 对象 **/
//移除监听器,不会再收到回调通知 //在需要时可重新调用 setlistener jsbridge.ttgm.removelistener();
//非必须的,即使没有权限也不影响广告展示 //但建议请求权限,可优化投放广告精准度和用户的交互体验,提高ecpm jsbridge.ttgm.requestpermissionifnecessary();
展示广告
codeid:
orientation:
//如果拉起广告失败,请参考 说明 jsbridge.ttgm.reward({ //字符串,广告位 id codeid: "{{reward.codeid}}", //字符串,屏幕方向,与广告位的设置一致 //vertical 竖屏 //horizontal 横屏 orientation: "{{reward.orientation}}", //字符串,激励奖品名称 rewardname: "金币", //数字,激励奖品数量 rewardamount: 5, //字符串,用户id userid: "user123", //字符串,任意自定义数据 //一般用于 customdata: "" }, function(succ, res) { if (!succ) { alert(json.stringify(res)); } });
codeid:
orientation:
jsbridge.ttgm.interstitialfull({ //字符串,广告位 id codeid: "{{interstitialfull.codeid}}", //字符串,屏幕方向,与广告位的设置一致 //vertical 竖屏 //horizontal 横屏 orientation: "{{interstitialfull.orientation}}", //字符串,激励奖品名称 rewardname: "金币", //数字,激励奖品数量 rewardamount: 5, //字符串,用户id userid: "user123" }, function(succ, res) { if (!succ) { alert(json.stringify(res)); } });
codeid:
jsbridge.ttgm.banner({ //字符串,广告位 id codeid: "{{banner.codeid}}", //数字,到顶部的距离 top : 20, //数字,宽度 width : 320, //数字,高度 height: 100, //字符串,用户id userid: "user123" }, function(succ, res) { if (!succ) { alert(json.stringify(res)); } });
codeid:
jsbridge.ttgm.banner({ //字符串,广告位 id codeid: "{{banner.codeid}}", //数字,到底部的距离 bottom: 20, //数字,宽度 width : 320, //数字,高度 height: 100, //字符串,用户id userid: "user123" }, function(succ, res) { if (!succ) { alert(json.stringify(res)); } });
jsbridge.ttgm.banner({ remove: true }, function(succ, res) { if (!succ) { alert(json.stringify(res)); } });
//一般情况在穿山甲后台开启广告位预缓存功能使用 show/close 缓存机制就可以了 //本 preload 接口主要用于冷启动 app 时预加载首次展示广告,具体说明 jsbridge.ttgm.preload({ //激励视频 //参数应跟调用 reward 接口时一致,否则无法命中缓存 reward: { //激励视频广告位 id 列表 codeidlist: [ "1111111111", "2222222222" ], orientation: "vertical", rewardname: "金币", rewardamount: 5, userid: "user123", customdata: "" }, //插全屏、全屏视频 //参数应跟调用 interstitialfull 接口时一致,否则无法命中缓存 interstitialfull: { //插全屏、全屏视频广告位 id 列表 codeidlist: [ "3333333333", "4444444444" ], orientation: "vertical", rewardname: "金币", rewardamount: 5, userid: "user123" }, //并行加载的广告位数,默认值为2,合法值为[1,20] parallelnum: 2, //时间间隔,默认值为2s,合法值为[1,10] interval: 2 }, function(succ, res) { alert(succ ? "处理成功" : `处理失败 ${json.stringify(res)}`); });
//仅支持 android 版 //请进入 设置 - 安卓打包设置 - 开启调试模式 后重新生成新版安装,否则此 js 接口不可用! //测试通过后,发布正式版时请关闭调试模式! jsbridge.ttgm.launchtesttools(function(succ, res) { if (!succ) { alert(json.stringify(res)); } });
监听回调数据: