Singular SDK 연동테스트 방법

Singular SDK/S2S를 앱에 통합한 후에는 새 버전의 앱을 출시하기 전에 앱이 올바르게 작동하는지 확인하는 것이 중요합니다.

다음 사용자를 위한 가이드 개발자
전제조건
  • 앱에 Singular SDK 또는 S2S가 구현되어 있어야 합니다.
  • 테스트 콘솔을 사용하려면 테스트할 모바일 기기가 필요합니다.

싱귤러는 연동 테스트를 위한 세 가지 주요 도구를 제공합니다:

  • 다양한 기능을 실시간으로 구현하면서 수동으로 테스트할 수 있는 테스트 콘솔,
  • 지연 후 사용자 수준 데이터를 다운로드할 수 있는 로그 내보내기,
  • 통합의 모든 문제를 자동으로 식별하는 감사 보고서.

 

테스트 콘솔 사용

1

테스트 기기 추가하기

콘솔에 기기를 추가하려면 다음과 같이 하세요:

  1. Singular 플랫폼에서 개발자 도구 > 테스트 콘솔로 이동합니다.
  2. 기기 추가를 클릭합니다.

  3. 디바이스 유형을 입력합니다. Android의 경우, 사용 가능한 경우 Google 광고 ID (GAID/aifa), AppSetID (asid) 또는 AndroidID(andi)를 순서대로 사용하는 것을 권장합니다. iOS 기기의 경우, 사용 가능한 경우 IDFV를 사용하는 것이 좋습니다. IDFA를 사용할 수는 있지만 콘솔에서 디바이스의 데이터를 '잊어버리도록' 설정할 수는 없습니다.
  4. 장치 ID를 입력합니다.

    디바이스 ID 캡처하기

    Android의 경우 Google 광고 ID (GAID/aifa)를 사용하는 것이 좋습니다. 단수 디바이스 지원 앱(Android)을 통해 찾을 수 있습니다.

    싱글 구성에 대한 로깅이 활성화된 경우 Android LogCat에서도 aifa를 찾을 수 있습니다.

    SingularConfig config = new SingularConfig(SdkKey, SdkSecret)
    .withLoggingEnabled()
    .withLogLevel(1);

    LogCat 출력 샘플:

    2023-06-01 15:48:32.224 27442-27560/com.singular.test D/Singular: DeviceInfo [worker] - andi : 8868adc2f7ffffff
    2023-06-01 15:48:32.224 27442-27560/com.singular.test D/Singular: DeviceInfo [worker] - asid : 12dc3652-5e46-f2bb-a93a-b3c092ffffff
    2023-06-01 15:48:32.224 27442-27560/com.singular.test D/Singular: DeviceInfo [worker] - aifa : 3bbc76b0-cebb-4a9f-b6ec-10ca1affffff

    iOS의 경우 ATT 프레임워크가 적용되어 있고 추적이 허용된 경우 IDFA를사용할 수 있습니다. 시간 초과 간격으로 추적 권한 부여 대기도 구현되어 있는지 확인하세요. 그 외의 모든 경우에는 IDFV를 사용합니다.

    IDFA는 아래 나열된 방법 중 하나를 사용하여 캡처할 수 있습니다:

    • App Store에서 Singular Device Assist 앱(iOS)을 사용합니다. 추적 권한을 부여해야 합니다.
    • Xcode의 디버그 콘솔에서 IDFA 로깅하기
      // Swift의 예
      print("IDFA", ASIdentifierManager.shared().advertisingIdentifier.uuidString)
                      
      // Objective-C의 예
      NSString *IDFA = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
      NSLog(@"IDFA: %@", IDFA);

    Xcode의 디버그 콘솔에서 IDFV를 캡처할 수 있습니다.

      // Swift의 예
      print("IDFV", UIDevice.current.identifierForVendor!.uuidString)
                      
      // Objective-C의 예
      NSString *IDFV = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
      NSLog(@"IDFV: %@", IDFV);
  5. 고유한 장치 이름을 추가하고 장치 저장을 클릭합니다.

    tc_01.png

2

초기화 테스트

가장 먼저 테스트해야 할 것은 SDK 연동이 성공적으로 초기화되고 Singular에 정보를 전송할 수 있는지 여부입니다. 이를 통해 싱귤러는 이 앱에 대한 어트리뷰션 추적을 시작할 수 있습니다!

