tencentYLH

来自于:无意平常心立即使用

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例(模块demo论坛帖链接),示例中包含示例代码、知识点讲解、注意事项等,供您参考。

模块demo论坛帖示例(仅供参考,提交模块的时候删除这一行):https://community.apicloud.com/bbs/thread-160345-1-1.html

概述

模块简介

腾讯广告联盟优量汇模块,实现了原生信息流、横幅、插屏、开屏、激励视频等主流样式。彻底告别信息流广告触摸误点带来的体验感极差的烦恼。并增加了调整原生信息流广告的位置接口,适用于页面可能发生动态改变的情况。使用之前须从腾讯广告联盟申请开发者账号并创建应用,获取 appId 和 对应的广告位 posId。不需要在config.xml中设置,可灵活调用posId。

使用方法

一. 使用之前须从如下腾讯广告联盟的页面申请开发者账号并创建应用,获取 appId 和 对应的广告位 posId。 腾讯广告联盟优量汇(原名广点通):http://adnet.qq.com/

二. 根据腾讯sdk的说明,强烈建议,获取用户的下列权限,会有助于提升cpm。

1. <permission name="readPhoneState"/>
2. <permission name="location" />
3. <permission name="internet" />

三. 添加本插件后,需要自定义Loader,再进行测试。

四. 其他注意事项:

1. 示例中引用的appId和posId为腾讯优量汇提供的测试id,请放心使用。
2. 在进行测试的时候,如果更换为自己的id,则要求包名必须与腾讯优量汇注册的包名一致,否则会提示相关的错误码。

五. 错误码信息如下:

  0001: posId不能为空
  0002: appId不能为空
  0003: 上一个广告还在加载中
  0004: 当前页面广告正在删除中
  0005: 激励视频广告已过期(优量汇下载的视频有效期30分钟)
  0006: 此条广告已经展示过
  0007: 视频还未加载完成就点击了显示
  0008: 广告的位置rect没设置
  0009: 要调整的tag的广告不存在

其余错误码,请参考如下腾讯优量汇的官方页面 https://developers.adnet.qq.com/doc/android/union/union_debug#sdk%20%E9%94%99%E8%AF%AF%E7%A0%81

模块接口

openSplash

打开开屏广告 openSplash({params}, callback(ret, err))

params

appId:

  • 类型:字符串
  • 描述:(必填)腾讯优量汇(原广点通)申请的应用appId
  • 默认值:无

posId:

  • 类型:字符串
  • 描述:(必填)腾讯优量汇(原广点通)申请的广告位id
  • 默认值:无

canJump:

  • 类型:布尔
  • 描述:(选填)用户点击跳过或者广告倒计时结束,是否自动关闭广告。如设置为false,可以收到回调dismiss后使用closeSplash关闭,并进行其他操作,此接口可以留给开发者做进一步调整业务流程。
  • 默认值:true,即时间结束或者点击倒计时时,关闭广告

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
    option: (值如下)
                "receive" -广告获取,准备展示
                "exposure"-曝光(开屏的曝光是在倒计时结束时触发)
                "dismiss"-用户点击跳过,或者倒计时结束
                "onclick"-用户点击了广告
    posId:  "8863364436303842593"  //当前广告位
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: "0001"     //字符串,请参考概述-使用方法里的错误码详情
    msg: "posId不能为空"   //字符串,当前错误的问题
}

示例代码

var tencentYLH = api.require("tencentYLH");
tencentYLH.openSplash({
            appId: '1101152570',  //不可为空
            posId: '8863364436303842593', //不可为空
            canJump: true 
}, function(ret, err) {
            if (ret) {
                console.log(JSON.stringify(ret));
            }
            if (err) {
                console.log(JSON.stringify(err));
            }
});

可用性

Android系统

可提供的1.0.0及更高版本

closeSplash

关闭开屏广告

closeSplash()

打开开屏广告时,如果canJump设置为false,在用户点击了跳过或者倒计时结束,广告不会自动关闭,此时会收到回调"dismiss",开发者需要调用此接口关闭开屏,并进行下一些相关的业务逻辑操作。无回调。

