Show Menu
主题×

定时操作

定时操作允许您测量某个操作从开始到结束之间的应用程序内时间和总时间。SDK 会计算完成该操作将花费的每个会话内时间量以及跨会话总时间。您可以使用定时操作定义区段,并比较购买时间、通过水平、结帐流程等。
将为定时操作报告以下量度:
  • 在应用程序内开始和结束之间的总秒数(跨会话)
  • 开始和结束之间的总秒数(时钟时间)
通过可选回调,您可以在定时操作完成时执行其他操作:
  • 运行代码并添加任何逻辑 - 基于持续时间结果的可选自定义逻辑。
  • 在传入持续时间之前添加上下文数据。
  • 取消尚未发送的点击和持续时间。

跟踪定时操作

  1. 将库添加到您的项目并实施生命周期。
    有关更多信息,请参阅 核心实施和生命周期 中的“将 SDK 和配置文件添加到您的 IntelliJ IDEA 或 Eclipse 项目”**。
  2. 导入库:
    import com.adobe.mobile.*;
    
    
  3. 调用 trackTimedActionStart ,并提供定时操作名称和可选的上下文数据。
    HashMap cdata = new HashMap<String, Object>(); 
    cdata.put("ExperienceName", experience); 
    Analytics.trackTimedActionStart("TimeUntilPurchase", cdata);
    
    
  4. (可选)您可以随时通过定时操作名称调用 trackTimedActionUpdate 以添加其他上下文数据。
    HashMap cdata = new HashMap<String, Object>(); 
    cdata.put("myapp.ImageLiked", imageName); 
    Analytics.trackTimed​ActionUpdate("TimeUntilPurchase", cdata);
    
    
  5. 事件完成时,调用 trackTimedActionEnd ,并传递定时操作名称和 TimedActionBlock (回调),以查找所有数据并计算持续时间。
    Analytics.trackTimedActionEnd("TimeUntilPurchase", cdata);
    
    
    定时事件量度将保存在移动设备解决方案变量中,以便自动进行报告。

发送其他数据

除了定时操作名称之外,您还可以通过操作开始和操作更新调用发送其他上下文数据:
HashMap cdata = new HashMap<String, Object>(); 
cdata.put("myapp.ImageLiked", imageName); 
Analytics.trackTimed​ActionUpdate("TimeUntilPurchase", cdata);

上下文数据值必须映射到 Adobe Mobile Services 中的自定义变量:

示例

// Timed Action Start Example 
HashMap cdata = new HashMap<String, Object>(); 
cdata.put("ExperienceName", experience); 
Analytics.trackTimedActionStart("TimeUntilPurchase", cdata); 
 
// Timed Action Update Example 
cdata = new HashMap<String, Object>(); 
cdata.put("ImageLiked", imageName); 
Analytics.trackTimed​ActionUpdate("TimeUntilPurchase", cdata); 
 
// Timed Action End Example 
Analytics.trackTimedActionEnd("TimeUntilPurchase", null); 
 
// Timed Action End Example with Callback 
Analytics.trackTimedActionEnd("TimeUntilPurchase", new Analytics.TimedActionBlock<Boolean>() { 
 @Override 
 public Boolean call(long inAppDuration, long totalDuration, Map<String, Object> contextData) { 
  contextData.put("PurchaseItem", "Item453"); 
  return true; // return true to send the hit, false to cancel 
 } 
});