美文网首页
vue单页应用中,如何对百度广告添加点击统计事件?

vue单页应用中,如何对百度广告添加点击统计事件?

作者: 一个被程序员耽误的厨师 | 来源:发表于2019-08-09 10:06 被阅读0次

    写在前面

    项目里用到了百度广告,需求是对广告添加点击统计事件,但是如何统计呢,想了很久,也没有找到一个好的方法,于是去百度,但是很鸡肋呀,根本不符合我的需求。晚上下班回去,坐在电视前陪儿子看佩奇,突然灵机一动似乎有了方案,第二天马上尝试,终于成功了,效果不错的,特此记录一下。

    如何统计iframe跨域点击事件呢?

    我的思路是:

    1、这个广告位分为2层,最外层设置成相对定位用来控制广告的样式
    2、第二层第一个div用来创建广告位,样式由联盟广告控制
    3、第二层第二个div是一个透明模板,用来监听点击事件,主要监听touch的三种状态。设置成绝对定位。
    html代码如下:

    <!-- 广告位 -->
                <div v-show="AdStatus" class="normal-ad">
                    <div id="normal-ad" style="z-index=-1" ></div>
                    <!-- 广告上层蒙版,用来监听点击事件 -->
                    <div class="ads-mask" @touchstart="adsTouchStart($event)" @touchmove="adsTouchMove($event)" @touchend="adsTouchEnd($event)"></div>
                </div>
    

    css样式如下:

     .normal-ad{
            position: relative;
            margin: -0.1rem auto 0.3rem auto;
            padding: 0 0.2rem;
            .ads-mask{
                position:absolute;
                top:0px;
                right:0px;
                width:100%;
                height:100%;
                z-index:99;
            }
            .hide{
                display: none;
            }
        }
    

    上篇文章中,我们创建了一个mixin文件,现在修改下改文件(init-ad.js)

    在data中添加一个状态值:flag:false;
    添加如下方法:

    // 统计广告点击量
            adsTouchStart(e){
                this.flag = false;
            },
            adsTouchMove(e){
                this.flag = true;
                // console.log('move')
            },
            adsTouchEnd(e){
                // 判断是滑动还是点击,只有点击才会被触发
                if(!this.flag){
                    e.target.classList.add('hide');
                    setTimeout(function(){
                        e.target.classList.remove('hide');
                    },300);
    
                    let cpName  = this.$route.query.cpName || 'WAPDETAIL';
                    if(this.$route.path == '/home/rcmd'){
                        cpName = 'WAP'
                    }
                    let path = this.$route.path;
                    // 参数
                    let params = {
                        channel:cpName,
                        adsSource:path
                    }
                    this.adsClicks(params);
                }
               
            }
    

    完美,统计很准确。

    有什么问题可以加我的微信,有问必答。

    致力于技术分享的厨师

    相关文章

      网友评论

          本文标题:vue单页应用中,如何对百度广告添加点击统计事件?

          本文链接:https://www.haomeiwen.com/subject/dckcjctx.html