请使用 npm 安装 airbridge-expo-sdk
和 airbridge-react-native-sdk
。
npm install --save airbridge-expo-sdk
npm install --save airbridge-react-native-sdk
注意
Airbridge Expo SDK 不支持
expo go
环境。请使用expo prebuild
或eas build
。
请在 app.json
中添加以下设置:
{
"expo": {
...
"plugins": [
...
[
"airbridge-expo-sdk",
{
"appName": "APP_NAME",
"appToken": "APP_TOKEN"
}
]
]
}
}
APP_NAME
和 APP_TOKEN
可在 Airbridge 面板的 [设置]>[Token] 获取。
请在 Project 文件夹中创建 airbridge.json
文件。
请以 JSON 格式进行设置。
{
"sessionTimeoutSeconds": 300,
"autoStartTrackingEnabled": true,
"userInfoHashEnabled": true,
"trackAirbridgeLinkOnly": false,
"facebookDeferredAppLinkEnabled": false,
"locationCollectionEnabled": false,
"trackingAuthorizeTimeoutSeconds": 30,
"sdkSignatureSecretID": "YOUR_SDK_SIGNATURE_SECRET_ID",
"sdkSignatureSecret": "YOUR_SDK_SIGNATURE_SECRET",
"logLevel": "warning"
}
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
sessionTimeoutSeconds | Number | 300 | 即使用户重新启用 App,如果是在设定的会话期间内,也会被视为同一会话,不会重新发送 App 启用事件。 |
autoStartTrackingEnabled | Boolean | true | 如果设置为 |
userInfoHashEnabled | Boolean | true | 如果设置为 |
trackAirbridgeLinkOnly | Boolean | false | 如果设置为 |
facebookDeferredAppLinkEnabled | Boolean | false | 当设置为 |
locationCollectionEnabled | Boolean | false | (仅限 Android)如果设置为 使用此功能需要在 |
trackingAuthorizeTimeoutSeconds | Number | 30 | (仅限 iOS)如果设置 |
sdkSignatureSecretID | String | null | 启用 SDK 伪造(SDK Spoofing)防止功能。必须同时应用已发放的 Secret 和 Secret ID。 |
sdkSignatureSecret | String | null | 启用 SDK 伪造(SDK Spoofing)防止功能。必须同时应用已发放的 Secret 和 Secret ID。 |
logLevel | String | warning | 设置 Airbridge log 输出级别。
|
请查看安装并启用 App 时,安装(Install)事件是否收集到。
从 SDK 发生的事件可在 Airbridge 面板的 [原始数据]>[App 实时记录] 查看。实时记录最多可能会有 5 分钟的延迟。
请导航至 Airbridge 面板的 [原始数据]>[App 实时记录]。
请在搜索栏中输入已安装并启用 App 的设备的 ADID (例 : IDFA、IDFV、GAID)。
请参阅以下指南在 Airbridge 面板进行深度链接设置:
请在 app.json
中添加以下设置:
{
"expo": {
...
"scheme": "YOUR_SCHEME",
"android": {
...
"intentFilters": [{
"autoVerify": true,
"action": "VIEW",
"data": { "scheme": "https", "host": "APP_NAME.airbridge.io" },
"category": ["BROWSABLE", "DEFAULT"]
}, {
"autoVerify": true,
"action": "VIEW",
"data": { "scheme": "https", "host": "APP_NAME.deeplink.page" },
"category": ["BROWSABLE", "DEFAULT"]
}, {
"autoVerify": true,
"action": "VIEW",
"data": { "scheme": "http", "host": "APP_NAME.airbridge.io" },
"category": ["BROWSABLE", "DEFAULT"]
}, {
"autoVerify": true,
"action": "VIEW",
"data": { "scheme": "http", "host": "APP_NAME.deeplink.page" },
"category": ["BROWSABLE", "DEFAULT"]
}]
},
"ios": {
...
"associatedDomains": [
"applinks:APP_NAME.airbridge.io",
"applinks:APP_NAME.deeplink.page"
]
}
}
}
YOUR_SCHEME
可在 Airbridge 面板的 [追踪链接]>[深度链接] 获取。
请注册深度链接或延迟深度链接(Deferred Deep Link)发生时调用的函数。
import Airbridge from 'airbridge-react-native-sdk'
Airbridge.deeplink.setDeeplinkListener((deeplink) => {
// code that will run when app is opened with deep-link or deferred-deep-link
// deeplink = YOUR_SCHEME://...
console.log(deeplink)
})
注意
如果多次调用
setDeeplinkListener
,只有最后一个 Listener 会收取深度链接数据。
您可以通过点击 URI Scheme 来检查 Airbridge SDK 中的深度链接是否已正确设置。
YOUR_SCHEME://
如果深度链接设置正确无误,您可在 Airbridge 面板的 [原始数据]>[App 实时记录] 中查看深度链接事件记录。
有关用户设置,请参阅以下指南:
有关设备设置,请参阅以下指南:
有关事件设置,请参阅以下指南:
如果由于隐私法等原因无法收集 ADID (Advertising ID,广告 ID),您可以使用移除了 ADID 收集功能的 Restricted SDK。airbridge-expo-sdk-restricted
从 2.5.2 版本开始支持。
您可通过 SDK 签名防止 SDK 伪造(SDK Spoofing)。SDK 签名从 airbridge_expo_sdk@2.2.0
、 airbridge-react-native-sdk@2.3.0
版本开始可用。
请以 JSON 格式将以下设置输入 Project 文件夹的 airbridge.json
文件:
{
"sdkSignatureSecretID": "YOUR_SDK_SIGNATURE_SECRET_ID",
"sdkSignatureSecret": "YOUR_SDK_SIGNATURE_SECRET"
}
为了设置 SDK 签名,需要 SDK 签名凭证。请参阅 本指南 获取 SDK 签名凭证。
有关其他高级设置,请参阅以下指南:
如果您已在使用 expo-route
,安装 SDK 后,expo-route
功能可能停止工作。
通过 Airbridge 追踪链接进入 App 时,需要将进入的链接通过 Airbridge 转换为 URI Scheme 深度链接后再进行 route 处理。但是,由于 expo-router
的影响,可能会导致 route 处理重复或错误跳转等问题。
因此,Airbridge Expo SDK 设计为 route 处理深度链接。请通过以下设置,使 route 在 airbridge.deeplink.setDeeplinkListener
内处理。
import * as Router from 'expo-router';
const router = Router.useRouter();
airbridge.deeplink.setDeeplinkListener((_deeplink) => {
// route deeplink
router.push(...);
});
当 App 使用 Autofill 功能保存密码时,如果没有设置 webcredentials:...
,密码将被保存至 applinks:YOUR_APP_NAME.airbridge.io
或 applinks:YOUR_APP_NAME.abr.ge
域名中。
如果希望更改保存密码的域名,请将 example.com
更改为您希望使用的域名,并按照以下步骤进行设置:
1. 请将以下代码托管 (host) 至 https://example.com/.well-known/apple-app-site-association
。
{
"webcredentials": {
"apps": ["TEAM_ID.APP_BUNDLE_ID"]
}
}
示例:9JA89QQLNQ.com.apple.wwdc
2. 请在 app.json
添加 webcredentials:example.com
。
{
"expo": {
"ios": {
"associatedDomains": [
"webcredentials:example.com"
]
}
}
}
更新 SDK 时,请考虑以下内容:
对于 2023-09-04 或以后创建的 Airbridge App,2.5.0~2.5.2 版本中存在的深度链接回调提供的深度链接 URL 被解码 2 次的问题得到解决。
对于 2023-09-04 或以后创建的 Airbridge App,深度链接回调提供的深度链接 URL 中不再添加 airbridge_referrer
。
更新 iOS App 时,SKAN 转化值将以最后计算的值为准,不会进行额外计算。
2.5.1 以下版本计算 SKAN 转化值的时间最多为 24 小时。
对于新安装,这不会成为问题。
deeplink.page
已被弃用。从 2.5.1 版本开始,请使用 abr.ge
作为深度链接域名进行代码编写。
为了保持向后兼容性,deeplink.page
仍然受支持并可正常运行。
trackingAuthorizeTimeout
的默认值更改为 30 秒。
原有的 1 版本中的事件发送 API 已被删除,并被以下 API 所取代:
/**
* Send event to server.
* @param {string} category event name
* @param {EventOption} [option={}] event options
*/
trackEvent(category: string, option?: EventOption): void;
有关更多信息,请参阅 Expo SDK 2.1.0 迁移指南。
请参阅 迁移指南。
Was this page helpful?