APIs

아래에 이 플러그인에 사용할 수 있는 방법 목록을 설명했습니다.


Android and iOS APIs

initSdk

initSdk(options, success, error)

앱스플라이어 SDK를 devKey와 appID로 초기화합니다.

dev key는 모든 앱에 필요하고 appID는 iOS에만 필요합니다.

(안드로이드에서도 appID를 전달할 수 있지만 무시됩니다)

parametertypedescription
선택 사항JSON선택 사항 초기화
성공함수성공 콜백
에러함수오류 콜백
설정설명
Dev 키Your application devKey provided by AppsFlyer (required)
앱 IDApp ID (iOS only) you configured in your AppsFlyer dashboard
isDebug디버그 모드 - true 로 설정, 테스트 전용
onInstallConversionDataListenerSet listener for GCD response (Optional. default=true)
onDeepLinkListenerSet listener for UDL response (Optional. default=false)
timeToWaitForATTUserAuthorizationWaits for request user authorization to access app-related data. please read more Here
manualStartPrevents 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에만 표시됩니다.

parametertypedescription
eventNamestring이벤트 이름
이벤트 값입니다.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를 쉽게 추가하려는 경우 언제든지 자유롭게 호출할 수 있습니다.

parametertypedescription
userIdstring사용자 ID
callback함수성공 콜백

예:

appsFlyer.setCustomerUserId('some_user_id', (res) => {
  //..
});

stop

stop(isStopped, callback)

간혹, 법률 및 개인 정보 보호 준수를 위해서 모든 SDK 기능을 중단해야 하는 경우가 있을 수 있습니다. stopSDK API로 이를 실행할 수 있습니다. 이 API를 호출한 후에는 당사 SDK가 더 이상 서버와 통신하지 않고 작동을 중지합니다.

서로 다른 몇 가지 사용자 옵트아웃 시나리오가 있습니다. 앱과 관련된 각 시나리오에 맞는 정확한 지침을 따르는 것을 권장합니다.

어떤 이벤트에서든 이 API에 false를 넘기면서 호출하면 SDK를 다시 활성화할 수 있습니다.

parametertypedescription
isStoppedbooleanSDK가 중지되면 True (기본 값은 false).
callback함수성공 콜백

예:

appsFlyer.stop(true, (res) => {
  //...
});

setAppInviteOneLinkID

setAppInviteOneLinkID(oneLinkID, callback)

User-Invite-API에 사용해야 하는 원링크 ID를 설정합니다.

사용자 초대용으로 생성되는 링크는 이 원링크를 기본 링크로 사용하게 됩니다.

parametertypedescription
OneLink ID:stringOneLink ID:
callback함수성공 콜백

예:

appsFlyer.setAppInviteOneLinkID('abcd', (res) => {
  //...
});

setAdditionalData

setAdditionalData(additionalData, callback)

setAdditionalData API는 SDK 수준에서 Segment, Adobe 및 Urban Airship과 같은 몇몇 외부 파트너 플랫폼과 연동할 때 필요합니다. 이 API는 해당 플랫폼의 연동 안내 문서에서 setAdditionalData API가 필요하다고 특별히 명시된 경우에만 사용하십시오.

parametertypedescription
추가 데이터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

parametertypedescription
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

parametertypedescription
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.

parametertypedescription
currencyCodestringcurrencyCode
callback함수성공 콜백

예:

appsFlyer.setCurrencyCode(currencyCode, () => {});

logLocation

logLocation(longitude, latitude, callback)

사용자의 위치를 수동으로 기록합니다.

parametertypedescription
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.

parametertypedescription
shouldAnonymizeboolean사용자 데이터를 익명화하려는 경우 true(기본값은 false)로 설정.
callback함수성공 콜백

예:

appsFlyer.anonymizeUser(true, () => {});

getAppsFlyerUID

getAppsFlyerUID(callback)

앱스플라이어 고유 장치 ID는 앱의 모든 신규 인스톨이 발생할 때마다 발급됩니다. 앱스플라이어의 고유 ID를 얻기 위해서 다음 API를 사용하십시오.

parametertypedescription
callback함수반환 (error, appsFlyerUID)

예:

appsFlyer.getAppsFlyerUID((err, appsFlyerUID) => {
  if (err) {
    console.error(err);
  } else {
    console.log('on getAppsFlyerUID: ' + appsFlyerUID);
  }
});

setHost

setHost(hostPrefix, hostName, successC)

사용자정의 호스트를 설정합니다.

parametertypedescription
hostPrefixstring호스트 접두사
hostNamestring호스트 이름
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 platform supports only 0 (none) and 3 (SHA256) emailsCryptType. iOS platform support all (0-3) emailsCryptType.
When unsupported emailsCryptType is passed, the SDK will use the default (none).

parametertypedescription
configurationJSON이메일 설정
성공함수성공 콜백
에러함수오류 콜백
선택 사항typedescription
emailsCryptType정수형iOS: 없음 - 0 (기본값), SHA1 - 1, MD5 - 2, SHA256 - 3
안드로이드: 없음 - 0 (),기본값 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)

parametertypedescription
파라미터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

parametertypedescription
파트너정렬쉼표로 구분된 배제할 파트너 배열
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)

광고주가 네트워크/연동 파트너가 데이터를 받을 수 없게 할 때 사용합니다.

