Expo SDK
SDK Installation
Package Installation
Install airbridge-expo-sdk
and airbridge-react-native-sdk
using npm.
npm install --save [email protected]
npm install --save [email protected]
Airbridge Expo SDK does not support
expo go
environments. Please use it withexpo prebuild
oreas build
.
Project Setup
app.json
Add following setting to your app.json
file.
{
"expo": {
...
"plugins": [
...
[
"airbridge-expo-sdk",
{
"appName": "APP_NAME",
"appToken": "APP_TOKEN"
}
]
]
}
}
APP_NAME
can be found at the "Airbridge dashboard → Settings → Tokens → App Name".
APP_TOKEN
can be found at the "Airbridge dashboard → Settings → Tokens → App SDK Token".
airbridge.json
- Create an
airbridge.json
file in the project folder. - Configure settings in JSON format.
Example
{
"sessionTimeoutSeconds": 300,
"autoStartTrackingEnabled": true,
"userInfoHashEnabled": true,
"trackAirbridgeLinkOnly": false,
"facebookDeferredAppLinkEnabled": false,
"locationCollectionEnabled": false,
"trackingAuthorizeTimeoutSeconds": 0,
"sdkSignatureSecretID": "YOUR_SDK_SIGNATURE_SECRET_ID",
"sdkSignatureSecret": "YOUR_SDK_SIGNATURE_SECRET",
"logLevel": "warning"
}
Description
Name | Type | Default | Description |
---|---|---|---|
sessionTimeoutSeconds | Number | 300 | An app open event will not be sent when the app is reopened within the designated period. |
autoStartTrackingEnabled | Boolean | true | When set to false, no events will be sent until Airbridge.state.startTracking() is called. |
userInfoHashEnabled | Boolean | true | When set to false, user email and user phone information are sent without being hashed. |
trackAirbridgeLinkOnly | Boolean | false | When set to true, deep link events are sent only when app is opened with an Airbridge deep link. |
facebookDeferredAppLinkEnabled | Boolean | false | When set to true and the Facebook SDK is installed, Facebook Deferred App Link data is collected. |
locationCollectionEnabled | Boolean | false | When set to true, location information is collected. (Android Only) Two permissions must be allowed in AndroidManifest.xml android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_COARSE_LOCATION |
trackingAuthorizeTimeoutSeconds | Number | 0 | When timeout is set, Install event is delayed until Request tracking authorization alert is clicked. (iOS only) |
sdkSignatureSecretID | String | null | Protects against SDK spoofing. Both sdkSignatureSecretID and sdkSignatureSecret values must be applied. |
sdkSignatureSecret | String | null | Protects against SDK spoofing. Both sdkSignatureSecretID and sdkSignatureSecret values must be applied. |
logLevel | String | warning | Adjusts the log record level for Airbridge. logLevel: "debug" | "info" | "warning" | "error" | "fault" |
Testing the SDK
Check if install events are sent when the application is installed and opened.
Check in the Airbridge Dashboard
Events from the Airbridge SDK are shown at the "Airbridge Dashboard → Raw Data → App Real-time Logs".
- Go to "Airbridge Dashboard → Raw Data → App Real-time Logs".
- Search for the device's ADID (IDFA, IDFV, GAID).
Logs may be delayed for up to 5 minutes.
Deep Link Setup
Dashboard Setup
Please refer to the guides below to setup your deep links in the Airbridge dashboard.
Project Setup
app.json
Add the following settings to your app.json
file.
{
"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
can be found at the "Airbridge dashboard → Tracking Link → Deep Link → URI Scheme".
setDeeplinkListener
Register a function that will be called whenever a deep link or a deferred deep link opens the application.
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)
})
If you call
setDeeplinkListener
multiply, only last listener will receive deeplink.
Custom Domain Setup (Optional)
app.json
Add the following settings to your app.json
file.
{
"expo": {
...
"android": {
...
"intentFilters": [{
"autoVerify": true,
"action": "VIEW",
"data": { "scheme": "https", "host": "YOUR_DOMAIN.YOUR_DOMAIN.example" },
"category": ["BROWSABLE", "DEFAULT"]
}, {
"autoVerify": true,
"action": "VIEW",
"data": { "scheme": "http", "host": "YOUR_DOMAIN.YOUR_DOMAIN.example" },
"category": ["BROWSABLE", "DEFAULT"]
}]
},
"ios": {
...
"associatedDomains": [
"applinks:YOUR_DOMAIN.YOUR_DOMAIN.example"
]
},
"plugins": [
...
[
"airbridge-expo-sdk",
{
...
"customDomains": [
"YOUR_DOMAIN.YOUR_DOMAIN.example"
]
}
]
]
}
}
YOUR_DOMAIN.YOUR_DOMAIN.example
can be found at the "Airbridge dashboard → Tracking Link → Domain Setting → Custom Domain".
Test Deep Link
Click on your URI scheme to test if your deep link has been properly set up in the Airbridge SDK.
YOUR_SCHEME://
The results will show on the "Airbridge dashboard → Raw Data → App Real-time Log" tab if everything is working.
User Setup
Please refer to this guide.
Device Setup
Please refer to [this guide](https://developers.airbridge.io/v1.1-en/docs/react-native-sdk#device-setup)
Event Setup
Please refer to this guide.
Advanced Setup
SDK Signature Setup
Protection against SDK spoofing is possible once you set your SDK Signature.
This feature is available for the Airbridge Expo SDK v2.2.0 and Airbridge React Native SDK v2.3.0 and above.
Add the following lines in the airbridge.json file.
{
"sdkSignatureSecretID": "YOUR_SDK_SIGNATURE_SECRET_ID",
"sdkSignatureSecret": "YOUR_SDK_SIGNATURE_SECRET"
}
Please ask your CSM for the "SDK Signature Secret ID" and "SDK Signature Secret" values.
Other Advanced Settings
Please refer to this guide.
Troubleshooting
Update v1.X.X → v2.0.0
The previous event API has been deprcated and replaced with the new API below.
/**
* Send event to server.
* @param {string} category event name
* @param {EventOption} [option={}] event options
*/
trackEvent(category: string, option?: EventOption): void;
Refer to the Expo SDK 2.1.0 Migration Guide for details.
Updated over 1 year ago