示例代码

var tencentYLH = api.require("tencentYLH");
tencentYLH.closeSplash();

可用性

Android系统

可提供的1.0.0及更高版本

openBanner

打开横幅广告

openBanner({params}, callback(ret, err))

params

appId:

  • 类型:字符串
  • 描述:(必填)腾讯优量汇(原广点通)申请的应用appId
  • 默认值:无

posId:

  • 类型:字符串
  • 描述:(必填)腾讯优量汇(原广点通)申请的广告位id
  • 默认值:无

rect:

  • 类型:对象
  • 描述:广告位置
  • 内部字段
    {
      x:0, //(选填)起始位置的x坐标,默认0
      y:0, //(选填)起始位置的y坐标,默认0
      w:0, //(选填)广告的宽度,默认为(屏幕宽度-2*x)居中显示,banner广告的比例为默认的6.4:1,开发者可根据计算调整页面
    }
    

frameName:

  • 类型:字符串
  • 描述:(选填)需要绑定的页面,仅frame有效。window不能传,并且window下只能固定,不能滚动
  • 默认值:无

fixed:

  • 类型:布尔
  • 描述:(选填)是否需要跟随页面滚动,true-不滚动,false-跟随frame滚动,仅frameName设置了frame的情况有效
  • 默认值:true,即不跟随页面滚动

refreshTime:

  • 类型:数字
  • 描述:(选填)banner广告刷新的时间(秒),默认为30,必须大于30
  • 默认值:30

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
    option: (值如下)
                "receive" -广告获取,准备展示
                "exposure"-曝光(显示在屏幕中即触发)
                "onclick"-用户点击了广告
                "left"-用户点击广告后离开了当前页面
                "openoverlay"-用户点击了网页广告,在app内容浮层打开
                "closeoverlay"-用户关闭了浮层页面
                "close"-用户关闭了广告
    posId:  "8863364436303842593"  //当前广告位
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: "0001"     //字符串,请参考概述-使用方法里的错误码详情
    msg: "posId不能为空"   //字符串,当前错误的问题
}

示例代码

var tencentYLH = api.require("tencentYLH");
tencentYLH.openBanner({
            appId: 1101152570, //腾讯优量汇的appId
            posId: 4080052898050840 //banner2.0广告位的id
            rect: {
               x: 10,
               y: 200,
               w: 0,
            },
            frameName: api.frameName,
            fixed: false, 
            refreshTime: 30
        }, function(ret, err) {
            if (ret) {
                console.log(JSON.stringify(ret));
            }
            if (err) {
                console.log(JSON.stringify(err));
            }
        });

可用性

Android系统

可提供的1.0.0及更高版本

closeBanner

关闭当前页面的横幅banner广告

closeBanner()

示例代码

var tencentYLH = api.require("tencentYLH");
tencentYLH.closeBanner();

可用性

Android系统

可提供的1.0.0及更高版本

openInterstitial

打开插屏广告(含popUp类型插屏广告)

openInterstitial({params}, callback(ret, err))

params

appId:

  • 类型:字符串
  • 描述:(必填)腾讯优量汇(原广点通)申请的应用appId
  • 默认值:无

posId:

  • 类型:字符串
  • 描述:(必填)腾讯优量汇(原广点通)申请的广告位id
  • 默认值:无

popUp:

  • 类型:布尔
  • 描述:(选填)是否是popUp类型(背景页面是否滚动),true-背景页面仍可滚动,false-背景页面不可滚动
  • 默认值:true,即插屏广告显示时,背景页面仍可滚动

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
    option: (值如下)
                "receive" -广告获取,准备展示
                "show" -插屏广告在屏幕打开(弹出)成功 (仅插屏有)
                "exposure"-曝光
                "onclick"-用户点击了广告
                "left"-用户点击广告后离开了当前页面
                "close"-用户关闭了广告
    posId:  "8863364436303842593"  //当前广告位id
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: "0001"     //字符串,请参考概述-使用方法里的错误码详情
    msg: "posId不能为空"   //字符串,当前错误的问题
}

