广告曝光率
来源:16-3 Spring 事务管理接口的介绍

朱小悬
2019-03-13
老师,广告的曝光率怎么理解?
曝光率统计功能要怎么实现呢?
1回答
-
同学你好:
曝光率的计算是与客户端相关的,客户端也就是请求检索系统的客户,例如:地铁通道大屏、手机 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 群随时交流、讨论,也非常感谢同学的支持!
20
相似问题