On this page

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 Wrapperのプロジェクトへのプル

    bash
    ampli pull [--path ./Ampli]
    
  4. Ampli Wrapperを初期化します

    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をインストールする

Amplitude Analytics iOS SDKをCocoaPods、Carthage、またはSwift Package Managerを使ってインストールします。

  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"
))

オプションの引数を使用すると、この呼び出しのAmplitudeフィールドdeviceIdなど)を渡すことができます。

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

グループ

ユーザーをグループ(部署や会社など)に関連付けるには、setGroup()を呼び出します。setGroup()関数は、必須のgroupTypegroupNameを受け入れます。

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

Amplitudeでは、ユーザーをグループに割り当てたり、それらのグループに対して「ユニーク数による集計」などのクエリを実行したりすることができます。 グループの少なくとも1人のメンバーが特定のイベントを実行した場合、そのグループはカウントに含まれます。

たとえば、orgIdを使用してユーザーを組織ごとにグループ化します。ジョーはorgId10のグループに所属し、スーはorgId15のグループに所属しています。SueとJoeはどちらも特定のイベントを実行します。 イベントセグメンテーションチャートでその組織をクエリできます。

グループを設定する際には、groupTypegroupNameを定義してください。この例では、orgIdgroupTypeであり、10および15groupNameの値です。groupTypeのもう1つの例としてはsportがあり、tennisおよびbaseballのような値を持つgroupNameがあります。

グループを設定すると、groupType:groupNameもユーザープロパティとして設定され、そのユーザーのgroupTypeに設定されている既存のgroupNameの値と対応するユーザープロパティ値が上書きされます。groupTypeは文字列であり、groupNameはユーザーが複数のグループに属していることを示す文字列または文字列の配列のいずれかを指定できます。たとえば、JoeがorgId10および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)などの強く型付けされたイベントメソッドに対してこれらの情報を公開しません。

たとえば、トラッキングプランには、songIdsongFavoritedという2つの必須プロパティを持つsongPlayedという名前のイベントが含まれています。songIdのプロパティタイプは文字列で、songFavoritedはブール値です。

このイベントにはpricequantityという2つの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
)

汎用的なtrackメソッドを使用して、すべての Event オブジェクトを送信します。

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

フラッシュ

Ampli Wrapper はイベントをキューに入れ、設定に基づく間隔で送信します。 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の詳細をご覧ください。

Was this helpful?