示例代码

var tencentYLH = api.require("tencentYLH");
tencentYLH.openInterstitial({
            popUp: false, //是否为pop插屏,如果设置为false,当前页面将不能滑动
            appId: 1101152570,
            posId: 8020259898964453
        }, function(ret, err) {
            if (ret) {
                console.log(JSON.stringify(ret));
            }
            if (err) {
                console.log(JSON.stringify(err));
            }
        });

可用性

Android系统

可提供的1.0.0及更高版本

closeInterstitial

关闭当前页面的插屏广告(含popUp类型插屏广告)

closeInterstitial()

示例代码

var tencentYLH = api.require("tencentYLH");
tencentYLH.closeInterstitial();

可用性

Android系统

可提供的1.0.0及更高版本

openNative

打开原生信息流广告(模板渲染)

openNative({params}, callback(ret, err))

params

appId:

  • 类型:字符串
  • 描述:(必填)腾讯优量汇(原广点通)申请的应用appId
  • 默认值:无

posId:

  • 类型:字符串
  • 描述:(必填)腾讯优量汇(原广点通)申请的广告位id
  • 默认值:无

rect:

  • 类型:对象
  • 描述:广告位置
  • 内部字段
    {
      x:0, //(选填)起始位置的x坐标,默认0
      y:0, //(选填)起始位置的y坐标,默认0
      w:0, //(选填)广告的宽度,默认为(屏幕宽度-2*x)即居中显示,高度会根据渲染的结果进行回调,请参考callback,开发者可根据回调的高度,来调整信息流广告位置的高度。
    }
    

frameName:

  • 类型:字符串
  • 描述:(选填)需要绑定的页面,仅frame有效。window不能传,并不能随window滚动
  • 默认值:无

fixed:

  • 类型:布尔
  • 描述:(选填)是否需要跟随页面滚动,true-不滚动,false-跟随frame滚动,仅当frameName传frame值时有效
  • 默认值:false,跟随frame滚动

tag: -类型:数字 -描述:(选填)指定当前广告位的一个标记,可用于adjustNative调整位置时使用。 -默认值:无

videoPolicy:

  • 类型:字符串
  • 描述:(选填)当获取的广告为视频时,播放的策略。"always"-总是自动播放,"wifi"-仅wifi情况下自动播放,"manual"-任何时候都是用户手动点击播放。
  • 默认值:"always"

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
    option: (值如下)
               "receive"-广告获取,准备展示(在ret.data.titleLines里会附带广告标题计算的行数,仅开发者参考)
               "heightchange"-原生信息流广告高度变化时回调,渲染过程,可能会变化2次以上,为了方便开发者根据广告高度,调整界面的高度。(广告高度通过ret.height获取)
                "renderfail"-原生信息流广告获取后,但是因其他原因渲染失败
                "rendersuccess"-原生信息流广告渲染成功
                "exposure"-曝光
                "onclick"-用户点击了广告
                "left"-用户点击广告后离开了当前页面
                "openoverlay"-用户点击了网页广告,在app内容浮层打开
                "closeoverlay"-用户关闭了浮层页面
                "close"-用户关闭了广告
    posId:  "8863364436303842593"  //当前广告位
    height: 300 //广告的高度,仅在广告渲染过程高度改变的时候ret.option = "heightchange"时回调
    adInfo: { //广告的相关信息,heightchange|renderfail-无此回调
         title: "..."  //广告标题
         desc: "..." //广告描述
         patternType: "0" //广告类型,请参考优量汇sdk文档
    }
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: "0001"     //字符串,请参考概述-使用方法里的错误码详情
    msg: "posId不能为空"   //字符串,当前错误的问题
}

示例代码

var tencentYLH = api.require("tencentYLH");
tencentYLH.openNative({
            posId: '7030020348049331',
            appId: '1101152570',
            rect: {
              x: 0,
              y: 0,
              w: 0,
            },
            frameName: api.frameName,
            fixed: false
        }, function(ret, err) {
            if (ret) {
                console.log(JSON.stringify(ret));
            }
            if (err) {
                console.log(JSON.stringify(err));
            }
        });

