Unity 플러그인 V6 연동 가이드 - API 참조

요약: 앱스플라이어 SDK에 포함된 클래스 및 메서드에 대한 기술 설명. 

 관련 자료

앱에 Unity 플러그인을 연동하는 방법에 대해 완전히 이해하려면 다음 문서를 읽어보십시오.

안드로이드 및 iOS API

initSDK

설명

dev 키와 앱 ID로 플러그인을 초기화합니다. dev 키는 모든 앱에 필요합니다. 앱 ID는 iOS에서만 필요합니다. 앱이 안드로이드 전용인 경우 앱 ID에 null을 전달합니다. 게임 개체에는 IAppsFlyerConversionData 인터페이스가 포함되어 있습니다.

Method signature

void initSDK(string devKey, string appID, MonoBehaviour gameObject)

AppsFlyer.initSDK("dev_key", "app_id"); // 딥링킹 없이
            AppsFlyer.initSDK("dev_key", "app_id", this); // 딥링킹을 통해

startSDK

설명

이 API가 호출되면 SDK가 시작되고, 세션이 즉시 전송되며 모든 배경(background)-전경(foreground) 전환이 발생하면 세션이 기록됩니다.

Method signature

void startSDK()

AppsFlyer.startSDK();

sendEvent

설명

인앱이벤트 기록은 sendEvent를 이벤트명과 값 파라미터와 함께 호출하여 수행됩니다.

Method signature

void sendEvent(string eventName, Dictionary<string, string> eventValues)

Dictionary<string, string> 
            eventValues = new Dictionary<string, string>();
            eventValues.Add(AFInAppEvents.CURRENCY, "USD");
            eventValues.Add(AFInAppEvents.REVENUE, "0.99");
            eventValues.Add("af_quantity", "1");
            AppsFlyer.sendEvent(AFInAppEvents.PURCHASE, eventValues);

stopSDK

설명

몇몇 심각한 경우에는 규제 및 개인 정보 보호 준수 요건을 위해서 모든 SDK 기능을 중지해야 하는 경우도 있을 수 있습니다. 이를 위해서는 stopSDK API를 사용합니다. 이 API가 호출되면, SDK는 앱스플라이어 서버와 더 이상 통신하지 않고 기능이 중지될 것입니다.

Method signature

void stopSDK(bool isSDKStopped)

AppsFlyer.stopSDK(true);

isSDKStopped

설명

stopSDK(부울 값) API를 true로 설정했습니다.

Method signature

bool isSDKStopped()

if (!AppsFlyer.isSDKStopped())
{

}

getSdkVersion

설명

앱스플라이어 SDK 버전 가져오기

Method signature

string getSdkVersion()

string version = AppsFlyer.getSdkVersion();

setIsDebug

설명

디버그 로그 활성화

Method signature

void setIsDebug(bool shouldEnable)

AppsFlyer.setIsDebug(true);

setCustomerUserID

설명

고객 사용자 ID를 설정합니다.

Method signature

void setCustomerUserId(string id)

AppsFlyer.setCustomerUserId("custom_user_id");

setAppInviteOneLink

설명

사용자 초대 캠페인를 위한 커스텀 어트리뷰션 링크용 원링크 템플릿 ID를 설정합니다.

Method signature

setAppInviteOneLinkID(string oneLinkId)

AppsFlyer.setAppInviteOneLinkID("abcd");

setAdditionalData

설명

외부 파트너 플랫폼으로 보낼 부가 정보를 추가합니다.

Method signature

setAdditionalData(Dictionary<string, string> customData)

Dictionary<string, string> customData = new Dictionary<string, string>();
customData.Add("custom1", "someData");
AppsFlyer.setAdditionalData(customData);

setResolveDeepLinkURLs

설명

클릭 도메인에서 원링크를 분석합니다. 자세한 내용은  래핑된 딥링크 URL 분석하기 부분을 참고하십시오.

Method signature

setResolveDeepLinkURLs(params string[] urls)

AppsFlyer.setResolveDeepLinkURLs("example.com", "click.example.com");

setOneLinkCustomDomain

설명

광고주는 이 메서드를 사용하여 무의미한 원링크 도메인을 설정할 수 있습니다.

Method signature

void setOneLinkCustomDomain(params string[] domains)

AppsFlyer.setOneLinkCustomDomain("test.domain", "test2.domain");

setcurrencyCode

설명