초기화를 테스트하려면 다음과 같이 하세요:

  1. 이벤트 로그의 디바이스 드롭다운에서 디바이스 이름을 선택합니다. 🟢 라이브 표시기를 찾습니다.

  2. 테스트 플랫폼에서 앱을 초기화하거나 앱을 엽니다.
  3. 세션 이벤트가 표시되면 싱귤러 SDK를 성공적으로 초기화한 것입니다.

    tc_02.png

이벤트 로그를 읽으려면 어떻게 해야 하나요?

기기를 등록하고 일부 이벤트를 전송하면 테스트 콘솔 페이지의 이벤트 로그에 이벤트가 표시되기 시작합니다.

tc_04.png

행을 클릭하면 앱에서 전송된 이벤트의 전체 세부 정보가 표시됩니다.

events_details.png

이벤트 로그에 이벤트가 표시되지 않는 이유는 무엇인가요?

테스트 기기를 등록하고 가이드에 따라 SDK 연동을 테스트하고 있지만 이벤트 로그에 행이 표시되지 않는 경우 다음을 다시 확인하세요:

  • 테스트 기기에서 앱을 열었는지 확인합니다(사용자 세션을 보기 위해).
  • 인앱 이벤트를 생성했는지 확인합니다(이벤트를 테스트하려는 경우).
  • 테스트 콘솔은 선택된 디바이스와 🟢 라이브 표시기가 있는 페이지에 있을 때, 즉 라이브 상태인 이벤트만 표시합니다. 디바이스에서 과거 이벤트를 찾지 않습니다.
  • 드롭다운에서 디바이스를 선택했는지 확인하세요:

device_dropdown.png

 

Singular SDK 12.0.0 이상에서 앱을 테스트할 때 _InstallReferrer 이벤트가 누락되는 이유는 무엇인가요?

싱귤러 SDK 12.0.0부터는 _InstallReferrer 이벤트를 테스트할 필요가 없습니다. 앱이 스토어에 푸시되면 SDK가 첫 번째 세션에 _InstallReferrer 데이터를 배치합니다. 테스트 콘솔에 세션이 표시되는지 여부만 확인하면 됩니다.

이전 버전의 Android SDK를 사용하는 경우에도 테스트 콘솔에서 _InstallReferrer 이벤트를 확인해야 합니다.

콘솔에서 기기를 삭제/제거하려면 어떻게 해야 하나요?

디바이스 삭제하기

추적 목록에서 디바이스를 삭제하려면 편집 아이콘을 클릭하고 표시되는 선반에서 디바이스 삭제를 클릭합니다. 이렇게 하면 페이지에서 모든 이벤트 로그가 지워지고 Singular는 디바이스의 어트리뷰션에 대한 내부 데이터를 삭제합니다.

참조: 기기를 재설정하고 어트리뷰션 정보를 지워 인스톨 어트리뷰션을 다시 테스트하는 데 사용하려면 어떻게해야 하나요?

기기를 재 설정하고 어트리뷰션 정보를 삭제하여 인스톨 어트리뷰션을 다시 테스트하는 데 사용하려면 어떻게 해야 하나요?

동일한 기기에서 SDK 연동을 다시 테스트하려면, 싱귤러 플랫폼에서 기기의 어트리뷰션을 지우는 것 외에도 기기에서 로컬로 캐시된 데이터를 모두 제거해야 합니다.

안드로이드 디바이스용 단계

  1. 앱을 닫고 앱이 실행되고 있지 않은지 확인합니다(옵션이 있는 경우 설정 메뉴에서 강제 종료 사용).
  2. 알림 창 또는 앱 메뉴에서 휠 아이콘을 탭하여 설정 메뉴로 이동합니다.
  3. 앱으로 이동하여 테스트 중인 앱을 선택한 후 앱을 길게 누르고 앱 정보를 선택합니다.
  4. 저장소를 선택한 다음 캐시 지우기 및 데이터 지우기를 선택합니다.
  5. 단일 테스트 콘솔의 드롭다운에서 디바이스를 선택하고 편집(연필) 아이콘을 클릭합니다. 선반이 열리면 기기 삭제를 클릭하여 시스템에서 이 기기 어트리뷰션을 삭제하도록 합니다.

     

    device_dropdown.png

    device_delete.png

iOS 디바이스용 단계

  1. 앱을 닫은 다음 삭제합니다.
  2. 테스트 콘솔을 열고 드롭다운에서 디바이스를 찾은 다음 편집 아이콘을 클릭합니다. 열리는 선반에서 디바이스 삭제를 클릭하여 시스템에서 이 디바이스 어트리뷰션을 삭제하도록 합니다.

     

팁: 리인게이지먼트 비활성 창으로 테스트하기

