이 페이지에서

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.

Ampli for iOS Swift SDK

Amplitude 데이터는 Swift 및 Objective-C로 작성된 iOS 앱의 분석 이벤트 추적을 지원합니다.

빠른 시작

  1. Amplitude SDK를 설치합니다.

    bash
    pod 'AmplitudeSwift', '~> 1.0'
    
  2. Ampli CLI를 설치합니다.

    bash
    npm install -g @amplitude/ampli
    
  3. Ampli 래퍼를 여러분의 프로젝트에 가져옵니다.

    bash
    ampli pull [--path ./Ampli]
    
  4. Ampli 래퍼를 초기화합니다.

    swift
    Ampli.instance.load(LoadOptions(
      environment: AmpliEnvironment.YourEnvironment
    ))
    
  5. 사용자를 식별하고 사용자 속성을 설정합니다.

    swift
    Ampli.instance.identify("userID", Identify(
        userProp: "A trait associated with this user"
    ))
    
  6. 강력하게 유형화된 메서드와 클래스를 사용하여 이벤트를 추적합니다.

    swift
    Ampli.instance.songPlayed(SongPlayed(songId: "song-1"))
    Ampli.instance.track(SongFavorited(songId: "song-2"))
    
  7. 애플리케이션이 종료되기 전에 이벤트를 플러시합니다.

    swift
    Ampli.instance.flush()
    
  8. CLI를 사용하여 구축 상태를 확인합니다.

    shell
    ampli status [--update]
    

SDK 설치

CocoaPods, Carthage 또는 Swift Package Manager와 함께 Amplitude 애널리틱스 iOS SDK를 설치하십시오.

  1. Podfile에 종속성을 추가하십시오.

    ruby
    platform :ios, '16.0'
    target 'YourApp' do
      pod 'AmplitudeSwift', '~> 1.0'
    end
    
  2. 프로젝트 디렉토리에서 pod install을 실행하십시오.

Ampli CLI 설치

Homebrew 또는 npm에서 Ampli CLI를 설치합니다.

brew tap amplitude/ampli
brew install ampli

Ampli 래퍼를 프로젝트에 가져오십시오

Ampli CLI pull 명령을 실행하여 Amplitude 데이터에 로그인하고 추적 계획에 맞게 강력한 형식의 Ampli 래퍼를 다운로드하십시오. 프로젝트 루트 디렉토리에서 Ampli CLI 명령을 실행하십시오.

bash
ampli pull

소스에 속성 첨부하기

추적 계획에 새 이벤트나 속성을 추가한 후에는 이를 Amplitude 데이터의 소스에 첨부하십시오. 이 ampli pull 명령에는 선택한 소스에 연결된 이벤트와 속성만 포함됩니다. 소스에 새 속성을 첨부하지 않으면 생성된 Ampli 래퍼 코드에 해당 속성이 나타나지 않습니다.

Ampli 사용

Ampli는 편리한 메서드를 제공하는 Amplitude SDK 위에 얇은 퍼사드를 생성합니다. 또한 Ampli 래퍼는 Ampli.instance.client를 통해 기본 Amplitude SDK의 모든 메서드에 대한 액세스를 허용합니다. 자세한 내용을 참조하십시오.

가져오기

Amplitude SDK를 Swift 파일로 가져오기:

swift
import AmplitudeSwift

로드

코드에서 Ampli를 초기화하십시오. load() 메서드는 구성 옵션 인수를 허용합니다.

// Using API key directly
Ampli.instance.load(LoadOptions(
    client: LoadClientOptions(apiKey: AMPLITUDE_API_KEY)
))
// Using environment from tracking plan
Ampli.instance.load(LoadOptions(
    environment: AmpliEnvironment.YourEnvironment
))

Identify

앱에서 사용자를 식별하고 향후 발생할 모든 이벤트를 해당 사용자의 ID와 연관시키거나 해당 속성을 설정하기 위해 identify()을 호출하십시오.

Ampli 래퍼는 이벤트와 해당 속성에 대한 타입을 생성하는 것과 마찬가지로 사용자 속성에 대한 타입을 생성합니다.

identify() 함수는 선택 사항인 userId, 선택 사항인 사용자 속성 및 선택 사항인 options을(를) 허용합니다.

예를 들어 추적 계획에 userProp라는 사용자 속성이 포함되어 있습니다. 속성의 유형은 문자열입니다.

Ampli.instance.identify("userID", Identify(
    requiredUserProp: "A trait associated with this user",
    optionalUserProp: "Another trait"
))

options 인수를 사용하면 이 호출에 대해 Amplitude 필드를 전달할 수 있습니다(예: deviceId).

Ampli.instance.identify("userID", Identify(), options: EventOptions(deviceId: "my_device_id"))

그룹

사용자를 해당 그룹(예: 해당 부서 또는 회사)과 연결하기 위해 setGroup()을 호출합니다. 이 setGroup() 함수는 필수 항목 groupType 및 groupName를 허용합니다.