수익 값이 있는 이벤트에 사용하십시오. ISO 통화 코드로 설정 가능합니다.

Method signature

public void setCurrencyCode(String currencyCode);

앱스플라이어.setCurrencyCode("GBP");

recordLocation

설명

수작업으로 사용자 위치를 기록합니다.

Method signature

void recordLocation(double latitude, double longitude)

AppsFlyer.recordLocation(40.7128, 74.0060);

anonymizeUser

설명

초기화하는 동안 사용하면, 사용자의 인스톨, 이벤트, 세션을 명시적으로 익명 처리할 수 있습니다. 익명 처리를 중지하려면 anonymizeUser를 다시 호출하여 false로 설정하십시오.

Method signature

void anonymizeUser(bool shouldAnonymizeUser)

AppsFlyer.anonymizeUser(true);

getAppsFlyerId

설명

신규 인스톨에 대한 앱스플라이어 고유 ID를 얻는 방법.

Method signature

string getAppsFlyerId()

string uid = AppsFlyer.getAppsFlyerId();

setMinTimeBetweenSessions

설명

기본 설정으로는, 2개 앱을 실행할 때의 간격이 적어도 5초 이상이 되어야 두 개의 별도 세션으로 집계합니다. 세션 사이의 최소 필요 시간으로 사용자정의 값을 설정합니다.

Method signature

void setMinTimeBetweenSessions(int seconds)

AppsFlyer.setMinTimeBetweenSessions(4);

setUserEmails

설명

사용자 이메일을 설정하고 암호화합니다.

Method signature

void setUserEmails(EmailCryptType cryptMethod, params string[] emails)

AppsFlyer.setUserEmails(EmailCryptType.EmailCryptTypeSHA256, "test1@test1.com", "test2@test2.com");

setHost

설명

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

Method signature

void setHost(string hostPrefixName, string hostName)

AppsFlyer.setHost("hostPrefixName","hostName");

getConversionData

설명

SDK 수준에서 직접 신규 인스톨마다 실시간으로 사용자 어트리뷰션 데이터에 액세스할 수 있도록 전환 데이터 수신기를 등록합니다. 이렇게 하여 사용자에게 맞춤형 콘텐츠를 제공하거나 앱 내부의 특정 활동을 전송하여 앱에 대한 사용자의 인게이지먼트를 현저하게 높일 수 있습니다.

Method signature

void getConversionData(string objectName);

AppsFlyer.getConversionData(gameObject.name);

attributeAndOpenStore

설명

클릭을 어트리뷰트하고 앱 스토어의 앱 페이지를 실행합니다.

Method signature

void attributeAndOpenStore
(string appID, string campaign,
Dictionary<string, string> userParams, MonoBehaviour gameObject)


Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("af_sub1", "val");
parameters.Add("custom_param", "val2");
AppsFlyer.attributeAndOpenStore("123456789", "test campaign", parameters, this);            

recordCrossPromoteImpression

설명

크로스 프로모션 노출 어트리뷰션은 다음 API 호출을 사용합니다. 크로스 프로모션 대상 앱 ID가 앱스플라이어 대시보드에 나타납니다. 그러므로 꼭 프로모션할 앱의 ID를 사용하십시오.

Method signature

void recordCrossPromoteImpression(string appID, string campaign);

Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("af_sub1", "val");
parameters.Add("custom_param", "val2");
AppsFlyer.recordCrossPromoteImpression("appID", "campaign", parameters);

generateUserInviteLink

설명

앱 추천 링크는 LinkGenerator 클래스로 URL을 빌드합니다. 이 클래스 내 여러 가지 setter 메서드에 따라 링크 클릭 시 정보가 수집됩니다.

Method signature

void generateUserInviteLink
(Dictionary<string, string> parameters, MonoBehaviour gameObject)

AppsFlyer.generateUserInviteLink(params, this);

onAppOpenAttribution

설명

앱이 딥링크를 통해 열렸을 때 딥링크 정보를 가져옵니다.

Method signature

public void onAppOpenAttribution(string validateResult)

