帮助文档
搜索文档…
埋点 SDK集成
埋点 SDK 的目标用户是使用第三方插件开发的 APP, 比如使用 Weex、APICloud 等。在这些平台中,我们无法自动采集用户的点击事件和页面浏览事件等,需要依赖调用自定义事件和变量 API来进行数据采集。 如果您的 APP 使用 iOS 原生开发,并且希望自动采集用户的点击事件、页面浏览事件等无埋点事件, 请集成 iOS 无埋点SDK 。
前提条件
    获取项目ID,获取方法请参考"项目管理 > 项目概览 > 查看项目基本信息"。
    获取URL Scheme,在GrowingIO平台创建对应的应用时会生成URL Scheme。请参考创建应用

1. 添加跟踪代码

集成环境:Xcode 9.0及以上;
App适配最低系统版本:iOS 8及以上
组件化SDK
GrowingIO iOS SDK 包含以下组件SDK:
• GrowingCoreKit (组件基础库,具备分析功能)
请保证Growing、GrowingCoreKit版本号一致

1. 添加依赖

使用CocoaPods快速添加
手动添加
    1.
    在您的Podfile中添加pod 'GrowingCoreKit'
    2.
    执行pod installpod update 更新pod依赖库。
    3.
    (可选)GrowingIO推荐您添加 AdSupport.framework 依赖库,用于来源管理激活匹配,有利于您更好的分析数据 ,添加项目依赖库的位置在项目设置target -> 选项卡General -> Linked Frameworks and Libraries
    1.
    下载iOS SDK以下包:GrowingHeaderGrowingCoreKit,并解压。
    2.
    Growing.hGrowingCoreKit.framework、添加到iOS工程中。
提醒:记得勾选”Copy item if needed“
    1.
    在工程项目中添加以下库文件
添加项目依赖库的位置在项目设置target -> 选项卡General -> Linked Frameworks and Libraries
库名称
说明
Foundation.framework
基础依赖库
Security.framework
用于APP连接圈选页面SSL连接
CoreTelephony.framework
用于读取运营商名称
SystemConfiguration.framework
用于判断网络状态
AdSupport.framework
用于来源管理激活匹配
libicucore.tbd
用于WebSocket
libsqlite3.tbd
存储日志
CoreLocation.framework
用于读取地理位置信息(如果您的app有权限)
JavaScriptCore.framework
Web圈App交互
WebKit.framework
Web圈选
    1.
    添加编译参数,并注意大小写。

2. 添加 URL Scheme

添加URL Scheme 到项目中,以便唤醒您的程序进行圈选。

3. 初始化配置

在 AppDelegate 中引入#import "Growing.h"并添加初始化方法。
Objective-C
Swift
1
#import "Growing.h"
2
- (BOOL)application:(UIApplication *)application
3
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
4
...
5
// 启动GrowingIO
6
7
[Growing startWithAccountId:@"您的项目ID"]; // 替换为您的项目ID
8
// 其他配置
9
// 开启Growing调试日志 可以开启日志
10
// [Growing setEnableLog:YES];
Copied!
1
import UIKit
2
import GrowingCoreKit
3
4
@main
5
class AppDelegate: UIResponder, UIApplicationDelegate {
6
7
8
9
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
10
// Override point for customization after application launch.
11
Growing.start(withAccountId: "您的项目ID")
12
return true
13
}
14
15
...
Copied!
请确保将代码添加在上述位置,添加到其他方法或异步block中可能导致数据不准确。
手动集成或者三方框架集成
对于手动集成,或者Flutter,Cordova创建的工程,swift调用OC需要设置一个bridge header,首先创建一个头文件,例如叫做 BridgingHeader.h
1
#ifndef BridgingHeader_h
2
#define BridgingHeader_h
3
#import <GrowingCoreKit/GrowingCoreKit.h>
4
#endif /* BridgingHeader_h */
Copied!
然后选择 target->build settings->Objective-c Bridging Header 添加此头文件的 相对路径,即可在AppDelegate.swift中引入import GrowingCoreKit

