You need to enable JavaScript to run this app.
文档中心
增长分析 DataFinder

增长分析 DataFinder

复制全文
下载 pdf
iOS SDK(旧版文档)
iOS SDK集成
复制全文
下载 pdf
iOS SDK集成

注意

iOS SDK集成文档已改版,请查看新版文档:iOS SDK 集成

您可以通过IOS SDK对IOS客户端进行数据埋点采集。以下为您提供了IOS SDK集成的流程介绍视频,您可以先打开对应的视频,下载demo示例文件,然后结合详细文档学习IOS SDK集成的操作。

示例demo

讲解视频

  • SaaS:
    iosSDKDemoSaas.zip
    未知大小
  • 私有部署:
    iosSDKDemoPri.zip
    未知大小

示例demo中已为您做了基础的集成代码,您可下载后对照着文档和视频进行学习、改写。

操作前须知
  • SDK版本:当前SDK版本在不断迭代发布中,您可前往Git开源页面查看各端的SDK版本情况,推荐使用最新版本SDK。本文中的代码示例以一个版本号作为示例,您实际使用时,需根据使用的实际SDK版本修改其中的版本号。
  • 下载SDK包:集成SDK时,如果您需要手动引入SDK,需前往Git开源页面下载对应版本的SDK包。
  • 使用iOS SDK时,您可先了解通用的数据上报策略(数据上报策略)、已支持的预置事件(APP预置事件及属性)和iOS端的上报流程(6. 参考:数据上报流程与触发时机)。

1. 集成增长营销套件SDK

1.1 使用CocoaPods引入source源

在Podfile中,添加source源。

source 'https://github.com/volcengine/volcengine-specs.git'

1.2 引入SDK

在Podfile中,引入SDK,并执行pod install --repo-update更新Pods。

  • SaaS-云原生(含海外柔佛地域)/私有化环境

    pod 'RangersAppLog', '6.17.3', 
        :subspecs => [
            'Core',
            'UITracker',#全埋点功能(可选)
            'Log', #无需圈选和实时埋点检测可以移除,参考1.4节(可选)
            'Picker', #无需圈选功能可以移除,参考4.2节(可选)
            'Unique' #用于在授权后采集IDFA,无需采集可以移除,参考4.8节(可选)
        ]
    
  • SaaS-非云原生环境

    pod 'RangersAppLog', '6.17.3', 
        :subspecs => [
            'Core',
            'Host/CN', #SaaS 国内非云原生需引入,国内云原生/海外云原生/私有化版本无需引入    
            'UITracker',#全埋点功能(可选)
            'Log', #无需圈选和实时埋点检测可以移除,参考1.4节(可选)
            'Picker', #无需圈选功能可以移除,参考4.2节(可选)
            'Unique' #用于在授权后采集IDFA,无需采集可以移除,参考4.8节(可选)
        ]
    
  • SaaS-非云原生-海外BytePlus环境

    pod 'RangersAppLog', '6.17.3', 
        :subspecs => [
            'Core',
            'Host/SG', #SaaS 海外非云原生需引入,国内云原生/海外云原生/私有化版本无需引入   
            'UITracker', #全埋点功能(可选)
            'Log', #无需圈选和实时埋点检测可以移除,参考1.4节(可选)    
            'Picker', #无需圈选功能可以移除,参考4.2节(可选)    
            'Unique' #用于在授权后采集IDFA,无需采集可以移除,参考4.8节(可选)    
        ]
    

1.3 引入调试工具 - DevTools组件(可选)

6.12.0+ 支持
开发调试阶段集成,请勿带入线上环境。

DevTools是辅助开发者或测试人员进行应用内埋点验证和SDK接入问题排查的组件。

  1. SDK subspecs 添加 DevTools
pod 'RangersAppLog', 'SDK-VERSION', 
    :subspecs => [
        ...
        'DevTools', 
        ...
    ]
  1. 开启相关功能
#import <RangersAppLog/BDAutoTrackDevTools.h>
// 配置开启DevTool功能
config.devToolsEnabled = YES;

// 在 BDAutoTrack 初始化之后添加方法 显示悬浮按钮入口
[BDAutoTrackDevTools showFloatingEntryButton];

详细接入文档请查阅iOS埋点开发工具

1.4 实时埋点检测和圈选功能(可选)

如需使用实时埋点检测圈选事件,请引入Log子库,否则可跳过此步骤。
请注意,除引入子库外,您还需要完成下文3.配置Scheme的步骤。

1.5 手动引入须知

