iOS - CMP控件曝光统计

CMP 曝光

1 常用统计工具

众所周知,市面上已经有很多统计工具,下面是自己使用过的(免费的)并且使用率较高的一些品牌统计工具:友盟统计诸葛ioGA(Google Analytics)腾讯MTA等。

1.1 我们的日常

以上工具都能够基本满足对产品运营统计的大部分需求了,但是因为我们公司有一位痴迷于技术的产品经理,总之,哪些端有新技术或新工具时,他都要跟搬砖的【写代码的】我们来个底朝天讨论会,不管讨论结果如何,他都能够带着小狗等到主人回来的眼神,传达一种“咱们试试呗”的意思,祈求你的答应。还好,砸门有关二哥【技术总监】坐镇😆。工作量啥的都要合(bu)理(yao)安(tong)排(xiao)不是~

昨天,他在我们技术群里分享了一篇文章《婚礼纪 iOS 曝光统计实践》,而我刚好就在平时关注的《知识小集》公众号看到过。既然都准备要讨论了,那就试试Demo 再说了。

2 广告投放计费统计相关指标

2.1 常见广告投放计费指标

如文章题图,基本围绕下述三个指标进行计费

  1. CPM(Cost Per Mille) 每千人成本;
    CPM是一种以展示付费的广告,只要向足够量级的用户展示了广告主的内容,广告主就为此付费。按此计费的广告一般是以展示为目的,曝光效果比较好,如开屏广告、富媒体广告等。
  2. CPC(Cost Per Click) 每点击成本;
    CPC是一种点击付费广告,根据广告被点击的次数收费。关键词竞价一般采用这种模式,在QQ空间、今日头条、UC等信息流广告系统中比较常见。
  3. CPA(Cost Per Action) 每行动成本;
    CPA是一种按投放实际效果计价的广告,这里的行动成本可以是CPD(Cost\nPer Download)下载成本、CPI(Cost Per Install)安装成本、CPS(Cost Per Sales)销售成本等。常见的CPA广告如应用商店、积分墙、流量联盟等。

了解之后,那么这篇文章《婚礼纪 iOS 曝光统计实践》,写的就是对 CPM 的一个简单的统计工具了。

3 婚礼纪曝光统计工具原理

3.1 参考工具的技能点

原文中已有详细分析过程,这里简单总结基本使用了iOS的哪些技能点:

  1. 从download 源码后的工程布局上看,婚礼纪项目应该是使用了 cocoapods 组件化方式进行项目管理


  2. 加载执行机制:分类的 load 方法使用

  3. MethodSwizzle:在 UIView 分类的 load 方法中采用 runtime 的method_exchangeImplementations方法使用

  4. 分类中添加属性:runtime的objc_setAssociatedObjectobjc_getAssociatedObject方法使用

  5. 控件在屏幕上显隐及变化的相关逻辑:如:didMoveToWindow的实践解读

3.2 在巨人的基础上优化

在实践测试婚礼纪的Demo 后,发现如下优化点:

  1. 原 Demo 中对系统的方法进行交换后,进行的hlj_updateViewVisible没有进行监听判断,导致根本不需要进行跟踪的 View 都执行了该hlj_updateViewVisible方法。下述是添加判断依据,减少计算次数同时没跟踪View 不会进一步执行该方法:
在执行方法前添加判断条件
- (void)hlj_updateViewVisible {
    if (!self.hlj_trackModel) return; // 需要被跟踪的 View会添加 trackModel 否则不要进行判断计算
  ... //原方法逻辑
}
  1. 原 Demo 中控件的有效曝光判断是通过与 widow 有交集即为曝光,此处我觉得有效曝光是控件的完全显示才算,所以使用了并集的逻辑:
BOOL isContained = CGRectContainsRect(screenRect, viewRect);
  1. 我添加了一个已知遮挡控件的判断逻辑,即如果被已知遮挡控件完全覆盖则不算有效曝光:
- (void)hlj_setTrackTag:(NSString *)trackTag position:(NSInteger)position trackData:(NSDictionary *)trackData shieldView:(UIView *)shieldView;
  1. 还有一些问题,由于技术理解不到位,正在请求原作者解答的,如果你知道,欢迎指教

  2. 下面是fork 后优化的Demo,欢迎评论指正

4 总结

好了,到此可以拿出去跟"痴汉"讨论了

  1. 项目难点不多,使用的都是常见的技术点
  2. 项目的实用性真心不错
  3. 自己Demo 中还有一点比较在意,就是导航栏的遮挡算不算有效曝光呢?
  4. 已在项目中使用该工具,后续有更多优化地方会持续更新,欢迎关注。

感谢 “婚礼纪移动团队” 以及 “知识小集”的无私分享。

-------------------------- 2018年07月27日22:55:02更新 --------------------------

  • 向作者问的问题已有回复,issue 我也关闭了,但是,作者说子控件的track与父控件的track关系是包含的,这个我不太同意,我觉得控件的独立 track 好一些。
  • 作者已优化Demo,如同意原作者想法的可以前往下载。区别不大。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,869评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,716评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,223评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,047评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,089评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,839评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,516评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,410评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,920评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,052评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,179评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,868评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,522评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,070评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,186评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,487评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,162评论 2 356

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_X自主阅读 15,982评论 3 119
  • 一个寂静的深夜,我在一片冰雪世界里溜达,身后是一座被朦胧月光和皑皑白雪映照得发亮的白色城堡。 突然,遥远的天际线那...
    MeLola阅读 190评论 0 0
  • 刚开学的这段时期其实又陷入了迷茫与焦虑期,然后零零总总看了些乱七八糟的书。 有看得急的,扫一遍两三个小时看完就放在...
    BeforeIsleep阅读 790评论 0 3
  • 抑或是这个季节的风儿过于薄凉,室内的我也被惊醒了,我缓缓抬起头,徘徊在窗外的一个老人吸引了我的目光。短发白头,密密...
    黑白灰红阅读 1,883评论 0 0