비활성기간이란 사용자가 비활성 상태여야 리인게이지먼트 어트리뷰션을 받을 수 있는 기간을 결정하는 설정입니다. 캠페인을 시작하기 전에 리인게이지먼트 어트리뷰션을 테스트하는 경우, 비활성 기간으로 인해 테스트가 더 어려워질 수 있습니다. 그렇기 때문에 테스트 기기(테스트 콘솔에 추가되어 눈 아이콘이 활성화된 기기)는 비활성 창에서 제외됩니다.

3

특정 기능 테스트

[iOS] Apple iAd 리퍼러 테스트

iOS 기기에서 싱귤러는 iAd 어트리뷰션 데이터를 수신해야 합니다. 이를 확인하려면 콘솔에 기기를 추가하고 앱을 설치한 후, 테스트 콘솔을 확인하고 "__iAd_Attribution__" 이벤트가 표시되는지 확인하세요.

 test7.png

참고:

  • 이 이벤트는 앱이 설치된 경우에만 표시됩니다. 앱을 설치한 지 오래되었다면 지침에 따라 기기를 재설정하고 콘솔에 기기를 다시 추가한 다음 앱을 다시 설치하세요.
  • 이벤트가 표시되지 않으면 테스트 콘솔에 디바이스가 완전히 등록되기 전에 앱이 열렸을 수 있습니다. Singular 정적 라이브러리를 통합한 경우 iAD.framework를 가져오고 있는지 확인하세요. CocoaPods를 사용하는 경우 이미 포함되어 있을 수 있습니다.
사용자 지정 사용자 ID 테스트

SDK 연동에서 사용자 지정 사용자 ID를 Singular로 전송하는 경우 테스트하는 방법은다음과 같습니다.

  1. 테스트 콘솔에 기기를 등록합니다.
  2. 앱을 엽니다.
  3. 필요한 경우 앱에서 사용자 ID를 전송하는 액션(예: 로그인)을 트리거합니다. 액션의 성격은 구현에 따라 다릅니다.
  4. Singular로 전송된 다음 이벤트에서 테스트 콘솔에서 이벤트 세부 정보를 확장하고 세부 정보에 "custom_user_id" 값이 포함되어 있는지 확인합니다.

     test8.png

사용자 ID가 표시되지 않는 경우:

  • 사용자 ID를 설정하는 메서드가 앱에서 원하는 시점에 실제로 호출되고 있는지 확인하세요.
  • 테스트 콘솔에 이벤트가 표시되도록 단수 SDK 이벤트를 추가하고 "사용자 지정 사용자 ID 설정"이라고 호출할 수 있습니다.
테스트 이벤트

SDK 연동에서 이벤트 추적 또는 수익 추적을 구현한 경우 아래 지침에 따라 테스트하세요.

이벤트에 대한 자세한 내용은 다음을 참조하세요:

SDK 연동에서 구현한 모든 이벤트에 대해:

  1. 앱에서 이벤트를 트리거하고 이벤트 로그에 이벤트에 지정한 이름으로 이벤트가 표시되는지 확인합니다.

     test9.png

  2. 이벤트와 함께 추가 데이터를 전송하는 경우 테스트 콘솔에서 이벤트의 행을 클릭하여 이벤트 세부 정보를 확장하고 데이터가 "event_data"에 포함되어 있는지 확인합니다.

     events_details_field.png

이벤트가 표시되지 않으면 디바이스가 테스트 콘솔에 완전히 등록되기 전에 앱이 열렸을 수 있습니다. 이벤트에 대한 어트리뷰션 로그를확인하세요.

테스트 수익

SDK 연동에서 구현한 각 유형의 수익 이벤트에 대해:

  1. 앱에서 수익 이벤트를 트리거하고 이벤트 로그를 확인합니다. 이벤트 이름과 함께 행이 표시되어야 합니다.

    참고: 이벤트에 사용자 지정 이름을 지정하지 않은 경우 수익 이벤트의 기본 이름인 "__iap__"을 받습니다.

  2. 행을 클릭하여 확장하고 이벤트의 통화("pcc"), 금액("r") 및 기타 세부 정보가 수신되었는지 확인합니다.

     events_details_field.png

딥링킹 테스트

SDK 연동에서 딥링킹을 구현한 경우 아래 지침에 따라 딥링킹 기능을 테스트하세요.

참고: 이 문서에서는 조직에서 싱글 링크를 사용한다고 가정합니다.

1. 테스트 대상 설정

싱귤러 플랫폼에서 설정 > 앱으로 이동하여 앱을 찾은 다음 딥링크 대상을 추가합니다.