推荐您通过CocoaPods引入SDK。如特殊情况需要手动引入,可参考本章节内容进行手动引入。

  1. 请前往iOS SDK包下载页面获取对应版本的SDK包。

    说明

    iOS离线包名称为*版本号*.zip格式。例如:6.17.0.zip,其中6.17.0为SDK版本号。

  2. 将安装包下的文件复制到项目文件夹下,并在XCode中依次添加到项目中。添加依赖:
  • libz.tbd
  • libsqlite3.tbd
  • CoreGraphics.framework
  • Security.framework
  • CoreTelephony.framework (读取运营商名称)
  • SystemConfiguration.framework (判断网络状态)
  • JavaScriptCore.framework
  • WebKit.framework
  • AdSupport.framework (不使用全埋点或圈选功能就不需要依赖)
  • AppTrackingTransparency.framework (不集成Unique模块不需要依赖)

设置 Build Settings -> Header Search Paths 添加 Headers 文件夹路径:
Image
设置 Build Settings -> Linking -> Other Linker Flags 添加 -ObjC:
Image

2. 初始化 增长营销套件SDK

说明:

  1. SDK初始化:SDK初始化不会获取个人信息。建议您在用户同意您App中的隐私政策后,再进行 SDK 的初始化; 用户同意隐私政策之前,应避免动态申请涉及用户个人信息的敏感设备权限,应避免私自采集和上报个人信息。当您的App未向用户提供服务时,请勿请求 SDK的相关服务。
  2. SDK启动:SDK启动后会开始信息获取和事件上报。请根据所需功能场景进行“SDK启动”步骤,具体方法参考Applog 初始化后控制数据发送
  3. 建议在“SDK初始化”后尽快“SDK启动”。您也可以自主控制“SDK启动”时机,不过由于SDK启动前的一些事件信息无法获取,可能会影响SDK功能效果。

2.1 获取appid

在开始集成前,首先需要在集团中拥有一个应用,进行 SDK 集成前,您需要获取对应应用的 appid 信息。

  • SaaS-云原生场景下,您可以在「项目中心」->「项目管理」->「项目详情」-> 接入应用的「详情」->「应用 ID」中可查看您的 appid,详情请参见项目管理
    Image
  • SaaS-非云原生场景下,您可以在「应用列表」-> 接入应用的「详情」->「应用 ID」中可查看您的 appid,详情请参见应用列表
    Image

2.2 获取数据上送地址

进行数据接入上报时,您需要根据当前的环境类型和端类型确认您的数据上报地址,如果上报地址设置错误,后续会导致您无法查询到上报的数据。

注意

  • 请在上报数据前,务必确认您当前使用的环境类型,根据环境类型配置上报地址。查看当前的环境类型请参见SaaS云原生/非云原生&私有化环境
  • 如果您使用的是SaaS-云原生环境,您也需确认您的服务所在的地域,根据所在地域配置上报地址(通常您的服务会在华北2-北京地域,部分用户可能会使用其他地域)。SaaS-云原生用户查看服务所在地域请参见支持的地域

SaaS-云原生 & SaaS-非云原生

端类型

SaaS-云原生环境
(国内:华北2-北京&华南1-广州)

SaaS-云原生环境
(海外:亚太东南-柔佛)

SaaS-非云原生环境 国内环境

SaaS-非云原生 海外BytePlus环境
(以下 SG 指新加坡)

iOS

  • SaaS-云原生(华北):https://gator.volces.com
  • SaaS-云原生(华南):
    https://gator.uba.cn-guangzhou.volces.com
  • https://gator.uba.ap-southeast-1.volces.com

引入:'Host/CN' 后,无需配置

引入:'Host/SG' 后,无需配置

私有化环境

私有化部署场景下,您需要获取部署私有化环境时,自行规划配置的数据上送地址。如您不清楚此地址,请联系您的项目经理或客户成功经理。

2.3 初始化SDK

2.3.1 SaaS-云原生版本

