以下是 iOS 库提供的 Adobe Analytics 方法列表。
SDK 当前支持多个 Adobe Experience Cloud 解决方案,包括 Analytics、Target、Audience Manager 和 Adobe Experience Platform Identity Service。方法将根据解决方案来添加前缀,Experience Cloud ID 方法的前缀为 track
。
下面每个方法均可用来将数据发送至 Adobe Analytics 报表包。
trackState:data:
状态是您的应用程序中可用的一些视图,例如 home dashboard
、app settings
、cart
等等。这些状态与网站中的页面类似,而且 trackState
调用会使页面查看次数递增。如果 state
为空,它会在报表中显示为“应用程序名称 应用程序版本 (内部版本)”。**如果您在报表中看到此值,请确保在每个 trackState
调用中设置 state
。
只有此跟踪调用会递增页面查看次数。
以下是此方法的语法:
+ (void) trackState:(NSString *)state
data:(NSDictionary *)data;
以下是此方法的代码示例:
[ADBMobile trackState:@"loginScreen"
data:nil];
trackAction:data:
跟踪您的应用程序中的操作。例如,您的应用程序中发生的要测量的操作,包括 logons
、banner taps
、feed subscriptions
及其他量度。
如果您的代码可能会在应用程序位于后台时运行(例如,后台数据检索),请改用 trackActionFromBackground
。
以下是此方法的语法:
+ (void) trackAction:(NSString *)action
data:(NSDictionary *)data;
以下是此方法的代码示例:
[ADBMobile trackAction:@"heroBannerTouched"
data:nil];
trackingIdentifier
检索分析跟踪标识符。
以下是此方法的语法:
+ (NSString *) trackingIdentifier;
以下是此方法的代码示例:
NSString *trackingId = [ADBMobile trackingIdentifier];
trackActionFromBackground:data:
跟踪后台发生的操作,此方法在某些情况下会阻止生命周期事件的触发。
仅应当在应用程序处于后台时运行的代码中调用此方法。
以下是此方法的语法:
+ (void) trackActionFromBackground:(NSString *)action
data:(NSDictionary *)data;
以下是此方法的代码示例:
[ADBMobile trackActionFromBackground:@"downloadedUpdate"
data:nil];
trackLocation:data:
发送当前的 x y 坐标。此方法还使用 ADBMobileConfig.json
文件中定义的目标点来确定作为参数提供的位置是否位于您的任何 POI 内。如果当前坐标位于定义的 POI 内,则会填充上下文数据变量,并随 trackLocation
调用发送该变量。
以下是此方法的语法:
+ (void) trackLocation:(CLLocation *)location
data:(NSDictionary *)data;
以下是此方法的代码示例:
[ADBMobile trackLocation:userLocation
data:nil];
trackBeacon:data:
跟踪用户接近信标的时间。
以下是此方法的语法:
+ (void) trackLocation:(CLBeacon *)beacon
data:(NSDictionary *)data;
以下是此方法的代码示例:
[ADBMobile trackBeacon:beacon
data:nil];
trackingClearCurrentBeacon
在用户远离信标后清除信标数据。
以下是此方法的语法:
+ (void) trackingClearCurrentBeacon;
以下是此方法的代码示例:
[ADBMobile trackingClearCurrentBeacon];
trackLifetimeValueIncrease:data:
向用户的生命周期值中添加 amount
。
以下是此方法的语法:
+ (void) trackLifetimeValueIncrease:(NSDecimalNumber *)amount
data:(NSDictionary *)data;
以下是此方法的代码示例:
[ADBMobile trackLifetimeValueIncrease:30
data:nil];
trackTimedActionStart:data:
启动名为 action
的定时操作。如果对已启动的操作调用此方法,则将覆盖上一个定时操作。
这个调用不发送点击。
以下是此方法的语法:
+ (void) trackTimedActionStart:(NSString *)action
data:(NSDictionary *)data;
以下是此方法的代码示例:
[ADBMobile trackTimedActionStart:@"cartToCheckout"
data:nil];
trackTimedActionUpdate:data:
传入 data
,以更新与给定 action
关联的上下文数据。传入的 data
将附加到操作的现有数据中,如果已经为 action
定义相同的键,则会覆盖数据。
这个调用不发送点击。
以下是此方法的语法:
+ (void) trackTimedActionUpdate:(NSString *)action
data:(NSDictionary *)data;
以下是此方法的代码示例:
[ADBMobile trackTimedActionUpdate:@"cartToCheckout"
data:@{@"quantity":@"3"}];
trackTimedActionEnd:logic:
结束定时操作。如果提供 block
,您将可以访问最终时间值,并且还能够在发送最终点击之前处理 data
。
如果提供 block
,则必须返回 YES
才能发送点击。为 block
传入 nil
将发送最终点击。
以下是此方法的语法:
+ (void) trackTimedActionEnd:(NSString *)action
logic:(BOOL (^) (NSTimeInterval inAppDuration,
NSTimeInterval totalDuration,
NSMutableDictionary *data))block;
以下是此方法的代码示例:
[ADBMobile trackTimedActionEnd:@"cartToCheckout"
logic:^(NSTimeInterval inApp,
NSTimeInterval total,
NSMutableDictionary *data) {
data[@"price"] = @"49.95";
return YES;
}];
trackingTimedActionExists
返回定时操作是否正在进行中。
以下是此方法的语法:
+ (BOOL) trackingTimedActionExists:(NSString *)action;
以下是此方法的代码示例:
BOOL *actionExists = [ADBMobile trackingTimedActionExists];
trackingSendQueuedHits
需要 SDK 4.1。无论当前有多少点击已排入队列,都强制库发送离线队列中的所有点击。
以下是此方法的语法:
+ (void) trackingSendQueuedHits;
以下是此方法的代码示例:
[ADBMobile trackingSendQueuedHits];
trackingGetQueueSize
检索离线队列中的当前点击量。
以下是此方法的语法:
+ (NSUInteger) trackingGetQueueSize;
以下是此方法的代码示例:
NSUInteger *queueSize = [ADBMobile trackingGetQueueSize];
trackingClearQueue
清除离线队列中的所有点击。
手动清除队列时请务必谨慎。此过程无法撤消。
以下是此方法的语法:
+ (void) trackingClearQueue;
以下是此方法的代码示例:
[ADBMobile trackingClearQueue];
trackPushMessageClickThrough
跟踪推送消息点进。
此方法不会递增页面查看次数。
以下是此方法的语法:
+ (void) trackPushMessageClickThrough:(NSDictionary *)userInfo;
以下是此方法的代码示例:
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)
(UIBackgroundFetchResult))completionHandler {
// only send the hit if the app is not active
if (application.applicationState != UIApplicationStateActive) {
[ADBMobile trackPushMessageClickThrough:userInfo];
}
completionHandler(UIBackgroundFetchResultNoData);
}