public void onAppOpenAttribution(string attributionData)
            { AppsFlyer.AFLog("onAppOpenAttribution", attributionData);
            Dictionary<string, object> attributionDataDictionary = AppsFlyer.CallbackStringToDictionary(attributionData);
            // add direct deeplink logic here }

onAppOpenAttributionFailure

설명

딥링크 정보를 가져올 때 발생하는 오류를 가져옵니다.

Method signature

public void onAppOpenAttributionFailure (string error)

public void onAppOpenAttributionFailure(string error)
            {AppsFlyer.AFLog("onAppOpenAttributionFailure", error); }

onConversionDataSuccess

설명

전환 데이터를 가져오는데 사용되는 메서드입니다. 디퍼드 딥링킹에 활용하기에 유용합니다. 더 알아보기.

  • SDK v5 이후: onConversionDataSuccess
  • SDK v5 이전: onConversionDataReceived

Method signature

public void onConversionDataSuccess(string conversionData)

public void onConversionDataSuccess(string conversionData)
            {
            AppsFlyer.AFLog("onConversionDataSuccess", conversionData);
            Dictionary<string, object> conversionDataDictionary = AppsFlyer.CallbackStringToDictionary(conversionData);
            // add deferred deeplink logic here
            }

onConversionDataFail

설명

인스톨에서 전환 데이터를 가져 오지 못한 경우 오류를 처리합니다.

Method signature

public void onConversionDataFail(string error)

public void onConversionDataFail(string error)
            {
            AppsFlyer.AFLog("onConversionDataFail", error);
            }

onInviteLinkGenerated

설명

원링크 URL을 생성하기 위한 콜백 성공.

Method signature

public void onInviteLinkGenerated(string link)

public void onInviteLinkGenerated(string link)
            {
            }

onInviteLinkGeneratedFailure

설명

원링크 URL을 생성하기 위한 콜백 실패.

Method signature

public void onInviteLinkGeneratedFailure(string error)

public void onInviteLinkGeneratedFailure(string error)
            {
            AppsFlyer.AFLog("onInviteLinkGeneratedFailure", error);
            }

didFinishValidateReceipt

설명

validateAndSendInAppPurchase API에 대한 콜백 성공.

안드로이드의 경우: 콜백은 "유효성 검증 성공"을 반환합니다.
iOS의 경우: 콜백은 Apple verifyReceipt API의 JSON 문자열을 반환합니다.

Method signature

public void didFinishValidateReceipt(string result)

public void didFinishValidateReceipt(string result)
            {
            }

didFinishValidateReceiptWithError

설명

수신 확인을 위한 콜백 오류.

Method signature

public void didFinishValidateReceiptWithError(string error)

public void didFinishValidateReceiptWithError(string error)
            {
            }

setPhoneNumber

설명

사용자 전화번호를 설정하는 데 사용됩니다.

Method signature

void setPhoneNumber(string phoneNumber)

AppsFlyer.setPhoneNumber("4166358181");

setSharingFilterForAllPartners

설명

광고주가 모든 광고 네트워크/연동 파트너에게 데이터를 보내지 않도록 할 때 사용합니다. 더 알아보기

Method signature

void setSharingFilterForAllPartners()

AppsFlyer.setSharingFilterForAllPartners();

setSharingFilter

설명

광고주가 이 메서드를 이용하여 일부(하나 혹은 복수의) 애드 네트워크/연동 파트너를 데이터 공유 대상에서 제외되도록 설정할 수 있습니다. 더 알아보기

Method signature

void setSharingFilter(params string[] partners)

AppsFlyer.setSharingFilter
("googleadwords_int","snapchat_int","doubleclick_int");

안드로이드 API

updateServerUninstallToken

설명

앱 제거 측정을 위해 Firebase 기기 토큰을 수작업으로 전달합니다.

Method signature

void updateServerUninstallToken(string token)

#if UNITY_ANDROID && !UNITY_EDITOR
            AppsFlyerAndroid.updateServerUninstallToken("token");
            #endif

setImeiData

설명

IMEI를 앱스플라이어에 명시적으로 전송.

Method signature

void setImeiData(string imei)

#if UNITY_ANDROID && !UNITY_EDITOR
            AppsFlyerAndroid.setImeiData("imei");
            #endif

setAndroidIdData

설명

 안드로이드 ID를 앱스플라이어에 명시적으로 전송.

Method signature

void setAndroidIdData(string androidId)

#if UNITY_ANDROID && !UNITY_EDITOR
            AppsFlyerAndroid.setAndroidIdData("androidId");
            #endif

waitForCustomerUserId

설명

이 기능은 고객 사용자 ID를 얻기 전까지 SDK가 동작을 시작할 수 없도록 합니다.

Method signature

void waitForCustomerUserId(bool wait)

#if UNITY_ANDROID && !UNITY_EDITOR
            AppsFlyerAndroid.waitForCustomerUserId(true);
            #endif

setCustomerIdAndStartSDK

설명

메서드를 호출하여 SDK에 Customer User ID를 부여하고, SDK가 정상적인 활동을 시작하도록 합니다.

Method signature

void setCustomerIdAndStartSDK(string id)

#if UNITY_ANDROID && !UNITY_EDITOR
            AppsFlyerAndroid.setCustomerIdStartSDK("id");
            #endif

getOutOfStore

설명

현재 AF_STORE 값을 가져옵니다.

Method signature

string getOutOfStore()

#if UNITY_ANDROID && !UNITY_EDITOR
            string af_store = AppsFlyerAndroid.getOutOfStore();
            #endif

setOutOfStore

설명

수작업으로 AF_STORE 값을 설정합니다.

Method signature

void setOutOfStore(string sourceName)

#if UNITY_ANDROID && !UNITY_EDITOR
            AppsFlyerAndroid.setOutOfStore("sourceName");
            #endif

setCollectAndroidID

설명

안드로이드 ID 수집 거부. 앱이 Google Play 서비스를 사용하지 않는 경우 안드로이드 ID는 SDK로 수집합니다. 하지만, Google Play 서비스를 사용하는 앱은 안드로이드 ID를 수집하지 말아야 합니다. 이는 Google Play 정책의 위반입니다

Method signature

void setCollectAndroidID(bool isCollect)

#if UNITY_ANDROID && !UNITY_EDITOR
            AppsFlyerAndroid.setCollectAndroidID(true);
            #endif

setCollectIMEI

설명

IMEI 수집 거부. 앱이 Google Play 서비스를 사용하지 않는 경우 기기 IMEI는 플러그인으로 수집합니다. 하지만, Google Play 서비스를 사용하는 앱은 IMEI를 수집하지 말아야 합니다. 이는 Google Play 정책 위반입니다.

Method signature

void setCollectIMEI(bool isCollect)

#if UNITY_ANDROID && !UNITY_EDITOR
            AppsFlyerAndroid.setCollectIMEI(true);
            #endif

setIsUpdate

설명

애플리케이션이 업데이트되었음을 수동으로 설정합니다.

Method signature

void setIsUpdate(bool isUpdate)

#if UNITY_ANDROID && !UNITY_EDITOR
            AppsFlyerAndroid.setIsUpdate(true);
            #endif

setPreinstallAttribution

설명

사전 인스톨이 어트리뷰트되는 제조업체 또는 미디어소스를 지정합니다.

Method signature

void setPreinstallAttribution
(string mediaSource, string campaign, string siteId)

#if UNITY_ANDROID && !UNITY_EDITOR
            AppsFlyerAndroid.setPreinstallAttribution("mediaSource", "campaign", "siteId");
            #endif

isPreInstalledApp

설명

제조업체에 의한 사전 인스톨에 필요한 부울 표시자.

Method signature

bool isPreInstalledApp()

#if UNITY_ANDROID && !UNITY_EDITOR
            if (AppsFlyerAndroid.isPreInstalledApp())
            {
            }
            #endif

 getAttributionId

설명

존재하는 경우 페이스북 어트리뷰션 ID를 가져옵니다.

Method signature

string getAttributionId()

#if UNITY_ANDROID && !UNITY_EDITOR
            string attributionId = AppsFlyerAndroid.getAttributionId();
            #endif

handlePushNotifications

설명

푸시 알림이 기록됩니다.

Method signature

void handlePushNotifications()

#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyerAndroid.handlePushNotifications();
#endif

validateAndSendInAppPurchase

설명

인앱 구매에 대한 서버 확인을 위한 API. 유효성 검증에 성공하면 관련 값을 가진 af_purchase 이벤트가 자동으로 전송됩니다.

Method signature

void validateAndSendInAppPurchase
(string publicKey, string signature, string purchaseData,
string price, string currency, Dictionary<string, string> additionalParameters,
MonoBehaviour gameObject)

#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyerAndroid.validateAndSendInAppPurchase(
"publicKey",
"signature",
"purchaseData",
"price",
"currency",
null,
this);
#endif

