Skip to main content

概要

iOS Live Activitiesは、アプリの最新データを、iPhoneのロック画面とDynamic Islandにリアルタイムのインタラクティブな更新として表示します。これにより、ユーザーはアプリを開かずにスポーツのスコア、注文ステータス、フライト情報などのイベントを追跡できるため、エンゲージメントとユーザーエクスペリエンスが大幅に向上します。
情報Live Activitiesとプッシュ通知では、ユーザー許可のモデルが異なります。デフォルトでは、アプリのLive Activitiesは有効になっています。ユーザーはデバイスの設定で、アプリごとに個別に許可を管理できます。
前提条件始める前に、プロジェクトとアカウントが正しく設定されていることを確認してください。
  1. Apple Developerアカウントの設定:
    • Apple Developerアカウントで、Certificates、IDs & Profiles > Identifiers に移動し、アプリの識別子を選択します。
    • Capabilities タブで、Push Notifications と Broadcast Capability のチェックボックスがオンになっていることを確認します。これは、Apple Push Notification service (APNs)がアクティビティの更新を配信するために必須です。
      Liveact1
    • APNs認証キー: MoEngageがお客様に代わってプッシュ通知を送信することを承認するには、APNs認証キーを設定する必要があります。.p8ファイルをMoEngageダッシュボードにアップロードする詳細な手順については、APNs認証キーに関するドキュメントを参照してください。
  2. XcodeとiOSのバージョン:
    • Xcode: Xcode 14.1以降を使用してください。
    • iOSターゲット: Live ActivityはiOS 18以降をターゲットにする必要があります。

Live Activityの実装

このセクションでは、Xcodeプロジェクト内で必要なクライアント側のセットアップについて説明します。

ステップ1: Widget Extensionの追加

  1. Xcodeで、File > New > Target に移動します。
  2. Widget Extension を選択し、Next をクリックします。
    La2
  3. ウィジェットのプロダクト名を入力します。
  4. Include Live Activities チェックボックスをオンにします。
    La3
  5. 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統合ガイドを参照してください。
MoEngageLiveActivityフレームワークを統合するには、Podfileに次の依存関係を追加します。

ステップ4: Live Activityの属性の定義

Widget Extension用に生成されたSwiftファイルで、Live Activityのデータ構造を定義します。
  1. ActivityAttributesを設定する: ActivityAttributesに準拠する構造体を作成します。この構造体には次のものが含まれます。
    • 静的データ: 一度設定されると変更されない属性。
    • ContentState: リアルタイムで更新される動的データ用のネストされた構造体。
  2. ActivityConfigurationを作成する際は、ActivityAttributesの型としてFootballActivityAttributesの代わりに MoEngageActivityAttributes<FootballActivityAttributes> を使用します。
  3. moengageWidgetClickURL APIでディープリンクとウィジェットIDを設定して、ウィジェットのクリックをトラッキングします。
    情報 AppleのLive Activitiesの前提条件と制限事項はMoEngageのものとは異なるため、事前によく理解しておくことをMoEngageは推奨しています。
  4. Target Membershipを確認する: ActivityAttributes構造体がメインアプリのターゲットからアクセスできるようにします。
    1. ActivityAttributesを定義したSwiftファイルを選択します。
    2. File Inspector を開きます(Option + Command + 1)。
    3. Target Membership セクションで、メインアプリのターゲットのチェックボックスをオンにします。
      La4

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のインスタンスは、プッシュを介してリモートで開始することも、アプリからローカルで開始することもできます。
Live Activityのトラッキングの検証
  • 初期化前のトラッキング。 Live Activityのトラッキングメソッドは、SDKが初期化された後にのみ呼び出す必要があります。それより前に呼び出すと、DEBUG ビルドでは致命的な例外がスローされ、アプリがクラッシュします。ReleaseビルドとTestFlightビルドでは、呼び出しは通知なく破棄され、ログに記録されます。
  • trackStarted の重複。 同じLive Activityに対して MoEngageSDKLiveActivity.trackStarted を複数回呼び出すと、DEBUG ビルドでは致命的な例外がスローされます。ReleaseビルドとTestFlightビルドでは、重複した呼び出しは無視されます。
  • アップグレード中にこれらの DEBUG 検証によってアプリがクラッシュする場合は、SDKを初期化する前に MoEngageSDKCore.sharedInstance.disableIntegrationValidator() を呼び出して一時的にオプトアウトしてください。問題が解決したら、この呼び出しを削除してください。

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イベントをトラッキングする必要があります。

ステップ7: Live Activityの更新

プッシュ通知を使用して、定義したオーディエンスのアクティビティを更新します。詳細については、こちらを参照してください。

ステップ8: Live Activityの終了

Live Activityは、ユーザーによる閉じる操作、システムのタイムアウト、またはサーバーからのコマンドによって終了します。詳細については、こちらを参照してください。