parametertypedescription
파트너정렬쉼표로 구분된 배제할 파트너 배열

예:

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);

parametertypedescription
purchaseInfoJSON인앱 구매 파라미터
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 기기 토큰을 수동으로 전달합니다.

parametertypedescription
tokenstringFCM 토큰
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.

parametertypedescription
pushPayloadJSON푸시 알림 페이로드
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

키 경로를 구성하는 데 사용되는 키 배열을 추가하여 푸시 알림 페이로드에서 딥링크를 분석합니다.

parametertypedescription
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:

  1. The parameters 개체는 string 키 및 다음 값으로 구성되어야 합니다: string value
  2. 다음 메서드를 호출하기 전에 이 API를 호출합니다: appsFlyer.initSDK()
  3. 다음 파라미터를 제공해야 합니다:
    pid, is_retargeting 는 다음으로 설정해야 합니다: 'true'
parametertypedescription
포함stringURL에서 확인해야 하는 문자열
파라미터개체검증을 통과한 후에 딥링크 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)

parametertypedescription
shouldDisdablebooleanFlag that disable/enable Advertising ID collection

예:

appsFlyer.disableAdvertisingIdentifier(true);

enableTCFDataCollection

enableTCFDataCollection(enabled): void

instruct the SDK to collect the TCF data from the device.

parametertypedescription
enabledbooleanenable/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:

  1. AppsFlyerConsent.forNonGDPRUser: Indicates that GDPR doesn’t apply to the user and generates nonGDPR consent object. This method doesn’t accept any parameters.
  2. AppsFlyerConsent.forGDPRUser: create an AppsFlyerConsent object with 2 parameters:
parametertypedescription
hasConsentForDataUsagebooleanIndicates whether the user has consented to use their data for advertising purposes
hasConsentForAdsPersonalizationbooleanIndicates 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);

안드로이드 전용 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.

parametertypedescription
isCollectboolean옵트인 불
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.

parametertypedescription
isCollectboolean옵트인 불
callback함수성공 콜백

예:

if (Platform.OS == 'android') {
appsFlyer.setCollectIMEI(false, (res) => {
   //...
});
}

setDisableNetworkData setDisableNetworkData(disable)

기기에서 네트워크 사업자 이름(이동통신사) 및 sim 사업자 이름 수집을 선택 해제하는 데 사용합니다.

parametertypedescription
비활성화boolean기본값은 false입니다.

예:

if (Platform.OS == 'android') {
appsFlyer.setDisableNetworkData(true);
}

performOnDeepLinking

performOnDeepLinking()

딥링크 분석에 수동 트리거를 사용할 수 있도록 합니다. 이 메서드를 사용하면 SDK가 시작되기 전에 appsFlyer.startSdk() 에 대한 호출을 지연시키는 앱이 딥링크를 분석할 수 있습니다.

참고:
이 API는 appsFlyer.onDeepLink 콜백을 트리거합니다. 다음 예시에서는 res.deepLinkStatusappsFlyer.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 수집 비활성화

parametertypedescription
shouldDisablebooleanApple Search Ads 데이터 수집 비활성화/활성화 플래그

예:

if (Platform.OS == 'ios') {
appsFlyer.disableCollectASA(true);
}

disableIDFVCollection

disableIDFVCollection(shouldDisable)

iOS에서 앱 공급업체 식별자(IDFV) 수집을 비활성화합니다.

기본값은 false입니다(SDK가 IDFV를 수집함).

parametertypedescription
shouldDisablebooleanIDFV 수집 비활성화/활성화 플래그

예:

if (Platform.OS == 'ios') {
appsFlyer.disableIDFVCollection(true);
}

setUseReceiptValidationSandbox

void setUseReceiptValidationSandbox(bool useReceiptValidationSandbox)

인앱 구매 영수증 유효성 검증 Apple 환경(생산 또는 샌드박스)입니다. 기본 값은 false입니다.

parametertypedescription
setUseReceiptValidationSandboxboolean인앱 구매가 샌드박스로 완료된 경우 true

예:

appsFlyer.setUseReceiptValidationSandbox(true);

disableSKAD

disableSKAD(disableSkad)

❗중요 사항❗ disableSKADinitSDK 를 호출하기 전에 iOS에 대해서만 호출해야 합니다!

parametertypedescription
disableSkadbooleanSKADNetwork를 비활성화하련느 경우 true

예:

if (Platform.OS == 'ios') {
    appsFlyer.disableSKAD(true);
}

setCurrentDeviceLanguage

setCurrentDeviceLanguage(language)

디바이스의 언어를 설정합니다. 데이터는 로데이터 리포트에 표시됩니다

이 속성을 지우려면 빈 문자열을 설정합니다. ("")

parametertypedescription
languagestring디바이스의 사용 언어

예:

if (Platform.OS == 'ios') {
    appsFlyer.setCurrentDeviceLanguage("EN");
}

AppsFlyerConversionData

onInstallConversionData

onInstallConversionData(callback) : function:unregister

SDK에서 앱스플라이어 어트리뷰션/전환 데이터 액세스(디퍼드 딥링킹).

전환 리스너에 대한 코드 구현은 SDK의 코드 초기화 이전에 이루어져야 합니다.

parametertypedescription
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

parametertypedescription
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

parametertypedescription
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

parametertypedescription
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

parametertypedescription
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(/*...*/);