4.添加代码

因为您代码的复杂程度以及iOS SDK的版本差异,有时候 [Growing handleUrl:url] 并没有被调用。请在各个平台上调试这段代码,确保当App被URL scheme唤醒之后,该函数能被调用到。
Objective-C
Swift
1
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
2
{
3
...
4
if ([Growing handleUrl:url]) // 请务必确保该函数被调用
5
{
6
return YES;
7
}
8
return NO;
9
...
10
}
Copied!
1
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
2
...
3
if (Growing.handle(url)) {
4
return true
5
}
6
return false
7
...
8
}
Copied!

提醒:

    若您在 AppDelegate 中实现了以下一个或多个方法,请在已实现的函数中,调用[Growing handleUrl:]
    1
    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation
    2
    - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
    3
    - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
    Copied!
    若以上所有方法均未实现,请实现以下方法并调用[Growing handleUrl:]
    1
    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation
    Copied!
    实际情况可能很复杂,请在调试时确保函数[Growing handleUrl:]会被执行到

3. App Store提交应用注意事项

如果您添加了库AdSupport.framework, GrowingIO则会启用 IDFA,所以在向 App Store 提交应用时,需要:
    对于问题 Does this app use the Advertising Identifier (IDFA),选择 YES
    对于选项Attribute this app installation to a previously served advertisement,打勾。
    对于选项Attribute an action taken within this app to a previously served advertisement,打勾。
为什么 GrowingIO 使用 IDFA? GrowingIO 使用 IDFA 来做来源管理激活设备的精确匹配,让你更好的衡量广告效果。如果您不希望启用IDFA,可以选择不引入 AdSupport.framework

关于权限获取

    对于iOS 14之前,你无需主动获取 广告标识IDFA 的权限
    对于iOS 14之后,你需要使用如下方法来开启你的 广告标识IDFA 的权限
    1.
    Plist 文件中添加 NSUserTrackingUsageDescription
    1
    <key>NSUserTrackingUsageDescription</key>
    2
    <string>GrowingIO测试demo 需要使用你的广告标识信息以用于数据追踪分析</string> //描述内容请根据App修改
    Copied!
    2.
    导入框架 #import <AppTrackingTransparency/AppTrackingTransparency.h>
    3.
    调用获取权限代码
    1
    if (@available(iOS 14, *)) {
    2
    // iOS14及以上版本需要先请求权限
    3
    [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
    4
    switch (status) {
    5
    case ATTrackingManagerAuthorizationStatusDenied:
    6
    //用户拒绝向App授权
    7
    break;
    8
    case ATTrackingManagerAuthorizationStatusAuthorized:
    9
    //用户同意向App授权
    10
    break;
    11
    case ATTrackingManagerAuthorizationStatusNotDetermined:
    12
    //用户未做选择或未弹窗
    13
    break;
    14
    case ATTrackingManagerAuthorizationStatusRestricted:
    15
    //用户在系统级别开启了限制广告追踪
    16
    break;
    17
    default:
    18
    break;
    19
    }
    20
    }];
    21
    }
    Copied!

4. 自定义数据上传

除上述的用户行为数据(无埋点数据)之外,GrowingIO 还提供了多种 API 接口,供您上传一些自定义的数据指标及维度 ,请参考iOS SDK API > 自定义数据上传API

5. 创建应用

添加代码之后,请先Clean项目,然后再进行编译,并在你的 App 安装了 SDK 后重新启动几次 App,保证行为采集数据自动发送给 GrowingIO,以便顺利完成检测。
在GrowingIO平台的应用创建页面继续完成应用创建的数据检测,检测成功后应用创建成功。

6. 验证SDK是否正常采集数据

了解GrowingIO平台数据采集类型请参考数据模型
GrowingIO为您提供多种验证SDK是否正常采集数据的方式:
方式一:Mobile Debugger
方式二:在SDK中设置了Debug模式后,在IDE编译器控制台查看数据采集日志。
方式三:数据校验
最近更新 3mo ago