연동 테스트

시작하기 전에

Let's save you some time >>

Test your integration with our SDK integration wizard

본 문서의 테스트를 성공적으로 완료하려면 다음을 수행해야 합니다:

iOS SDK 연동 테스트

테스트는 다음과 같이 구성됩니다:

  1. 광고 클릭 시뮬레이션 및 앱 인스톨:
    • ATT를 구현하는 경우 다음 지침을 따르십시오.
    • ATT를 구현하지 않는 경우 다음 지침을 따르십시오.
  2. 인스톨의 전환 데이터 검사.

Apps that implement ATT

앱에서 앱 추적 투명성(ATT)을 구현하는 경우 다음 지침을 따르십시오.
다음 조건이 충족되면 ID 매칭을 통해 어트리뷰션이 발생합니다:

  • 어트리뷰션 링크에는 다음 파라미터가 포함됩니다: idfa parameter
  • ATT가 구현되고:
    1. requestTrackingAuthorization 는 다음 메서드 전에 호출됩니다: start (다음을 활용하여: waitForATTUserAuthorization)
    2. 사용자 동의가 제공됩니다.

1단계: 광고 클릭 시뮬레이션
어트리뷰션 링크를 통해 광고 클릭을 시뮬레이션합니다. 어트리뷰션 링크를 다음과 같이 구성합니다:

https://app.appsflyer.com/<app_id>?pid=<media_source>
&idfa=<registered_device_idfa>

장소:

  • app_id 는 사용자의 앱스플라이어 앱 ID입니다( id 접미사 포함)
  • pid 인스톨에 어트리뷰트해야 하는 미디어 소스입니다.
  • idfa 등록된 기기의 IDFA입니다.


사용자의 앱 ID: id123456789, 어트리뷰션 링크는 다음과 같을 수 있습니다:

https://app.appsflyer.com/id123456789?pid=conversionTest1&idfa=1A2B3C4D-9128-4597-1234- 
04E23D654321

2단계: 앱 인스톨
디버그 모드를 활성화하고 등록된 테스트 기기에 앱을 인스톨합니다.

3단계: 테스트 실행
전환 데이터 검사를 진행합니다.

Apps that don't implement ATT

1단계: 광고 클릭 시뮬레이션
어트리뷰션 링크를 통해 광고 클릭을 시뮬레이션합니다. 어트리뷰션 링크를 다음과 같이 구성합니다:

https://app.appsflyer.com/<app_id>?pid=<media_source>

장소:

  • app_id 는 사용자의 앱스플라이어 앱 ID입니다( id 접두사)
  • pid 인스톨에 어트리뷰트해야 하는 미디어 소스입니다.


사용자의 앱 ID: id123456789, 어트리뷰션 링크는 다음과 같을 수 있습니다:

https://app.appsflyer.com/id123456789?pid=conversionTest1

2단계: 앱 인스톨
디버그 모드를 활성화하고 모든 기기에 앱을 설치합니다. 기기를 등록하는 데 사용된 IDFA를 사용할 수 없으므로 이 경우 기기 등록이 영향을 미치지 않습니다.

3단계: 테스트 실행
전환 데이터 검사를 진행합니다.

👍

종종 어트리뷰션 링크를 사용한 테스트는 두 번 이상 수행됩니다. 그런 이유로 테스트할 "버전"에 어트리뷰션 파라미터 중 하나를 사용하는 것이 좋습니다. 그러면 어떤 링크가 어떤 전환을 유발했는지 더 쉽게 이해할 수 있습니다.

위 예시에서 pid is conversionTest1의 값. 연속 테스트에서 pid to conversionTest2, conversionTest3의 값을 증분, 등등.

Inspect conversion data

광고 클릭을 시뮬레이션하고 앱을 인스톨한 후 다음 단계에 따라 인스톨의 전환 데이터를 검사합니다.

1단계: 인스톨 UID 검색
앱이 인스톨되면 Xcode 단말기에서 conversions.appsflyer을 검색합니다. uid 파라미터를 검색하여 값을 복사하십시오.

2452

2단계: 전환 데이터 검사
전환 데이터 테스트 API로 이동하여 다음 필수 필드를 입력합니다:

  1. app-id: 사용자의 앱 ID
  2. device_id: 1단계에서 uid 값을 붙여넣습니다.
  3. devkey - Application's devkey. Learn here how to get it.

그런 다음 시도하기!를 클릭하여 테스트를 실행하십시오.

예상 결과
ATT가 구현되고 사용자 동의가 제공된 경우 결과는 다음과 유사한 200 응답입니다(가독성을 위해 잘림):

{
    ...
    "af_status" = "Non-organic";
    ...
    "match_type" = id_matching;
    "media_source" = conversionTest1;
    ...
}

그렇지 않으면 어트리뷰션이 확률적으로 발생하고 결과는 다음과 유사한 200 응답입니다(가독성을 위해 잘림):

