摘要:目前贝壳找房的曝光策略边界条件比较单一, 都是APP端写死的逻辑;对标一线公司解决方案, 是由API下发每种卡片/Feed的门限条件, 从而得到更精准的数据。
一、背景
目前贝壳找房APP端的曝光时机是写死的, 触发条件:卡片必须要完整展示在界面上; 在列表界面上下/左右滑动时单次/多次曝光同一个卡片。
现有方案的不足:
1、门限条件应改为API下发的; 2、缺少卡片在界面上显示的时长;
反例:
1、比如说列表有1000条记录,快速滑动列表到最后一条;用户并没有看清中间的900多条记录,这时要不要为这些记录做曝光埋点?
2、例如一个卡片高度为100px,实际上只显示了80px,是否要做一次曝光埋点。

行业对标:
今日头条、手机百度的曝光埋点策略做的很细, 比如卡片划入、划出时间,卡片显示多少比例可以算曝光等等。
二、解决方案
参考今日头条、手机百度的做法,实现类似的曝光策略。
1、为每种卡片设置不同的曝光策略;
2、APP根据API下发的门限条件触发埋点;
3、记录卡片移入、移出屏幕的时间, 统计每个卡片真正显示的时长;
4、界面销毁、显示/隐藏是否触发曝光埋点。例如按home键时是否触发曝光埋点,再次进入是否触发埋点。 这些场景由API下发配置开关。

在监听RecyclerView滑动事件时得到第一个可见位置、最后一个可见位置,根据参数判断是上滑或下滑,通过判断ViewHolder的itemView top、bottom参数值得出刚刚移入屏幕的卡片显示比例, 并根据API下发的门限值(最低显示比例)记录开始时间,在卡片即将划出屏幕时(API下发的门限值)触发曝光埋点。 从而得出卡片的显示周期。