Ampli.instance.client.setGroup(groupType:"group type", groupName:"group name")

Amplitude는 사용자를 그룹에 할당하고 해당 그룹에 대해 고유 사용자별 수행 회수가와 같은 쿼리를 수행하는 것을 지원합니다. 그룹 구성원 중 하나 이상이 특정 이벤트를 수행하는 경우 해당 그룹도 수행 회수가에 포함됩니다.

예를 들어 orgId를 사용하여 조직별로 사용자를 그룹화합니다. Joe는 orgId 10에 속하고, Sue는 orgId 15에 속합니다. Sue와 Joe는 둘 다 특정 이벤트를 수행합니다. 이벤트 세분화 차트에서 해당 조직을 쿼리할 수 있습니다.

그룹을 설정할 때 groupType 및 groupName를 정의하십시오. 이 예제에서 orgId은 groupType이며, 10 및 15은 groupName의 값입니다. groupTypea의 또 다른 예는 tennis및 baseball과 같은 groupName값을 사용하는 sport것입니다.

그룹을 설정하면 사용자 속성도 groupType:groupName로 설정되며, 해당 사용자의 groupType에 대해 설정된 기존 groupName 값과 해당 사용자 속성 값을 덮어씁니다. groupType은 문자열이며, groupName은 사용자가 여러 그룹에 속해 있음을 나타내는 문자열 또는 문자열 배열일 수 있습니다. 예를 들어, Joe가 orgId 10와 20에 있으면 groupName는 [10, 20]입니다.

코드는 다음과 같을 수 있습니다.

Ampli.instance.client.setGroup(groupType: "orgID", groupName: ["10", "20"])

추적

이벤트를 추적하려면 이벤트에 해당하는 함수를 호출하십시오. 추적 계획의 모든 이벤트는 Ampli 래퍼에서 고유한 함수를 갖습니다. 호출은 다음 구조를 사용합니다.

swift
Ampli.instance.track(_ event: Event, options: EventOptions)

이 options 인수를 사용하면 deviceId와 같은 Amplitude 필드를 전달할 수 있습니다.

일반 트랙을 통해 EventOptions를 설정합니다. Ampli는 이러한 요소를 Ampli.instance.songPlayed(songId: "id", songFavorited: true)와 같이 강력하게 유형화된 이벤트 메소드에 노출시키지 않습니다.

예를 들어 추적 계획에는 두 개의 필수 속성인 songId및 을 songPlayed가진 라는 이름의 이벤트가 포함되어 songFavorited있습니다. songId의 속성 유형은 문자열이며 songFavorited는 부울입니다.

이 이벤트에는 price 및 quantity라는 두 개의 Amplitude 필드가 정의되어 있습니다.

Ampli.instance.track(
    SongPlayed(songId: "songId", songFavorited: true),
    options: EventOptions(
        deviceId: "deviceId",
        price: 0.99,
        quantity: 1
    )
)

또한 Ampli는 각 이벤트에 대한 클래스를 생성합니다.

let myEventObject = SongPlayed(
    songId: "songId", // String,
    songFavorited: true, // Bool
)

일반 트랙 메소드를 사용하여 모든 이벤트 객체를 전송합니다.

Ampli.instance.track(SongPlayed(
    songId: "songId", // String,
    songFavorited: true, // Bool
))

플러시

Ampli 래퍼는 이벤트를 큐에 넣고 구성에 따라 일정한 간격으로 이벤트를 전송합니다. Ampli는 flushQueueSize 또는 flushInterval에 도달하면 자동으로 버퍼를 플러시합니다.

보류 중인 이벤트를 즉시 전송하려면 flush()를 호출하세요. 응용 프로그램이 종료되기 전에 flush()를 호출하여 대기열에 있는 이벤트를 전송하기 시작하세요.

Ampli.instance.flush()

Ampli CLI

풀(Pull)

pull 명령은 Ampli 래퍼 코드를 프로젝트에 다운로드합니다. 프로젝트 루트에서 pull 명령을 실행합니다.

bash
ampli pull

Ampli는 작업 공간에 로그인하고 소스를 선택하라는 메시지를 표시합니다.

bash
➜ ampli pull
Ampli project is not initialized. No existing `ampli.json` configuration found.
? Create a new Ampli project here? Yes
? Organization: Amplitude
? Workspace: My Workspace
? Source: My Source

상태

코드가 status 명령을 사용하여 이벤트를 구현하는지 확인합니다:

bash
ampli status [--update]

출력에는 상태가 표시되고 누락된 이벤트가 표시됩니다.

bash
➜ ampli status
✘ Verifying event tracking implementation in source code
 ✔ Song Played (1 location)
 ✘ Song Stopped Called when a user stops playing a song.
Events Tracked: 1 missed, 2 total

ampli status에 대해 자세히 알아보십시오.

이 내용이 도움이 되었나요?