概要
iOS Live Activitiesは、アプリの最新データを、iPhoneのロック画面とDynamic Islandにリアルタイムのインタラクティブな更新として表示します。これにより、ユーザーはアプリを開かずにスポーツのスコア、注文ステータス、フライト情報などのイベントを追跡できるため、エンゲージメントとユーザーエクスペリエンスが大幅に向上します。情報Live Activitiesとプッシュ通知では、ユーザー許可のモデルが異なります。デフォルトでは、アプリのLive Activitiesは有効になっています。ユーザーはデバイスの設定で、アプリごとに個別に許可を管理できます。
前提条件始める前に、プロジェクトとアカウントが正しく設定されていることを確認してください。
- Apple Developerアカウントの設定:
- Apple Developerアカウントで、Certificates、IDs & Profiles > Identifiers に移動し、アプリの識別子を選択します。
- Capabilities タブで、Push Notifications と Broadcast Capability のチェックボックスがオンになっていることを確認します。これは、Apple Push Notification service (APNs)がアクティビティの更新を配信するために必須です。

- APNs認証キー: MoEngageがお客様に代わってプッシュ通知を送信することを承認するには、APNs認証キーを設定する必要があります。.p8ファイルをMoEngageダッシュボードにアップロードする詳細な手順については、APNs認証キーに関するドキュメントを参照してください。
- XcodeとiOSのバージョン:
- Xcode: Xcode 14.1以降を使用してください。
- iOSターゲット: Live ActivityはiOS 18以降をターゲットにする必要があります。
Live Activityの実装
このセクションでは、Xcodeプロジェクト内で必要なクライアント側のセットアップについて説明します。ステップ1: Widget Extensionの追加
- Xcodeで、File > New > Target に移動します。
- Widget Extension を選択し、Next をクリックします。

- ウィジェットのプロダクト名を入力します。
- Include Live Activities チェックボックスをオンにします。

- Finish をクリックします。
ステップ2: アプリのInfo.plistの設定
メインアプリのInfo.plistにLive Activitiesのサポートを追加します。ステップ3: MoEngageLiveActivityの統合
情報MoEngageLiveActivityフレームワークを統合するには、適切なMoEngage-iOS-SDKバージョンを使用していることを確認してください。
Swift Package Managerを使用したインストール(推奨)
MoEngageLiveActivityフレームワークは、SDKバージョン10.02.1からSPMでサポートされています。統合するには、GitHubのURL https://github.com/moengage/apple-sdk.git を使用し、ブランチをmasterまたは必要なバージョンに設定します。CocoaPodを使用したインストール
情報CocoaPodsは非推奨になりつつあります。MoEngageでは、すべての新規統合にSwift Package Managerを使用することを推奨しています。CocoaPodsの詳細については、CocoaPods統合ガイドを参照してください。
ステップ4: Live Activityの属性の定義
Widget Extension用に生成されたSwiftファイルで、Live Activityのデータ構造を定義します。- ActivityAttributesを設定する: ActivityAttributesに準拠する構造体を作成します。この構造体には次のものが含まれます。
- 静的データ: 一度設定されると変更されない属性。
- ContentState: リアルタイムで更新される動的データ用のネストされた構造体。
- ActivityConfigurationを作成する際は、ActivityAttributesの型としてFootballActivityAttributesの代わりに MoEngageActivityAttributes<FootballActivityAttributes> を使用します。
- moengageWidgetClickURL APIでディープリンクとウィジェットIDを設定して、ウィジェットのクリックをトラッキングします。
情報 AppleのLive Activitiesの前提条件と制限事項はMoEngageのものとは異なるため、事前によく理解しておくことをMoEngageは推奨しています。
- Target Membershipを確認する: ActivityAttributes構造体がメインアプリのターゲットからアクセスできるようにします。
- ActivityAttributesを定義したSwiftファイルを選択します。
- File Inspector を開きます(Option + Command + 1)。
- Target Membership セクションで、メインアプリのターゲットのチェックボックスをオンにします。

Live Activityのライフサイクルの管理
アプリの設定が完了したら、ローカルのアプリコードとMoEngage APIを組み合わせて、Live Activitiesを開始、更新、終了できます。ステップ5: Live Activityキャンペーンの作成(1回限りのセットアップ)
Live Activityを開始する前に、まずMoEngageプラットフォームでキャンペーンを作成する必要があります。この1回限りのAPI呼び出しで、ターゲットオーディエンスやコンバージョン目標などのキャンペーンのプロパティを定義します。 作成に成功すると、APIはchannel_idを返します。このIDは次の2つの理由で不可欠です。- ターゲットセグメントに対してリモートで開始するキャンペーンを識別します。
- 元のターゲットセグメント外のユーザーが、アプリ内から(ボタンをタップするなどして)同じLive Activityをローカルで開始できるようにします。
成功/開発者向け情報サーバーは、返されたchannel_idとMoEngageメタデータを保存し、モバイルアプリで利用できるようにする必要があります。アプリがLive Activityをローカルで開始するには、このデータが必要です。
ステップ6: Live Activityの開始
Live Activityのインスタンスは、プッシュを介してリモートで開始することも、アプリからローカルで開始することもできます。Push-to-Start(リモート)
プッシュ通知を使用して、定義したオーディエンスに対してアクティビティを開始します。詳細については、こちらを参照してください。Click-to-Start(ローカル)
ユーザーのアクションをトリガーとして、アプリ内からアクティビティを開始します。 createAttributes(withCampaign:completion:)またはcreateAttributes(withCampaign:) async SDK APIを使用し、アプリケーションのActivityAttributesデータと必須のMoEngageメタデータ(サーバーから取得)を組み合わせてLive Activityのデータを取得します。Live Activityを開始するには、channel_id(サーバーから取得)を指定してAppleのActivity.request()メソッドを使用します。これにより、ローカルで開始されたアクティビティがキャンペーンにリンクされます。情報Live Activityが開始されたら、trackStarted(activity:) APIを使用してLive Activity Startedイベントをトラッキングする必要があります。