conviva-ios-appanalytics
使用应用程序分析来自动收集事件并跟踪特定应用程序的事件和状态变化。
初始化
-
Swift Package Manager (SPM)
-
Cocoapods
- 在 pods 文件中添加以下行
- pod 'ConvivaAppAnalytics', '0.2.15'
- 在 pods 文件中添加以下行
-
手动下载
- 从“下载”中下载并解压缩软件包。在构建阶段,将 ConvivaAppAnalytics.xcframework 添加到 Xcode 中“链接库”部分的“链接二进制库”部分。此软件包包含 iOS 和 tvOS 的框架。
-
将以下系统框架链接到 Xcode 中的“链接库”部分的“链接二进制库”部分
- UIKit
- Foundation
- CoreTelephony(仅限 iOS)
- FMDB(版本 2.7 或更高)
- 在 Xcode 的“其他链接器标志”部分中,添加“-ObjC”。
- 要从源代码中引用 Conviva 类,请添加以下导入语句
* Swift:
import ConvivaAppAnalytics
* ObjC:
@import ConvivaAppAnalytics;
初始化顶级对象
* Swift:
var tracker = CATAppAnalytics.createTracker(customerKey: customerKey, appName: appName)
* ObjC:
id<CATTrackerController> tracker = [CATAppAnalytics createTrackerWithCustomerKey:customerKey appName:appName];
customerKey - 用于标识特定客户账户的字符串。开发/调试环境与生产环境应使用不同的密钥。在Pulse的账户信息页面上查找您的密钥。
appName - 用于区分您应用的字符串值。在这里使用简单且在所有集成平台上唯一的最合适。
设置用户ID(查看者ID)
* Swift:
tracker?.subject?.userId = "user_id"
* ObjC:
tracker.subject.userId = @"user_id";
自定义事件跟踪以跟踪您的应用特定事件和状态更改
使用trackCustomEvent()
来跟踪所有类型的事件。此API提供了2个字段来描述跟踪的事件。
- eventName - 自定义事件的名称。
- eventData - 任意类型的字符串格式数据。
以下示例展示了将'onClick'事件监听器应用于任意元素的实现
* Swift:
let data = "{\"identifier1\": \"test\",\"identifier2\": 1,\"identifier3\":true}"
tracker?.trackCustomEvent("your-event-name", data: data)
* ObjC:
NSString *data = @"{\"identifier1\": \"test\",\"identifier2\": 1,\"identifier3\":true}";
[tracker trackCustomEvent:@"your-event-name" data:data];
屏幕视图跟踪
当用户在屏幕间导航时,通过读取UIViewController类别的类名来跟踪用户旅程。可以使用以下代码根据业务需求自定义屏幕名称。
* Swift:
* //Add below property in view controller
* @objc var catViewId:String = "App Analytics View"
* ObjC:
* //Declare property like below
* @property(copy, nonatomic)NSString *catViewId;
* //Add below line in viewDidLoad method
* self.catViewId = @"Customizable name";
自定义标签支持
已添加支持,以键值对的形式传递自定义数据,这些数据在每个由sdk触发的事件中都可用,并传递到后端。以下是为支持自定义标签添加的新API。
* ObjC:
// Setter API
/**
* Set custom tags.
* Pass custom tags
* @param tags Dictionary of Key-Val pairs.
*/
- (void)setCustomTags:(NSDictionary *)tags;
//Usage
NSDictionary* tags = @{
@"Key1": @"Value1",
@"Key2": @"Value2",
};
[tracker setCustomTags:tags];
// Clear API
/**
* Clears all custom tags.
*/
- (void)clearCustomTags;
//Usage
[tracker clearCustomTags];
/**
* Clears custom tags which are matching keys as passed in.
* Keys of tags to be cleared
* @param tagKeys tagKeys.
*/
- (void)clearCustomTags:(NSArray *)tagKeys;
//Usage
NSArray* keys = @[ @"Key1", @"Key2", @"Key3" ];
[tracker clearCustomTags:keys];
* Swift:
//Usage: Set custom tags
let tags = ["Key1": "Value1", "Key2": "Value2"]
tracker?.setCustomTags(tags)
//Usage: Clear all custom tags
tracker?.clearCustomTags()
//Usage: Clear custom tags
let keys = ["Key1", "Key2", "Key3"]
tracker?.clearCustomTags(keys)