火山引擎DataSail提供埋点数据上报iOS SDK,用户在开通DataSail服务之后,可以通过iOS SDK将埋点数据上报到火山云DataSail。
请确保您已开通了您需要访问的服务。您可前往火山引擎控制台开通全域数据集成服务,详见服务开通。
Access Key(访问密钥)是访问火山引擎服务的安全凭证,包含Access Key ID(简称为AK)和Secret Access Key(简称为SK)两部分。您可登录火山引擎控制台,前往访问控制 的访问密钥 中创建及管理您的Access Key。更多信息可参考访问密钥帮助文档 。
在 Podfile
中添加火山引擎源
source 'https://github.com/volcengine/volcengine-specs.git'
在 Podfile
中添加 DataSail
依赖, 后执行 pod install --repo-update
#required 引入火山引擎源 target APPLICATION_TARGET do pod 'DataSail', '0.0.1' end
具体可用 Specs
列表
CocoaPods Spec | 必要 Required | 功能 FuntionalDesc |
---|---|---|
Core | ✅ | [默认] 埋点核心库 |
Basic | ✅ | [默认] DataSail Core Features 核心功能依赖库 |
DevTools | ❌ | DevTools 开发者工具 |
申请应用:DataSail-应用管理-新建应用
AppID查看
实时埋点 endpoint & taskKey
Endpoint
https://datasail01-cn-beijing.volceapplog.com/v1/production/general/collect/{DataSail 采集任务ID}/list/ |
---|
TaskKey
新建数据采集任务:DataSail-数据采集-采集管理-新建采集任务
采集任务TaskKey查看
可以参考以下代码进行启动
#import <DataSail/DataSail.h> @interface AppDelegate () { DataSailAgent *agent; } @end @implementation AppDelegate //在需要使用埋点之前启动SDK - (BOOL)launchSDK // Override point for customization after application launch. DataSailConfig *config = [DataSailConfig configurationWithAppID:<# nonnull NSString *appId #>]; //租户Id config.tenantId = <# nonnull NSString * tenant Id #>; //schema + url //e.g https://datasail.com/ config.endpointDomain = <# nonnull NSString * Endpoint Domain #>; config.taskKey = <# nonnull NSString * Task Key #>; #if DEBUG //开启Console日志 config.consoleLogEnabled = YES; #endif //是否开启埋点验证,线上Release版本一定要关闭 config.verificationEnabled = <# BOOL verificationEnabled #>; //如果关闭压缩设置 DSCompressionAlgorithmNone config.compression = DSCompressionAlgorithmGZIP; DataSailAgent *agent = [DataSailAgent agentWithConfiguration:config]; self->agent = agent; //用户需要持有实例的内存 //启动 NSError *error; if (![agent start:&error]) { NSLog(@"DataSail init failure due to %@", error.localizedDescription); } else { NSLog(@"DataSail init successful"); } return YES; } @end
[agent trackEvent:<# nonnull NSString * Event Key #> withProperties:<# nullable NSDictionary * props #>];
Properties 参数需要是有效的 JSON 对象,参考 <Foundation/NSJSONSerialization.h>
- All objects are NSString, NSNumber, NSArray, NSDictionary, or NSNull
- All dictionary keys are NSStrings
- NSNumbers are not NaN or infinity
SDK 支持在不同的合规场景下,对于埋点的记录和上报进行独立的功能开关控制
@interface DataSailAgent : NSObject //Default is YES; @property (nonatomic, assign) BOOL eventTrackEnabled; //Default is YES; @property (nonatomic, assign) BOOL eventUploadEnabled; @end
埋点会基于触发的时序上对于用户态进行关联,默认的登录态需要在 SDK 启动后尽快进行设置
//![agent start:&error] //默认登陆态需要在启动后尽快的设置 [agent setUserUniqueId:<# nullable NSString * user_id #>];
1、启动时开启埋点验证功能
config.verificationEnabled = YES;
2、获取在启动后,本地设备ID
//![agent start:&error]NSLog(@"cdid => %@", [agent clientId]);
3、在火山产品页面进行埋点验证,详见用户手册:埋点实时验证
pod 'DataSail/DevTools', '0.0.1'
config.devToolsEnabled = YES;
- (void)onAnyDevToolsButtonClick { if (self.agent.devToolsPanel) { [self.navigationController presentViewController:self.agent.devToolsPanel animated:YES completion:nil]; } }
在 LOG 标签下,选择对应启动的日志文件,左滑后点击蓝色的分享按钮
日志文件名为 session_id 的前缀