For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.
iOS SDK
이 문서는 Amplitude 애널리틱스 iOS SDK에 대한 공식 문서입니다.
SDK 설치
CocoaPods, Carthage 또는 Swift Package Manager를 사용하여 iOS SDK를 설치하십시오.
Podfile에 종속성을 추가합니다.
pod '@{{packageName}}', '~> @{{version}}'
- 프로젝트 디렉토리에서
pod install을 실행하여 종속성을 설치합니다.
SDK 초기화
계측하기 전에 SDK를 초기화하십시오. Amplitude 프로젝트에 대한 API 키는 필수입니다.
YourAppAppDelegate.m파일의 application:didFinishLaunchingWithOptions:메소드에서 SDK를 초기화합니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Enable sending automatic session events
[Amplitude instance].defaultTracking.sessions = YES;
// Initialize SDK
[[Amplitude instance] initializeApiKey:@"API_KEY"];
// Set userId
[[Amplitude instance] setUserId:@"userId"];
// Log an event
[[Amplitude instance] logEvent:@"app_start"];
return YES;
}
SDK 구성
| 이름 | 설명 | 기본값 |
|---|---|---|
eventUploadPeriodSeconds | SDK가 전송되지 않은 이벤트를 서버에 업로드하려고 시도하거나 eventUploadThreshold임계값에 도달하려는 시간입니다. | 30 |
eventUploadThreshold | SDK는 전송되지 않은 이벤트 수가 이벤트 업로드 임계값을 초과하거나 해당 eventUploadPeriodSeconds 간격에 도달한 후 업로드를 시도합니다. | 30 |
eventUploadMaxBatchSize | 각 업로드 요청과 함께 전송된 최대 이벤트 수입니다. | 100 |
eventMaxCount | 디바이스에 보관할 전송되지 않은 이벤트의 최대 수입니다. | 1000 |
minTimeBetweenSessionsMillis | 사용자가 minTimeBetweenSessionsMillis 밀리초 첫 사용 후 앱을 닫았다가 다시 열면, 재열기는 동일한 세션의 일부로 간주되며 세션이 계속됩니다. 그렇지 않으면 SDK가 새 세션을 생성합니다. 기본값은 5분입니다. | 5 minutes |
trackingSessionEvents | 더 이상 사용되지 않습니다. 사용자 세션의 시작 및 종료에 해당하는 세션 시작 및 종료 이벤트를 자동으로 기록할지 여부입니다. | NO |
setServerUrl | 이벤트를 사용자 지정 URL로 전송합니다. | Amplitude HTTP API URL |
setOptOut | 사용자를 추적에서 해제합니다. | NO |
setTrackingOptions | 기본적으로 iOS SDK는 이동통신사, 도시, 국가, ip_address, 언어 및 플랫폼과 같은 여러 사용자 속성을 추적합니다. AMPTrackingOptions인터페이스를 사용하여 개별 필드를 사용자 정의하거나 비활성화할 수 있습니다. | NO |
setOffline | 기록된 이벤트를 Amplitude 서버로 전송하지 않도록 설정합니다. true로 설정된 경우 SDK는 이벤트를 전송합니다. | NO |
setIdentifyUploadPeriodSeconds | SDK가 인터셉트된 식별 이벤트를 일괄 처리하려고 시도하는 시간입니다. | 30 |
EU 데이터 상주
버전 8.5.0부터는 클라이언트를 초기화한 후 Amplitude의 EU 서버로 데이터를 전송하도록 서버 영역을 구성할 수 있습니다. SDK는 사용자가 서버 영역을 설정한 경우 이를 기반으로 데이터를 전송합니다. 서버 영역 구성은 동적 구성도 지원합니다.
이전 버전의 경우 클라이언트를 초기화한 후 serverURL 속성을 구성하십시오.
EU 데이터 상주를 위해서는 Amplitude EU 내에서 프로젝트를 설정하십시오. Amplitude EU의 API 키를 사용하여 SDK를 초기화하십시오.
// For versions starting from 8.5.0
// No need to call setServerUrl for sending data to Amplitude's EU servers
[[Amplitude instance] setServerZone:AMPServerZone.EU];
// For earlier versions
[[Amplitude instance] setServerUrl: @"https://api.eu.amplitude.com"];
이벤트 전송
이벤트는 사용자가 애플리케이션과 상호 작용하는 방식을 나타냅니다. 예를 들어 '버튼 클릭됨'은 기록해야 할 동작일 수 있습니다.
[[Amplitude instance] logEvent:@"Button Clicked"];
속성과 함께 이벤트 전송
이벤트에는 이벤트에 대한 자세한 컨텍스트를 제공하는 속성도 포함될 수 있습니다. 예를 들어 "마우스 오버 시간"은 "버튼 클릭"에 대한 관련 이벤트 속성일 수 있습니다.
NSMutableDictionary *eventProperties = [NSMutableDictionary dictionary];
[eventProperties setValue:@"100ms" forKey:@"Hover Time"];
[[Amplitude instance] logEvent:@"Button Clicked" withEventProperties:eventProperties];
사용자 속성
사용자 개인정보 보호
귀하의 개인정보 보호 약관에 위배될 수 있는 전체 사용자 데이터를 추적하지 마십시오.
사용자 속성은 사용자가 앱에서 작업을 수행한 시점에 해당 사용자를 이해하는 데 도움이 됩니다. 예를 들어 사용자의 장치 세부 정보, 기본 설정, 언어에 대해 알 수 있습니다.
Amplitude-iOS의 AMPIdentity 클래스는 이러한 기능을 관리합니다. Identify 는 전체 이벤트를 전송하지 않고 특정 사용자의 사용자 속성을 설정합니다. SDK는 개별 사용자 속성에 대해 다음과 같은 작업을 지원합니다: set, setOnce, unset, add, append, prepend, preInsert, postInsert 및 remove. Identify 인터페이스를 통해 작업을 선언합니다. 단일 Identify 객체에서 여러 작업을 체인화할 수 있습니다.
서버로 전송하려면 Amplitude 클라이언트에 AMPIdentify 개체를 전달합니다. 릴리스 v8.15.0부터 SDK는 identify 이벤트를 설정 작업과 함께 일괄 처리하고 더 적은 수의 이벤트로 전송합니다. 이 변경 사항은 세트 작업의 결과에 영향을 주지 않습니다. setIdentifyUploadPeriodSeconds를 사용하여 일괄 처리된 식별 이벤트의 플러시 간격을 관리합니다.
사용자 속성 설정
set 는 사용자 속성의 값을 설정합니다. 또한 여러 identify 호출을 함께 연결할 수도 있습니다.
AMPIdentify *identify = [[[AMPIdentify identify] set:@"gender" value:@"female"] set:@"age"
value:[NSNumber numberWithInt:20]];
[[Amplitude instance] identify:identify];
사용자 속성을 한 번 설정하십시오.
setOnce는 사용자 속성의 값을 한 번만 설정합니다. SDK는 setOnce를 사용한 후속 호출을 무시합니다.
AMPIdentify *identify1 = [[AMPIdentify identify] setOnce:@"sign_up_date" value:@"2015-08-24"];
[[Amplitude instance] identify:identify1];
AMPIdentify *identify2 = [[AMPIdentify identify] setOnce:@"sign_up_date" value:@"2015-09-14"];
[[Amplitude instance] identify:identify2]; // Is ignored
사용자 속성 증가
add는 사용자 속성을 일부 숫자 값만큼 증가시킵니다. 사용자 속성에 아직 값이 설정되어 있지 않은 경우 SDK는 값을 증가시키기 전에 해당 값을 0로 초기화합니다.
AMPIdentify *identify = [[[AMPIdentify identify] add:@"karma" value:[NSNumber numberWithFloat:0.123]]
add:@"friends" value:[NSNumber numberWithInt:1]];
[[Amplitude instance] identify:identify];
사용자 속성에서 값 제거
remove 는 사용자 속성에서 하나 이상의 값을 제거합니다. 해당 항목이 사용자 속성에 존재하지 않는 경우 SDK는 아무 것도 제거하지 않습니다.
NSMutableArray *array = [NSMutableArray array];
[array addObject:@"some_string"];
[array addObject:[NSNumber numberWithInt:56]];
AMPIdentify *identify = [[[AMPIdentify identify] remove:@"ab-tests" value:@"new-user-test"]
remove:@"some_list" value:array];
[[Amplitude instance] identify:identify];
여러 사용자 속성 설정
여러 사용자 속성을 한 번에 설정하려면 축약어로 setUserProperties를 사용하십시오. 이 메서드는 Identify.set 및 identify를 감싸는 래퍼입니다.
NSMutableDictionary *userProperties = [NSMutableDictionary dictionary];
[userProperties setValue:@"VALUE" forKey:@"KEY"];
[userProperties setValue:@"OTHER_VALUE" forKey:@"OTHER_KEY"];
[[Amplitude instance] setUserProperties:userProperties];
사용자 속성에 배열 사용
배열을 직접 설정하거나 append을 사용하여 생성합니다.
NSMutableArray *colors = [NSMutableArray array];
[colors addObject:@"rose"];
[colors addObject:@"gold"];
NSMutableArray *numbers = [NSMutableArray array];
[numbers addObject:[NSNumber numberWithInt:4]];
[numbers addObject:[NSNumber numberWithInt:5]];
AMPIdentify *identify = [[[[AMPIdentify identify] set:@"colors" value:colors] append:@"ab-tests"
value:@"campaign_a"] append:@"existing_list" value:numbers];
[[Amplitude instance] identify:identify];
사용자 속성 데이터를 추가하거나 앞에 추가합니다.
append사용자 속성 배열에 값을 추가합니다.prepend사용자 속성 앞에 값 또는 값들을 추가합니다.
사용자 속성에 아직 값이 설정되어 있지 않은 경우 SDK는 새 값을 추가하기 전에 빈 목록으로 초기화합니다. 사용자 속성에 기존 값이 있고 목록이 아닌 경우, SDK는 이를 목록으로 변환하고 새 값을 추가합니다.
append 및 prepend은 중복 항목을 확인하지 않습니다. 중복 검사에 대한 자세한 내용은 preInsert및 postInsert을 참조하십시오.
NSMutableArray *array = [NSMutableArray array];
[array addObject:@"some_string"];
[array addObject:[NSNumber numberWithInt:56]];
AMPIdentify *identify = [[[AMPIdentify identify] append:@"ab-tests" value:@"new-user-test"]
append:@"some_list" value:array];
[[Amplitude instance] identify:identify];
삽입 전 및 삽입 후
preInsert는 사용자 속성 배열에 값이 아직 없는 경우 해당 값을 사용자 속성 배열 앞에 삽입합니다.postInsert는 사용자 속성 배열에 값이 아직 없는 경우 해당 값을 사용자 속성 배열의 끝에 삽입합니다.
사용자 속성이 존재하지 않는 경우 SDK는 새 값을 미리 삽입하기 전에 해당 속성을 빈 목록으로 초기화합니다. 사용자 속성에 기존 값이 있으면 SDK는 아무 것도 삽입하지 않습니다.
NSMutableArray *array = [NSMutableArray array];
[array addObject:@"some_string"];
[array addObject:[NSNumber numberWithInt:56]];
AMPIdentify *identify = [[[AMPIdentify identify] preInsert:@"ab-tests" value:@"new-user-test"]
preInsert:@"some_list" value:array];
[[Amplitude instance] identify:identify];
사용자 속성 제거
clearUserProperties 는 현재 사용자의 모든 현재 사용자를 제거합니다.
이 작업은 되돌릴 수 없습니다.
사용자 속성을 지우면 Amplitude는 초기화 이전의 사용자의 사용자 속성 값을 전체 미래 이벤트와 동기화할 수 없습니다.
[[Amplitude instance] clearUserProperties];
사용자 속성에서 하나 이상의 값 제거
remove 사용자 속성에서 기존 값 또는 값들을 제거합니다. 해당 항목이 사용자 속성에 존재하지 않는 경우 SDK는 아무 것도 제거하지 않습니다.
NSMutableArray *array = [NSMutableArray array];
[array addObject:@"some_string"];
[array addObject:[NSNumber numberWithInt:56]];
AMPIdentify *identify = [[[AMPIdentify identify] remove:@"ab-tests" value:@"new-user-test"]
remove:@"some_list" value:array];
[[Amplitude instance] identify:identify];
기본 이벤트 추적
릴리스 v8.17.0부터 SDK는 더 많은 기본 이벤트를 추적할 수 있습니다. 다음 이벤트를 자동으로 추적하도록 SDK를 구성하십시오.
- 세션.
- 앱 수명 주기.
- 화면 보기.
- 딥 링크.
defaultTracking.sessions- 유형: 선택 사항.
boolean. - 기본값:
NO. - 설명:
- 세션 추적을 활성화합니다. 이 구성은
trackingSessionEvents을 대체합니다. 값이YES인 경우 Amplitude는 세션 시작 및 세션 종료 이벤트를 추적합니다. - 자세한 내용은 세션 추적 을 참조하십시오.
- 세션 추적을 활성화합니다. 이 구성은
- 유형: 선택 사항.
defaultTracking.appLifecycles- 유형: 선택 사항.
boolean. - 기본값:
NO. - 설명:
- 애플리케이션 생애주기 분석 이벤트 추적을 활성화합니다. 값이
YES인 경우 Amplitude는 설치된 애플리케이션, 업데이트된 애플리케이션, 열린 애플리케이션 및 애플리케이션 백그라운드 이벤트를 추적합니다. - 추적된 이벤트 속성에는
[Amplitude] Version,[Amplitude] Build,[Amplitude] Previous Version,[Amplitude] Previous Build및[Amplitude] From Background가 포함됩니다. - 자세한 내용은 애플리케이션 수명주기 추적을 참조하십시오.
- 애플리케이션 생애주기 분석 이벤트 추적을 활성화합니다. 값이
- 유형: 선택 사항.
defaultTracking.screenViews- 유형: 선택 사항.
boolean. - 기본값:
NO. - 설명:
- 화면 보기 추적을 활성화합니다. 값이
YES인 경우 Amplitude는 screen viewed 이벤트를 추적합니다. - 추적된 이벤트 속성에는 다음
[Amplitude] Screen Name이 포함됩니다. - 자세한 내용은 화면 보기 추적 을 참조하십시오.
- 화면 보기 추적을 활성화합니다. 값이
- 유형: 선택 사항.
defaultTracking.deepLinks- 유형: 선택 사항.
boolean. - 기본값:
NO. - 설명:
- 딥 링크 추적을 활성화합니다. 값이
YES이면, Amplitude는 딥링크 오픈 이벤트를 추적합니다. 이 이벤트를 추적하려면 여전히continueUserActivity또는openURL를 수동으로 호출해야 합니다. - 추적된 이벤트 속성에는
[Amplitude] Link URL및[Amplitude] Link Referrer가 포함됩니다. - 자세한 내용은 딥 링크 추적을 참조하십시오.
- 딥 링크 추적을 활성화합니다. 값이
- 유형: 선택 사항.
다음 코드 샘플을 사용하여 기본 이벤트 트래킹을 활성화하십시오.
[Amplitude instance].defaultTracking = [AMPDefaultTrackingOptions initWithAllEnabled];
[[Amplitude instance] initializeApiKey:@"API_KEY"];
다음 코드 샘플을 사용하여 기본 이벤트 트래킹을 비활성화하십시오.
[Amplitude instance].defaultTracking = [AMPDefaultTrackingOptions initWithNoneEnabled];
[[Amplitude instance] initializeApiKey:@"API_KEY"];
기본 이벤트 트래킹은 추적할 이벤트를 정의하는 옵션을 허용합니다.
[Amplitude instance].defaultTracking = [AMPDefaultTrackingOptions initWithSessions:YES
appLifecycles:NO
deepLinks:NO
screenViews:NO];
[[Amplitude instance] initializeApiKey:@"API_KEY"];
세션 추적
세션 이벤트 추적을 시작하려면 true로 설정하십시오defaultTracking.sessions. 다음 코드 샘플을 참조하십시오.
[Amplitude instance].defaultTracking = [AMPDefaultTrackingOptions initWithSessions:YES
appLifecycles:NO
deepLinks:NO
screenViews:NO];
[[Amplitude instance] initializeApiKey:@"API_KEY"];
세션 추적에 대한 자세한 내용은 사용자 세션을 참조하십시오.
trackingSessionEvents 는 사용되지 않습니다. defaultTracking.sessions대신 사용하십시오.
애플리케이션 생애주기 분석 추적
애플리케이션 생애주기 분석 이벤트 추적을 시작하려면 defaultTracking.appLifecycles로 설정하십시오true. 다음 코드 샘플을 참조하십시오.
[Amplitude instance].defaultTracking = [AMPDefaultTrackingOptions initWithSessions:NO
appLifecycles:YES
deepLinks:NO
screenViews:NO];
[[Amplitude instance] initializeApiKey:@"API_KEY"];
이 설정을 활성화한 후에는 Amplitude가 다음 이벤트를 추적합니다.
[Amplitude] Application Installed: 는 설치 후 사용자가 처음 응용 프로그램을 열 때 발생합니다. SDK는UIApplicationDidFinishLaunchingNotification알림을 감시합니다.[Amplitude] Application Updated: 사용자가 애플리케이션을 업데이트한 후 애플리케이션을 열 때 발생합니다. SDK는UIApplicationDidFinishLaunchingNotification알림을 감시합니다.[Amplitude] Application Opened: 사용자가 처음 연 후 애플리케이션을 실행하거나 포그라운드로 전환할 때 발생합니다. SDK는UIApplicationDidFinishLaunchingNotification또는UIApplicationWillEnterForegroundNotification알림을 감시합니다.[Amplitude] Application Backgrounded: 사용자가 애플리케이션을 백그라운드로 전환할 때 발생합니다. SDK는UIApplicationDidEnterBackgroundNotification알림을 감시합니다.
화면 뷰 추적
화면 보기 이벤트 추적을 시작하려면 true로 설정하십시오defaultTracking.screenViews. 다음 코드 샘플을 참조하십시오.
[Amplitude instance].defaultTracking = [AMPDefaultTrackingOptions initWithSessions:NO
appLifecycles:NO
deepLinks:NO
screenViews:YES];
[[Amplitude instance] initializeApiKey:@"API_KEY"];
이 설정을 활성화한 후에는 Amplitude가 스크린 이름 속성을 사용하여 [Amplitude] Screen Viewed이벤트를 추적합니다. SDK는 메서드 스위즐링을 사용하여 컨트롤러 클래스 메타데이터에서 속성 값을 읽습니다viewDidAppear.
딥 링크 추적
딥링크 이벤트 추적을 시작하려면 true로 설정하십시오defaultTracking.deepLinks. 다음 코드 샘플을 참조하십시오.
// Enable tracking deep links.
[Amplitude instance].defaultTracking = [AMPDefaultTrackingOptions initWithSessions:NO
appLifecycles:NO
deepLinks:YES
screenViews:NO];
[[Amplitude instance] initializeApiKey:@"API_KEY"];
// Call helper method to track, e.g., in `onOpenURL` callback.
[[Amplitude instance] openURL:url];
[[Amplitude instance] continueUserActivity:activity];
이 설정을 활성화한 후, Amplitude는 URL 및 리퍼럴 정보를 사용하여 [Amplitude] Deep Link Opened이벤트를 추적합니다. 딥 링크를 추적하려면 여전히 continueUserActivity 또는 openURL를 수동으로 호출해야 합니다.
사용자 그룹 설정
Amplitude는 사용자를 그룹에 할당하고 해당 그룹에 대해 고유 사용자별 수행 회수가와 같은 쿼리를 수행하는 것을 지원합니다. 그룹 구성원 중 적어도 한 명이 특정 이벤트를 수행한 경우 해당 그룹도 수행 회수가에 포함됩니다.
예를 들어 'orgId'를 사용하여 사용자가 속한 조직을 기준으로 사용자를 그룹화하려는 경우가 있습니다. Joe는 'orgId' '10'에 있고 Sue는 'orgId' '15'에 있습니다. Sue와 Joe는 둘 다 특정 이벤트를 수행합니다. 이벤트 세분화 차트에서 해당 조직을 쿼리할 수 있습니다.
그룹을 설정할 때 groupType 및 groupName를 정의하십시오. 이전 예제에서 'orgId'는 groupType이고 '10'과 '15'는 groupName에 대한 값입니다. groupType의 또 다른 예는 'sport'로, 'tennis'와 'baseball'과 같은 값을 갖습니다.groupName
그룹을 설정하면 groupType:groupName 역시 사용자 속성으로 설정됩니다. 해당 사용자의 groupType에 대해 설정된 전체 기존 groupName값과 해당 사용자 속성 값을 덮어씁니다. groupType은 문자열이며 사용자가 여러 그룹에 속해 있음을 나타내는 문자열 또는 문자열 배열일 groupName수 있습니다.
Joe는 groupName이 15인 'orgID'에 속해 있습니다. Joe는 또한 groupName이 "tennis"와 "soccer"인 "sport"에도 속해 있습니다. 여러분의 코드는 다음과 같습니다:
[[Amplitude instance] setGroup:@"orgId" groupName:[NSNumber numberWithInt:15]];
[[Amplitude instance] setGroup:@"sport" groupName:[NSArray arrayWithObjects: @"tennis", @"soccer", nil]];
logEventWithGroups을 사용하여 이벤트 수준 그룹을 설정할 수도 있습니다. 그룹 지정은 사용자가 기록하는 특정 이벤트에만 적용되며, setGroup다음을 사용하여 명시적으로 설정하지 않는 한 사용자에게 지속되지 않습니다.
NSDictionary *eventProperties = [NSDictionary dictionaryWithObjectsAndKeys: @"value", @"key", nil];
NSDictionary *groups = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:10],
@"orgId", @"soccer", @"sport", nil];
[[Amplitude instance] logEvent:@"initialize_game" withEventProperties:eventProperties withGroups:groups];
그룹 식별
Group Identify API를 사용하여 특정 그룹의 속성을 설정하거나 업데이트하십시오. 이러한 업데이트는 앞으로 진행되는 이벤트에만 영향을 줍니다.
이 groupIdentifyWithGroupType 메소드는 그룹 유형 문자열 매개변수, 그룹 이름 객체 매개변수 및 그룹에 적용되는 Identify 객체를 허용합니다.
NSString *groupType = @"plan";
NSObject *groupName = @"enterprise";
AMPIdentify *identify = [[AMPIdentify identify] set:@"key" value:@"value"];
[[Amplitude instance] groupIdentifyWithGroupType:groupType groupName:groupName groupIdentify:identify];
선택적 outOfSession 불리언 입력을 groupIdentifyWithGroupType의 네 번째 인수로 추가할 수 있습니다.
매출 추적
AMPRevenue의 인스턴스는 수익 거래를 저장하고 Amplitude의 이벤트 세분화 및 LTV (Lifetime Value) 차트에 사용되는 특별한 수익 속성(예: revenueType)을 정의합니다. 각 인스턴스를 Amplitude.logRevenueV2에 전달합니다. 이를 통해 Amplitude는 수익과 관련된 데이터를 자동으로 표시할 수 있습니다.
사용자의 수익을 추적하려면 사용자가 수익을 창출할 때마다 전화하십시오. logRevenueV2다음은 예입니다.
AMPRevenue *revenue = [[[AMPRevenue revenue] setProductIdentifier:@"productIdentifier"] setQuantity:3];
[revenue setPrice:[NSNumber numberWithDouble:3.99]];
[[Amplitude instance] logRevenueV2:revenue];
logRevenueV2호출은 플랫폼에서 최대 2개의 서로 다른 이벤트 유형을 생성합니다:
[Amplitude] Revenue: Amplitude는 인증이 켜져 있는지 여부에 관계없이 모든 수익 이벤트에 대해 이 이벤트를 기록합니다.[Amplitude] Revenue (Verified/Unverified): 이러한 수익 이벤트에는 실제$revenue속성이 포함됩니다.
Amplitude가 원시 데이터에서 이러한 클라이언트측 수익 이벤트에 부여하는 기본 이름을 변경할 수는 없지만 표시 이름을 변경할 수는 있습니다. 헬프 센터에서 수익 추적에 대해 자세히 알아보십시오.
Amplitude는 통화 전환을 지원하지 않습니다. 전송하기 전에 모든 수익 데이터를 원하는 통화로 정규화하십시오.
각 수익 이벤트에는 사용 가능한 필드가 있으며, 각 필드에는 해당 설정 방법(예: price및 setPrice)이 있습니다. 필드의 전체 목록은 API 문서 AMPRevenue를 참조하십시오.
logEvent와 마찬가지로 각 호출에 대한 이벤트 속성을 logRevenueV2에 첨부할 수 있습니다. 그러나 이러한 이벤트 속성은 이벤트 세분화 차트에만 나타나며 수익 차트에는 나타나지 않습니다.
| 이름 | 설명 |
|---|---|
productId | 선택 사항입니다. NSString입니다. 제품의 식별자입니다. Amplitude는 Google Play 스토어 제품 ID와 같은 것을 권장합니다. 기본값은 null입니다. |
quantity | 필수입니다. NSInteger입니다. 구매한 제품의 수량입니다. revenue = quantity * price. 기본값은 1입니다. |
price | 필수입니다. NSNumber입니다. 구입한 제품의 가격이며, 이는 음수일 수 있습니다. revenue = quantity * price. 기본값은 null입니다. |
revenueType | 선택 사항이지만, 수익 검증을 위해 필요합니다. NSString입니다. 수익 유형입니다. 세금, 환급금, 소득 등의 예가 있습니다. 기본값은 null입니다. |
receipt | 선택 사항이지만, 수익 검증을 위해 필요합니다. NSData. 기본값은 null |
receiptSignature | 선택 사항이지만, 수익 검증을 위해 필요합니다. 기본값은 null입니다. |
eventProperties | 선택 사항입니다. NSDictionary입니다. 수익 이벤트에 포함시킬 이벤트 속성의 객체입니다. 기본값은 null입니다. |
가격은 음수일 수 있으며, 이는 손실된 수익(예: 환불이나 비용)을 추적하는 데 유용할 수 있습니다.
고급옵션 항목
사용자 세션
세션은 사용자가 앱을 포그라운드에 두는 기간입니다. 동일한 세션 내에서 기록된 이벤트는 동일한 session_id를 공유합니다. SDK는 세션을 자동으로 처리하므로 startSession()또는 endSession()과 같은 API를 수동으로 호출할 필요가 없습니다.
세션이 연장되는 시간 창을 조정하려면 minTimeBetweenSessionsMillis변수를 변경하십시오.
Amplitude는 이벤트를 세션별로 그룹화합니다. 세션은 시작 시간과 종료 시간을 가진 단일 사용자 활동을 나타냅니다. SDK마다 플랫폼의 요구 사항에 따라 세션을 다르게 추적합니다. SDK 첫 사용 후 세션의 최소 기간을 구성합니다.
[Amplitude instance].defaultTracking.sessions = YES;
[Amplitude instance].minTimeBetweenSessionsMillis = 10 * 60 * 1000; // 10 minutes
[[Amplitude instance] initializeApiKey:@"API_KEY"];
또한 이벤트를 세션 외부로 기록할 수도 있습니다. 세션 외 이벤트의 session_id의 값은 -1이며 현재 세션의 일부로 수행 회수가 계산되지 않습니다. 즉, 현재 세션을 연장하지 않습니다. 이 기능은 예를 들어 푸시 알림에 의해 트리거된 이벤트를 기록할 때 유용할 수 있습니다. logEvent를 호출할 때 입력 매개변수를 outOfSession true로 설정하여 이벤트를 세션 외부로 기록합니다.
[[Amplitude instance] logEvent:@"EVENT_TYPE" withEventProperties:nil outOfSession:YES];
또한 식별 이벤트를 세션 외부로 기록할 수도 있습니다. 이 기능은 백그라운드에서 사용자 속성을 업데이트할 때 새 세션을 시작하지 않으려는 경우에 유용합니다. identify를 호출할 때 입력 매개변수를 outOfSession 로 설정하십시오true.
AMPIdentify *identify = [[AMPIdentify identify] set:@"key" value:@"value"];
[[Amplitude instance] identify:identify outOfSession:YES];
헬퍼 메서드 getSessionId 를 사용하여 현재 sessionId의 값을 얻을 수 있습니다.
long sessionId = [[Amplitude instance] getSessionId];
사용자 지정 사용자 ID 설정
앱에 자체 로그인 시스템이 있고 이를 이용하여 사용자를 추적하려는 경우, 언제든지 setUserId을 호출하십시오.
[[Amplitude] instance] setUserId:@"USER_ID"];
또한 사용자 ID를 init 호출에 인수로 추가할 수도 있습니다.
[[Amplitude] instance] initializeApiKey:@"API_KEY" userId:@"USER_ID"];
각 고유 사용자 ID는 Amplitude에서 고유한 사용자이므로 변경될 수 있는 사용자 ID를 사용자에게 할당하지 마십시오. 자세한 내용은 고유 사용자 추적을 참조하십시오.
디버그 로깅
기본적으로 SDK는 중요한 오류만 콘솔에 기록합니다. iOS에서 디버그 로깅을 활성화하려면 검사하려는 Objective-C 파일의 맨 위에 있는 값을 0에서 1로 AMPLITUDE_DEBUG변경하십시오. SDK는 기본적으로 오류 메시지를 인쇄합니다. 오류 로깅을 비활성화하려면 Amplitude.m에서 1에서 0으로 AMPLITUDE_LOG_ERRORS변경하십시오.
로그아웃된 사용자 및 익명 사용자
Amplitude는 사용자 데이터를 병합하므로, Amplitude는 알려진 userId 또는 deviceId에 관련된 모든 이벤트를 기존 사용자와 연결합니다.
사용자가 로그아웃하면 Amplitude는 해당 사용자의 로그아웃 이벤트를 해당 사용자의 기록에 병합할 수 있습니다. 이 동작을 변경하고 해당 이벤트를 익명 사용자에게 기록할 수 있습니다.
익명 사용자에게 이벤트를 기록하려면 다음을 수행하십시오.
userId를 null로 설정합니다.- 새
deviceId를 생성합니다.
현재 사용자 또는 기기에서 발생한 이벤트는 Amplitude에서 새 사용자로 표시됩니다. 참고: 이 작업을 수행하면 두 사용자가 동일한 장치를 사용하고 있었음을 알 수 없습니다.
[[Amplitude instance] setUserId:nil]; // not string nil
[[Amplitude instance] regenerateDeviceId];
추적 비활성화
기본적으로 iOS SDK는 carrier, city, country, ip_address, language 및 platform과 같은 여러 사용자 속성을 추적합니다. AMPTrackingOptions인터페이스를 사용하여 개별 필드를 사용자 정의하거나 비활성화할 수 있습니다.
객체AMPTrackingOptions에 대한 각 작업은 동일한 인스턴스를 반환하므로 여러 작업을 함께 연결할 수 있습니다.
AMPTrackingOptions인터페이스를 사용하려면 먼저 헤더를 포함하십시오.
#import "AMPTrackingOptions.h"
apiKey를 사용하여 SDK를 초기화하기 전에 사용자의 구성으로 인스턴스를 생성하고 SDK 인스턴스에 설정하십시오AMPTrackingOptions.
AMPTrackingOptions *options = [[[[AMPTrackingOptions options] disableCity] disableIPAddress] disablePlatform];
[[Amplitude instance] setTrackingOptions:options];
각 필드에 대한 추적을 개별적으로 제어할 수 있으며 각 필드에는 해당 메서드가 있습니다(예: disableCountry, disableLanguage).
| 메서드 | 설명 |
|---|---|
disableCarrier | 기기의 통신사 추적 비활성화. |
disableCity | 사용자의 도시 추적을 비활성화합니다. |
disableCountry | 사용자의 국가 추적 비활성화. |
disableDeviceManufacturer | 장치 제조업체 추적 비활성화. |
disableDeviceModel | 장치 모델 추적 비활성화. |
disableDMA | 사용자의 DMA 추적을 비활성화합니다. |
disableIDFA | 사용자의 IDFA 추적을 비활성화합니다. |
disableIDFV | 사용자의 IDFV 추적을 비활성화합니다. |
disableIPAddress | 사용자의 IP 주소 추적을 비활성화합니다. |
disableLanguage | 장치의 언어 추적 비활성화. |
disableLatLng | 사용자의 현재 위도 및 경도 좌표 추적 비활성화. |
disableOSName | 기기의 OS 이름 추적 비활성화. |
disableOSVersion | 기기의 OS 버전 추적 비활성화. |
disablePlatform | 기기 플랫폼 추적 비활성화. |
disableRegion | 사용자의 지역 추적을 비활성화합니다. |
disableVersionName | 앱 버전 이름 추적 비활성화. |
AMPTrackingOptions 는 SDK가 새로 생성된 프로젝트에서 데이터를 아직 전송하지 않은 경우 기본 속성을 추적하지 못하도록 방지합니다. 기존 데이터가 포함된 프로젝트가 있고 기본 속성 수집을 중단하려면 Amplitude 커뮤니티에서 도움말을 얻으십시오. Amplitude는 기존 데이터를 삭제하지 않습니다.
이동통신사
Amplitude는 CTTelephonyNetworkInfo를 사용하여 사용자의 이동통신사를 결정하며, 이는 sim의 등록된 통신사업자를 반환합니다.
COPPA 제어
IDFA, IDFV, 도시, IP 주소 및 위치 추적에 대한 COPPA(아동 온라인 개인 정보 보호법) 제한을 동시에 활성화 또는 비활성화할 수 있습니다. 13세 미만의 어린이로부터 정보를 요청하는 앱은 COPPA를 준수해야 합니다.
[[Amplitude instance] enableCoppaControl];
광고주 ID
광고주 ID(IDFA라고도 함)는 iOS 및 Google Play 스토어에서 제공하는 고유 식별자입니다. IDFA는 단지 사용자의 장치뿐만 아니라 모든 사람에게 고유하기 때문에 IDFA는 모바일 어트리뷰션에 유용합니다.
모바일 어트리뷰션은 모바일 앱의 설치가 기존 소스(예: 광고 캠페인, 앱 스토어 검색)에 기인하는 것을 말합니다.
모바일 앱은 IDFA를 요청하기 위해 권한이 필요하며, 어린이를 대상으로 한 앱은 전혀 추적할 수 없습니다. IDFA를 사용할 수 없는 경우 IDFV, 장치 ID 또는 이메일 로그인 시스템을 사용하는 것을 고려하십시오.
amplitude.adSupportBlock = ^{
return [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
};
프로젝트에 AdSupport.framework추가하는 것을 잊지 마십시오.
IDFA를 장치 ID로 설정
Amplitude는 기본적으로 IDFV를 기기 ID로 사용하지만 이 동작을 변경할 수 있습니다. IDFA를 가져오도록 로직을 설정한 후 useAdvertisingIdForDeviceId API를 호출하여 IDFA를 귀하의 deviceId로 설정하십시오.
장치 ID 생애주기 분석
SDK는 다음 순서로 장치 ID를 초기화합니다. SDK는 장치 ID를 처음 발견한 유효한 값으로 설정합니다.
- SQLite 데이터베이스에서 가져온 장치 ID입니다.
- IDFA가 true이고 귀하가
useAdvertisingIdForDeviceId를 호출하지 않은 경우disableIDFA(). disableIDFV()호출하지 않은 경우 IDFV.- 무작위로 생성된 UUID입니다.
한 명의 사용자가 여러 장치를 사용
단일 사용자는 각각 다른 장치 ID의 여러 장치를 가질 수 있습니다. 일관성을 유지하려면 이러한 모든 장치에서 사용자 ID를 일관되게 설정하십시오. 장치 ID가 다르더라도 Amplitude는 장치 ID를 단일 Amplitude ID로 병합하여 이를 고유 사용자로 식별할 수 있습니다.
새 장치로 전송
사용자가 새 장치로 전환할 때 여러 장치가 동일한 장치 ID를 가질 수 있습니다. 새로운 장치로 전환할 때 사용자는 종종 다른 관련 데이터와 함께 자신의 애플리케이션을 전송합니다. 전송되는 특정 콘텐츠는 애플리케이션에 따라 다를 수 있습니다. 일반적으로 앱과 관련된 데이터베이스 및 파일 디렉토리가 포함됩니다. 포함되는 정확한 항목은 앱의 설계와 개발자의 선택에 따라 달라집니다. 데이터베이스 또는 파일 디렉토리가 한 디바이스에서 다른 디바이스로 백업된 경우에도 그 첫 사용 후 저장된 디바이스 ID는 여전히 존재할 수 있습니다. 결과적으로 SDK가 초기화 다음 기간동안 장치 ID를 검색할 때 다른 장치가 동일한 장치 ID를 사용하게 될 수 있습니다.
장치 ID 가져오기
헬퍼 메서드를 사용하여 현재 deviceId의 값을 얻을 수 있습니다getDeviceId().
NSString *deviceId = [[Amplitude instance] getDeviceId];
사용자 지정 장치 ID
setDeviceId()를 사용하여 새 장치 ID를 할당할 수 있습니다. 사용자 지정 장치 ID를 설정할 때는 값이 충분히 고유한지 확인하십시오. Amplitude는 UUID 사용을 권장합니다.
[[Amplitude instance] setDeviceId:@"DEVICE_ID"];
위치 추적
Amplitude는 기본적으로 사용자 이벤트의 IP를 위치(GeoIP 조회)로 변환합니다. 앱의 자체 추적 솔루션 또는 사용자 데이터는 이 정보를 무시할 수 있습니다.
통신사 정보
Amplitude-iOS는 통신사 정보를 리포트하는 데 도움이 될 수 있습니다.
SDK가 기기에서 이 정보를 리포트하도록 하려면 CoreTelephony.framework종속성으로 추가하십시오.
동적 구성
iOS SDK를 사용하면 동적 구성을 사용하도록 앱을 구성할 수 있습니다. 이 기능은 앱 사용자의 위치를 기반으로 최적의 서버 URL을 자동으로 찾습니다.
사용하려면 useDynamicConfig플래그를 활성화하십시오.
- 자체 프록시 서버를 보유하고 있고
apiEndPointAPI를 사용하는 경우 동적 구성을 해제하십시오. - 중국 본토에 사용자가 있는 경우, Amplitude는 동적 구성을 사용하는 것을 권장합니다.
- 기본적으로 이 기능은 Amplitude의 미국 서버의 서버 URL을 반환합니다. Amplitude의 EU 서버로 데이터를 전송해야 하는 경우,
setServerZone을 사용하여 EU 지역으로 설정하세요.
[Amplitude instance].useDynamicConfig = YES;
SSL 고정
SSL 고정은 SSL 핸드셰이크 후 서버 인증서를 다시 검증함으로써 중간자 공격을 방지하는 데 도움이 되는 클라이언트측 기술입니다. SSL 고정은 특별한 이유가 있는 경우에만 사용하십시오. SSL 고정 기능이 있는 제품을 배송하기 전에 지원 팀에 문의하십시오.
CocoaPods를 사용하여 SDK를 설치한 경우, 다음 설치 후 후크를 추가하여 Podfile을 통해 전처리기 매크로를 활성화하십시오:
post_install do |installer_representation|
installer_representation.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'AMPLITUDE_SSL_PINNING=1']
end
end
end
소스 또는 Swift 패키지 관리자에서 직접 SDK를 설치한 경우 다음 전처리기 매크로를 추가하여 SSL 피닝을 활성화하십시오. 이 StackOverflow 게시물을 참조하여 전처리기 매크로를 추가하는 방법을 알아보십시오.
AMPLITUDE_SSL_PINNING=1
사용자를 추적에서 해제합니다
사용자는 추적을 완전히 거부할 수 있습니다. 이는 Amplitude가 자신의 이벤트나 브라우징 기록을 추적하지 않음을 의미합니다. setOptOut은 사용자의 개인 정보 보호 요청을 충족할 수 있는 방법을 제공합니다.
[[Amplitude instance] setOptOut:YES]; // disables instrumentation
[[Amplitude instance] setOptOut:NO]; // enables instrumentation
tvOS와 watchOS
이 SDK는 tvOS 및 watchOS 앱과 호환됩니다. 시작하려면 iOS 앱과 동일한 설정 지침을 따르십시오.
tvOS 앱에는 영구 저장소가 없으므로(임시 저장소만 있음), tvOS의 경우 SDK는 이벤트를 기록하자마자 이벤트를 업로드합니다.
즉, tvOS의 경우 기본값은 eventUploadThreshold1입니다. Apple TV 기기는 일반적으로 안정적인 인터넷 연결을 갖추고 있으므로 이벤트를 즉시 업로드하는 것이 합리적입니다.
iOS 배치 동작으로 되돌리려면 eventUploadThreshold을 변경하십시오(iOS의 기본값은 30입니다).
[[Amplitude instance] setEventUploadThreshold:30];
iOS 확장 프로그램
SDK는 iOS 확장 프로그램에서 추적을 허용합니다. iOS 확장 프로그램에서 추적을 설정하려면 동일한 설정 지침을 따르되, 대신 확장 프로그램의 application:didFinishLaunchingWithOptions: 메서드에서 SDK를 초기화하십시오viewDidLoad.
몇 가지 강조해야 할 사항은 다음과 같습니다.
- 시스템은 확장 프로그램을 열 때마다
viewDidLoad메소드를 호출합니다. 이는 SDK의initializeApiKey메소드가 매번 실행됨을 의미합니다. 이는 SDK가 첫 번째 호출 이후의 호출을 무시하기 때문에 안전합니다.dispatch_once블록과 같은 것을 사용하여 초기화를 보호할 수 있습니다. - Amplitude의 세션은 앱 사용 사례를 위해 정의됩니다. 예상되는 확장 프로그램 사용 사례에 따라
defaultTracking.sessions를 활성화하지 않거나,minTimeBetweenSessionsMillis를 5분보다 더 길게 연장할 수 있습니다. 이 두 가지 설정을 시험해 보고 원하는 세션 정의를 얻으십시오. - 사용자가 확장 프로그램을 오래 열어 두지 않을 것으로 예상되는 경우, 이벤트를 더 짧은 간격으로 업로드하려면
eventUploadPeriodSeconds를 30초보다 짧게 줄이십시오.[[Amplitude instance] uploadEvents];를 수동으로 호출하여 강제로 업로드할 수도 있습니다.
앱 클립
SDK는 또한 앱 클립에서 추적을 허용합니다. App Clips에서 추적을 설정하려면 App Clip 대상 아래에 Amplitude-iOS를 설치하십시오. 먼저 amplitude-iOS SDK가 기본 앱에 설치되어 있는지 확인하십시오.
CocoaPods
App Clip 타겟을 생성한 후, 프로젝트 Podfile을 열고 다음 코드를 추가하세요.
target 'appClipTarget' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
pod 'Amplitude', :git => 'https://github.com/Amplitude/Amplitude-iOS.git'
end
Podfile을 저장하고 pod install를 실행하십시오.
Swift 패키지 관리자
- Xcode에서 App Clip 대상을 열고 프레임워크, 라이브러리, 및 임베디드 콘텐츠 섹션 아래의 + 버튼을 선택합니다.
- Amplitude Package에서 Amplitude를 선택하고 추가를 선택합니다.
푸시 알림 이벤트
iOS SDK를 통해 클라이언트 측에 푸시 알림 이벤트를 전송하지 마십시오. 사용자가 앱을 열어 Amplitude SDK를 초기화해야 SDK가 이벤트를 전송할 수 있기 때문에, SDK는 다음에 사용자가 앱을 열 때까지 Amplitude 서버에 이벤트를 전송하지 않습니다. 이로 인해 데이터 지연이 발생할 수 있습니다.
모바일 마케팅 자동화 파트너 또는 HTTP API V2를 사용하여 푸시 알림 이벤트를 Amplitude로 전송할 수 있습니다.
오프라인 모드
Amplitude SDK는 이 setOffline(isOffline) 방법을 통해 오프라인 사용을 지원합니다. 오프라인 모드는 기본적으로 꺼져 있습니다.
오프라인 모드가 켜져 있으면 SDK는 이벤트를 로컬 스토리지에 저장하지만 Amplitude 서버로 전송하지는 않습니다.
오프라인 모드가 꺼져 있으면 SDK는 보류 중인 전체 이벤트를 즉시 Amplitude의 서버로 전송합니다.
SDK에 필요한 권한 관리를 제한하기 위해 SDK는 네트워크 연결을 자동으로 감지하지 않습니다. 대신 수동으로 호출하여 오프라인 모드를 활성화하거나 비활성화하십시오setOffline().
[[Amplitude instance] setOffline:YES]; // enables offline mode
[[Amplitude instance] setOffline:NO]; // disables offline mode
미들웨어
미들웨어를 사용하면 모든 이벤트에서 일련의 사용자 지정 코드를 실행하여 Amplitude를 확장할 수 있습니다. 이 패턴은 유연하며 이벤트 보강, 트랜스포메이션, 필터링, 타사 대상으로의 라우팅 등을 지원합니다.
각 미들웨어는 run 메소드를 가진 간단한 인터페이스입니다:
- (void)run:(AMPMiddlewarePayload *_Nonnull)payload next:(AMPMiddlewareNext _Nonnull)next;
payload에는 SDK가 전송하는 event와 사용자 지정 데이터를 고유한 미들웨어 구현으로 전달할 수 있는 선택 사항인 extra가 포함되어 있습니다.
큐의 다음 미들웨어를 호출하려면 next 함수를 사용하십시오. 미들웨어 체인을 계속하려면 next(payload)를 호출하십시오. 미들웨어가 next를 호출하지 않는 경우 현재 미들웨어가 완료된 후 이벤트 처리가 중지됩니다.
client.addEventMiddleware를 통해 Amplitude에 미들웨어를 추가하십시오. 원하는 만큼 미들웨어를 추가할 수 있습니다. 각 미들웨어는 사용자가 추가한 순서대로 실행됩니다.
Objective-C 및 Swift에 대한 예제를 찾을 수 있습니다.
보안
iOS는 각 앱의 데이터를 자체 보안 디렉토리에 저장하여 애플리케이션 데이터를 자동으로 보호합니다. 다른 응용 프로그램은 일반적으로 이 디렉토리에 액세스할 수 없습니다. 그러나 기기가 탈옥되면 앱은 기기의 모든 디렉토리에 대한 루트 액세스 권한을 얻습니다.
탈옥한 장치에서 다른 앱이 앱의 Amplitude 데이터에 액세스하지 못하도록 하기 위해 Amplitude는 SDK에 고유한 인스턴스 이름을 설정할 것을 권장합니다. 이렇게 하면 다른 앱과 분리된 고유한 데이터베이스가 생성됩니다.
Amplitude* amplitude = [Amplitude instanceWithName:@"my-unique-instance-name"];
Apple 개인정보 보호 매니페스트
2020년 12월 8일부터 Apple은 모든 새로운 앱과 앱 업데이트에 대해 개인정보 보호 매니페스트 파일을 요구합니다. Apple은 2024년 봄에 이 기능을 의무화할 것으로 예상합니다. Amplitude는 앱의 제3자 서비스이므로, 사용자 데이터를 Amplitude와 함께 어떻게 사용하는지 사용자에게 적절하게 공개하세요.
앱에 기반한 개인정보 매니페스트 업데이트
Amplitude는 기본 설정에 따라 개인정보 매니페스트를 설정합니다. 사용자 구성과 앱에 따라 개인정보 보호 매니페스트를 업데이트하세요.
NSPrivacyTracking
추적이란 타겟 광고 또는 광고 측정 목적으로 귀하의 앱에서 수집된 사용자 또는 기기 데이터를 다른 회사의 앱, 웹사이트 또는 오프라인 속성에서 수집된 사용자 또는 기기 데이터와 연결하는 것을 의미합니다. 자세한 내용은 Apple의 사용자 개인 정보 보호 및 데이터 사용에 관한 문서를 참조하십시오.
기본적으로 Amplitude는 추적을 위해 데이터를 사용하지 않습니다. 이 필드를 추가하고 앱에서 이를 지원하는 경우 이를 true로 설정하세요.
NSPrivacyCollectedDataTypes
| 데이터 유형 | 사용자에게 링크됨 | 추적에 사용 | 수집 이유 | 추적되는 위치 |
|---|---|---|---|---|
| 제품 상호 작용 | 예 | 아니요 | 분석 | 앱 실행, 탭, 클릭, 스크롤 정보, 음악 청취 데이터, 비디오 조회수, 게임, 동영상 또는 노래의 불러오기 장소 또는 사용자가 앱과 상호 작용하는 방식에 대한 기타 정보 등과 같습니다. |
| 기기 ID | 예 | 아니요 | 분석 | 기본적으로 추적됩니다. 여기에서 자세히 알아보세요. |
| 대략적인 위치 | 예 | 아니요 | 분석 | IP 주소를 기반으로 국가, 지역 및 도시 정보를 수집합니다. Amplitude는 기기의 GPS 또는 위치 기능으로부터 데이터를 수집하지 않습니다. |
기본적으로 SDK는 deviceId만 추적합니다. userId추적에도 setUserId()사용하세요. 이렇게 하려면 "사용자 ID" 데이터 유형을 추가하십시오. 데이터 유형에 대한 자세한 내용은 Apple의 기사 '개인정보 보호 매니페스트의 데이터 사용 설명'을 참조하십시오.
NSPrivacyTrackingDomains
NSPrivacyTracking을 참으로 설정한 경우, 구성에 따라 NSPrivacyTrackingDomains에 인터넷 도메인을 하나 이상 제공하십시오.
| 도메인 | 설명 |
|---|---|
| https://api2.amplitude.com | 기본 HTTP V2 엔드포인트입니다. |
| https://api.eu.amplitude.com | Amplitude.instance().setServerZone(AMPServerZone.EU)인 경우 EU 엔드포인트입니다. |
| https://regionconfig.amplitude.com | Amplitude.instance().useDynamicConfig = true인 경우 배치 엔드포인트입니다. |
| https://regionconfig.eu.amplitude.com | Amplitude.instance().setServerZone(AMPServerZone.EU) 및 Amplitude.instance().useDynamicConfig = true인 경우 배치 EU 엔드포인트입니다. |
NSPrivacyAccessedAPITypes
SDK는 기본적으로 전체 API를 사용하지 않습니다. 여기에서 자세히 알아보세요.
앱의 개인정보 보호 리포트 작성
앱 개인정보 보호 설정 방법에 설명된 단계를 따르십시오.
이 내용이 도움이 되었나요?