FAQs
Adjust SDK는 didFinishLaunching
또는 didFinishLaunchingWithOptions
메서드에서 초기화 되어야 합니다. 시작 가이드를 올바르게 수행했다면 이 메서드들은 앱 델리게이트에 있어야 합니다. Adjust SDK를 최대한 빨리 초기화하여야 SDK의 모든 기능을 활성화할 수 있습니다.
실행 이후 SDK를 바로 초기화하지 않으면 예상하지 못한 방식으로 작동할 수 있습니다. Adjust SDK는 초기화되지 않은 상태에서는 아무것도 트래킹하지 못합니다.
Adjust SDK 초기화 전에 다음의 액션을 수행하려고 하면 제대로 작동하지 않을 것입니다:
- 이벤트 추적
- 딥링크를 통한 리어트리뷰션
- 트래킹 비활성화
- 오프라인 모드
SDK를 초기화하기 전에 이러한 액션을 트래킹하려고 하면 이를 모두 대기(queue)시켜야 합니다. 앱에서 맞춤 액션 대기 메커니즘 을 빌드할 수 있습니다. SDK가 초기화된 이후 Adjust SDK가 수행하거나 발생시키기를 원하는 모든 액션을 대기시켜야 합니다.
SDK의 초기화가 지연되면 세션 트래킹에 영향을 줄 수 있습니다. SDK를 초기화하지 않은 상태에서 세션 길이를 트래킹할 수 없습니다. 이는 DAU 수치에 영향을 줄 수 있습니다.
예: 유저가 앱의 특정 화면으로 이동할 때 Adjust SDK를 초기화할 수 있습니다. 이 경우 Adjust SDK는 유저가 앱을 실행하고 홈스크린을 클릭했을 때 유저를 트래킹하지 않을 것입니다. 유저가 앱을 삭제하면 Adjust SDK는 이 정보 또한 트래킹하지 않을 것입니다. 이에 따라 관련 정보를 대시보드에서 전혀 받지 못할 것입니다.
이벤트 추적
이벤트를 트래킹할 때 내부 대기(queuing) 메커니즘을 만들어야 합니다. 초기화 이후 Adjust SDK가 트래킹하기를 원하는 이벤트를 대기열에 추가하시기 바랍니다. Adjust SDK 초기화 이전에 이벤트를 트래킹하려고 하면 제대로 작동하지 않을 것입니다. Adjust SDK는 이벤트를 트래킹하지 않을 것이고 해당 정보는 영구적으로 소실 될 것입니다. 따라서, 이벤트를 트래킹하기 전에 Adjust SDK를 초기화하여 활성화 상태인지 확인하시기 바랍니다.
오프라인 모드와 트래킹 활성화 및 비활성화
Adjust SDK는 세션간 설정된 오프라인 상태를 유지하지 않습니다. 새로운 세션이 시작되면 Adjust SDK는 온라인 모드로 시작될 것입니다. Adjust SDK를 초기화하기 전에 오프라인 모드를 활성화하려고 하면 제대로 작동하지 않을 것입니다. 오프라인 설정은 계속 유지되는 것이 아니기 때문에 Adjust SDK 초기화 이후 온라인 모드로 시작하게 됩니다.
반면에 트래킹의 활성화와 비활성화 여부는 Adjust SDK 초기화간에 유지됩니다. Adjust SDK 초기화 전에 이 값을 설정하려고 하면 제대로 작동하지 않을 것입니다. Adjust SDK는 초기화 이후에도 이전에 설정해 두었던 상태를 유지합니다.
딥링크를 통한 리어트리뷰션
유니버설 링크를 사용하는 경우 링크로부터 NSURL
객체를 얻을 것입니다. 링크를 받은 뒤 다음의 콜을 호출해야 합니다:
[Adjust appWillOpenUrl:url]
Adjust SDK 초기화 전에 콜을 호출하면 제대로 작동하지 않을 것입니다. URL에 포함된 어트리뷰션 정보는 소실될 것입니다. Adjust SDK가 유저를 리어트리뷰션하도록 하려면, NSURL
객체를 대기시켜야 합니다. Adjust SDK를 초기화한 이후 appWillOpenUrl
메서드를 트리거하시기 바랍니다. 이는 Adjust SDK가 URL 객체를 실행하여, 앱의 올바른 위치로 유저가 이동할 수 있게 할 것입니다.
세션 트래킹
Adjust SDK는 자동으로 세션을 트래킹할 것입니다. 세션 정보를 수집하려면 Adjust SDK를 초반에 초기화해야 합니다. 실행 이후 SDK를 바로 초기화하지 않으면 예상하지 못한 방식으로 작동할 수 있습니다. Adjust SDK는 초기화되지 않은 상태에서는 아무것도 트래킹하지 못합니다.
다음은 Adjust SDK를 초기에 초기화하지 않아 트래킹이 실패할 수 있는 시나리오입니다.
- 유저가 앱을 실행했으나 Adjust SDK 초기화 전에 앱을 삭제한 경우 Adjust SDK는 설치와 세션 정보를 포착할 수 없습니다. 설치는 대시보드에 보고되지 않을 것입니다.
- 유저가 자정 전에 앱을 다운로드하고 실행했는데 Adjust SDK 시작을 지연시켜 자정 이후에 SDK가 초기화되는 경우, Adjust SDK의 설치와 세션 데이터 보고 날짜가 정확하지 않을 것입니다.
- 유저가 앱을 자정 전에 실행했는데 Adjust SDK 시작을 지연시켜 자정 이후에 SDK가 초기화되는 경우, Adjust SDK의 세션 데이터 보고일이 정확하지 않을 것이며 DAU에 공백이 발생하게 될 것입니다.
"[UIDevice adjTrackingEnabled]: unrecognized selector sent to instance"(인스턴스에 미식별 선택자 전송) 오류가 무엇인가요?
해당 오류는 Adjust SDK 프레임워크를 앱에 추가 시 발생합니다. Adjust SDK는 소스 파일 내 카테고리를 포함합니다. 이 SDK 연동법을 사용한 경우, Xcode 프로젝트 설정에서 -ObjC
플래그를 Other Linker Flags 에 추가해야 합니다. 플래그를 추가하면 오류가 해결될 것입니다.
본 오류는 일반적으로 설치 테스트 시 발생합니다. 앱의 설치 삭제와 재설치만으로는 새 설치가 트리거되지 않습니다. 백엔드는 SDK가 로컬 세션 데이터를 소실했다고 결정할 것입니다. 따라서 해당 기기에 대해 이용 가능한 정보를 기반으로 메시지를 무시할 것입니다. 백엔드는 샌드박스와 프로덕션 간의 작동이 일치하도록 하기 위해 이렇게 작동합니다.
테스팅 콘솔로부터의 기기에 대한 앱 세션 데이터를 재설정할 수 있습니다. 이는 편집자 또는 그 이상의 권한을 필요로 합니다.
테스팅 콘솔에서 기기를 삭제하면, Forgot device
를 반환할 것입니다. 기기가 이미 삭제됐거나 값이 정확하지 않은 경우, Device not found
를 반환할 것입니다.
기기의 삭제는 GDPR 잊혀질 권리의 호출을 뒤바꾸지 않습니다.
디바이스 API에 액세스가 있는 경우 이를 사용하여 기기를 검사하고 기록을 삭제할 수 있습니다.
이는 Xcode를 사용하여 설치 시나리오를 시뮬레이션할 때 발생할 수 있습니다. Xcode에서 설치를 다시 실행할 때, 이는 Adjust SDK가 보관하고 있는 정보를 삭제하지 않습니다. 설치를 다시 실행하면, Adjust SDK는 기존의 파일을 감지하고 새로운 설치로 트래킹하지 않습니다.
앱 설치 시나리오를 다시 실행하려면 다음을 수행하시기 바랍니다:
- 기기에서 앱을 삭제합니다.
- Adjust 테스팅 콘솔에서 테스트 기기를 삭제합니다.
- 테스트 기기에 Xcode로부터 앱을 실행합니다. 로그에 "Install tracked" 메시지가 나타날 것입니다.
Adjust SDK는 앱에서 지정한 정보를 트래킹합니다. Adjust SDK는 이 정보를 그대로 Adjust 백엔드에 전송만 합니다. Adjust 백엔드는 이후 수신한 정보를 분석하기 위해 대시보드에 표시합니다. 데이터 오차가 있는 경우 매출 트래킹 코드를 확인하시기 바랍니다.
다음은 매출 트래킹 이벤트의 예시입니다.
// ...
- (double)someLogicForGettingRevenueAmount {
// This method somehow handles how user determines
// what's the revenue value which should be tracked.
// It is maybe making some calculations to determine it.
// Or maybe extracting the info from In-App purchase which
// was successfully finished.
// Or maybe returns some predefined double value.
double amount; // double amount = some double value
return amount;
}
// ...
- (void)someRandomMethodInTheApp {
double amount = [self someLogicForGettingRevenueAmount];
ADJEvent *event = [ADJEvent eventWithEventToken:@"abc123"];
[event setRevenue:amount currency:@"EUR"];
[Adjust trackEvent:event];
}
오차가 있는 경우 매출 금액 결정에 사용하는 로직을 확인하시기 바랍니다.
Adjust SDK의 크기는 프로젝트에 추가하는 방식에 따라 달라집니다. 지원되는 각 설치 메서드 별 예상되는 SDK의 크기는 다음과 같습니다.
- Carthage : 2,600 kb
- CocoaPods : 600 kb