CocoaPods trunk is moving to be read-only. Read more on the blog, there are 18 months to go.

BDASignalSDK 1.0.5

BDASignalSDK 1.0.5

Maintained by AchillesL2398.



  • By
  • AchillesL2398

BDASignalSDK

概述

为了更好帮助广告主解决投放问题,提升归因效率和跑量效果,巨量引擎侧推出SDK-激活方案。由SDK进行APP打开事件上报和CAID采集、CLICKID的解析,并进行预激活的归因;同时新增预激活监测,将巨量引擎预激活归因结果和设备CAID回传给广告主,由广告主认领并筛选激活,最终通过API回传激活和深度事件。

使用条件

集成方式

SDK支持pod方式接入,只需配置pod环境,在podfile文件中加入以下代码即可接入成功。开发者可按照以下方式进行接入

pod  'BDASignalSDK-CN' 
pod  'Protobuf'

SDK使用方式

启动事件上报

需要在以下方法,添加采集SDK相关代码,当本app启动时,将相关启动参数传递给巨量引擎采集SDK,用于上报启动事件。并在此时机,注入采集SDK所需要的可选参数。

如使用AppDelegate:

#import "BDASignalManager.h"
#import "BDASignalDefinitions.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 注册可选参数
    [BDASignalManager registerWithOptionalData:@{
        kBDADSignalSDKUserUniqueId : @"3y48693232"
    }];
    // 上报冷启动事件
    [BDASignalManager didFinishLaunchingWithOptions:launchOptions connectOptions:nil];

    return YES;
}

如使用SceneDelegate

#import "BDASignalManager.h"
#import "BDASignalDefinitions.h"

- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
    // 注册可选参数
    [BDASignalManager registerWithOptionalData:@{
        kBDADSignalSDKUserUniqueId : @"3y48693232"
    }];
    // 上报冷启事件
    [BDASignalManager didFinishLaunchingWithOptions:nil connectOptions:connectionOptions];
}

需要注意的是,异常两种方式,根据接入工程时机情况,选择对应方案即可,且需要注意,两种方案透传给SDK的数据结构不同,AppDelegate方案需要传launchOptions,SceneDelegate方案需要传connectionOptions。

上报成功验证

启动事件上报成功后会打印console日志,参见Utilities/BDASignalUtility.m

获取IDFA

SDK内部,IDFA的获取,使用了开关来控制。默认不获取IDFA,如果需要获取IDFA的话,可以通过以下方式进行设置

[BDASignalManager enableIdfa:YES];

Deeplink clickid采集

需要在以下方法,添加采集SDK相关代码,当其他app通过deeplink方式打开本app时,将相关参数传递给巨量引擎采集SDK,采集SDK内部将会进行clickid提取以及处理相关归因事件。

如使用AppDelegate:

#import "BDASignalManager.h"

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
    // 直接将url参数传递给SDK
    [BDASignalManager anylyseDeeplinkClickidWithOpenUrl:url];
    return YES;
}

如使用SceneDelegate

#import "BDASignalManager.h"

- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts
{
    // 需要从原始参数重,取相关字段传递给SDK
    UIOpenURLContext *context = [URLContexts allObjects].firstObject;
    NSString *openUrl = context.URL.absoluteString;
    [BDASignalManager anylyseDeeplinkClickidWithOpenUrl:openUrl];
}

隐私数据获取说明

以下用户数据由巨量引擎数据采集 iOS SDK收集,具体参数如下:

必传参数:

字段 字段含义 数据示例
idfv 供应商标识符 / identifierForVendor是开发者为应用指定的代码,设备上属于该开发者的所有应用都拥有同一个 IDFV。同一台设备上来自同一位开发者的应用具有相同的 IDFV 值。同一台设备上不同开发者的应用 IDFV 值不同 080006E2-5666-49C1-8786-3FD9FC77DC0A
idfa 广告主标识符(Identifier for advertisers,IDFA)每台 iOS 设备独有的字母和数字组合 IDFA 是 Apple 采用的标准,移动广告网络可以用它来跟踪用户,并投放定向广告。 - iOS 10 及以上,用户如果开启了「限制广告跟踪」, 获取的 IDFA 将是一串 0。 - iOS 14.5 及以上,默认无法获取 IDFA ,必须通过 ATTF 才能获取。 41E94323-9AB3-4004-857E-D7690572D699
sys_file_time 系统更新时间 1595214620.383940
device_name 设备名称 MD5(iPhone),ios16以后建议传固定值:867e57bd062c7169995dc03cc0541c19
machine 设备machine(device_model) iPhone10,3
model Hardware model D22AP
boot_time_in_sec 系统启动时间(秒) 1595643553
system_version 系统版本 14.0
memory 物理内存大小 3955589120
disk 硬盘大小 63900340224
mnt_id 挂载id 80825948939346695D0D7DD52CB405D11A80344027A07803D5F8410346398776C879BF6BD67627@/dev/disk1s1
device_init_time 设备初始化时间 1632467920.301150749
client_tun tun fe80::d93e:a3d7:6f3d:965c,fe80::df78:367d:c4dc:23c4,fe80::7daa:f458:a18c:bb3b,fe80::ce81:b1c:bd2c:69e,fe80::356:6d1a:5a96:acbb
client_anpi anpi fe80::8c3c:53ff:fe8a:489a
IPV4 公网ipv4 1.2.3.4
IPV6 公网ipv6 240e:478:5618:b87a:100b:6ecc:bb9a:707a
UA 系统webview user agent Mozilla/5.0 (iPhone; CPU iPhone OS 16_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
package_name 应用包名
app_version 应用版本
local_time 本地时间

可选参数:

其他参数 params 自定义参数
user_unique_id 用户唯一id

3.1.4 其他功能

获取clickid

#import "BDASignalManager.h"

[BDASignalSDK getClickId];

可选参数采集

支持用户通过以下key,上报隐私数据获取中的可选参数。

FOUNDATION_EXTERN NSString * _Nonnull const kBDADSignalSDKUserUniqueId; 

可选参数注入方式如下:

#import "BDASignalManager.h"
#import "BDASignalDefinitions.h"

[BDASignalManager registerWithOptionalData:@{
    kBDADSignalSDKUserUniqueId : @"3y48693232",  // uuid
    @"extra_param" : @"xxx",                     // 其他用户自定义参数
}];

自定义事件上报

支持通过巨量引擎采集SDK上报关键事件,采集SDK内置如下自定义上报能力,也可支持广告主上报自定义事件:

事件 含义
stay_time 停留时长
register 注册
purchase 付费
game_addiction 关键行为
自定义事件(事件名自定义) 自定义事件
FOUNDATION_EXTERN NSString * _Nonnull const kBDADSignalSDKEventStayTime;
FOUNDATION_EXTERN NSString * _Nonnull const kBDADSignalSDKEventRegister;
FOUNDATION_EXTERN NSString * _Nonnull const kBDADSignalSDKEventPurchase;
FOUNDATION_EXTERN NSString * _Nonnull const kBDADSignalSDKEventGameAddiction;

使用方式如下:

#import "BDASignalManager.h"
#import "BDASignalDefinitions.h"

// 上报注册事件
[BDASignalManager trackEssentialEventWithName:kBDADSignalSDKEventRegister params:@{
}];

自定义事件上报使用方式如下:

#import "BDASignalManager.h"
#import "BDASignalDefinitions.h"

// 上报自定义事件
[BDASignalManager trackEssentialEventWithName:@"customLabel" params:@{
    @"param1" : @"xxx"
}];