如您使用Saas云原生部署版本,请参照如下代码初始化SDK,初始化代码必须在主线程执行。

  • Objective-C请参考:

    #import <RangersAppLog/BDAutoTrack.h>
    #import <RangersAppLog/BDAutoTrackConfig.h>
    #import <RangersAppLog/BDAutoTrackURLHostItemCN.h>
    // 若使用 Unique 子库,则需要依赖该头文件
    #import <RangersAppLog/BDAutoTrack+IDFA.h>
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        /* 初始化SDK开始 */
        // 参数APPID: 参考2.1节获取
        BDAutoTrackConfig*config = [BDAutoTrackConfig configWithAppID:@"{{APPID}}" launchOptions:launchOptions];
        // 设置渠道,iOS一般默认App Store渠道
        config.channel = @"App Store"; 
    
        // 设置数据上送地址,您需根据使用的DataFinder服务所在地域配置上送地址,详情见上文 获取数据上送地址 章节
        config.serviceVendor = BDAutoTrackServiceVendorPrivate;
        BDAutoTrackRequestHostBlock block =
            ^NSString *(BDAutoTrackServiceVendor vendor, BDAutoTrackRequestURLType requestURLType) {
                return @"https://gator.volces.com";
            };
        [BDAutoTrack setRequestHostBlock:block];
        
        config.autoTrackEnabled = YES; // 全埋点开关,YES开启,NO关闭
        config.showDebugLog = NO; // YES:开启日志,需要参考4.3设置Logger,NO:关闭日志
        config.logNeedEncrypt = YES; // 加密开关,YES开启,NO关闭
        [BDAutoTrack sharedTrackWithConfig:config];
        /* 初始化SDK结束 */
        
        // 若使用 Unique 子库,则需要配置 idfa 专用域名
        [BDAutoTrack.sharedTrack setRequestIDFAHostBlock:^NSString * _Nullable(BDAutoTrackServiceVendor  _Nonnull vendor, BDAutoTrackRequestURLType requestURLType) {
            return @"https://gator-tracking.datafinder.volces.com";
        }];
        
        // 如果需要设置当前登陆态 since 6.13.0+
        // [[BDAutoTrack sharedTrack] setCurrentUserUniqueID:@"当前登陆态UUID"]; 
        // 授权后
        [[BDAutoTrack sharedTrack] startTrack]; //SDK启动 
    }
    
  • Swift请参考:

    import RangersAppLog
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
            /* 初始化SDK开始 */
            // 参数APPID: 参考2.1节获取
            let config = BDAutoTrackConfig(appID: "{{APPID}}")
            // 设置渠道,iOS一般默认App Store渠道
            config.channel = "App Store"
            // 设置数据上送地址,您需根据使用的DataFinder服务所在地域配置上送地址,详情见上文 获取数据上送地址 章节
            config.serviceVendor = .private
            BDAutoTrack.setRequestHostBlock {(vendor: BDAutoTrackServiceVendor, requestURLType:BDAutoTrackRequestURLType) -> String? in
                return "https://gator.volces.com"
            }
            
            config.autoTrackEnabled = true // 全埋点开关,true开启,false关闭
            config.showDebugLog = false // true:开启日志,需要参考4.3设置Logger,false:关闭日志
            config.logNeedEncrypt = true // 加密开关,true开启,false关闭
            BDAutoTrack.sharedTrack(with: config)
            /* 初始化SDK结束 */  
    
            // 若使用 Unique 子库,则需要配置 idfa 专用域名
            BDAutoTrack.shared().setRequestIDFAHostBlock {(vendor: BDAutoTrackServiceVendor, requestURLType:BDAutoTrackRequestURLType) -> String? in
                return "https://gator-tracking.datafinder.volces.com"
            }
            
            // 如果需要设置当前登陆态 since 6.13.0+
            // BDAutoTrack.shared().setCurrentUserUniqueID("uuid")
            BDAutoTrack.shared().start() //SDK启动
            return true
        }
    

2.3.2 SaaS-非云原生版本

