ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
App内課金のファミリー共有について
App内課金のファミリー共有では、ユーザーが自動更新サブスクリプションや非消耗型のアイテムを最大5人のファミリーメンバーと共有することができ、新規サブスクリプション登録者を獲得し、ユーザーエンゲージメントやリテンションを向上させるのに役立ちます。この機能をApp Store Connectで有効にする方法や、StoreKitおよびApp Storeサーバ通知と共にこの機能を使用する際のベストプラクティスに加え、優れたApp内課金体験を提供するための方法について説明します。
リソース
- App Store Server Notifications
- Family Sharing for in-app purchases overview
- In-app purchase overview
- Supporting Family Sharing in your app
- Turn on Family Sharing for in-app purchases in App Store Connect
関連ビデオ
WWDC23
WWDC20
Tech Talks
-
ダウンロード
こんにちは ご視聴ありがとうございます このセッションでは サブスクリプションや 非消耗型のApp内課金で ファミリー共有を導入する 方法について説明します
Bryanといいます App Store Monetizationチーム所属です App Store Commerceチームで デベロッパ支援を担当する Hemantと一緒に 今日のセッションを担当します
本日はまず App内課金の ファミリー共有について 概要を説明します
次に この機能のメリットと 最大限活用するための ヒントを紹介します
最後に エンジニアリングと実装について Hemantに説明してもらいます
では 始めましょう
ご存知の通り ファミリー共有は すべてのAppleデバイスで ファミリーメンバーと デジタル購入を簡単に共有できる 強力なツールです ファミリー共有は 2014年の開始以降 Appleエコシステムの中で 重要な位置を占め これまでよりも多くのユーザーと より多くのデバイスに コンテンツやサービスを 届けています Appleはファミリー共有に対する 継続的な投資の一環として この機能をStoreKitに拡張しました
これが本日のセッションで 紹介するトピックです 自動更新サブスクリプションや 非消耗型のApp内課金で ファミリー共有を開始できます
ファミリー共有は サブスクリプションと 非消耗型のアイテムに 利用できるだけでなく ファミリーグループに 参加している 最大5人のファミリーメンバーと 支払いを共有できます
デベロッパであるみなさんは この機能を既存のSKUに実装するか ファミリー共有専用の 新しいSKUを作成するかを 選択できます
ファミリー共有は App Store Connectに 簡単に実装できる上 収益化のKPIを向上できる 効率的で快適な ユーザー体験を提供します
それでは App内課金の ファミリー共有は ビジネスにどのように 役立つのでしょうか メリットは4つあります サブスクリプション登録者の増加 エンゲージメントの向上 解約の減少 それらすべての成果である 顧客生涯価値つまりCLVの向上です
各メトリックスの関係について Michaelを例に説明します ファミリー共有は サブスクリプション登録者を増やし Michaelにプロダクトを 利用してもらうための 魅力的な手段になり得ます Michaelがサブスクリプションに 登録すると Michaelはサブスクリプションを 他のファミリーメンバーに拡大し 最終的に サービスやAppの カスタマータッチポイントが 増加することになります
家族全員がプロダクトを 利用するようになれば 魅力的なコンテンツと 効果的なエンゲージメント マーケティングの相互効果で 継続的な利用につながります そしてプロダクトやサービスの 価値を実感できユーザーが増えればるとして 結果 解約の減少につながります
ユーザーにとっても ファミリー共有は嬉しい機能です 購入したアイテムを ファミリーメンバーと 共有できるからです ファミリー共有は シームレスで使いやすく 各デバイスやApp間で一貫した 利用開始のユーザー体験を 提供できるよう iOSと共に開発されています
プライバシーが重視されており 購入に対してファミリーメンバーは 各自のエンタイトルメントを 受け取ることができるので パスワードの共有は必要ありません さらに ファミリー共有では 1つではなく最大6つの エンタイトルメントが提供されるため App内課金の価値が高まります 購入したアイテムに アクセスできる人数が増え 各ファミリーメンバーに パーソナライズされたApp体験を 提供できます
次に ユーザーとデベロッパが この機能を最大限活用するための 方法について説明します App内課金でファミリー共有を 利用するには まず ユーザーはファミリーグループを 作成する必要があります これができるのは 家族内の成人1人であり 自分のApple IDを使って グループに参加する ファミリーメンバーを 最大5人招待します 各ファミリーメンバーはそれぞれ 自分のアカウントを使用するため ユーザー体験はパーソナライズされ プライバシーも保護されます 一度ファミリーグループを作成すると 各ファミリーメンバーは グループ内で共有対象となる サブスクリプションやコンテンツに すぐにアクセスできます
それでは 設定Appでユーザーが 共有設定をどのように 管理するのか確認しましょう これはサブスクリプションの 管理ページです ユーザーはこのページで 現在サブスクリプション登録している すべてのプロダクトを確認できます
ページ下部の 「ファミリーと共有」ボタンで ファミリー共有に対応したSKUを 今後 自動的に共有するかどうか 選択できます このトグルはデフォルトで オンになっていますが いつでも無効に設定できます
一覧表示されている いずれかのAppを選択すると 特定のサブスクリプションについて 購入内容を編集し ファミリー共有を有効にするか 無効にするかを選択できます 初期設定は 左の画像にある 「ファミリーと共有」設定に 基づきます 既存のサブスクリプションで ファミリー共有が利用可能になった場合 ユーザーはここで 設定を有効にできます
ファミリー共有で サブスクリプションを共有する場合 ファミリーグループで 次のステップを 実行する必要があります ファミリー共有に対応した サブスクリプションの 新規購入では ファミリー共有は 自動的に有効になります
既存のサブスクリプションで ファミリー共有が利用可能になった場合は 設定にて元の購入者が 共有を有効にする必要があります この操作の目的は サブスクリプション契約の更新内容を ユーザーに 十分に確認してもらうことです
ファミリー共有が利用可能に なった場合 デベロッパの マーケティングチャネルで ユーザーに通知することを 強くおすすめしますが App Storeからユーザーに 直接通知する場合が 2つあります 既存のサブスクリプションSKUで ファミリー共有が 利用可能になった場合 ユーザーはプッシュ通知を 受け取ります また 以前に サブスクリプションの管理ページで 「ファミリーと共有」トグルを 無効にしていたユーザーが ファミリー共有対応の 新しいSKUを購入した場合にも プッシュ通知が送信されます このプッシュ通知から ユーザーは そのAppのサブスクリプション 編集ページにアクセスして ファミリーグループの他のメンバーと Appを共有することを 選択できます
非消耗型のApp内課金の場合 プロセスが少し異なります 非消耗型アイテムの ファミリー共有は iCloudで「購入アイテムの共有」を 有効にしていれば 新規の購入 既存の購入の両方で 自動的に有効になります 購入したアイテムは 家族間で共有され Appが購入履歴に表示されます ファミリーメンバーは 新たに購入したコンテンツに 自動的にアクセスできますが 既存の購入でファミリー共有が 利用可能になった場合は 新たに利用可能になった コンテンツのロックを解除するために ファミリーメンバーが 「購入の復元」ボタンを 選択する必要があります
これは「購入アイテムをファミリーと 共有」トグルが表示された画面です 非消耗型アイテムをファミリー メンバーと共有するには これをオンにする必要があります このページを開くには 設定AppでApple IDを選択し 「ファミリー共有」をタップして 「購入アイテムの共有」をタップします ファミリー共有機能を できるだけ見つけやすく 興味を持ってもらいやすくするには いくつかの方法があります
App Store Connectでは すべてのユーザーに対して ファミリー共有を 簡単にオンにできます
サービスのオンボーディング時に ファミリーメンバーとの サブスクリプション共有機能を紹介し この機能をサービスの全体的な 価値提案の一環として 明確に伝えることを 検討してください
ファミリー共有は 個別のサブスクリプション プランとしても提供できます この購入のフローでは 利用できるプランが明確に区別され ファミリー共有の概要ページへの リンクが画面下部に表示されます
ファミリー共有をサービスの 上位プランとして 提供する場合は App Store Connectで 上位プランを個人向けプランと 一緒に掲示してください そうすれば このApp内課金の例のように 個人サブスクリプション 登録者のプランを ファミリー向けプランに 切り替える価値を 強調した アップグレード メッセージを提示できます
新たなファミリーメンバーが 購入を完了したら 左の画像のように そのメンバーから 他のファミリーメンバーに サービスの利用を 促してもらえるように 機能を宣伝するとよいでしょう 右の画像には サブスクリプションに アクセスできることを告げる ファミリーメンバー宛の メッセージが表示されています
サービスをすぐに利用できるように ファミリーメンバーを識別して シームレスにアクセスの ロックを解除する方法については あとでHemantに 説明してもらいます
こちらはNight Skyの 実際の例です Night Skyは 既存のSKUで すべてのユーザーに ファミリー共有を 利用可能にしています
左の画像では 登録フローの中で ファミリー共有が強調され 追加費用なしで利用できると 宣伝されているのがわかります 右の画像では サブスクリプション登録者向けの 購入後のオンボーディング カルーセルに この機能専用のページが 用意されており プランの新規登録者に メリットを活用するよう 促しています 社内で実装プランを レビューする際に 考慮すべき内容についてまとめます
まず ファミリー共有によって App内課金にもたらされる価値が どのように増加していくか どのようにしてサービスの 新規サブスクリプション登録者を 増やせるかを検討してください
また 新しいSKUと 既存のSKUのどちらで ファミリー共有を提供するか 判断してください
そして ファミリー共有を通じて 新規サブスクリプション登録者が サービスへのエンゲージメントを 高められるようなプロダクトを 開発できるように プロダクトチームや マーケティングチームと 連携してください
次はHemantに 機能のエンジニアリングと実装について 説明してもらいましょう
ありがとう Bryanみなさん こんにちは App Store Commerceチームの Hemantです App内課金の ファミリー共有を取り入れる際に 検討すべき エンジニアリングと 実装の詳細について説明します
ポイントは3つです まず App Store Connectで プロダクトごとに ファミリー共有を有効にする方法を 説明します 次に App購入者の ファミリーメンバーに サービスの利用を許可する方法について 説明します
最後に ファミリー共有に関して StoreKitと App Storeサーバ通知で 利用できる機能について説明します それでは ファミリー共有の 有効化から始めましょう まずは App Store Connectに アクセスして 有効にするサブスクリプション または 非消耗型のプロダクトに移動します 「ファミリー共有」という 新しいセクションに ファミリー共有をオンにする オプションがあります
確認のためのダイアログが 表示されます 「確認」を選択すると 新規と既存のどちらの購入者も 数時間以内にそのプロダクトの ファミリー共有にアクセスできます
特に強調しておきたいのですが 特定のプロダクトで一旦 共有を有効にすると 取り消すことはできません
なぜかというと ユーザーが購入を決定した理由が 共有機能である 可能性があるためです
App Store Connectで 共有を有効にすると StoreKitで そのプロダクトのプロパティが ファミリー共有可能に変わります
このプロパティは StoreKit 2と 以前のStoreKitの 両方で利用できます
これは先ほどBryanが 紹介したので ご存知だと思います
このプロパティは App内でファミリー共有固有のUIを 動的に制御するために 必要になります
iOS 14以降で利用できます
今表示しているのは Appが StoreKitプロダクトオブジェクトから プロパティをどのように 利用できるかを 示すサンプルコードです
isFamilyShareableプロパティは シンプルなBooleanです これを利用して カスタムUIやコピーで ファミリー共有可能なプロダクトを 指定して宣伝できます
このプロパティはSandboxや Xcodeテスト環境でも利用でき ファミリー共有可能なプロダクトの ユーザー体験の変更について 簡単にテストできます
次に ファミリー共有が ファミリーメンバーにとって どのような仕組みになるか 説明しましょう
大きなメリットとして ファミリー共有の仕組みは サーバやAppで使い慣れた方法と 同じです
おそらく みなさんのAppは サーバ側でもクライアント側でも 何も変更しなくても すでに ファミリートランザクションを 処理できるはずです 購入は 自動的に ファミリーメンバー全員に対して 利用可能になるからです Appをリリースする時に 通常の購入と同じように トランザクションを利用できることを StoreKitで確認できます これにより 各ファミリーメンバーが 自身のApple IDを使って サブスクリプションや 非消耗型のプロダクトへの アクセス権を得ることを 検証できます
何も変更しなくても Appがファミリーメンバーに対して 機能すると想定して
あらゆるシナリオでAppが 最適な体験を提供するために 重要となるベストプラクティスを 確認しましょう
どのStoreKitバージョンを 使用するかに関わらず リリース時に トランザクションを確認し Appのライフサイクルを通じて 確認し続けることがとても重要です
そうすれば Appがトランザクションを 見逃すことはありません
また 承認と購入のリクエスト PSD2 サブスクリプション オファーコードなど トランザクションが App外部で最終的に決定される 他のシナリオでもこれは重要です
プロダクトを販売する前に ユーザーの ステータスを知っておくことも ベストプラクティスの1つです これを行うには StoreKitを直接操作するか レシートを取得して検証します
サービスを提供する必要がある 過去の購入があるかどうか判断し 新規ユーザーの場合は 適切なマーケティングを 行うことができます
この2つのベストプラクティスで ユーザーの エスカレーションを減らし 返金と否定的なレビューを 最小限に抑え 最終的に顧客体験を向上できます
これについての詳細は WWDCの セッション 「Implement Proactive In-App Purchase Restore」をご覧ください
次に ファミリーメンバーと そのデバイス上で 新規購入がどのように 見えるか確認しましょう
購入者は 通常と同じように 自分のデバイスで購入を開始します
このプロダクトは ファミリー共有できるので 各ファミリーメンバーに対して トランザクションが作成されます
Appleのベストプラクティスに 従うなら Appで この新たな トランザクションを リリース時またはリアルタイムに StoreKitから確認できます
この時点で 他のトランザクションと 同じように 検証とサービス提供を 行うことができます
1つ注意点として ファミリートランザクションでは 反映までに遅延が設定されています
この遅延は ファミリー共有を 無効にできる時間を 購入者に提供するためのものです
同じ図を使って 既存のサブスクリプションの 購入について説明しましょう
説明した通り 既存の購入では ファミリー共有は デフォルトで有効になっていません
購入者は 既存のサブスクリプション 1つ1つについて サブスクリプションの管理ページから ファミリー共有を有効にする 必要があります
有効にしたあと 少し時間が経つと 各ファミリーメンバーの トランザクションが作成されます
StoreKitとAppleのサーバAPIで 利用できる OwnershipTypeプロパティは 購入者とファミリーメンバーを 区別できます
先ほどBryanが説明したような ファミリーメンバー向けの カスタムオンボーディング体験を Appで提供する場合に このプロパティを使用できます
サブスクリプションを 管理する権限のある ユーザーを特定する場合は このプロパティの値が purchasedかを確認します
このプロパティは 各トランザクションの オブジェクト内で見つかります Appのレシートでも確認できます
次は サブスクリプション 登録者イベントの処理です
注意すべき特殊なシナリオがあります ファミリーメンバーのアクセス権を 無効にする必要がある場合です 例えば 購入者が ファミリー共有自体を 無効にした場合や 購入者がサブスクリプションまたは 非消耗型のアイテムの 返金を受けた場合です ファミリーメンバーや購入者が ファミリーグループから 抜ける場合もあります これらのシナリオに対応するために iOS 14以降のStoreKitと App Storeサーバ通知から 必要な情報を取得できるように なっています
どうやって情報を調べればよいか このコード例で見てみましょう
トランザクションリスナーから トランザクションのアップデートを 受け取った場合 revocationDateプロパティの有無を チェックする必要があります
これを調べれば トランザクションが無効化され ユーザーがそのプロダクトへの アクセスを失ったことがわかります ただし 他のトランザクションによって ユーザーが同じまたは別のプロダクトを 利用できる可能性があることに 注意してください 購入したサービスをユーザーが 確実に受け取っていることを 確認する必要があります
前のバージョンのStoreKitを 使用している場合は didRevokeEntitlements ForProductIdentifiers コールバックメソッドを 使用する必要があります
これは そのユーザーの エンタイトルメントが変化した 可能性を示しているため ユーザーのステータスを 確認する必要があります
これに加え Revokeという App Storeサーバ通知 タイプがあります このリアルタイムの サーバ間通知も エンタイトルメントが 変化した可能性を示しています この通知は バージョン1 バージョン2の 両方の通知で利用できます いずれかの コールバックを受け取った場合 正しいエンタイトルメントを 再設定することが重要です つまり ユーザーには エンタイトルメントが 複数ある可能性があるため 過去のトランザクションを すべて確認する必要があります 1つが無効化されても 同じまたは別のプロダクトを利用できる 他のトランザクションが 存在する可能性があるためです
そのような場合も このように対処すれば サービスの中断を 防ぐことができます
それでは 現在利用できる App Storeサーバ通知タイプを 簡単に確認しましょう これは V2の通知のリストです
優れている点として サーバで ユーザーエンタイトルメントを 最新の状態に維持するために ファミリーメンバーに関連する すべてのライフサイクル通知を 受け取ることができます
また 購入者のみに関連する通知を 省略することもできます
V1の通知を使用している場合も 同様のライフサイクル アップデートがあります
App Store Connectで サーバエンドポイントをまだ 追加していない場合でも いつでも追加して Sandbox環境で 試すことができるため この重要なライフサイクル アップデートに対する サポートの開発に 役立てることができます
最後に App Store Connectの 「売上とトレンド」セクションに ついて触れておきます
サブスクリプションレポートで おそらく気になるのは プロダクトごとの 有料サブスクリプション件数や ファミリーメンバーを含め アクセス可能なユーザー数などでしょう
サブスクリプションレポートに 「Subscribers」という欄があります
この欄には サブスクリプションにアクセスできる ユーザー数が表示されます これには サブスクリプションへの プライマリ登録者と そのファミリーメンバーが 含まれます
ただし このフィールドが 入力されるのは 3つ以上のアクティブな サブスクリプションがあるレコード のみという点に注意してください
今日のセッションのまとめです 新規または既存のプロダクトの いずれの場合も ファミリー共有機能を検討することを おすすめします ファミリー共有を利用できることと その価値を 明確に伝えることをおすすめします ファミリー共有は ユーザーの プライバシーに配慮しており ログイン情報などの共有を 減らすのにも役立ちます
サブスクリプションを含む App内課金については Apple Developer Webサイトもご覧ください
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。