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
은 Airbridge 대시보드 내 [ Settings → Tokens → App Name ] 에서 확인할 수 있습니다.APP_TOKEN
은 Airbridge 대시보드 내 [ Settings → Tokens → App SDK Token ] 에서 확인할 수 있습니다.
프로젝트 폴더에 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 | 설정한 세션기간 내에 유저가 앱을 재실행하는 경우에는, 같은 세션으로 판단하여 앱 실행 이벤트를 전송하지 않습니다. |
autoStartTrackingEnabled | Boolean | true | false 로 설정하면, Airbridge.state.startTracking() 을 호출하기 전까지 이벤트를 전송하지 않습니다. |
userInfoHashEnabled | Boolean | true | false 로 설정하면, User Email 및 User Phone 정보를 Hash 하지않고 이벤트를 전송합니다. |
trackAirbridgeLinkOnly | Boolean | false | true 로 설정하면, Airbridge 딥링크로 앱이 열린 경우에만 딥링크 이벤트를 전송합니다. |
facebookDeferredAppLinkEnabled | Boolean | false | true 로 설정하고 Facebook SDK 가 설치되어 있으면, Facebook Deferred AppLink 를 수집합니다. |
locationCollectionEnabled | Boolean | false | true 로 설정하면, 해당 기기의 위치 정보를 수집합니다. (Android 전용) |
trackingAuthorizeTimeoutSeconds | Number | 30 | timeout 을 설정하면, 설치 이벤트를 전송하기 전에 timeout 만큼 |
sdkSignatureSecretID | String | null | SDK spoofing 방지 기능을 동작 합니다. 발급 받은 SDK Signature Secret ID, Secret key 가 동시에 적용 되어야 합니다. |
sdkSignatureSecret | String | null | SDK spoofing 방지 기능을 동작 합니다. 발급 받은 SDK Signature Secret ID, Secret key 가 동시에 적용 되어야 합니다. |
logLevel | String | warning | Airbridge log 출력 level 을 설정 합니다. |
앱을 설치하고 실행했을 때 Install 이벤트가 전송되는지 확인해주세요.
SDK 에서 발생한 Event 들은 에어브릿지 대시보드 내 [ Raw Data > App Real-time Logs ] 에 출력됩니다.
에어브릿지 대시보드 내 [ Raw Data > App Real-time Logs ] 항목을 클릭해 주세요.
검색어 입력에 디바이스의 ADID를 입력해주세요. (IDFA, IDFV, GAID)
주의하세요
로그가 노출되기까지 최대 5분정도 소요될 수 있습니다.
딥링크 설정을 위해 에어브릿지 대시보드에서 아래 가이드에 따라 진행해주세요.
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 대시보드 내 [ Tracking Link → Deep Link → URI Scheme ] 에서 확인할 수 있습니다.
딥링크 또는 지연된 딥링크가 발생할 때 마다 호출되는 함수를 등록합니다.
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만 deeplink 데이터를 받게 됩니다.
app.json
에 아래 설정을 추가해주세요.
{
"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
은 에어브릿지 대시보드 내 [ Tracking Link → Domain Setting → Custom Domain ] 에서 확인할 수 있습니다.
URI scheme을 클릭하여 Airbridge SDK 내의 딥링크가 정상적으로 설정되었는지 확인해주세요.
YOUR_SCHEME://
딥링크가 정상적으로 설정되었다면 딥링크 이벤트가 에어브릿지 대시보드 내 [ Raw Data → App Real-time Logs ] 에 출력됩니다.
사용자 설정을 위해 아래 가이드를 참고 부탁드립니다.
디바이스 설정을 위해 아래 가이드를 참고 부탁드립니다.
이벤트 설정을 위해 아래 가이드를 참고 부탁드립니다.
개인정보보호법 등으로 인해 ADID 수집이 불가능 한 경우 기존 SDK 대신 ADID 수집 기능이 제거된 restricted SDK 를 사용 할 수 있습니다. airbridge-expo-sdk-restricted 는 v2.5.2
부터 지원됩니다.
SDK Signature 를 설정하는 것으로 SDK 를 SDK Spoofing 으로 부터 보호할 수 있습니다.
SDK signature 기능을 사용하기 위해서는 airbridge_expo_sdk@2.2.0
, airbridge-react-native-sdk@2.3.0
이상 버전 부터 적용 가능합니다.
프로젝트 폴더의 airbridge.json
파일에 아래 사항을 JSON 형식으로 설정값을 넣어주세요.
{
"sdkSignatureSecretID": "YOUR_SDK_SIGNATURE_SECRET_ID",
"sdkSignatureSecret": "YOUR_SDK_SIGNATURE_SECRET"
}
SDK Signature를 설정하기 위해서는 SDK Signature 보안 정보가 필요합니다. SDK Signature 보안 정보를 생성하기 위한 자세한 내용은 에어브릿지 가이드를 참고해 주세요.
다른 기타 고급 설정을 위해 아래 가이드를 참고 부탁드립니다.
기존에 expo-route 를 사용중인 경우 SDK 설치 후 expo-route 기능이 동작 하지 않습니다.
Airbridge tracking link 를 통해서 app 진입 시 진입한 링크를 airbridge 를 통해서 scheme deeplink 로 변환 처리 후 route 처리가 되어야 합니다. 그러나 expo-router 로 인해 route 처리가 중복, 잘못된 이동 등과 같은 옳지 않은 방향으로 처리 될 수 있습니다.
그리하여 Airbridge Expo SDK 에서 Deeplink 를 route 처리되도록 설계 되었습니다.
아래 코드와 같이 airbridge.deeplink.setDeeplinkListener
내에서 route 되도록 처리 해주세요.
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
을 설정할 도메인
으로 변경해서 아래와 같이 설정해주세요.
https://example.com/.well-known/apple-app-site-association
주소에서 아래 내용을 호스팅 합니다.
{
"webcredentials": {
"apps": ["TEAM_ID.APP_BUNDLE_ID"]
}
}
예) 9JA89QQLNQ.com.apple.wwdc
app.json
에 webcredentials:example.com
을 추가해주세요.
{
"expo": {
"ios": {
"associatedDomains": [
"webcredentials:example.com"
]
}
}
}
SDK 업데이트 시, `이전버전` ~ `이후버전` 사이에 해당하는 버전들에 해당하는 내용들을 고려해주세요.
2023년 9월 4일 이후에 생성된 에어브릿지 앱의 경우, 딥링크 콜백에서 제공하는 딥링크 URL 이 에어브릿지 대시보드에 입력된 내용을 2번 디코딩하여 제공하는 문제가 v2.5.0 ~ v2.5.2 에 있었던 것이 해결되었습니다.
2023년 9월 4일 이후에 생성된 에어브릿지 앱의 경우, 딥링크 콜백에서 제공하는 딥링크 URL 에 더이상 airbridge_referrer 가 추가되지 않게 됩니다.
ios app 업데이트 하시는 경우, 마지막으로 계산된 SKAdNetwork Conversion Value 로 확정되고, 추가적으로 계산하지 않습니다.
2.5.1 미만 버전에서는 SKAdNetwork Conversion Value 를 최대 24시간 동안만 계산합니다.
새로 설치하시는 유저에 대해서는 문제되지 않습니다.
deeplink.page
가 deprecated 되었습니다. 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;
아래 가이드를 참고 부탁드립니다.
아래 가이드를 참고 부탁드립니다.
도움이 되었나요?