如果App有归因需求则设置ATT授权等待,在等待时间内SDK会等用户授权ATT后能获取到IDFA才上报Install事件,从而增加归因精准率。如果超过了ATT授权等待时间用户还未授权则SDK也将上报事件,事件中不包含IDFA有效字段
示例代码
#import <SolarEngineSDK/SolarEngineSDK.h>
SEConfig *config = [[SEConfig alloc] init];
config.attAuthorizationWaitingInterval = 120; // SDK最多等待用户ATT授权,最多等待120秒
[[SolarEngineSDK sharedInstance] startWithAppKey:appkey config:config];
注:设置了ATT授权等待,请求ATT授权也需要使用SDK 封装的ATT授权接口。
警告:如果设置了ATT授权等待,没有调用SDK的ATT授权接口,那么安装事件最多会延迟120s才上报。
如果没法调用SDK的ATT授权接口
- 可以您调用系统ATT授权接口后再调用一次SDK的ATT授权接口
- 也可以您调用系统ATT授权接口后再初始化SDK,这样则不用设置ATT授权等待
SolarEngine SDK封装了系统的requestTrackingAuthorizationWithCompletionHandler,completion回调值 status对应系统的ATTrackingManagerAuthorizationStatus
0: Not Determined;1: Restricted;2: Denied;3: Authorized ;999: system error
- (void)requestTrackingAuthorizationWithCompletionHandler:(void (^)(NSUInteger status))completion;
示例代码
[[SolarEngineSDK sharedInstance] requestTrackingAuthorizationWithCompletionHandler:^(NSUInteger status) {
switch (status) {
case 0:
NSLog(@"NotDetermined");
// ATTrackingManagerAuthorizationStatusNotDetermined case
break;
case 1:
NSLog(@"Restricted");
// ATTrackingManagerAuthorizationStatusRestricted case
break;
case 2:
NSLog(@"Denied");
// ATTrackingManagerAuthorizationStatusDenied case
break;
case 3:
NSLog(@"Authorized");
// ATTrackingManagerAuthorizationStatusAuthorized case
break;
case 999:
NSLog(@"systom error");
break;
}
}];