iOS SDKでフロースクリーンのビュー数を計測する
ユーザーがフロー内のスクリーンを開くたびに、SDKはアプリへ flow_screen_showed イベントを通知します。これをAmplitude、Mixpanel、または使用中のプロダクトアナリティクスツールに転送することで、フロースクリーンのデータをアプリの他のイベントと合わせて分析できます。
フローのどこまでユーザーが進んだかを確認するだけなら、コードは不要です。フローの指標で、Adapty ダッシュボード上のビュー数、完了数、画面ごとの離脱率をすでに確認できます。同じデータを自社のアナリティクスで利用したい場合や、Adapty が把握していないイベントと組み合わせたい場合は、このガイドを参照してください。
始める前に
必要なもの:
- Adapty iOS SDK v4以降:フローの分析コールバックは、それ以前のバージョンには存在しません。
- この機能がリリースされた後に公開されたフローバージョン:Adaptは、フローを公開する際にスクリーンイベントを生成するため、それ以前に最後に公開されたフローは何も報告しません。イベントがアプリに届かない場合は、フローの新しいバージョンを公開して再試行してください。
受け取る内容
フローは、ユーザーがいずれかの画面を開くたびに flow_screen_showed を報告します。Adapty はこれらのイベントを独自のフロー分析でカウントするとともに、アプリにも配信します。これにより、自社の分析ツールで同じファネルを構築できます。
| パラメータ | 説明 |
|---|---|
instanceId | ユーザーが開いた画面の ID。 |
screen_order | フロー内での画面の位置。 |
is_last_screen | その画面に遷移先がない場合に true。分岐するフローは複数の異なる画面で終了する可能性があり、それぞれが true を報告します。 |
このイベントでは isBackendEvent と isCustomerEvent の両方が true です。Adapty はカウントを継続し、アプリにも配信されます。
画面の表示は、他のすべてのフローイベントと同じ分析コールバックに届きます。登録方法については、フロー&ペイウォールイベントの処理を参照してください。
全スクリーンビューをアナリティクスに送信する
フローは同じコールバックを通じて他のイベントも報告するため、他の情報を読み取る前にイベント名でマッチングしてください。
func flowController(
_ controller: AdaptyFlowController,
didReceiveAnalyticEvent name: String,
params: [String: any Sendable]
) {
guard name == "flow_screen_showed" else { return }
let screenId = params["instanceId"] as? String
let screenOrder = params["screen_order"] as? Int
// Send screenId and screenOrder to your analytics provider here.
}
ユーザーが最後の画面に到達したときにコードを実行する
is_last_screen は、フローがそれ以上進めない画面で true になります。これを使って、ビルダーにボタンアクションを追加しなくても、コンテンツのアンロック、オンボーディング完了のマーク付け、独自の完了イベントの送信などが行えます。
func flowController(
_ controller: AdaptyFlowController,
didReceiveAnalyticEvent name: String,
params: [String: any Sendable]
) {
guard name == "flow_screen_showed",
params["is_last_screen"] as? Bool == true
else { return }
// The user reached the end of the flow.
}
フローの最後の画面に到達することと、フローが閉じられることは同じではありません。ユーザーは最終画面を見てから何もアクションを取らずにフローを閉じることができますし、分岐のあるフローは複数の異なる画面で終わることがあります。フロー自体が消えたことを検知するには、UIKit では flowControllerDidDisappear、SwiftUI では didDisappear クロージャを使用してください。