uniapp 接入友盟全域数据统计分析平台

695 阅读1分钟

image.png

安装SDK及集成

image.png

<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>
            <%= htmlWebpackPlugin.options.title %>
        </title>
        <!-- Open Graph data -->
        <!-- <meta property="og:title" content="Title Here" /> -->
        <!-- <meta property="og:url" content="http://www.example.com/" /> -->
        <!-- <meta property="og:image" content="http://example.com/image.jpg" /> -->
        <!-- <meta property="og:description" content="Description Here" /> -->
        <script>
            var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
                CSS.supports('top: constant(a)'))
            document.write(
                '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
                (coverSupport ? ', viewport-fit=cover' : '') + '" />')
        </script>

        <!-- 接入友盟sdk https://www.umeng.com/ -->
        <script>
            if(window){
                (function(w, d, s, q, i) {
                    w[q] = w[q] || [];
                    var f = d.getElementsByTagName(s)[0],
                        j = d.createElement(s);
                    j.async = true;
                    j.id = 'beacon-aplus';
                    j.src = 'https://d.alicdn.com/alilog/mlog/aplus/' + i + '.js';
                    f.parentNode.insertBefore(j, f);
                })(window, document, 'script', 'aplus_queue', '203467608');
                ```
                //集成应用的appKey
                aplus_queue.push({
                    action: 'aplus.setMetaInfo',
                    arguments: ['appKey', 'xxxxxxx']  // xxxxxxx处填写AppKey
                });
                
                //sdk提供手动pv发送机制,启用手动pv(即关闭自动pv),需设置aplus-waiting=MAN;
                //注意:由于单页面路由改变时不会刷新页面,无法自动发送pv,所以对于单页应用,强烈建议您关闭自动PV, 手动控制PV事件
                aplus_queue.push({
                    action: 'aplus.setMetaInfo',
                    arguments: ['aplus-waiting', 'MAN']
                });
                //是否开启调试模式 
                aplus_queue.push({
                    action: 'aplus.setMetaInfo',
                    arguments: ['DEBUG', false]
                });
            }
        </script>

        <link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />
    </head>
    <body>
        <noscript>
            <strong>Please enable JavaScript to continue.</strong>
        </noscript>
        <div id="app"></div>
        <!-- built files will be auto injected -->
    </body>
</html>

事件埋点及分享功能

1、页面曝光埋点

sendPV 方法将发送一条页面 PV 日志

image.png

image.png

App.vue页面监听路由变化,如果路由发生变化就发送一次

export default {
    mounted() {
        const that = this
        uni.addInterceptor('navigateTo', { //监听跳转
            invoke(e) {
                that.routeChange(e.url)
            },
        })
        uni.addInterceptor('redirectTo', { //监听关闭本页面跳转
            invoke(e) {
                that.routeChange(e.url)
            }
        })
        uni.addInterceptor('switchTab', { //监听tabBar跳转
            invoke(e) {
                that.routeChange(e.url)
            }
        })
        uni.addInterceptor('navigateBack', { //监听返回
            invoke(e) {
                that.routeChange()
            }
        })
    },
    methods: {
        routeChange(url) {
            // #ifdef H5
            // 路由变化发送页面 PV 日志
            aplus_queue.push({
                action: 'aplus.sendPV',
                arguments: [{
                    is_auto: false
                }, {}]
            });
            // #endif
        }
    }
}
2、页面点击事件

record 用于发送一条事件日志

image.png

image.png

在需要点击上报的页面发送:

先添加事件管理:

image.png

image.png

image.png

例如:点击了某个商品

// #ifdef H5
aplus_queue.push({
    action: 'aplus.record',
    arguments: ['group_detail', 'CLK', {
        goods_id: this.goodsId
    }]
});
// #endif

友盟:www.umeng.com