iOS SDK API
最新更新:2025-03-18
SDK 接口說明
- MTMAService,包含 SDK 所有接口。
- MTMAConfig,應用配置信息類。
- MTMAUserID,用戶標識模型。
- MTMAUserContact, 用戶聯繫方式模型。
- MTMACollectControl, 數據採集控制模型。
啟動 MA 業務功能
支援的版本
開始支援的版本: 5.0.0
接口定義
- + start:(MTMAConfig * )config;
- 接口說明:
- 啟用 EngageLab MA 功能。
- start 接口是其他接口的開始接口,所以必須先調用 start 接口,才能調用其他接口
- 參數說明
- config 配置類
- 接口說明:
調用示例
MTMAConfig *config = [[MTMAConfig alloc] init];
[MTMAService start:config];
MTMAConfig *config = [[MTMAConfig alloc] init];
[MTMAService start:config];
此代碼塊在浮窗中顯示
設置用戶聯繫方式
支援的版本
開始支援的版本: 5.0.0
接口定義
- + (void)setUserContact:(MTMAUserContact * )contact;
- 接口說明:
- 設置用戶聯繫方式
- 參數說明
- contacts:設置多個聯繫方式,Key 為聯繫方式的名稱,value 為聯繫方式的值,目前支援 email、mobile_phone、landline_phone、whatsapp_phone 這 4 種聯繫方式
- 接口說明:
調用示例
MTMAUserContact *contact = [[MTMAUserContact alloc] init];
contact.contacts = @{@"工作手機":@"13*********"};
contact.completion = ^(NSInteger code, NSString * _Nonnull message) { };
[MTMAService setUserContact:contact];
MTMAUserContact *contact = [[MTMAUserContact alloc] init];
contact.contacts = @{@"工作手機":@"13*********"};
contact.completion = ^(NSInteger code, NSString * _Nonnull message) { };
[MTMAService setUserContact:contact];
此代碼塊在浮窗中顯示
事件上報
支援的版本
開始支援的版本: 5.0.0
接口定義
- **+ (void)eventRecord:(MTMAEventObject )event;*
- 接口說明:
- 上報事件
- 參數說明
- 上報事件模型
- eventName:上報的事件名稱
- property:事件屬性,Key為屬性名稱,value為屬性值
- 接口說明:
調用示例
MTMAEventObject *object = [[MTMAEventObject alloc] init];
object.eventName = @"sndefineevent2";
object.property = @{
@"key1":@"value1",
@"key2":@"value2",
};
[MTMAService eventRecord:object];
MTMAEventObject *object = [[MTMAEventObject alloc] init];
object.eventName = @"sndefineevent2";
object.property = @{
@"key1":@"value1",
@"key2":@"value2",
};
[MTMAService eventRecord:object];
此代碼塊在浮窗中顯示
設置用戶標識
支援的版本
開始支援的版本: 5.0.0
接口定義
- + (void)identifyAccount:(MTMAUserID * )userID;
- 接口說明:
- 設置用戶標識
- 參數說明
- 用戶標識模型
- userID:將唯一的登錄用戶標識設置在此
- anonymousID:當用戶未登錄,但提供了其他可作為標識的信息時,可將其設置為匿名ID,如郵箱地址、第三方生成的標識ID
- 接口說明:
調用示例
MTMAUserID *userid = [[MTMAUserID alloc] init];
userid.anonymousID = @"xxx";
userid.userID = @"xxx";
[MTMAService identifyAccount:userid];
MTMAUserID *userid = [[MTMAUserID alloc] init];
userid.anonymousID = @"xxx";
userid.userID = @"xxx";
[MTMAService identifyAccount:userid];
此代碼塊在浮窗中顯示
設置上報數據間隔
支援的版本
開始支援的版本: 5.0.0
接口定義
- + (void)setReportInterval:(NSInteger)interval;
- 接口說明:
- 設置上報數據間隔,不調用該接口時,默認為 10s 上報一次事件數據
- 上報間隔內存緩存,需要在應用程式每次生命週期中調用才會生效
- 參數說明
- interval 上報間隔,單位 s(秒)
- 接口說明:
調用示例
[MTMAService setReportInterval:10];
[MTMAService setReportInterval:10];
此代碼塊在浮窗中顯示
設置事件緩存上限條數
支援的版本
開始支援的版本: 5.0.0
接口定義
- + (void)setMaxEventCacheCount:(NSInteger)count;
- 接口說明:
- 設置事件緩存上限條數,默認 50 條,最高不能超過 500 條
- 當超出緩存數量時會上報報全部數據
- 參數說明
- count 事件緩存條數上限
- 接口說明:
調用示例
[MTMAService setMaxEventCacheCount:50];
[MTMAService setMaxEventCacheCount:50];
此代碼塊在浮窗中顯示
設置會話超時時間
支援的版本
開始支援的版本: 5.0.0
接口定義
- + (void)setNoActiveSessionEndDurationTime:(NSInteger)interval;
- 接口說明:
- 設置會話超時時間,默認 30 分鐘
- App 切換到後台,會話開始超時計時,超時時間內沒有活動,就結束當前會話
- 參數說明
- interval 超時時長,單位s(秒)
- 接口說明:
調用示例
[MTMAService setNoActiveSessionEndDurationTime:50];
[MTMAService setNoActiveSessionEndDurationTime:50];
此代碼塊在浮窗中顯示
獲取 EUID
支援的版本
開始支援的版本: 5.0.0
接口定義
- + (NSString * )EUID;
- 接口說明:
- 獲取 EngageLab MA 的 EUID
- 接口說明:
調用示例
[MTMAService EUID];
[MTMAService EUID];
此代碼塊在浮窗中顯示
設置 UTM 屬性
支援的版本
開始支援的版本: 5.0.0
接口定義
- + (void)setUtmProperties:(NSDictionary * )property;
- 接口說明:
- UTM 屬性為標準事件屬性,若開發者能識別用戶是從哪一個廣告跳轉訪問 App ,建議設置 UTM 信息,我們將在事件上報時傳遞該參數。目前能夠設置 UTM 屬性為:
- utm_source 廣告系列來源
- utm_medium 廣告系列媒介
- utm_term 廣告系列字詞
- utm_content 廣告系列內容
- utm_campaign 廣告系列名稱
- utm_id 廣告系列ID
- UTM 屬性為標準事件屬性,若開發者能識別用戶是從哪一個廣告跳轉訪問 App ,建議設置 UTM 信息,我們將在事件上報時傳遞該參數。目前能夠設置 UTM 屬性為:
- 接口說明:
調用示例
[MTMAService setUtmProperties:@{@"utm_source":@"value"}];
[MTMAService setUtmProperties:@{@"utm_source":@"value"}];
此代碼塊在浮窗中顯示
設置用戶屬性
覆蓋更新用戶屬性
- + (void)setProperty:(NSDictionary * )userinfo completion:(void (^)(NSInteger code, NSString * message))completion;
- 接口說明:
- 這些用戶屬性的內容用一個 NSDictionary 來存儲,其中的 key 是用戶屬性的名稱,必須是 NSString,Value 則是用戶屬性的內容,只支援 NSString、NSNumber,NSSet、NSArray 這些類型。
- NSSet 或者 NSArray 類型的 value 中目前只支援其中的元素是 NSString。
- 如果某個用戶屬性之前已經存在了,則這次會被覆蓋掉;不存在,則會創建。如:用戶會員等級。
- 調用示例:
- 接口說明:
[MTMAService setProperty:@{@"key":@"value"} completion:^(NSInteger code, NSString * _Nonnull message) {
}];
[MTMAService setProperty:@{@"key":@"value"} completion:^(NSInteger code, NSString * _Nonnull message) {
}];
此代碼塊在浮窗中顯示
- + (void)setProperty:(NSString * )key to:(id)value completion:(void (^)(NSInteger code, NSString * message))completion;
- 接口說明:
- 設置用戶的單個用戶屬性的內容。
- 這些用戶屬性的內容用一個 NSDictionary 來存儲,其中的 key 是用戶屬性的名稱,必須是 NSString,Value 則是用戶屬性的內容,只支援 NSString、NSNumber,NSSet、NSArray 這些類型。
- NSSet 或者 NSArray 類型的 value 中目前只支援其中的元素是 NSString。
- 如果某個用戶屬性之前已經存在了,則這次會被覆蓋掉;不存在,則會創建。如:用戶會員等級。
- 調用示例:
- 接口說明:
[MTMAService setProperty:@"key" to:@"value" completion:^(NSInteger code, NSString * _Nonnull message) {
}];
[MTMAService setProperty:@"key" to:@"value" completion:^(NSInteger code, NSString * _Nonnull message) {
}];
此代碼塊在浮窗中顯示
累加更新用戶屬性
- **+ (void)increaseProperty:(NSString )key by:(NSNumber )amount completion:(void (^)(NSInteger code, NSString * message))completion;
- 接口說明:
- 給一個數值類型的用戶屬性增加一個數值,累加所有上報的數據,如累計消費金額。
- 只能對 NSNumber 類型的用戶屬性調用這個接口,否則會被忽略, 如果這個用戶屬性之前不存在,則初始值當做 0 來處理。
- 調用示例:
- 接口說明:
[MTMAService increaseProperty:@"key" by:@(2) completion:^(NSInteger code, NSString * _Nonnull message) {
}];
[MTMAService increaseProperty:@"key" by:@(2) completion:^(NSInteger code, NSString * _Nonnull message) {
}];
此代碼塊在浮窗中顯示
- **+ (void)increaseProperty:(NSDictionary )userinfo completion:(void (^)(NSInteger code, NSString * message))completion;*
- 接口說明:
- 給多個數值類型的用戶屬性增加數值,累加所有上報的數據,如累計消費金額。
- 只能對 NSNumber 類型的用戶屬性調用這個接口,否則會被忽略, 如果這個用戶屬性之前不存在,則初始值當做 0 來處理。
- 調用示例:
- 接口說明:
[MTMAService increaseProperty:@{@"key1":@(5),@"key2":@(3)} completion:^(NSInteger code, NSString * _Nonnull message) {
}];
[MTMAService increaseProperty:@{@"key1":@(5),@"key2":@(3)} completion:^(NSInteger code, NSString * _Nonnull message) {
}];
此代碼塊在浮窗中顯示
追加用戶屬性
- **+ (void)addProperty:(NSString )key by:(NSObject
)content completion:(void (^)(NSInteger code, NSString * message))completion - 接口說明:
- 向一個 NSSet 或者 NSArray 類型的屬性添加一些值。
- 如前面所述,這個 NSSet 或者 NSArray 的元素必須是 NSString,否則,會忽略, 同時,如果要 add 的用戶屬性之前不存在,會初始化一個空的 NSSet 或者 NSArray。
- 調用示例:
- 接口說明:
[MTMAService addProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {
}];
[MTMAService addProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {
}];
此代碼塊在浮窗中顯示
- **+ (void)addProperty:(NSDictionary )userinfo completion:(void (^)(NSInteger, NSString * _Nonnull))completion;*
- 接口說明:
- 向多個 NSSet 或者 NSArray 類型的屬性添加一些值。
- 如前面所述,這個 NSSet 或者 NSArray 的元素必須是 NSString,否則,會忽略, 同時,如果要 add 的用戶屬性之前不存在,會初始化一個空的 NSSet 或者 NSArray。
- 調用示例:
- 接口說明:
[MTMAService addProperty:@{@"key1":@[@"value"],@"key2":@[@"value"]} completion:^(NSInteger code, NSString * _Nonnull message) {
}];
[MTMAService addProperty:@{@"key1":@[@"value"],@"key2":@[@"value"]} completion:^(NSInteger code, NSString * _Nonnull message) {
}];
此代碼塊在浮窗中顯示
移除用戶屬性
- **+ (void)removeProperty:(NSString * )key by:(NSObject
)content completion:(void (^)(NSInteger code, NSString * message))completion;* - 接口說明:
- 向一個 NSSet 或者 NSArray 類型的屬性刪除一些值。
- 參數 content 類型為 NSSet 或者 NSArray,裡面的元素必須是 NSString。
- 調用示例:
- 接口說明:
[MTMAService removeProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {
}];
[MTMAService removeProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {
}];
此代碼塊在浮窗中顯示
刪除用戶屬性
支援的版本
開始支援的版本: 5.0.0
接口定義
- + (void)deleteProperty:(NSString * )key completion:(void (^)(NSInteger code, NSString * message))completion;
- 接口說明:
- 刪除某個用戶屬性的全部內容
- 如果這個用戶屬性之前不存在,則直接忽略
- 接口說明:
調用示例
[MTMAService deleteProperty:@"key" completion:^(NSInteger code, NSString * _Nonnull message) {
}];
[MTMAService deleteProperty:@"key" completion:^(NSInteger code, NSString * _Nonnull message) {
}];
此代碼塊在浮窗中顯示
數據採集控制
支援的版本
開始支援的版本: 5.0.0
接口定義
- **+ (void)setCollectControl:(MTMACollectControl )control;*
- 接口說明:
- 控制 MTMACollectControl 類中數據項是否採集
- 接口說明:
調用示例
MTMACollectControl *collectControl = [[MTMACollectControl alloc] init];
collectControl.idfa = YES;
collectControl.idfv = YES;
collectControl.carrier = YES;
[MTMAService setCollectControl:collectControl];
MTMACollectControl *collectControl = [[MTMACollectControl alloc] init];
collectControl.idfa = YES;
collectControl.idfv = YES;
collectControl.carrier = YES;
[MTMAService setCollectControl:collectControl];
此代碼塊在浮窗中顯示
MTMAConfig 類
應用配置信息類。以下是屬性說明:
參數名稱 | 參數類型 | 參數說明 |
---|---|---|
userID | MTMAUserID | 用戶標識模型,當設置該屬性時時會在初始化時進行設置用戶標識 |
completion | (^)(NSInteger code, NSString * message) | 请求結果回調, code:0為成功 |
MTMAUserID 類
用戶標識模型類。以下是屬性說明:
參數名稱 | 參數類型 | 參數說明 |
---|---|---|
userID | NSString | 將唯一的登錄用戶標識設置在此 |
anonymousID | NSString | 當用戶未登錄,但提供了其他可作為標識的信息時,可將其設置為匿名ID,如郵箱地址、第三方生成的標識ID |
completion | (^)(NSInteger code, NSString * message) | 请求結果回調, code:0 為成功 |
MTMACollectControl 類
用戶數據採集控制模型類。以下是屬性說明:
參數名稱 | 參數類型 | 參數說明 |
---|---|---|
idfa | BOOL | 是否採集idfa信息。設置為NO,不採集idfa信息。默認為NO。 |
idfv | BOOL | 是否採集idfv信息。設置為NO,不採集idfv信息。默認為NO。 |
carrier | BOOL | 是否採集運營商信息。設置為NO,不採集運營商信息。默認為YES。 |
MTMAUserContact 類
用戶通道模型類。以下是屬性說明:
如果不設置或者設置為 nil 則認為不修改,設置為 "" 空字符串的時候認為清空該聯繫方式
參數名稱 | 參數類型 | 參數說明 |
---|---|---|
contacts | NSDictionary | 聯繫方式字典,支援 email、mobile_phone、landline_phone、whatsapp_phone 這 4 種聯繫方式 |
completion | (^)(NSInteger code, NSString * message) | 请求結果回調, code:0 為成功 |
MTMAEventObject 類
自定義事件對象類。以下是屬性說明:
參數名稱 | 參數類型 | 參數說明 |
---|---|---|
eventName | NSString | 事件 ID,必填,非空 |
property | NSDictionary<NSString *, id> | 自定義屬性 (小於等於500個) key 為 NSString,只能包含數字字母下劃線;value 可以是 NSString/NSNumber |