대상은 SDK 연동에서 핸들러 코드가 인식하고 처리할 수 있는 딥링크 대상 중 하나이어야 합니다.

 test12.png

2. 테스트할 링크 만들기

이제 연결할 대상이 생겼으므로 딥링크를 만들 수 있습니다.

  1. 어트리뷰션 > 링크 관리로이동하여 사이드바에서 앱을 선택합니다.
  2. 링크 생성을 클릭합니다.
  3. 링크 유형에서"맞춤 소스"를 선택하고 소스 이름에서 "이메일"을 선택합니다.
  4. 링크에 이름을 지정합니다.
  5. 링크 설정 및 리디렉션섹션을 클릭하여 확장합니다.
  6. 딥링크 드롭다운 목록에서 방금 만든 대상을 선택합니다.
  7. 다른 플랫폼용 대체 목적지텍스트 상자에 웹사이트 URL을 입력합니다.
  8. 생성을 클릭하고 클릭-스루 추적 링크필드에서 링크를 복사합니다.

     test13.gif

3. 링크 테스트

링크를 테스트합니다:

  1. 테스트 기기에 앱이 설치되어 있는지 확인합니다.
  2. 복사한 링크를 테스트 장치로 이메일로 보냅니다.
  3. 장치에서 이메일을 열고 링크를 클릭합니다. 앱이 열리고 의도한 페이지 또는 콘텐츠가 표시되어야 합니다.

링크를 테스트하는 다른 방법(Android만해당):

컴퓨터에서 명령줄 터미널을 열어 딥링크를 트리거합니다:

 test14.png

문제 해결

"내 앱이 이미 실행 중일 때 딥링크를 클릭하면 기존 앱으로 전환되는 대신 앱의 새 인스턴스가 열립니다." 이 문제를 방지하려면 매니페스트 파일을 편집하고 활동에 다음을 추가하세요:

android:launchMode="singleTask"

런치모드 옵션에 대한 자세한 내용은 구글의 <액티비티> 문서를참조하세요.

디퍼드 딥링킹 테스트

디퍼드 딥링킹이활성화되었는지 확인합니다:

  1. 테스트 콘솔에서 세션 이벤트를 확인합니다.

     test15. png

  2. 위의 딥링킹 테스트에서 설명한 대로 테스트 대상과 링크를 설정합니다.
  3. 테스트 기기에서 앱을 제거합니다.
  4. 딥링킹 링크를 디바이스로 이메일로 전송하고 디바이스에서 엽니다. 링크를 통해 앱 스토어로 이동합니다. 앱을 설치하고 열면 원하는 페이지 또는 콘텐츠가 표시됩니다.

     테스트16.gif

제거 추적 테스트

SDK 연동에서 제거 추적을 구현한 경우 아래 지침에 따라 테스트하세요.

제거 추적 테스트는 다른 SDK 기능을 테스트하는 것보다 더 복잡합니다. Singular는 제거를 보고하기 위해 Google/iOS 서비스에 의존하고 프로세스에 시간이 걸리기 때문입니다. Singular 플랫폼에서는 제거 이벤트를 실시간으로 확인할 수 없으며, 테스트 콘솔을 사용할 수 없습니다.

테스트하기 전에 FCM/APNS 토큰을 싱귤러에 전송하고 있는지 확인하세요( Android SDK참조): 제거 추적iOS SDK: 제거 추적 참조).

또한 앱 구성 페이지에서 FCM 서버 키 (Android용) 또는 iOS 푸시 인증서를 입력했는지 다시 확인하세요.

제거 추적 테스트하기:

  1. 에뮬레이터가 아닌 실제 디바이스를 사용하여 디바이스에 앱을 설치합니다.
  2. 앱을 열어 설치가 등록되도록 합니다.
  3. 앱을 삭제합니다.
  4. 싱귤러가 제거 이벤트를 수신했는지 확인하려면 몇 가지 옵션이 있습니다:

    • 어트리뷰션 로그(이벤트 로그)를 내보내고제거 이벤트를 찾습니다. 로그에 표시되기까지 며칠이 걸릴 수 있습니다.
    • 내부 BI 시스템으로 포스트백을보내도록 설정한 경우 제거에 대한 포스트백을 받을 수 있습니다.
    • 제거 추적의 유효성을 확인하는 데 도움을 받으려면 Singular 지원팀이나고객 성공 관리자에게 문의하세요.

참고: 제거 이벤트의 유효성 검사를 기다리는 동안 기기 ID를 재설정하거나 앱을 다시 설치하지 마세요.