iOS API

setShouldCollectDeviceName

설명

현재 기기 이름(예: "내 iPhone")을 수집하려면 이 플래그를 true로 설정합니다. 기본값은 "false"입니다. 

Method signature

void setShouldCollectDeviceName(bool shouldCollectDeviceName)

#if UNITY_IOS && !UNITY_EDITOR
            AppsFlyeriOS.setShouldCollectDeviceName(true);
            #endif

setDisableCollectIAd

설명

Apple Search Ads 어트리뷰션 거부.

Method signature

void setDisableCollectIAd(bool disableCollectIAd)

#if UNITY_IOS && !UNITY_EDITOR
            AppsFlyeriOS.setDisableCollectIAd(true);
            #endif

setUseReceiptValidationSandbox

설명

Apple 환경(프로덕션 또는 샌드박스)에서 인앱 구매 영수증 유효성 검사를 수행합니다. 기본값은 "false"입니다.

Method signature

void setUseReceiptValidationSandbox(bool useReceiptValidationSandbox)

#if UNITY_IOS && !UNITY_EDITOR
            AppsFlyeriOS.setUseReceiptValidationSandbox(true);
            #endif

setUseUninstallSandbox

설명

Apple 환경(프로덕션 또는 샌드박스)에서앱 제거 기능을 테스트하도록 이 플래그를 설정합니다. 기본값은 "false"입니다.