可用性

Android系统

可提供的1.0.0及更高版本

closeNative

关闭当前页面的所有原生信息流广告(模板渲染)

closeNative()

示例代码

var tencentYLH = api.require("tencentYLH");
tencentYLH.closeNative();

可用性

Android系统

可提供的1.0.0及更高版本

adjustNative

调整原生信息流广告的位置(模板渲染)

adjustNative({params}, callback(ret, err))

params

tag:

  • 类型:数字
  • 描述:(必填)指定要调整位置广告位的标记(在openNative中打开广告时,设置的tag)。
  • 默认值:无

rect:

  • 类型:对象
  • 描述:调整的广告新位置
  • 内部字段
    {
      x:0, //(选填)起始位置的x坐标,默认0
      y:0, //(选填)起始位置的y坐标,默认0
      w:0, //(选填)广告的宽度,默认为(屏幕宽度-2*x)即居中显示。
    }
    

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
    option: (值如下)
               "adjust"-广告位置调整成功
    posId:  "8863364436303842593"  //当前广告位
    adInfo: { //广告的相关信息
         title: "..."  //广告标题
         desc: "..." //广告描述
         patternType: "0" //广告类型,请参考优量汇sdk文档
    }
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: "0009"     //字符串,请参考概述-使用方法里的错误码详情
    msg: "tag对应的广告不存在"   //字符串,当前错误的问题
}

示例代码

var tencentYLH = api.require("tencentYLH");
tencentYLH.adjustNative({
            rect: {
              x: 0,
              y: 0,
              w: 0
            },
            tag:  1
        }, function(ret, err) {
            if (ret) {
                console.log(JSON.stringify(ret));
            }
            if (err) {
                console.log(JSON.stringify(err));
            }
        });

可用性

Android系统

可提供的1.0.0及更高版本

openRewardVideo

下载、展示、下载并展示激励视频

openRewardVideo({params}, callback(ret, err))

如果没有下载视频,直接展示将会失败。正常的流程是:先下载视频,监听到视频已经缓存videoCached后,再展示视频。如果开发者想省事,可以直接使用downloadShow,下载后即可马上展示视频。

params

appId:

  • 类型:字符串
  • 描述:(必填)腾讯优量汇(原广点通)申请的应用appId
  • 默认值:无

posId:

  • 类型:字符串
  • 描述:(必填)腾讯优量汇(原广点通)申请的广告位id
  • 默认值:无

option:

  • 类型:字符串
  • 描述:(必填)download-下载视频, show-展示视频, downloadShow-下载并展示视频。如果没有下载视频,直接展示将会失败。正常的流程是:先下载视频,监听到视频已经缓存videoCached后,再展示视频。如果开发者想省事,可以直接使用downloadShow,下载后即可马上展示视频。
  • 默认值:无

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
    option: (值如下)
               "videoLoad"-激励视频加载成功,准备缓存视频
               "videoCached"-激励视频缓存成功(如果是download下载激励视频,到此步停止)
               "videoShow"-激励视频开始展示
               "videoExpose"-激励视频曝光
               "videoComplete"-激励视频播放完成
               "videoReward"-激励视频奖励,开发者监听到这里,就可以给用户进行积分奖励。
               "videoOnclick"-激励视频播放结束后,广告按钮被点击
               "videoClose"-激励视频页面被关闭
    posId:  "8863364436303842593"  //当前广告位
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: "0001"     //字符串,请参考概述-使用方法里的错误码详情
    msg: "posId不能为空"   //字符串,当前错误的问题
}

示例代码

var tencentYLH = api.require("tencentYLH");
tencentYLH.openRewardVideo({
            option: 'download', //show之前,必须要download,如果嫌麻烦,可以直接使用downloadShow
            appId: '1101152570',
            posId: '2090845242931421'
        }, function(ret, err) {
            if (ret) {
                console.log("ret" + JSON.stringify(ret));
            }
            if (err) {
                console.log("err" + JSON.stringify(err));
            }
        });

可用性

Android系统

可提供的1.0.0及更高版本