참고: 테스트 콘솔은 iOS 테스트플라이트 앱을 지원하지 않습니다. 테스트 플라이트 빌드는 앱을 실행할 때마다 IDFV를 재설정하므로 라이브 이벤트를 캡처할 수 없습니다.

로그 내보내기 사용

어트리뷰션 > 로그 내보내기를 사용하여 지연된 테스트 결과를 확인할 수도 있습니다. 로그 내보내기 기능을 사용하면 전환(인스톨), 이벤트 등과 같은 사용자 수준 데이터를 수동으로 다운로드할 수 있습니다.

모범 사례:

  • 데이터를 가져오기 전에 날짜, 앱, 사이트가 적절하게 선택되었는지 다시 확인하세요.
  • 내보내기 로그의 데이터는 최대 3시간 정도 늦어집니다.
  • 자세한 도움말은 이 자주 묻는 질문을 참조하세요.

SDK 감사 실행

Singular는 SDK와 S2S 연동이 올바르게 구현되었는지 테스트하는 SDK 감사 보고서를 제공합니다. 감사는 발견된 모든 문제의 목록과 해결 방법에 대한 팁을 출력합니다. SDK 감사 보고서를 사용하려면 다음과 같이 하세요:

1

SDK 감사 보고서 실행

개발자 도구 > 테스트 콘솔로 이동하여 오른쪽 상단 모서리에 있는 감사 실행을 클릭합니다.

tc_03.png

2

보고서를 다운로드하고 관련 문제를 수정합니다.

보고서 실행이 완료되면 CSV 형식으로 다운로드할 수 있습니다.

보고서는 SDK 및 S2S 연동에서 발견된 이슈의 목록입니다. 구현한 기능에 따라 모든 이슈가 중요하거나 관련성이 있는 것은 아닙니다.

보고서의 문제를 검토하고 오류 설명 필드의 팁에 따라 문제를 해결하세요.

경고/정보 유형 문제의 경우: 유효성 검사 이름을 확인하여 디퍼드 딥링킹(DDL)과 같이 구현하지 않기로 선택한 선택적 SDK 기능인지 확인합니다. 그렇다면 오류 메시지를 무시해도 됩니다.

SDK 감사는 어떻게 작동하며 어떤 데이터를 대상으로 실행되나요?

SDK 감사는 지난 3일 동안 앱에서 받은 데이터를 살펴봅니다. 예를 들어 데이터가 예상대로 표시되는지 여부를 확인합니다:

  • 앱이 사용자 세션을 보고하는지 여부 (이는 SDK/S2S 통합의 가장 기본적인 기능이며, 싱귤러가 어트리뷰션을 추적할 수 있게 해주는 기능입니다).
  • 앱이 인앱 이벤트 및 수익을 보고하는지 여부
  • 수익이 모범 사례를 사용하여 보고되는지 여부
  • 디퍼드 딥링킹이 활성화되었는지 여부
SDK 감사 보고서는 어떻게 읽을 수 있나요?

 Screen_Shot_2021-11-11_at_18.28.27.png

이 보고서는 SDK 및 S2S 연동에서 발견된 이슈의 목록입니다.

설명
App Name 단수로 구성된 앱의 이름입니다.
App Bundle 단수형에 구성된 앱 번들(예: com.example.appname)입니다.
Platform iOS, Android 또는 Amazon입니다.
App Version 앱 버전 번호(있는 경우)입니다.
Validation Name 문제가 발견된 통합 영역(예: "사용자 지정 사용자 ID" 또는 "수익 이벤트")입니다.
Type

문제의 심각도입니다:

  • 오류: 이 문제로 인해 연동이 작동하지 않으며 앱을 출시하기 전에 문제를 해결해야 합니다. 예를 들어, Singular가 앱에서 사용자 세션을 수신하지 않습니다. 사용자 세션이 없으면 어트리뷰션을 수행할 수 없습니다.
  • 경고: 이 기능 없이도 연동이 작동할 수 있지만, 모범 사례를 따르고 싱귤러 어트리뷰션 트래커를 최대한 활용하려면 이 문제를 해결해야 합니다. 예를 들어, 앱이 사용자 지정 사용자 ID를 전송하지 않는 경우입니다. 사용자 지정 사용자 ID는 선택적 기능이지만 적극 권장됩니다.
  • 정보: 이 문제는 연동에서 구현하지 않기로 선택한 선택적 기능과 관련이 있습니다. 예를 들어, 앱에서 디퍼드 딥링킹(DDL)이 활성화되어 있지 않습니다. DDL은 마케팅 전략과 관련이 없을 수도 있습니다.
Error Description 문제와 해결 방법에 대한 자세한 정보입니다.