如您使用SaaS部署版本,请参照如下代码初始化SDK。初始化代码必须在主线程执行。

  • Objective-C请参考:

    #import <RangersAppLog/BDAutoTrack.h>
    #import <RangersAppLog/BDAutoTrackConfig.h>
    #import <RangersAppLog/BDAutoTrackURLHostItemCN.h>
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        /* 初始化SDK开始 */
        // 参数APPID: 参考2.1节获取
        BDAutoTrackConfig *config = [BDAutoTrackConfig configWithAppID:@"{{APPID}}" launchOptions:launchOptions];
        // 设置渠道,iOS一般默认App Store渠道
        config.channel = @"App Store"; 
        // 设置数据上送地址,详情见上文 获取数据上送地址 章节
        config.serviceVendor = BDAutoTrackServiceVendorCN;//海外BytePlus版本请配置为BDAutoTrackServiceVendorSG
        config.autoTrackEnabled = YES; // 全埋点开关,YES开启,NO关闭
        config.showDebugLog = NO; // YES:开启日志,需要参考4.3设置Logger,NO:关闭日志
        config.logNeedEncrypt = YES; // 加密开关,YES开启,NO关闭
        [BDAutoTrack sharedTrackWithConfig:config]; //SDK初始化
        /* 初始化SDK结束 */
        
        // 如果需要设置当前登陆态 since 6.13.0+
        // [[BDAutoTrack sharedTrack] setCurrentUserUniqueID:@"当前登陆态UUID"]; 
        // 授权后
        [[BDAutoTrack sharedTrack] startTrack]; //SDK启动 
    }
    
  • Swift请参考:

    import RangersAppLog
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
            /* 初始化SDK开始 */
            // 参数APPID: 参考2.1节获取
            let config = BDAutoTrackConfig(appID: "{{APPID}}")
            // 设置渠道,iOS一般默认App Store渠道
            config.channel = "App Store"
            // 设置数据上送地址,详情见上文 获取数据上送地址 章节
            config.serviceVendor = BDAutoTrackServiceVendor.CN //海外BytePlus环境版本请配置为BDAutoTrackServiceVendor.SG
            config.autoTrackEnabled = true // 全埋点开关,true开启,false关闭
            config.showDebugLog = false // true:开启日志,需要参考4.3设置Logger,false:关闭日志
            config.logNeedEncrypt = true // 加密开关,true开启,false关闭
            BDAutoTrack.sharedTrack(with: config)
            /* 初始化SDK结束 */  
            
            // 如果需要设置当前登陆态 since 6.13.0+
            // BDAutoTrack.shared().setCurrentUserUniqueID("uuid")
            // 授权后
            BDAutoTrack.shared().start() //SDK启动
            return true
        }
    

2.3.3 私有化版本

如您使用私有化部署版本,请参照如下代码初始化SDK,初始化代码必须在主线程执行。

  • Objective-C请参考:

    #import <RangersAppLog/BDAutoTrack.h>
    #import <RangersAppLog/BDAutoTrackConfig.h>
    #import <RangersAppLog/BDAutoTrackURLHostItemCN.h>
    // 若使用 Unique 子库,则需要依赖该头文件
    #import <RangersAppLog/BDAutoTrack+IDFA.h>
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        /* 初始化SDK开始 */
        // 参数APPID: 参考2.1节获取
        BDAutoTrackConfig*config = [BDAutoTrackConfig configWithAppID:@"{{APPID}}" launchOptions:launchOptions];
        // 设置渠道,iOS一般默认App Store渠道
        config.channel = @"App Store"; 
        
        // 设置私有化部署数据上送地址,参考2.2节获取,{{REPORT_URL}} 例如 https://yourdomain.com,注意域名后不要加“/”
        config.serviceVendor = BDAutoTrackServiceVendorPrivate;
        BDAutoTrackRequestHostBlock block =
            ^NSString *(BDAutoTrackServiceVendor vendor, BDAutoTrackRequestURLType requestURLType) {
                return @"{{REPORT_URL}}";
            };
        [BDAutoTrack setRequestHostBlock:block];
        
        config.autoTrackEnabled = YES; // 全埋点开关,YES开启,NO关闭
        config.showDebugLog = NO; // YES:开启日志,需要参考4.3设置Logger,NO:关闭日志
        config.logNeedEncrypt = YES; // 加密开关,YES开启,NO关闭
        [BDAutoTrack sharedTrackWithConfig:config]; //SDK初始化
        /* 初始化SDK结束 */
        
        // 若使用 Unique 子库,则需要配置 idfa 专用域名
        [BDAutoTrack.sharedTrack setRequestIDFAHostBlock:^NSString * _Nullable(BDAutoTrackServiceVendor  _Nonnull vendor, BDAutoTrackRequestURLType requestURLType) {
            return @"{{IDFA_REPORT_URL}}";
        }];
        
        // 如果需要设置当前登陆态 since 6.13.0+
        // [[BDAutoTrack sharedTrack] setCurrentUserUniqueID:@"当前登陆态UUID"]; 
        // 授权后
        [[BDAutoTrack sharedTrack] startTrack]; //SDK启动  
    }
    
  • Swift请参考:

    import RangersAppLog
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
            /* 初始化SDK开始 */
            // 参数APPID: 参考2.1节获取
            let config = BDAutoTrackConfig(appID: "{{APPID}}")
            // 设置渠道,iOS一般默认App Store渠道
            config.channel = "App Store"
            
            // 设置私有化部署数据上送地址,参考2.2节获取,{{REPORT_URL}} 例如 https://yourdomain.com,注意域名后不要加“/”
            config.serviceVendor = .private
            BDAutoTrack.setRequestHostBlock {(vendor: BDAutoTrackServiceVendor, requestURLType:BDAutoTrackRequestURLType) -> String? in
                return "{{REPORT_URL}}"
            }
            
            config.autoTrackEnabled = true // 全埋点开关,true开启,false关闭
            config.showDebugLog = false // true:开启日志,需要参考4.3设置Logger,false:关闭日志
            config.logNeedEncrypt = true // 加密开关,true开启,false关闭
            BDAutoTrack.sharedTrack(with: config)
            /* 初始化SDK结束 */ 
            
            // 若使用 Unique 子库,则需要配置 idfa 专用域名
            BDAutoTrack.shared().setRequestIDFAHostBlock {(vendor: BDAutoTrackServiceVendor, requestURLType:BDAutoTrackRequestURLType) -> String? in
                return "{{IDFA_REPORT_URL}}"
            }
            
            // 如果需要设置当前登陆态 since 6.13.0+
            // BDAutoTrack.shared().setCurrentUserUniqueID("uuid")
            // 授权后
            BDAutoTrack.shared().start() //SDK启动
            return true
        }
    

