Session统计逻辑详解

概要:广告主可以使用session(应用打开)指标衡量指定时间段内的用户互动情况。

DAU_example.jpg

session统计的原理

用户完成的session(即应用打开)数量是评估用户与应用的互动情况时需要用到的重要指标。AppsFlyer在多种报告和面板中都提供该指标。session数量还会用于计算下列指标:

  • 每日活跃用户(DAU)
  • 每月活跃用户(MAU)
  • 留存
  • 忠实用户数(以完成3次应用打开的默认标准计算)

请注意:自然量的session数据呈现在活跃数据和群组面板中,总览面板不提供该数据。 

session的计算方式

我们通过SDK上报的af_app_opened事件来计算session指标。session之间设有最短间隔机制,用于调控服务器侧的session判定和统计。 

在Data Locker的session原始数据中,af_app_opened事件以launch的形式呈现。除了Data Locker以外的其他数据传输工具不提供Session数据。为了便于理解,本文会使用af_app_opened来指称相关数据。

Session的上报方式

发生以下情况时,SDK会上报session: 

  • 用户打开相关应用
  • 相关应用从后台切换到前台。开发人员可以调用setMinTimeBetweenSessions来更改此处的数据上报行为。
  • 在安卓应用中,开发人员可手动设置session上报。比如总是在后台运行的工具类应用会使用这种方式上报session。

Session指标

Session指标基于最短间隔机制统计,默认最短间隔为10分钟,详见下文示例。 

 

Session之间的最短间隔机制

该机制会影响session数量的统计。请注意:如果您设置的最短间隔较长(比如超过一小时的间隔),且用户在一天之内打开相关应用的次数较少,这时DAU和留存等的session相关指标会受到影响。特别是对于一般情况下用户每天打开一次的应用来说,影响尤为突出。

说明和示例 

该机制用于调控session的判定和统计。也就是说,一个session前后的空档必须超过最短间隔,AppsFlyer才会将其判定为一个独立的session进行统计。 

Session统计的流程如下:统计到一个session → 开始倒计时 → 倒计时期间上报的session会被忽略。 

示例

前提假设:session之间的最短间隔为10分钟。

场景示例 session上报时间(从00:00起的分钟数) 统计的session数量 被忽略的session
A 0, 10, 20, 30 4
B 0, 1, 9, 11 2 1, 9
C 010, 15, 21 3 15

计时器的设置

  • 默认值:10分钟
  • 可以设置的范围: 

    • 1-60分钟

    • 1-24小时

请按以下方式设置session之间的最短间隔:

  1. 从AppsFlyer后台的侧边栏中选择配置 > 应用配置
  2. 设置session之间的最短间隔。 
  3. 点击保存配置。 
    新的配置会在一小时内生效。

与session相关的事项

再营销session

  • AppsFlyer自2020年7月12日起提供再营销的session数据。
  • 您可以通过以下方式查看再营销的session数据:
    • 数据总览面板的“再营销”和“统一”视图。 
    • 相关群组的“再营销”和“统一”视图。
      • 在“统一”视图中,如果相关session被同时匹配到UA和再营销渠道,则再营销渠道会获得最终的归因,且面板不会显示UA渠道。
      • 数据时效性:每天在UTC时间13:00更新。
    • Data Locker:可启用再营销session报告,其中包含再互动和再归因的session。
      • 数据时效性:有6小时的延迟。
  • 再互动窗口期内发生的session会同时被归因到UA渠道和再营销渠道。同理,其他的再互动应用内事件也会受到双重归因
  • 对于Google Ads和X Ads,af_app_opened事件只发送一次,以避免重复回传。

向渠道发送session回传

您可以针对AppsFlyer统计到的每一个session,向渠道发送session回传。 

  • 如需发送session回传,请将af_app_opened手动映射到渠道侧的对应事件。请注意:在Data Locker的AppsFlyer原始数据报告中,该事件以launch的形式呈现。
  • 请注意:这是一个量级较大的事件,很多渠道不希望接收这类事件。 

 注意

只有启用了Send Sessions的渠道才能支持af_app_opened的映射。

分应用(SDK)的session上报 

应用侧:每当用户打开相关应用或将其调到前台运行时,SDK会根据setMinTimeBetweenSessions设置,发送af_app_opened事件。 

服务器侧:会根据最短间隔机制统计并记录由相关应用上报的session。然后按照与其他应用内事件相同的归因规则,对统计到的session进行归因。

开发人员手动设置的session上报(仅适用于安卓)

您可以在安卓应用中使用logSession来手动上报session。iOS中没有等效的调用方式。

  • 如果相关应用长时间时间在后台运行,您可能需要让开发人员在其中部署session上报逻辑。常见的此类应用包括电池管理、桌面启动、锁屏、杀毒等工具类软件。对于这类应用,可以考虑在每天午夜上报一个session,或按适合相关应用的频率来上报session。
  • 除了上述方式,您也可以在用户完成特定应用内操作时记录session,比如点击清除内存按钮等等。

设置应用打开之间的最短间隔

您可以在SDK中设置两个session之间的最短间隔。也就是说,两个session之间的时间必须超过这个最短间隔,才能算作两个独立的session。

请使用setMinTimeBetweenSessions(即af_app_opened事件)来调控session之间的最短间隔,以便判定并统计独立session。

    • 【默认】5秒。也就是说,一个session发生后,必须等待5秒才能上报下一个session。 
    • 该API支持session之间最短间隔的设置。

具体设置方式请见setMinTimeBetweenSessionsSDK参考信息:

Android iOS Unity

请参考安卓SDK对接说明中的setMinTimeBetweenSessions

请参考iOS SDK对接说明中的minTimeBetweenSessions