广告曝光率

来源:16-3 Spring 事务管理接口的介绍

朱小悬

2019-03-13

老师,广告的曝光率怎么理解?
曝光率统计功能要怎么实现呢?

写回答

1回答

张勤一

2019-03-13

同学你好:

    曝光率的计算是与客户端相关的,客户端也就是请求检索系统的客户,例如:地铁通道大屏、手机 app 等等。更简单的说,客户端就是展示广告的那块屏幕。

    那么,曝光率是什么呢?既然是 “率”,所以,它是一个比值,曝光率 = 曝光次数 / 检索次数 * 100%。

    这里又有问题了,检索次数很容易得到,检索系统打日志记录 Controller 被调用的次数就好了。但是,曝光次数从哪里得到呢?因为曝光是客户端的事,所以,曝光是需要客户端主动上报的。在检索系统实现的代码里面,关注下 SearchResponse 的实现,里面有两个属性字段:showMonitorUrl、clickMonitorUrl。源码如下:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class SearchResponse {

    public Map<String, List<Creative>> adSlot2Ads = new HashMap<>();

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class Creative {

        private Long adId;
        private String adUrl;
        private Integer width;
        private Integer height;
        private Integer type;
        private Integer materialType;

        // 展示监测 url
        private List<String> showMonitorUrl =
                Arrays.asList("www.imooc.com", "www.imooc.com");
        // 点击监测 url
        private List<String> clickMonitorUrl =
                Arrays.asList("www.imooc.com", "www.imooc.com");
    }
...
}

    客户端(屏幕)调用检索系统的接口返回后,拿到了广告(Creative 数据),如果它展示了当前的广告,那么它就组装(能够标识当前的广告数据即可,一定要包含 adId)一些数据去请求 showMonitorUrl,代表广告曝光了。如果是可以点击的广告,那么,用户点击之后,还需要再次请求 clickMonitorUrl,标识广告被点击了(这是用来计算点击率的)。

    showMonitorUrl、clickMonitorUrl 这些接口的实现也需要广告系统来做,这个子系统或者叫做微服务,叫做监测系统。实现起来相对比较简单,就是对客户端上报的数据记录处理即可。

    那么,有了检索系统的检索日志,可以计算得到检索次数;有了监测系统的监测日志,可以计算得到曝光次数和点击次数。所以,你可以得到曝光率和点击率了!


    最后,再补充一点,为什么客户端不是直接检索就去曝光呢?这是因为客户端可能会去接入多个广告系统(不同厂商的),它会自己选择曝光哪个广告,所以,广告被检索了不代表广告一定会曝光。关于广告点击就更好理解了,我们平时看到广告的时候,也不一定会去点击,那么,当然就需要计算下点击率了。


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

2
0

Spring Cloud微服务架构 设计实现广告系统

广告营销系统,未来大中型企业的标配

2136 学习 · 927 问题

查看课程