2.4 多实例初始化(可选)

多实例初始化,指SDK支持在同包名的App中向多个应用(多个appid)开启埋点,且埋点数据相互隔离,每一个appid对应一个单独的实例。使用场景例如:

  • 第三方SDK依赖增长营销套件SDK做SDK内部产生的埋点时;
  • 同一个App或系统中,关联多个埋点应用(多个appid),共用增长营销套件SDK时。

Objective-C请参考:

BDAutoTrackConfig* config1 = [BDAutoTrackConfig configWithAppID:@"{{APPID_1}}" launchOptions:launchOptions];
BDAutoTrack *track1 = [BDAutoTrack trackWithConfig:config1];
[track1 startTrack];

BDAutoTrackConfig* config2 = [BDAutoTrackConfig configWithAppID:@"{{APPID_2}}" launchOptions:launchOptions];
BDAutoTrack *track2 = [BDAutoTrack trackWithConfig:config2];
[track2 startTrack];

Swift请参考:

let config1 = BDAutoTrackConfig.init(appID: "{{APPID_1}}", launchOptions: launchOptions)
let tracker1 = BDAutoTrack.init(config: config1);
tracker1!.start()

let config2 = BDAutoTrackConfig.init(appID: "{{APPID_2}}", launchOptions: launchOptions)
let tracker2 = BDAutoTrack.init(config: config2);
tracker2!.start()

3. 配置Scheme(可选)

如需使用实时埋点检测圈选事件,请配置Scheme,否则可跳过此步骤。

3.1 获取URL Scheme

「应用列表」-> 接入应用的「详情」->「URL Scheme」中可查看您的scheme,一般为rangersapplog.xxxxx的形式。
Image

3.2 添加URL Scheme

把URL Scheme添加到您的项目中。
Image

3.3 重写回调方法

请根据需要使用实时埋点检测或圈选事件功能的设备版本,并添加URL的处理。
AppDelegate回调里面添加 URL 的处理。

#import <RangersAppLog/BDAutoTrackSchemeHandler.h>
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
    // 参数APPID: 参考2.1节获取
    if ([[BDAutoTrackSchemeHandler sharedHandler] handleURL:url appID:@"appid" scene:nil]) {
        return YES;
    }
    // ……
    return NO;
}

