在一些需手动录入用户ID的场景,例如填写白名单,手动输入的UUID、SSID数字较长(如:ssid="a0166a58-137a-410c-1111-04acc905****"),容易出错且不方便。因此对移动端的应用(iOS、Android),DataTester支持通过扫描二维码来录入对应ID。本文为您介绍扫码录入ID的操作要点。
在全局设置>受众管理>用户测试白名单页面中,点击“+测试白名单”,如下图:
在创建实验-配置实验版本-添加测试用户时,点击“扫二维码录入”的图标,即可扫码录入,如下:
以上关于“UUID/SSID”,客户在应用接入的时候,会确定用户使用那个类型的ID,因此需要根据当前应用的ID来分别显示对应的UUID或者SSID。
若无法获取“UUID/SSID”,可参照如下流程进行检查:
final InitConfig config = new InitConfig("2174","【您的App渠道号】"); config.setAutoStart(true); config.setUriConfig(UriConfig.DEFAULT); config.setPicker(new Picker(this, config)); config.setAbEnable(true); // 开启ABTest AppLog.init(this, config);
请在App启动完成的时候,就初始化配置(如果在页面展示完毕之后 才初始化配置,会导致部分事件采集有缺失)。
#import <RangersAppLog/BDAutoTrack.h> #import <RangersAppLog/BDAutoTrackConfig.h> #import <RangersAppLog/BDAutoTrackURLHostItemCN.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { /* 初始化开始 */ BDAutoTrackConfig*config =[BDAutoTrackConfig configWithAppID:@"appid"]; //您申请APPID,如不清楚请联系专属客户成功经理 config.serviceVendor = BDAutoTrackServiceVendorCN; //数据上报 config.appName = @"your appName"; 与您申请APPID时的app_name一致 config.channel = @"App Store"; // iOS一般默认App Store config.abEnable = YES; //开启ab测试,默认为YES config.showDebugLog = NO; // 是否在控制台输出日志,仅调试使用,需要同时设置logger。release版本请设置为 NO //config.logger = ^(NSString * _Nullable log) {NSLog(@"%@",log);}; //如果 showDebugLog设置为 YES 请打开这里的注释 config.logNeedEncrypt = YES; // 是否加密日志,默认加密。release版本请设置为 YES config.autoTrackEnabled = YES; //是否开启全埋点采集用于圈选功能 [BDAutoTrack startTrackWithConfig:config]; /* 初始化结束 */ }
swift:
import RangersAppLog func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. let config = BDAutoTrackConfig(appID: "your appID") // 如不清楚请联系专属客户成功经理 config.appName = "your app name" // 与您申请APPID时的app_name一致 config.serviceVendor = BDAutoTrackServiceVendorCN; //数据上报 config.channel = "App Store" // iOS一般默认App Store config.showDebugLog = false // 是否在控制台输出日志,仅调试使用。release版本请设置为 false //config.logger = { (log) inprint(log ?? "log is nil")} // 如果设置了 showDebugLog = true 请打开这里的注释 config.logNeedEncrypt = true // 是否加密日志,默认加密。release版本请设置为 true config.autoTrackEnabled = true //是否开启全埋点采集用于圈选功能 BDAutoTrack.start(with: config) return true }
在module级别的build.gradle中,添加url scheme:
// 在android的defaultConfig中添加 manifestPlaceholders.put("APPLOG_SCHEME", "".toLowerCase())
在应用信息中找到URL Scheme:
将URL Scheme添加到你的项目中:
如果是iOS 13,重写UISceneDelegate的回调方法:
#import <RangersAppLog/BDAutoTrackSchemeHandler.h> - (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts { for (UIOpenURLContext *context in URLContexts) { NSURL *URL = context.URL; 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 { if(BDAutoTrackSchemeHandler.shared().handle(url, appID: "appid", scene: nil)) { return true } return false }
如果iOS版本低于13,则重写UIApplicationDelegate的回调方法
#import <RangersAppLog/BDAutoTrackSchemeHandler.h> - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options { if ([[BDAutoTrackSchemeHandler sharedHandler] handleURL:url appID:@"appid" scene:nil]) { return YES; } /// …… return NO; }
在project级别的build.gradle中,添加引用:
// 在buildscript的dependencies中添加 classpath 'com.bytedance.applog:RangersAppLog-All-plugin:5.2.0'
在module级别的build.gradle中,添加引用:
// 在文件开头添加 apply plugin: 'com.bytedance.std.tracker'
和
// 在dependencies中添加 implementation 'com.bytedance.applog:RangersAppLog-All-cn:5.2.0' // 如需符合GDPR请更改为 // implementation 'com.bytedance.applog:RangersAppLog-All-global:5.2.0'
在Podfile中,确认集成版本≥5.2.0,且所选子库包含'Picker', 'UITracker'