You need to enable JavaScript to run this app.
导航
扫码录入设备ID
最近更新时间:2024.09.12 16:15:20首次发布时间:2023.06.09 16:02:38

在一些需手动录入用户ID的场景,例如填写白名单,手动输入的UUID、SSID数字较长(如:ssid="a0166a58-137a-410c-1111-04acc905****"),容易出错且不方便。因此对移动端的应用(iOS、Android),DataTester支持通过扫描二维码来录入对应ID。本文为您介绍扫码录入ID的操作要点。

前置条件
  • 当前仅支持移动端App(iOS、Android)扫码录入ID。微信小程序、Web/H5/WAP端不支持。
  • 应用集成的数据接入SDK版本要求:5.2.0及以上版本的iOS SDK、Android SDK。
  • 待录入ID的设备手机,安装从应用商店下载的APP,且APP已集成满足版本要求的SDK。

操作入口

用户测试白名单-创建白名单

在全局设置>受众管理>用户测试白名单页面中,点击“+测试白名单”,如下图:
图片

2. 创建实验-选择目标受众-添加白名单

创建实验-配置实验版本-添加测试用户时,点击“扫二维码录入”的图标,即可扫码录入,如下:
图片

操作流程
  1. 通过以上操作入口,打开扫码获取SSID弹窗页面。
  2. 使用手机App(如微信、支付宝等)扫描二维码,进入扫码成功页面,在页面右上角点击选择“在浏览器打开”。
  3. 进入浏览器H5页面,点击“打开App并获取UUID/SSID”。
  4. 检查在创建白名单页面、或者扫码获取UUID/SSID页面的“UUID/SSID输入框”,是否同步该设备的UUID/SSID。

以上关于“UUID/SSID”,客户在应用接入的时候,会确定用户使用那个类型的ID,因此需要根据当前应用的ID来分别显示对应的UUID或者SSID。

获取ID失败,自主排查指导

若无法获取“UUID/SSID”,可参照如下流程进行检查:

1. 请检查手机安装了App的正确版本

2. 确认SDK初始化时使用了正确的应用信息

Android

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);

iOS

请在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
    }

3. 确认URL Scheme设置正确

Android

在module级别的build.gradle中,添加url scheme:

// 在android的defaultConfig中添加
manifestPlaceholders.put("APPLOG_SCHEME", "".toLowerCase())

iOS

在应用信息中找到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;
}

4. 确认SDK版本≥5.2.0

Android

在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'

iOS

在Podfile中,确认集成版本≥5.2.0,且所选子库包含'Picker', 'UITracker'