API 참조
APIs
아래에 이 플러그인에 사용할 수 있는 방법 목록을 설명했습니다.
- Android and iOS APIs
- initSDK
- startSDK
- logEvent
- setCustomerUserId
- stop
- setAppInviteOneLinkID
- setAdditionalData
- setResolveDeepLinkURLs
- setOneLinkCustomDomain
- setCurrencyCode
- logLocation
- anonymizeUser
- getAppsFlyerUID
- setHost
- setUserEmails
- generateInviteLink
- setSharingFilterForAllPartners 사용 중단
- setSharingFilter 사용 중단
- setSharingFilterForPartners
- validateAndLogInAppPurchase
- updateServerUninstallToken
- sendPushNotificationData
- addPushNotificationDeepLinkPath
- appendParametersToDeepLinkingURL
- disableAdvertisingIdentifier
- enableTCFDataCollection
- setConsentData
- logAdRevenue
- 안드로이드 전용 API
- iOS 전용 API
- AppsFlyerConversionData
Android and iOS APIs
initSdk
initSdk(options, success, error)
앱스플라이어 SDK를 devKey와 appID로 초기화합니다.
dev key는 모든 앱에 필요하고 appID는 iOS에만 필요합니다.
(안드로이드에서도 appID를 전달할 수 있지만 무시됩니다)
parameter | type | description |
---|---|---|
선택 사항 | JSON | 선택 사항 초기화 |
성공 | 함수 | 성공 콜백 |
에러 | 함수 | 오류 콜백 |
설정 | 설명 |
---|---|
Dev 키 | Your application devKey provided by AppsFlyer (required) |
앱 ID | App ID (iOS only) you configured in your AppsFlyer dashboard |
isDebug | 디버그 모드 - true 로 설정, 테스트 전용 |
onInstallConversionDataListener | Set listener for GCD response (Optional. default=true) |
onDeepLinkListener | Set listener for UDL response (Optional. default=false) |
timeToWaitForATTUserAuthorization | Waits for request user authorization to access app-related data. please read more Here |
manualStart | Prevents from the SDK from sending the launch request after using appsFlyer.initSdk(...). When using this property, the apps needs to manually trigger the appsFlyer.startSdk() API to report the app launch. read more here. (Optional, default=false) |
예:
import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';
import appsFlyer from 'react-native-appsflyer';
appsFlyer.initSdk(
{
devKey: 'K2***********99',
isDebug: false,
appId: '41*****44',
onInstallConversionDataListener: false, //Optional
onDeepLinkListener: true, //Optional
timeToWaitForATTUserAuthorization: 10, //for iOS 14.5
manualStart: true, //Optional
},
(res) => {
console.log(res);
},
(err) => {
console.error(err);
}
);
startSDK
startSdk()
react-native-appslfyer SDK 버전 6.9.1에는 초기화 단계와 시작 단계를 분할하는 옵션이 추가되었습니다. manualStart: true 속성을 init 개체에 추가하고 나중에 결정할 때마다 appsFlyer.startSdk()를 호출하기만 하면 됩니다. 이 속성이 false로 설정되거나 존재하지 않는 경우 다음을 호출한 후 SDK가 시작됩니다. appsFlyer.initSdk(...)
.
예:
const option = {
isDebug: true,
devKey: 'UsxXxXxed',
appId: '75xXxXxXxXx11',
onInstallConversionDataListener: true,
onDeepLinkListener: true,
timeToWaitForATTUserAuthorization: 5,
manualStart: true, // <--- for manual start.
};
appsFlyer.initSdk(
option,
() => {
if (!option.manualStart) {
console.warn('AppsFlyer SDK started!');
} else {
console.warn('AppsFlyer SDK init, didn\'t send launch yet');
}
},
err => {
// handle error
},
);
//...
// app flow
//...
appsFlyer.startSdk(); // <--- Here we send launch
logEvent
logEvent(eventName, eventValues, success, error)
In-App Events provide insight on what is happening in your app. It is recommended to take the time and define the events you want to measure to allow you to measure ROI (Return on Investment) and LTV (Lifetime Value).
인앱이벤트 기록은 logEvent를 이벤트명과 값 파라미터와 함께 호출하여 수행됩니다. 더 자세한 내용은 인앱 이벤트 문서를 참조하십시오.
참고: 인앱이벤트 이름은 45자를 넘지 않아야 합니다. 45자를 초과하는 이벤트 이름은 대시보드에 표시되지 않고 로데이터, Pull API및 Push API에만 표시됩니다.
parameter | type | description |
---|---|---|
eventName | string | 이벤트 이름 |
이벤트 값입니다. | JSON | 이벤트로 전송한 이벤트 값 |
성공 | 함수 | 성공 콜백 |
에러 | 함수 | 성공 콜백 |
예:
const eventName = 'af_add_to_cart';
const eventValues = {
af_content_id: 'id123',
af_currency: 'USD',
af_revenue: '2',
};
appsFlyer.logEvent(
eventName,
eventValues,
(res) => {
console.log(res);
},
(err) => {
console.error(err);
}
);
setCustomerUserId
setCustomerUserId(userId, callback)
자체 커스텀 ID를 설정하면 자체 유저 ID를 앱스플라이어의 고유 ID와 다른 기기의 ID와 연결하여 상호 참조할 수 있습니다. 이 ID는 앱스플라이어 CSV 리포트와 포스트백 API에서 내부 ID와 상호 참조할 수 있습니다.
인스톨 로데이터 리포트에서 CUID(고객 사용자 ID)를 보려면 SDK를 시작하기 전에 CUID를 호출해야 합니다.
이벤트 로데이터 리포트에 사용자 ID를 쉽게 추가하려는 경우 언제든지 자유롭게 호출할 수 있습니다.
parameter | type | description |
---|---|---|
userId | string | 사용자 ID |
callback | 함수 | 성공 콜백 |
예:
appsFlyer.setCustomerUserId('some_user_id', (res) => {
//..
});
stop
stop(isStopped, callback)
간혹, 법률 및 개인 정보 보호 준수를 위해서 모든 SDK 기능을 중단해야 하는 경우가 있을 수 있습니다. stopSDK API로 이를 실행할 수 있습니다. 이 API를 호출한 후에는 당사 SDK가 더 이상 서버와 통신하지 않고 작동을 중지합니다.
서로 다른 몇 가지 사용자 옵트아웃 시나리오가 있습니다. 앱과 관련된 각 시나리오에 맞는 정확한 지침을 따르는 것을 권장합니다.
어떤 이벤트에서든 이 API에 false를 넘기면서 호출하면 SDK를 다시 활성화할 수 있습니다.
parameter | type | description |
---|---|---|
isStopped | boolean | SDK가 중지되면 True (기본 값은 false). |
callback | 함수 | 성공 콜백 |
예:
appsFlyer.stop(true, (res) => {
//...
});
setAppInviteOneLinkID
setAppInviteOneLinkID(oneLinkID, callback)
User-Invite-API에 사용해야 하는 원링크 ID를 설정합니다.
사용자 초대용으로 생성되는 링크는 이 원링크를 기본 링크로 사용하게 됩니다.
parameter | type | description |
---|---|---|
OneLink ID: | string | OneLink ID: |
callback | 함수 | 성공 콜백 |
예:
appsFlyer.setAppInviteOneLinkID('abcd', (res) => {
//...
});
setAdditionalData
setAdditionalData(additionalData, callback)
setAdditionalData API는 SDK 수준에서 Segment, Adobe 및 Urban Airship과 같은 몇몇 외부 파트너 플랫폼과 연동할 때 필요합니다. 이 API는 해당 플랫폼의 연동 안내 문서에서 setAdditionalData API가 필요하다고 특별히 명시된 경우에만 사용하십시오.
parameter | type | description |
---|---|---|
추가 데이터 | JSON | 추가 데이터 |
callback | 함수 | 성공 콜백 |
예:
appsFlyer.setAdditionalData(
{
val1: 'data1',
val2: false,
val3: 23,
},
(res) => {
//...
}
);
setResolveDeepLinkURLs
setResolveDeepLinkURLs(urls, successC, errorC)
Set domains used by ESP when wrapping your deeplinks.
Use this API during the SDK Initialization to indicate that links from certain domains should be resolved in order to get original deeplink
For more information please refer to the documentation
parameter | type | description |
---|---|---|
urls | 정렬 | 해결이 필요한, 쉼표로 구분된 ESP 도메인 배열 |
successC | 함수 | 성공 콜백 |
errorC | 함수 | 오류 콜백 |
예:
appsFlyer.setResolveDeepLinkURLs(["click.esp-domain.com"],
(res) => {
console.log(res);
}, (error) => {
console.log(error);
});
setOneLinkCustomDomains
setOneLinkCustomDomains(domains, successC, errorC)
Set Onelink custom/branded domains
Use this API during the SDK Initialization to indicate branded domains.
For more information please refer to the documentation
parameter | type | description |
---|---|---|
domains | 정렬 | 쉼표로 구분된 브랜드 도메인 배열 |
successC | 함수 | 성공 콜백 |
errorC | 함수 | 오류 콜백 |
예:
appsFlyer.setOneLinkCustomDomains(["click.mybrand.com"],
(res) => {
console.log(res);
}, (error) => {
console.log(error);
});
setCurrencyCode
setCurrencyCode(currencyCode, callback)
Setting user local currency code for in-app purchases.
The currency code should be a 3 character ISO 4217 code. (default is USD).
You can set the currency code for all events by calling the following method.
parameter | type | description |
---|---|---|
currencyCode | string | currencyCode |
callback | 함수 | 성공 콜백 |
예:
appsFlyer.setCurrencyCode(currencyCode, () => {});
logLocation
logLocation(longitude, latitude, callback)
사용자의 위치를 수동으로 기록합니다.
parameter | type | description |
---|---|---|
LONGITUDE | 부동소수점 | LONGITUDE |
LATITUDE | 부동소수점 | LATITUDE |
callback | 함수 | 콜백 성공/오류 |
예:
const latitude = -18.406655;
const longitude = 46.40625;
appsFlyer.logLocation(longitude, latitude, (err, coords) => {
if (err) {
console.error(err);
} else {
//...
}
});
anonymizeUser
anonymizeUser(shouldAnonymize, callback)
It is possible to anonymize specific user identifiers within AppsFlyer analytics.
This complies with both the latest privacy requirements (GDPR, COPPA) and Facebook's data and privacy policies.
To anonymize an app user.
parameter | type | description |
---|---|---|
shouldAnonymize | boolean | 사용자 데이터를 익명화하려는 경우 true(기본값은 false)로 설정. |
callback | 함수 | 성공 콜백 |
예:
appsFlyer.anonymizeUser(true, () => {});
getAppsFlyerUID
getAppsFlyerUID(callback)
앱스플라이어 고유 장치 ID는 앱의 모든 신규 인스톨이 발생할 때마다 발급됩니다. 앱스플라이어의 고유 ID를 얻기 위해서 다음 API를 사용하십시오.
parameter | type | description |
---|---|---|
callback | 함수 | 반환 (error, appsFlyerUID) |
예:
appsFlyer.getAppsFlyerUID((err, appsFlyerUID) => {
if (err) {
console.error(err);
} else {
console.log('on getAppsFlyerUID: ' + appsFlyerUID);
}
});
setHost
setHost(hostPrefix, hostName, successC)
사용자정의 호스트를 설정합니다.
parameter | type | description |
---|---|---|
hostPrefix | string | 호스트 접두사 |
hostName | string | 호스트 이름 |
successC | 함수 | 성공 콜백 |
예:
appsFlyer.setHost('foo', 'bar.appsflyer.com', res => console.log(res));
setUserEmails
setUserEmails(options, success, error)
Set the user emails and encrypt them.
Note: Android and iOS platforms supports only 0 (none) and 3 (SHA256) emailsCryptType.
When unsupported emailsCryptType is passed, the SDK will use the default (none).
parameter | type | description |
---|---|---|
configuration | JSON | 이메일 설정 |
성공 | 함수 | 성공 콜백 |
에러 | 함수 | 오류 콜백 |
선택 사항 | type | description |
---|---|---|
emailsCryptType | 정수형 | none - 0 (default), SHA256 - 3 |
emails | 정렬 | 쉼표로 구분된 이메일 목록 |
예:
const options = {
// In this case iOS platform will encrypt emails usind MD5 and android with SHA256. If you want both platform to encrypt with the same method, just write 0 or 3.
emailsCryptType: Platform.OS === 'ios' ? 2 : 3,
emails: ['[email protected]', '[email protected]'],
};
appsFlyer.setUserEmails(
options,
(res) => {
//...
},
(err) => {
console.error(err);
}
);
generateInviteLink
generateInviteLink(parameters, success, error)
parameter | type | description |
---|---|---|
파라미터 | JSON | 초대 링크의 파라미터 |
성공 | 함수 | 성공 콜백(링크 생성) |
에러 | 함수 | 오류 콜백 |
예:
appsFlyer.generateInviteLink(
{
channel: 'gmail',
campaign: 'myCampaign',
customerID: '1234',
userParams: {
myParam: 'newUser',
anotherParam: 'fromWeb',
amount: 1,
},
},
(link) => {
console.log(link);
},
(err) => {
console.log(err);
}
);
A complete list of supported parameters is available here. Custom parameters can be passed using a userParams{} nested object, as in the example above.
setSharingFilterForAllPartners
setSharingFilterForAllPartners()
Deprecated! Start from version 6.4.0 please use setSharingFilterForPartners
Used by advertisers to exclude all networks/integrated partners from getting data. Learn more here
예:
appsFlyer.setSharingFilterForAllPartners()
setSharingFilter
setSharingFilter(partners, sucessC, errorC)
Deprecated! Start from version 6.4.0 please use setSharingFilterForPartners
Used by advertisers to exclude specified networks/integrated partners from getting data. Learn more here
parameter | type | description |
---|---|---|
파트너 | 정렬 | 쉼표로 구분된 배제할 파트너 배열 |
successC | 함수 | 성공 콜백 |
errorC | 함수 | 오류 콜백 |
예:
let partners = ["facebook_int","googleadwords_int","snapchat_int","doubleclick_int"]
appsFlyer.setSharingFilterForAllPartners(partners,
(res) => {
console.log(res);
}, (error) => {
console.log(error);
})
setSharingFilterForPartners
setSharingFilterForPartners(partners)
광고주가 네트워크/연동 파트너가 데이터를 받을 수 없게 할 때 사용합니다.
parameter | type | description |
---|---|---|
파트너 | 정렬 | 쉼표로 구분된 배제할 파트너 배열 |
예:
appsFlyer.setSharingFilterForPartners([]); // Reset list (default)
appsFlyer.setSharingFilterForPartners(null); // Reset list (default)
appsFlyer.setSharingFilterForPartners(['facebook_int']); // Single partner
appsFlyer.setSharingFilterForPartners(['facebook_int', 'googleadwords_int']); // Multiple partners
appsFlyer.setSharingFilterForPartners(['all']); // All partners
appsFlyer.setSharingFilterForPartners(['googleadwords_int', 'all']); // All partners
validateAndLogInAppPurchase
validateAndLogInAppPurchase(purchaseInfo, successC, errorC): Response<string>
Receipt validation is a secure mechanism whereby the payment platform (e.g. Apple or Google) validates that an in-app purchase indeed occurred as reported.
Learn more - https://support.appsflyer.com/hc/en-us/articles/207032106-Receipt-validation-for-in-app-purchases
❗Important❗ for iOS - set SandBox to true
appsFlyer.setUseReceiptValidationSandbox(true);
parameter | type | description |
---|---|---|
purchaseInfo | JSON | 인앱 구매 파라미터 |
successC | 함수 | 성공 콜백(링크 생성) |
errorC | 함수 | 오류 콜백 |
예:
let info = {
publicKey: 'key',
currency: 'biz',
signature: 'sig',
purchaseData: 'data',
price: '123',
productIdentifier: 'identifier',
currency: 'USD',
transactionId: '1000000614252747',
additionalParameters: {'foo': 'bar'},
};
appsFlyer.validateAndLogInAppPurchase(info, res => console.log(res), err => console.log(err));
updateServerUninstallToken
updateServerUninstallToken(token, callback)
앱 삭제 측정을 위해 Firebase/GCM 기기 토큰을 수동으로 전달합니다.
parameter | type | description |
---|---|---|
token | string | FCM 토큰 |
callback | 함수 | 성공 콜백 |
예:
appsFlyer.updateServerUninstallToken('token', (res) => {
//...
});
sendPushNotificationData
sendPushNotificationData(pushPayload, ErrorCB): void
Push-notification campaigns are used to create fast re-engagements with existing users.
Learn more
For Android platform, AppsFlyer SDK uses the activity in order to process the push payload. Make sure you call this api when the app's activity is available (NOT dead state).
From version 6.6.0 we added an error callback that returns an error message.
parameter | type | description |
---|---|---|
pushPayload | JSON | 푸시 알림 페이로드 |
ErrorCB | 함수 | 페이로드가 전송되지 않은 경우 오류 메시지를 반환합니다 |
예:
const pushPayload = {
af:{
c:"test_campaign",
is_retargeting:true,
pid:"push_provider_int",
},
aps:{
alert:"Get 5000 Coins",
badge:"37",
sound:"default"
}
};
appsFlyer.sendPushNotificationData(pushPayload, err => console.log(err));
addPushNotificationDeepLinkPath
addPushNotificationDeepLinkPath(path, SuccessCB, ErrorCB): void
키 경로를 구성하는 데 사용되는 키 배열을 추가하여 푸시 알림 페이로드에서 딥링크를 분석합니다.
parameter | type | description |
---|---|---|
path | 정렬 | 딥링크의 JSON 경로에 해당하는 문자열 배열입니다. |
successCB | 함수 | 성공 콜백 |
errorCB | 함수 | 오류 콜백 |
예:
let path = ['deeply', 'nested', 'deep_link'];
appsFlyer.addPushNotificationDeepLinkPath(
path,
res => console.log(res),
error => console.log(error),
);
이 호출은 다음 페이로드 구조와 일치합니다.
{
...
"deeply": {
"nested": {
"deep_link": "https://yourdeeplink2.onelink.me"
}
}
...
}
appendParametersToDeepLinkingURL
appendParametersToDeepLinkingURL(contains, parameters): void
하위 문자열로 contains
as a substring and appends query parameters to them. In case the URL does not match, parameters are not appended to it.
Note:
- The
parameters
개체는string
키 및 다음 값으로 구성되어야 합니다:string
value - 다음 메서드를 호출하기 전에 이 API를 호출합니다:
appsFlyer.initSDK()
- 다음 파라미터를 제공해야 합니다:
pid
,is_retargeting
는 다음으로 설정해야 합니다:'true'
parameter | type | description |
---|---|---|
포함 | string | URL에서 확인해야 하는 문자열 |
파라미터 | 개체 | 검증을 통과한 후에 딥링크 URL에 추가할 파라미터 |
예:
appsFlyer.appendParametersToDeepLinkingURL('substring-of-url', {param1: 'value', pid: 'value2', is_retargeting: 'true'});
disableAdvertisingIdentifier
disableAdvertisingIdentifier(shouldDisdable): void
Disables collection of various Advertising IDs by the SDK.
Anroid: Google Advertising ID (GAID), OAID and Amazon Advertising ID (AAID)
iOS: Apple's advertisingIdentifier (IDFA)
parameter | type | description |
---|---|---|
shouldDisdable | boolean | Flag that disable/enable Advertising ID collection |
예:
appsFlyer.disableAdvertisingIdentifier(true);
enableTCFDataCollection
enableTCFDataCollection(enabled): void
instruct the SDK to collect the TCF data from the device.
parameter | type | description |
---|---|---|
enabled | boolean | enable/disable TCF data collection |
예:
appsFlyer.enableTCFDataCollection(true);
setConsentData
setConsentData(consentObject): void
When GDPR applies to the user and your app does not use a CMP compatible with TCF v2.2, use this API to provide the consent data directly to the SDK.
The AppsFlyerConsent object has 2 methods:
AppsFlyerConsent.forNonGDPRUser
: Indicates that GDPR doesn’t apply to the user and generates nonGDPR consent object. This method doesn’t accept any parameters.AppsFlyerConsent.forGDPRUser
: create an AppsFlyerConsent object with 2 parameters:
parameter | type | description |
---|---|---|
hasConsentForDataUsage | boolean | Indicates whether the user has consented to use their data for advertising purposes |
hasConsentForAdsPersonalization | boolean | Indicates whether the user has consented to use their data for personalized advertising |
예:
import appsFlyer, {AppsFlyerConsent} from 'react-native-appsflyer';
let nonGDPRUser = AppsFlyerConsent.forNonGDPRUser();
// OR
let GDPRUser = AppsFlyerConsent.forGDPRUser(true, false);
appsFlyer.setConsentData(nonGDPRUser /**or**/ GDPRUser);
logAdRevenue - Since 6.15.1
logAdRevenue(data: AFAdRevenueData): void
Use this method to log your ad revenue.
By attributing ad revenue, app owners gain the complete view of user LTV and campaign ROI.
Ad revenue is generated by displaying ads on rewarded videos, offer walls, interstitials, and banners in an app.
파라미터
Param | 유형 |
---|---|
data | AFAdRevenueData |
Usage Example for React Native:
const adRevenueData = {
monetizationNetwork: 'AF-AdNetwork',
mediationNetwork: MEDIATION_NETWORK.IRONSOURCE,
currencyIso4217Code: 'USD',
revenue: 1.23,
additionalParameters: {
customParam1: 'value1',
customParam2: 'value2',
}
};
appsFlyer.logAdRevenue(adRevenueData);
Here's how you use appsFlyer.logAdRevenue
within a React Native app:
- Prepare the
adRevenueData
object as shown, including any additional parameters you wish to track along with the ad revenue event. - 호출
appsFlyer.logAdRevenue
method with theadRevenueData
object.
By passing all the required fields in AFAdRevenueData
, you help ensure accurate tracking within the AppsFlyer platform. This enables you to analyze your ad revenue alongside other user acquisition data to optimize your app's overall monetization strategy.
Note: The additionalParameters
object is optional. You can add any additional data you want to log with the ad revenue event in this object. This can be useful for detailed analytics or specific event tracking later on. Make sure that the custom parameters follow the data types and structures specified by AppsFlyer in their documentation.
안드로이드 전용 API
setCollectAndroidID
setCollectAndroidID(isCollect, callback)
Opt-out of collection of Android ID.
If the app does NOT contain Google Play Services, Android ID is collected by the SDK.
However, apps with Google play services should avoid Android ID collection as this is in violation of the Google Play policy.
parameter | type | description |
---|---|---|
isCollect | boolean | 옵트인 불 |
callback | 함수 | 성공 콜백 |
예:
if (Platform.OS == 'android') {
appsFlyer.setCollectAndroidID(true, (res) => {
//...
});
}
setCollectIMEI
setCollectIMEI(isCollect, callback)
Opt-out of collection of IMEI.
If the app does NOT contain Google Play Services, device IMEI is collected by the SDK.
However, apps with Google play services should avoid IMEI collection as this is in violation of the Google Play policy.
parameter | type | description |
---|---|---|
isCollect | boolean | 옵트인 불 |
callback | 함수 | 성공 콜백 |
예:
if (Platform.OS == 'android') {
appsFlyer.setCollectIMEI(false, (res) => {
//...
});
}
setDisableNetworkData setDisableNetworkData(disable)
setDisableNetworkData(disable)
기기에서 네트워크 사업자 이름(이동통신사) 및 sim 사업자 이름 수집을 선택 해제하는 데 사용합니다.
parameter | type | description |
---|---|---|
비활성화 | boolean | 기본값은 false입니다. |
예:
if (Platform.OS == 'android') {
appsFlyer.setDisableNetworkData(true);
}
performOnDeepLinking
performOnDeepLinking()
딥링크 분석에 수동 트리거를 사용할 수 있도록 합니다. 이 메서드를 사용하면 SDK가 시작되기 전에 appsFlyer.startSdk()
에 대한 호출을 지연시키는 앱이 딥링크를 분석할 수 있습니다.
참고:
이 API는 appsFlyer.onDeepLink
콜백을 트리거합니다. 다음 예시에서는 res.deepLinkStatus
가 appsFlyer.onDeepLink
콜백 내부의 "FOUND"와 동일한지 확인하여 딥링크 파라미터를 추출합니다.
예:
// Let's say we want the resolve a deeplink and get the deeplink params when the user clicks on it but delay the actual 'start' of the sdk (not sending launch to appsflyer).
const option = {
isDebug: true,
devKey: 'UsxXxXxed',
appId: '75xXxXxXxXx11',
onInstallConversionDataListener: true,
onDeepLinkListener: true,
manualStart: true, // <--- for manual start.
};
const onDeepLink = appsFlyer.onDeepLink(res => {
if (res.deepLinkStatus == 'FOUND') {
// here we will get the deeplink params after resolving it.
// more flow...
}
});
appsFlyer.initSdk(
option,
() => {
if (!option.manualStart) {
console.warn('AppsFlyer SDK started!');
} else {
console.warn('AppsFlyer SDK init, didn\'t send launch yet');
}
},
() => {},
);
if (Platform.OS == 'android') {
appsFlyer.performOnDeepLinking();
}
// more app flow...
appsFlyer.startSdk(); // <--- Here we send launch
iOS 전용 API
disableCollectASA
disableCollectASA(shouldDisable)
Apple Search Ads 수집 비활성화
parameter | type | description |
---|---|---|
shouldDisable | boolean | Apple Search Ads 데이터 수집 비활성화/활성화 플래그 |
예:
if (Platform.OS == 'ios') {
appsFlyer.disableCollectASA(true);
}
disableIDFVCollection
disableIDFVCollection(shouldDisable)
iOS에서 앱 공급업체 식별자(IDFV) 수집을 비활성화합니다.
기본값은 false입니다(SDK가 IDFV를 수집함).
parameter | type | description |
---|---|---|
shouldDisable | boolean | IDFV 수집 비활성화/활성화 플래그 |
예:
if (Platform.OS == 'ios') {
appsFlyer.disableIDFVCollection(true);
}
setUseReceiptValidationSandbox
void setUseReceiptValidationSandbox(bool useReceiptValidationSandbox)
인앱 구매 영수증 유효성 검증 Apple 환경(생산 또는 샌드박스)입니다. 기본 값은 false입니다.
parameter | type | description |
---|---|---|
setUseReceiptValidationSandbox | boolean | 인앱 구매가 샌드박스로 완료된 경우 true |
예:
appsFlyer.setUseReceiptValidationSandbox(true);
disableSKAD
disableSKAD(disableSkad)
❗중요 사항❗ disableSKAD
는 initSDK
를 호출하기 전에 iOS에 대해서만 호출해야 합니다!
parameter | type | description |
---|---|---|
disableSkad | boolean | SKADNetwork를 비활성화하련느 경우 true |
예:
if (Platform.OS == 'ios') {
appsFlyer.disableSKAD(true);
}
setCurrentDeviceLanguage
setCurrentDeviceLanguage(language)
디바이스의 언어를 설정합니다. 데이터는 로데이터 리포트에 표시됩니다
이 속성을 지우려면 빈 문자열을 설정합니다. ("")
parameter | type | description |
---|---|---|
language | string | 디바이스의 사용 언어 |
예:
if (Platform.OS == 'ios') {
appsFlyer.setCurrentDeviceLanguage("EN");
}
AppsFlyerConversionData
onInstallConversionData
onInstallConversionData(callback) : function:unregister
SDK에서 앱스플라이어 어트리뷰션/전환 데이터 액세스(디퍼드 딥링킹).
전환 리스너에 대한 코드 구현은 SDK의 코드 초기화 이전에 이루어져야 합니다.
parameter | type | description |
---|---|---|
callback | 함수 | 전환 데이터 결과 |
예:
const onInstallConversionDataCanceller = appsFlyer.onInstallConversionData(
(res) => {
if (JSON.parse(res.data.is_first_launch) == true) {
if (res.data.af_status === 'Non-organic') {
var media_source = res.data.media_source;
var campaign = res.data.campaign;
alert('This is first launch and a Non-Organic install. Media source: ' + media_source + ' Campaign: ' + campaign);
} else if (res.data.af_status === 'Organic') {
alert('This is first launch and a Organic Install');
}
} else {
alert('This is not first launch');
}
}
);
appsFlyer.initSdk(/*...*/);
예시 onInstallConversionData:
{
"data": {
"af_message": "organic install",
"af_status": "Organic",
"is_first_launch": "true"
},
"status": "success",
"type": "onInstallConversionDataLoaded"
}
Note** is_first_launch will be "true" (string) on Android and true (boolean) on iOS. To solve this issue wrap is_first_launch with JSON.parse(res.data.is_first_launch) as in the example above.
appsFlyer.onInstallConversionData
는 다음 메서드를 호출할 수 있는 함수를 반환합니다: NativeAppEventEmitter.remove()
.
onInstallConversionFailure
onInstallConversionFailure(callback) : function:unregister
parameter | type | description |
---|---|---|
callback | 함수 | 전환 데이터 실패 결과 |
예:
const onInstallGCDFailure = appsFlyer.onInstallConversionFailure(res => {
console.log(JSON.stringify(res, null, 2));
});
예시 onInstallConversionFailure:
{
"status": "failure",
"type": "onInstallConversionFailure",
"data": "DevKey is incorrect"
}
onAppOpenAttribution
onAppOpenAttribution(callback) : function:unregister
This API is related to DeepLinks. Please read more here
parameter | type | description |
---|---|---|
callback | 함수 | onAppOpenAttribution 데이터 결과 |
예:
const onAppOpenAttributionCanceller = appsFlyer.onAppOpenAttribution((res) => {
console.log(res);
});
appsFlyer.initSdk(/*...*/);
onAttributionFailure
onAttributionFailure(callback) : function:unregister
This API is related to DeepLinks. Please read more here
parameter | type | description |
---|---|---|
callback | 함수 | onAppOpenAttribution 데이터 오류 |
예:
const onAppOpenAttributionCanceller = appsFlyer.onAttributionFailure((res) => {
console.log(res);
});
appsFlyer.initSdk(/*...*/);
onDeepLink
onDeepLink(callback) : function:unregister
This API is related to DeepLinks. Please read more here
parameter | type | description |
---|---|---|
callback | 함수 | UDL 데이터 오류 |
예:
const onDeepLinkCanceller = appsFlyer.onDeepLink(res => {
if (res?.deepLinkStatus !== 'NOT_FOUND') {
const DLValue = res?.data.deep_link_value;
const mediaSrc = res?.data.media_source;
const param1 = res?.data.af_sub1;
console.log(JSON.stringify(res?.data, null, 2));
}
})
appsFlyer.initSdk(/*...*/);
최신 데이터 3개월 전