本指南介绍如何安装 Airbridge React Native SDK 并进行必要的配置。
您可以通过以下方法安装 Airbridge React Native SDK。安装后,可以 测试 React Native SDK 来检查 SDK 是否正确安装。
1. 使用 npm 安装 airbridge-react-native-sdk。
npm install airbridge-react-native-sdk
2. 使用 CocoaPods 安装 iOS 依赖项。Android 依赖项会自动安装。
cd ios; pod install
提示
请根据需求选择一般 SDK 或 Restricted SDK, 只能安装其中一个。
根据政策或环境,可能需要对收集 设备 ID(例如 GAID 或 IDFA)进行限制。如果安装 Restricted SDK,Airbridge SDK 不会收集设备 ID。
请按照以下步骤安装 Restricted SDK:
1. 使用 npm 安装 airbridge-react-native-sdk-restricted。
npm install airbridge-react-native-sdk-restricted
2. 使用 CocoaPods 安装 iOS 依赖项。Android 依赖项会自动安装。
cd ios; pod install
iOS SDK 与 Android SDK 的初始化方式不同。请参阅以下指南。
YOUR_APP_NAME 和 YOUR_APP_SDK_TOKEN 可在 Airbridge 面板的 [设置]>[Token] 获取。
将以下代码添加至 ios/YOUR_PROJECT_NAME/AppDelegate.m
文件中:
import AirbridgeReactNative
...
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
AirbridgeReactNative.initializeSDK(name: "YOUR_APP_NAME", token:"YOUR_APP_SDK_TOKEN")
...
}
#import <AirbridgeReactNative/AirbridgeReactNative.h>
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[AirbridgeReactNative initializeSDKWithName:@"YOUR_APP_NAME" token:@"YOUR_APP_SDK_TOKEN"];
...
}
将以下代码添加至 android/app/src/main/java/.../MainApplication.kt
文件中:
import co.ab180.airbridge.reactnative.AirbridgeReactNative
...
override fun onCreate() {
super.onCreate()
AirbridgeReactNative.initializeSDK(this, "YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN")
...
}
import co.ab180.airbridge.reactnative.AirbridgeReactNative;
...
@Override
public void onCreate() {
super.onCreate();
AirbridgeReactNative.initializeSDK(this, "YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN");
...
}
输入用于 Airbridge React Native SDK 的配置值。
{
"autoDetermineTrackingAuthorizationTimeoutInSecond": number,
"isHandleAirbridgeDeeplinkOnly" : boolean
}
1. 在 React Native Project 文件夹的顶部创建 airbridge.json
文件,并按照上方示例输入 JSON。
2. 对于不需要配置的值,省略对应的键。
有关配置值的更多信息,参阅以下指南:
配置值 | 指南 |
---|---|
autoDetermineTrackingAuthorizationTimeoutInSecond | |
isHandleAirbridgeDeeplinkOnly |
提示
为确保遵守隐私政策所需的功能,应与法律顾问共同审查。
在 iOS 环境中,只有在通过 ATT(App Tracking Transparency,应用跟踪透明度)弹窗征得用户同意后,才能收集 IDFA。
收集安装事件应延迟到用户允许追踪后进行。IDFA 会与安装事件一同收集,因此如果在用户通过 ATT 弹窗允许追踪之前收集安装事件,IDFA 将缺失,影响绩效监测。建议设置足够的延迟时间,以确保 IDFA 被正确收集。
1. 准备好您将在 ATT 弹窗中使用的文本。
2. 按照 Apple 文档 设置 ATT 弹窗。
3. 如果未收集到安装事件,Airbridge React Native SDK 会在每次 App 启用时延迟 30 秒尝试收集安装事件,直到用户允许追踪为止。如果用户在决定是否允许追踪之前关闭 App,SDK 将不会收集安装事件,并会在下次启用 App 时重试。
您可以使用 SDK 设置 的 autoDetermineTrackingAuthorizationTimeoutInSecond
函数修改延迟时间。该函数的默认值为 30 秒,最大可设置为 3600 秒(1 小时)。
提示
在 DeepLink Plan 中,建议将
setAutoDetermineTrackingAuthorizationTimeout
函数设为 0 秒。DeepLink Plan 不支持基于标识符的归因。为了使安装 App 的用户能立即通过 延迟深度链接 跳转至预设目标页面,建议将该函数设为 0 秒。
您可以通过设置深度链接,将点击包含追踪链接的广告的用户跳转至 App 的特定页面。此外,还可以基于追踪链接收集的信息,在 Airbridge 面板查看通过深度链接产生的绩效。
Airbridge 在追踪链接打开时,会根据用户环境,将追踪链接中配置的 URI Scheme 深度链接转换为最适合的 Airbridge 深度链接(HTTP 深度链接或 URI Scheme 深度链接)以引导用户进入 App。随后,Airbridge SDK 会将 Airbridge 深度链接重新转换为追踪链接中配置的 URI Scheme 深度链接,并传递至 App。
追踪链接中配置的 URI Scheme 深度链接示例:YOUR_SCHEME://product/12345
Airbridge 深度链接示例:
HTTP 深度链接格式 1:https://YOUR_APP_NAME.airbridge.io/~~~
HTTP 深度链接格式 2:https://YOUR_APP_NAME.abr.ge/~~~
URI Scheme 深度链接格式:YOUR_SCHEME://product/12345?airbridge_referrer=~~~
当 App 已安装时,用户点击追踪链接后,App 将通过 Airbridge 深度链接打开。随后,Airbridge SDK 会将该 Airbridge 深度链接转换为追踪链接中配置的 URI Scheme 深度链接,并将转换后的 URI Scheme 深度链接传递给 App。
当 App 未安装时,用户点击追踪链接后,Airbridge SDK 会保存 Airbridge 深度链接信息。用户被发送至应用商店或网站安装并打开 App 后,Airbridge SDK 会将保存的 Airbridge 深度链接转换为追踪链接中配置的 URI Scheme 深度链接,并将转换后的 URI Scheme 深度链接传递给 App。
请按照以下步骤设置深度链接。准备在 Airbridge 面板中注册的深度链接信息和用户跳转目的地的 App 内页面地址。
首先,在 Airbridge 面板注册深度链接信息。
iOS 环境所需的深度链接信息如下:
iOS URI Scheme:根据 iOS URI Scheme,将 Airbridge 深度链接转换为 URI Scheme 深度链接。URI Scheme 深度链接需要此信息。
iOS App ID:根据 iOS App ID,为 Airbridge 深度链接设置 Universal Link 域名。Universal Link 需要此信息。
请按照以下步骤在 Airbridge 面板注册深度链接信息:
1. 请前往 [追踪链接]>[深度链接]。
2. 请在 [iOS URI Scheme] 中输入 iOS URI Scheme,该 URI Scheme 必须与 ://
一起输入。例如,如果 iOS URI Scheme 是 demo
,则输入 demo://
。
3. 请在 Apple Developer Dashboard,进入您要设置深度链接的 App 的 [Identifier] 页面,获取 App ID Prefix 和 Bundle ID。
4. iOS App ID 的格式为 App ID Prefix
+.
+Bundle ID
。请在 Airbridge 面板 [追踪链接]>[深度链接]>[iOS App ID] 中输入 iOS App ID。
例如,如果 App ID Prefix 是 prefix,Bundle ID 是 example,则 iOS App ID 为 prefix.example
。
Android 环境所需的深度链接信息如下:
Android URI Scheme:根据 Android URI Scheme,将 Airbridge 深度链接转换为 URI Scheme 深度链接。App Link 和 URI Scheme 需要此信息。
Android 包名:用于识别 Android 包。App Link 和 URI Scheme 需要此信息。
Android sha256_cert_fingerprints:用于设置 App Link 域名。App Link 需要此信息。
注意
为确保正确的用户跳转,请为正式版 App 和开发用 App 注册不同的深度链接信息。
请按照以下步骤在 Airbridge 面板注册深度链接信息:
1. 请前往 [追踪链接]>[深度链接]。
2. 请在 [Android URI Scheme] 中输入 Android URI Scheme,该 URI Scheme 必须与 ://
一起输入。例如,如果 Android URI Scheme 是 demo
,则输入 demo://
。
3. 请在 [Android 包名] 中输入 Android 包名。
4. 为了获取 sha256_cert_fingerprints,请在部署的 keystore 文件中运行以下命令:
keytool -list -v -keystore YOUR_KEYSTORE.keystore
请查看结果中的 SHA256 值。SHA256 值即是 sha256_cert_fingerprints。
Certificate fingerprints:
MD5: 4C:65:04:52:F0:3F:F8:65:08:D3:71:86:FC:EF:C3:49
SHA1: C8:BF:B7:B8:94:EA:5D:9D:38:59:FE:99:63:ED:47:B2:D9:5A:4E:CC
SHA256: B5:EF:4D:F9:DC:95:E6:9B:F3:9A:5E:E9:D6:E0:D8:F6:7B:AB:79:C8:78:67:34:D9:A7:01:AB:6A:86:01:0E:99
5. 请在 [sha256_cert_fingerprints] 中输入在步骤 4. 获取的 SHA256 值。
在 Airbridge 面板注册深度链接信息后,进行设置启用以下功能:
请按照以下步骤进行设置,以确保用户点击追踪链接后,App 能通过 Airbridge 深度链接启用。
1. 需要在 App 进行 Airbridge 深度链接的 URI Scheme 深度链接设置。请在 Xcode 中导航至 [YOUR_PROJECT]>[Info]>[URL Types]。
2. 请点击 “+”,并在 URL Schemes 中输入已在 Airbridge 面板中注册的 iOS URI Scheme。
注意
必须输入不包括
://
的 iOS URI Scheme。
3. 需要在 App 进行 Airbridge 深度链接的 Universal Link 设置。请在 Xcode 中导航至 [YOUR_PROJECT]>[Signing & Capabilities]。
4. 请点击 “+ Capability” 以添加 Associated Domains。
5. 请将 applinks:YOUR_APP_NAME.airbridge.io
和 applinks:YOUR_APP_NAME.abr.ge
添加至 Associated Domains。YOUR_APP_NAME
是 Airbridge App 名称。
注意
如果您正在使用或计划使用 Password AutoFill 功能,则必须添加 Webcredentials 域名。否则用户可能会看到通过 Password AutoFill 功能保存的密码域名显示为 airbridge.io 或 abr.ge。
更多信息请参阅 本指南。
1. 需要在 App 进行 Airbridge 深度链接的 URI Scheme 深度链接设置。请在 AndroidManifest.xml
的处理深度链接的 Activity 中添加 Intent Filter。
添加的 Intent Filter 必须使用在 Airbridge 面板中注册的 Android URI Scheme。请输入 Android URI Scheme,不包括 ://
。
<activity ...>
...
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="YOUR_SCHEME" />
</intent-filter>
...
</activity>
注意
必须输入不包括
://
的 Android URI Scheme。
2. 为了在 App 设置 Airbridge 深度链接的 App Link,请在 AndroidManifest.xml
的处理深度链接的 Activity 中添加以下 Intent Filter。YOUR_APP_NAME
是 Airbridge App 名称。
<activity ...>
...
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="YOUR_APP_NAME.abr.ge" />
<data android:scheme="https" android:host="YOUR_APP_NAME.abr.ge" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="YOUR_APP_NAME.airbridge.io" />
<data android:scheme="https" android:host="YOUR_APP_NAME.airbridge.io" />
</intent-filter>
...
</activity>
为了收集深度链接事件,必须将深度链接事件传递给 Airbridge SDK。当 App 通过深度链接启用时,请在调用的 OS 回调顶部调用 Airbridge.trackDeeplink
函数。
请将以下代码添加至 ios/YOUR_PROJECT_NAME/AppDelegate.m
文件中:
#import <AirbridgeReactNative/AirbridgeReactNative.h>
...
// when app is opened with scheme deeplink
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
// track deeplink
[AirbridgeReactNative trackDeeplinkWithUrl:url];
return YES;
}
...
// when app is opened with universal links
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
// track deeplink
[AirbridgeReactNative trackDeeplinkWithUserActivity:userActivity];
return YES;
}
import AirbridgeReactNative
...
// when app is opened with scheme deeplink
func application(
_ app: UIApplication,
open url: URL,
options: [UIApplication.OpenURLOptionsKey : Any] = [:]
) -> Bool {
// track deeplink
AirbridgeReactNative.trackDeeplink(url: url)
return true
}
...
// when app is opened with universal links
func application(
_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void
) -> Bool {
// track deeplink
AirbridgeReactNative.trackDeeplink(userActivity: userActivity)
return true
}
请将以下代码添加至 android/app/src/main/java/.../MainActivity.kt
文件中:
import co.ab180.airbridge.reactnative.AirbridgeReactNative
...
override fun onResume() {
super.onResume()
AirbridgeReactNative.trackDeeplink(intent)
}
...
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
setIntent(intent)
}
import co.ab180.airbridge.reactnative.AirbridgeReactNative;
...
@Override
protected void onResume() {
super.onResume();
AirbridgeReactNative.trackDeeplink(getIntent());
}
...
@Override
public void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
Airbridge 深度链接被启用后,将被转换为 URI Scheme 深度链接并传递至 OnDeeplinkReceived 回调。非 Airbridge 深度链接则原样传递。
使用接收的深度链接,将用户发送至预设的目标页面。
import { Airbridge } from 'airbridge-react-native-sdk'
...
Airbridge.setOnDeeplinkReceived((url) => {
// show proper content using url
})
当 App 未安装时,如果用户点击了设置了延迟深度链接的追踪链接,Airbridge 深度链接信息将被保存。Airbridge SDK 会通过以下方法来获取保存的深度链接:
Airbridge SDK 在初始化以后,如果满足以下所有条件,会尝试获取深度链接。如果在获取深度链接的过程中 App 被关闭,Airbridge SDK 会将视为没有保存的深度链接。
已设置 Opt-in 时调用 Airbridge.startTracking
函数;或未设置 Opt-in。
用户在 ATT 弹窗中做出选择,或 ATT 弹窗中设置的事件收集延迟时间已到期。
延迟深度链接会自动传递给 OnDeeplinkReceived,无需额外设置。
可通过 SDK 运行测试和深度链接测试,验证 Airbridge SDK 和深度链接是否正常运行。
提示
此功能并非必需功能,请在设置前确认需求。
提示
Airbridge React Native SDK 需为 v4.1.2 或以上版本。
通过 Airbridge React Native SDK 的 setOnDeeplinkReceived
方法接收的深度链接,不仅包括 Airbridge 深度链接,还可能包括其他解决方案的深度链接或自定义深度链接。
import { Airbridge } from 'airbridge-react-native-sdk';
...
Airbridge.setOnDeeplinkReceived((url) => {
// show proper content using url
})
您可以通过将 SDK 设置 的 isHandleAirbridgeDeeplinkOnly
设置为 true
,仅收集 Airbridge 深度链接。
Was this page helpful?