Method signature

void setUseUninstallSandbox(bool useUninstallSandbox)

#if UNITY_IOS && !UNITY_EDITOR
            AppsFlyeriOS.setUseUninstallSandbox(true);
            #endif

validateAndSendInAppPurchase

설명

인앱 구매를 전송하고 유효성을 검증하려면 processPurchase 메서드에서 이 메서드를 호출합니다.

Method signature

void validateAndSendInAppPurchase
(string productIdentifier, string price, string currency, string tranactionId,
Dictionary<string, string> additionalParameters, MonoBehaviour gameObject)

#if UNITY_IOS && !UNITY_EDITOR
            AppsFlyeriOS.validateAndSendInAppPurchase(
            "productIdentifier", 
            "price", 
            "currency", 
            "tranactionId", 
            null, 
            this);
            #endif

registerUninstall

설명

원격 알림에 등록하여 앱스플라이어에 푸시 기기 토큰을 제공합니다.

Method signature

void registerUninstall(byte[] deviceToken)

private bool tokenSent;
            void Update()
            {
            #if UNITY_IOS && !UNITY_EDITOR
            if (!tokenSent)
            {
            byte[] token = UnityEngine.iOS.NotificationServices.deviceToken;
            if (token != null)
            {
            AppsFlyeriOS.registerUninstall(token);
            tokenSent = true;
            }
            }
            #endif
            }

handleOpenUrl

설명

딥링킹을 수작업으로 기록하는 데 사용됩니다.

Method signature

void handleOpenUrl(string url, string sourceApplication, string annotation)

#if UNITY_IOS && !UNITY_EDITOR
            AppsFlyeriOS.handleOpenUrl(string url, string sourceApplication, string annotation);
            #endif

onOpenStoreLinkGenerated

설명

Storekit 컴포넌트를 사용하여 해당 앱에 맞는 앱스토어를 열 수 있습니다. 더 알아보기.

Method signature

public void onOpenStoreLinkGenerated(string link)

public void onOpenStoreLinkGenerated(string link)
            {
            }

disableSKAdNetwork

설명

SKAdNetwork 어트리뷰션을 비활성화하도록 합니다. "true"로 설정하여 비활성화하십시오.

Method signature

bools disableSKAdNetwork(int isDisabled)

#if UNITY_IOS && !UNITY_EDITOR
    AppsFlyeriOS.disableSKAdNetwork(true);
#endif

waitForATTUserAuthorizationWithTimeoutInterval

설명

앱 사용자나 기기 정보(예: IDFA)를 기록하여 앱 관련 데이터로 활용하기 전, 팝업으로 사용자 승인을 요청할 때 사용됩니다. 사용자가 허가하면, IDFA가 SDK에 전달됩니다. 시간 제한 길이는 사용자가 IDFA 수집 허용을 선택할 때까지의 제한된 시간입니다. 타이머가 만료된 후에, IDFA는 수집되지 않습니다.

Method signature

void waitForATTUserAuthorizationWithTimeoutInterval(int timeoutInterval)

#if UNITY_IOS && !UNITY_EDITOR
    AppsFlyeriOS.waitForATTUserAuthorizationWithTimeoutInterval(60);
#endif
도움이 되었습니까?