{
    ...
    "af_status" = "Non-organic";
    ...
    "match_type" = probabilistic;
    "media_source" = conversionTest1;
    ...
}

인스톨이 어트리뷰트되지 않은 경우 결과는 다음 페이로드가 포함된 200 응답입니다:

{
    "af_message" = "organic install";
    "af_status" = Organic;
    "install_time" = "2021-08-23 06:59:51.194";
    "is_first_launch" = 1;
}

📘

참고

해당 인스톨이 대시보드에 표시될 때까지 30여 분 정도 시간이 소요될 수 있습니다.

iOS SDK 연동 문제 해결

앱 설치 및 이벤트가 기록되지 않습니다

앱 설치 및 이벤트가 기록되지 않는 몇 가지 이유가 있을 수 있습니다.

  • 잘못된 앱 ID 형식: 잘못된 형식으로 앱 ID를 지정하면 앱 설치 및 이벤트가 기록되지 않습니다. Delegate 파일에서 앱 ID를 설정할 때, 앱 ID가 숫자로만 구성되어 있는지 확인하십시오. 앱 ID 형식이 잘못된 경우 로그에 다음 오류가 표시됩니다:

    \[ERROR\] AppsFlyer: -\[AppsFlyerTracker validateAppID\] 
        AppsFlyer Error: appleAppID should be a number!
    
  • 잘못된 앱 ID: 계정에 존재하지 않는 앱 ID를 지정하면, 앱 인스톨 및 이벤트가 기록되지 않습니다. 로그에는 다음 오류가 표시됩니다:

    AppsFlyer: -[AppsFlyerHTTPClient sendRequestEventToServer:isRequestFromCache:appID:isDebug:
            completionHandler:]_block_invoke sent information to server, status = 404
    

The 404 오류는 SDK가 계정에서 앱을 찾을 수 없음을 나타냅니다.

  • 잘못된 Dev Key: 잘못된 dev key ID를 지정하면 앱 인스톨 및 이벤트가 기록되지 않습니다. 로그에는 다음 오류가 표시됩니다:

    AppsFlyer: -[AppsFlyerHTTPClient 
    sendRequestEventToServer:isRequestFromCache:appID:isDebug:completionHandler:]
            _block_invoke sent information to server, status = 400
    

    400 오류는 SDK가 앱 설치 및 이벤트 기록 요청을 인증할 수 없음을 나타냅니다. Dev key가 올바른지 확인하십시오. 또한, dev key에 영숫자만 포함되어 있는지 확인하십시오.

    올바른 예:

    [AppsFlyerLib shared].appleAppID = @"340954503";
    

    잘못된 예:

    [AppsFlyerLib shared].appleAppID = @"id340954503";
    

    잘못된 예:

    [AppsFlyerLib shared].appleAppID = @"com.appslyer.sampleapp";
    

앱 ID와 dev key가 정확하지만 앱 설치가 기록되지 않습니다

시나리오
앱에 올바른 앱 ID와 dev key가 포함되어 있지만 앱 설치가 기록되지 않습니다.

가능한 이유
SDK가 제대로 시작되지 않았습니다. 다음 메서드 start 를 다음에서 호출하십시오: applicationDidBecomeActive:

    - (void)applicationDidBecomeActive:(UIApplication *)application { 
        [[AppsFlyerLib shared] start]; 
        }
    func applicationDidBecomeActive(application: UIApplication) { 
        AppsFlyerLib.shared().start() 
    }

"AppsFlyer dev key missing or empty. aborting" 라고 로그에 표시됩니다

시나리오
로그에서 인스톨과 인앱 이벤트를 확인해보려고 합니다. "AppsFlyer dev key missing or empty. Aborting" 이라고 로그에 표시됩니다

가능한 이유

dev key가 설정되지 않았습니다. 다음 didFinishLaunchingWithOptions 메서드에서 appDelegate에서 설정해야 합니다:

[AppsFlyerLib shared].appsFlyerDevKey = @"<YOUR_DEV_KEY>";
AppsFlyerLib.shared().appsFlyerDevKey = "<YOUR_DEV_KEY>"

항상 오가닉으로 어트리뷰트 되는 인스톨

시나리오
어트리뷰션 링크를 사용하여 어트리뷰션을 테스트하려고 합니다. SDK conversion listerner를 구현했지만 로그에서는 항상 설치가 오가닉으로 표시됩니다. 게다가, 논오가닉 인스톨은 대시보드에 전혀 기록되지 않았습니다.

가능한 이유

  1. 사용하는 어트리뷰션 링크가 잘못되었습니다. 어트리뷰션 링크에 대한 가이드를 참조하십시오.
  2. 테스트 중인 기기가 등록되어 있는지 확인하십시오.

수익이 제대로 기록되지 않았습니다

시나리오
수익 데이터가 포함된 인앱 이벤트를 테스트하려고 합니다. 이벤트는 대시보드에 표시되지만 수익은 기록되지 않습니다