在 iOS 13+ 版本中,使用 UISceneSession 需要在 UISceneDelegate 回调方法添加URL的处理。

  • Objective-C请参考:

    #import <RangersAppLog/BDAutoTrackSchemeHandler.h>
    - (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts {
        for (UIOpenURLContext *context in URLContexts) {
            NSURL *URL = context.URL;
            // 参数APPID: 参考2.1节获取
            if ([[BDAutoTrackSchemeHandler sharedHandler] handleURL:URL appID:@"{{APPID}}" scene:scene]) {
                continue;
            }
            /// ……
        }
    }
    
  • Swift请参考:

    import RangersAppLog
    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {  
        // 参数APPID: 参考2.1节获取
        if(BDAutoTrackSchemeHandler.shared().handle(url, appID: "{{APPID}}", scene: nil)) {
           return true
        }      
        return false
    }
    

4. 初始化基本配置

以下为常用的初始化基本配置,config 均指初始化时的BDAutoTrackConfig

4.1 全埋点设置开关

注意

全埋点开关默认开启。SDK中开启全埋点后,后续实际使用前,您还需在DataFinder控制台查看并确认全埋点的开关已打开。

  • SaaS-云原生和私有化场景:进入到项目中心>项目管理>SDK设置,确保全埋点开关已打开。
  • SaaS-非云原生场景:进入到「数据管理-圈选事件」页面中,将「全埋点数据采集」开关打开即可正常使用。
  • Objecetive-C请参考:

    // 开启全埋点事件的上送
    config.autoTrackEnabled = YES; // 全埋点开关,YES开启,NO关闭
    
  • Swift请参考:

    // 开启全埋点事件的上送
    config.autoTrackEnabled = true // 全埋点开关,true开启,false关闭
    

4.2 开启圈选埋点

在1.2节的引入中,引入Picker子库即开启圈选埋点。相反,移除Picker子库即关闭圈选埋点。

4.3 查看日志打印

注意

日志打印默认关闭,建议上线生产包关闭。

  • Objecetive-C请参考:

    // 在控制台输出日志,可用于观察用户行为日志上报情况,建议在上线时关闭
    config.showDebugLog = NO; // YES:开启日志,NO:关闭日志
    
  • Swift请参考:

    // 在控制台输出日志,可用于观察用户行为日志上报情况,建议在上线时关闭
    config.showDebugLog = false // true:开启日志,false:关闭日志
    

4.4 加密设置开关

加密设置默认开启。您可在debug阶段关闭加密,以便于抓包联调。

  • Objecetive-C请参考:

    // 加密设置开关,线上版本建议开启
    config.logNeedEncrypt = YES; // YES:打开加密,NO:关闭加密
    
  • Swift请参考:

    // 加密设置开关,线上版本建议开启
    config.logNeedEncrypt = true // true:打开加密,false:关闭加密
    

4.4.1 国密 SM2

国密 SM2 算法的请求加密仅私有化版本支持,支持的最低版本:6.15.0。
引入国密 SM2子库:

pod 'RangersAppLog', 'SDK-VERSION', 
    :subspecs => [
        ...
        'Encryptor/SM2', #仅私有化版本支持
        ...
    ]
  • Objecetive-C请参考:

    #import "BDAutoTrackEncryptorSM2.h"
    
    // 设置 SM2 加密
    NSString * const publicKey = @"your public key";
    [BDAutoTrackEncryptorSM2 setPublickKey:publicKey];
    config.encryptionType = BDAutoTrackEncryptionTypeCstcSM2;
    
  • Swift请参考:

    // 设置 SM2 加密
    let publicKey = "your public key"
    BDAutoTrackEncryptorSM2.setPublickKey(publicKey)
    config.encryptionType = .cstcSM2
    

4.5 设置APP Language 和 APP Region

  • Objecetive-C请参考:

    // 修改语言和地区,设置APP Language 和 APP Region
    [BDAutoTrack setAppLauguage:@"zh/en/jp/fr"];
    [BDAutoTrack setAppRegion:@"cn"];
    
  • Swift请参考:

    // 修改语言和地区,设置APP Language 和 APP Region
    BDAutoTrack.setAppLauguage("zh/en/jp/fr")
    BDAutoTrack.setAppRegion("cn")
    

4.6 打通内嵌H5页

开启内嵌H5页打通后,内嵌H5页上产生的事件将通过iOS SDK上报,不在js SDK上报,并复用iOS端设置的user_unique_id和公共属性,但是也支持打通时 web 侧设置 / 更新端上的 uuid(如需支持打通从 web 侧更新多口径,需使用新版本 SDK)/ 公共属性。
请注意,打通功能还需在H5页上集成js SDK,并开启js的打通开关,请参考 Web/JS SDK 集成 3.4节。打通后默认屏蔽 H5 全埋点功能,如还想采集 H5 全埋点,需要查看 4.7 小节:原生端采集 H5 全埋点。

  • Objecetive-C请参考:

    // 开启内嵌H5打通开关
    config.enableH5Bridge = YES;
    
  • Swift请参考:

    // 开启内嵌H5打通开关
    config.enableH5Bridge = true;
    

开关开启后,必须配置打通白名单。仅白名单内配置的域名生效打通,白名单可用通配符方式添加,*表示通配符。

  • Objective-C请参考:

    // 内嵌H5页白名单配置
    // 示例:如需打通 www.volcengine.com 和 www.bytedance.com 两个H5页
    config.H5BridgeAllowedDomainPatterns = @[@"www.volcengine.com",@"*.bytedance.*"];
    
    // 适配 www.bytedance.com 的白名单有多种,请根据业务场景配置白名单,例如:
    // www.bytedance.com 或 *.bytedance.* 或 *.*.* 均可实现。
    
  • Swift请参考:

    // 内嵌H5页白名单配置
    // 示例:如需打通 www.volcengine.com 和 www.bytedance.com 两个H5页
    config.h5BridgeAllowedDomainPatterns = ["www.volcengine.com", "*.bytedance.*"]
    

打通时默认用的是端内 SDK 用户信息,但也支持 H5 侧通过 Web SDK 更新端内 SDK 用户信息。
iOS 6.17.2 版本新增禁止打通内嵌 H5 页时禁止 H5 更新 App 内用户信息,以避免 H5 多处使用时更新用户信息相关代码不好移除,从而打通时破坏端内 SDK 原本的用户信息。

// 默认开启,支持关闭
config.useBridgeUpdateUUIDEnabled = YES;

4.7 原生端采集H5全埋点

原生端内嵌webview页时,通过打开以下开关,可从原生端全埋点事件采集h5页全埋点事件。

注意

此开关的使用无需在h5页内集成js SDK,且与js SDK全埋点功能独立无关联。

  • Objecetive-C请参考:

    //内嵌H5页面的全埋点事件
    config.H5AutoTrackEnabled = YES; // YES:开启h5全埋点事件,NO:关闭h5全埋点事件
    
  • Swift请参考:

    //内嵌H5页面的全埋点事件
    config.H5AutoTrackEnabled = true; // true:开启h5全埋点事件,false:关闭h5全埋点事件
    

4.8 关闭设备IDFA采集

设备IDFA的采集通过Unique子库完成。在1.2节的引入SDK中,引入Unique子库即开启采集,移除Unique子库即关闭采集。

说明

SaaS-云原生和私有化4.4.0版本以上也支持在DataFinder控制台关闭敏感字段采集,您可以在项目管理>SDK设置中关闭IDFA字段采集,详情请参见项目管理-SDK设置

4.9 开启屏幕方向采集

本小节功能在6.11.0+后开始支持。

引入 DeviceOrientation 子库:

pod 'RangersAppLog', 'SDK-VERSION', 
    :subspecs => [
        ...
        'DeviceOrientation', #屏幕方向采集
        ...
    ]

屏幕方向信息会自动带入每个埋点的params中,接口文档如下:

/*! @abstract 是否采集屏幕方向,默认不采集(NO)
 */
@property (nonatomic) BOOL screenOrientationEnabled;
  • Objective-C 请参考:

    config.screenOrientationEnabled = YES;
    
  • Swift 请参考:

    config.screenOrientationEnabled = true
    

4.10 设置GPS坐标

引入 Location 子库:

pod 'RangersAppLog', 'SDK-VERSION', 
    :subspecs => [
        ...
        'Location', #GPS采集
        ...
    ]

GPS 信息会自动带入每个埋点的 params 中:

/*! @abstract 是否采集GPS,默认不采集(NO)
 */
@property (nonatomic) BOOL trackGPSLocationEnabled;
  • Objective-C 请参考:

    config.trackGPSLocationEnabled = YES;
    
  • Swift 请参考:

    config.trackGPSLocationEnabled = true
    

您也可以自行手动设置GPS,手动设置后,SDK将不再使用自动采集的GPS信息:

@interface BDAutoTrack
...
+ (void)setGPSLocation:(enum BDAutoTrackGeoCoordinateSystem)geoCoordinateSystem longitude:(double)longitude latitude:(double)latitude;
...
@end

// WGS84 地球坐标系
// GCJ02 火星坐标系
// BD09 百度坐标系
// BDCS 北斗坐标系
typedef NS_ENUM(NSInteger, BDAutoTrackGeoCoordinateSystem) {
    BDAutoTrackGeoCoordinateSystemWGS84 = 1 << 0,
    BDAutoTrackGeoCoordinateSystemGCJ02 = 1 << 1,
    BDAutoTrackGeoCoordinateSystemBD09  = 1 << 2,
    BDAutoTrackGeoCoordinateSystemBDCS  = 1 << 3
};
  • Objective-C 请参考:

    [BDAutoTrack setGPSLocation:BDAutoTrackGeoCoordinateSystemWGS84 longitude:116.3683244 latitude:39.915085];
    
  • Swift 请参考:

    BDAutoTrack.setGPSLocation(BDAutoTrackGeoCoordinateSystem.WGS84, longitude: 116.3683244, latitude: 39.915085)
    

4.11 开启崩溃采集

引入 Exception 子库:

pod 'RangersAppLog', 'SDK-VERSION', 
    :subspecs => [
        ...
        'Exception', #崩溃采集
        ...
    ]
  • Objective-C 请参考:

    // 目前仅支持采集 NSException 崩溃
    config.trackCrashEnabled = YES;
    
  • Swift 请参考:

    // 目前仅支持采集 NSException 崩溃
    config.trackCrashEnabled = true
    

4.12 关闭剪切板采集

剪切板采集用于广告监测产品的 ALink 功能,开启该功能模块即开启采集剪切板信息,关闭则禁用剪切板采集。

说明

  • 关闭剪切板采集后,广告监测的Alink归因可能会受影响,关闭前请先确认下是否有使用广告监测相关功能。
  • iOS系统从16版本开始,获取剪切板信息会触发弹窗,因此如果您开启剪切板采集开关,当ALink功能在启动SDK时采集获取剪切板,会触发弹窗。建议您根据实际业务情况,评估获取剪切板的时机。
  • Objective-C 请参考:

    //开启 DeferredALink 功能
    //关闭该功能则不会对剪切板信息进行采集
    config.enableDeferredALink = NO;
    
    
  • Swift 请参考:

    //开启 DeferredALink 功能
    //关闭该功能则不会对剪切板信息进行采集
    config.enableDeferredALink = false;
    

5.其他功能介绍

5.1 云控能力

注意:本功能仅限SaaS云原生版本或私有化V4.4.0以上版本,且SDK6.15.0以上版本支持。
DataFinder支持通过服务端下发 SDK 设置,包括上报时机、全埋点开关等,详细介绍文档请查阅:项目管理-SDK设置

6. 参考:数据上报流程与触发时机

说明

SaaS-云原生、私有化环境支持在DataFinder的控制台设置Android、iOS、web、小程序平台SDK的基础设置,包括是否开启全埋点、埋点上报时机等等。以下为端上默认的上报流程和机制,您也可以在DataFinder的控制台进行配置调整,详情请参见项目管理-SDK设置

Event事件上传

Image

  • 事件上报触发时机:
    • 冷启动:用户第一次打开APP或者在APP被完全关闭后再次打开时的启动过程。
    • **切换前台:**应用程序从后台变为活跃状态,用户可以看到并与之互动。比如,在使用某个APP,然后按下了主页按钮或切换到另一个APP,当你再回到之前的APP时,它就从后台切换到了前台。
    • **切换后台:**应用程序从活跃状态变为不活跃状态,虽然它还在运行,但你看不到它在屏幕上。比如,在使用一个APP,然后按下了主页按钮或切换到另一个APP,这个APP就进入了后台。
    • **用户Flush 主动触发:**主动调用- (void)flush接口触发上报。SDK有频率限制,每10s最多可以触发一次。
    • **设备注册完成:**SDK 内部逻辑,获取事件上报设备标识。
    • **采集事件数量超过阈值:**默认200。
    • **定时器:**默认60s上传一次。
  • 事件上报前置检查
    • device_id & installID 检查(注册接口返回)。
  • 数据打包
    • 首次请求Pack最大事件量200条。
    • 首次请求成功后将超过200条的后续事件打包走上报流程,单次不超过200条。
  • 数据上报
    • 上报成功后删除本地数据库存储、更新本地配置、尝试频控升级。
    • 上报失败后重试当前请求,状态码5xx 则进行频控降级处理。
  • 请求频控
    • 数据在某段时间内总上报次数受频控限制,超过频控后即使收到新的上报触发也不再处理。
    • 请求失败后状态码5xx,会调降当前频控次数。
    • 请求成功后对之前调降的频控尝试进行恢复。

Profile 用户属性上传

Image

  • 用户属性上报触发时机:
    • 冷启动:用户第一次打开APP或者在APP被完全关闭后再次打开时的启动过程
    • **新增Profile:**用户主动调用接口新增Profile设置
    • **设备注册完成:**SDK 内部逻辑,获取事件上报设备标识
  • 其他流程:与Event上报流程类似,详情可参见上文Event上报流程说明。
最近更新时间:2025.06.06 17:57:17
这个页面对您有帮助吗?
有用
有用
无用
无用