가능한 이유
수익 파라미터가 올바른 형식이 아닙니다. 수익 값은 어떤 표시 형식도 지정되지 않아야 합니다. 쉼표 구분 기호, 환율 기호, 또는 문자가 포함되면 안됩니다. 예를 들어, 수익 값은 1234.56과 같은 형태가 되어야 합니다.

앱 설치 또는 이벤트 기록시 404 응답이 표시됩니다

시나리오
인스톨과 인앱 이벤트가 정확한 미디어소스에 어트리뷰트되는지 확인하기 위해 테스트하려고 합니다. 그러나 앱 설치와 인앱 이벤트의 경우 모두 404 응답이 표시됩니다. 앱 설치 또는 인앱 이벤트 아무것도 대시보드에 표시되지 않습니다.

가능한 이유
404 응답은 앱 ID가 잘못되었음을 나타냅니다. 인스톨 및 이벤트가 기록되지 않음 항목을 참조하십시오.

앱 설치 또는 이벤트 기록시 400 응답이 표시됩니다

시나리오
로그에서 인앱 이벤트를 테스트해보려고 합니다. 이벤트를 트리거하면 로그에 400 응답이 표시됩니다.

가능한 이유
이것은 dev key에 문제가 있음을 나타낼 수 있습니다. Dev key가 올바른지 확인하십시오. 또한, dev key에 영숫자만 포함되어 있는지 확인하십시오. 인스톨 및 이벤트가 기록되지 않음 항목을 참조하십시오.

앱 설치 또는 이벤트 기록시 response 403이 표시됩니다.

시나리오
로그에서 인스톨과 기타 전환 이벤트를 확인하고자 합니다. 이러한 이벤트를 트리거하는 경우 로그에 response 403 (forbidden)이 표시됩니다.

가능한 이유
This might be because you have the Zero package, which does not include attribution data; only data on clicks and impressions. To start receiving attribution data, learn more about the different AppsFlyer packages, and update as needed. You can also contact our customer engagement team at [email protected] if you have questions about our packages.

iOS 디버그 앱 만들기

선택 가능
Xcode의 컴파일 설정 기능을 활용하여 사용하기 쉬운 디버그 앱 을 설정할 수 있습니다. Xcode의 활성 컴파일 조건을 활용하여 디버그 앱과 프로덕션 앱 간에 전환할 수 있습니다.

📘

참고

프로덕션 데이터와 테스트 트래픽을 혼합해도 상관 없다면 연동 테스트로 건너뛸 수 있습니다. 모든 테스트는 프로덕션 및 디버그 앱 모두에 대해 수행할 수 있습니다.

이는 프로젝트의 빌드 설정에서 사용자 정의 설정을 구성하고 info.plist 속성을 통해 표시함으로써 달성됩니다.

1단계: 앱스플라이어에 디버그 앱 추가
Add a new pending iOS app to AppsFlyer or ask a team member with dashboard access to add it. Choose any available app ID–You will need it in step 3. Make sure the ID is 9 digits and starts with four 1s, for example, 111167538.

2단계: 사용자 정의 설정 추가

  1. Xcode의 파일 탐색기 보기에서 프로젝트 루트를 선택하고 빌드 설정(Build Settings)으로 이동합니다.
  2. 도구 모음에서 +를 클릭하고 사용자 정의 설정 추가를 선택합니다. 이 경우에는 다음 이름을 붙입니다: AF_APP_ID.
  3. 새로 생성된 사용자 정의 설정을 확장합니다:
    • 디버그 조건부 설정을 테스트 앱의 앱 ID로 설정(1단계에서 언급)
    • 출시 조건부 설정을 프로덕션 앱의 앱 ID로 설정합니다.
987

3단계: info.plist를 통해 앱 ID 노출
프로젝트의 info.plist 으로 이동하여 새 속성을 추가합니다(이 경우 AFAppID 라고 부름). 값을 $(AF_APP_ID) 으로 설정합니다(2단계의 사용자 정의 설정 이름을 기반으로 함).

971

4단계: 앱 ID 검색 및 설정
SDK 초기화 중 앱 ID에 액세스하고 사용하려면 다음에 다음 코드를 추가합니다: didFinishLaunchingWithOptions 푸시 알림 AppDelegate:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // ...
    guard let appID : String = Bundle.main.object(forInfoDictionaryKey: "AFAppID") as? String else {
        fatalError("Cannot find app ID")
    }
    AppsFlyerLib.shared().appleAppID = appID
    // ...
    return true
}

5단계: 디버그 빌드 설정을 사용하여 앱 실행
활성 빌드 설정을 변경하려면:

  1. 제품 > 스키마 > 스키마 편집...으로 이동합니다.
  2. 실행을 선택하고 필요에 따라 빌드 설정디버그 또는 출시로 변경합니다.
945

이제 디버그 설정을 사용하여 앱을 빌드할 때 Xcode는 2단계에서 설정한 디버그 앱 ID를 사용합니다.