---
title: "ユーザーアカウント間での有料アクセスの共有"
description: "複数のデバイスや複数のアプリプロファイルを持つユーザーに対応するため、異なるユーザーアカウント間で有料アクセスを共有する方法"
---

ユーザーが購入を行うと、Adapty はアクティブな[プロファイル](identifying-users)に新しい[アクセスレベル](access-level)を割り当てます。このアクセスレベルにより、購入者は有料コンテンツにアクセスできるようになります。

購入者のプロファイルは、アプリの再インストールや新しいアプリ内アカウントへのログインによって意図せず変わることがあります。アクセスが途切れないよう、Adapty は元のプロファイルとその後のプロファイルの間でユーザーのアクセスレベルを自動的に共有します。

このアプローチはほとんどのアプリケーションに最適です。ただし、ビジネスロジックの要件によっては、より制限的な有料アクセス共有ポリシーを選択することもできます。

[General Settings](https://app.adapty.io/settings/general) ページを開いて、アクセスレベルの共有ポリシーを設定してください。テストを容易にするため、[サンドボックス環境のみ](#sharing-paid-access-on-sandbox)でこの設定を変更することもできます。

<Details>

:::important
アプリケーションがユーザー認証を行っていない場合、この設定は無視してかまいません。同じストアアカウントに関連付けられた匿名プロファイルは、*常に*アクセスレベルを共有します。
:::

    <summary>どのアクセス共有ポリシーを選べばよいですか？（クリックして展開）</summary>

    | 私のアプリは…                                                    | おすすめの設定                                             |
    | ------------------------------------------------------------ | ------------------------------------------------------------ |
    | 認証機能を持たず、Adapty の匿名プロファイル ID のみを使用している。 | **Enabled (default)** 設定を使用してください。 |
    | ユーザー認証が可能だが、アカウントなしで購入できる。 | **Transfer access to new user** 設定を有効にしてください。ユーザーがサインアップして匿名購入を引き継げるようになります。 |
    | 購入前にアカウント作成が必須だが、1 つのプロダクトを複数の Customer User ID にリンクできる。 | **Transfer access to new user** 設定を有効にしてください。複数のアカウントがプロダクトにアクセスできますが、順番にのみアクセス可能です。 |
    | 購入前にアカウント作成が必須で、購入を単一の Customer User ID に紐付ける厳格なルールがある。 | アクセスレベルの共有を**無効**にしてください。 |
</Details>

  <img src="/assets/shared/img/sharing-paid-access.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

## Enabled（デフォルト） \{#enabled-default\}

この設定は、**組み込み認証を持たない**アプリケーションに最適です。購入後、同じストアアカウントに関連付けられたすべてのプロファイルがアクセスレベルを自動的に*継承*します。

* ユーザーが新しい認証情報でアプリにログインしても、有料コンテンツへのアクセスは維持されます。
* ユーザーが工場出荷時リセット後にアプリを再インストールしても、有料コンテンツへのアクセスは維持されます。
* ユーザーが同じストアアカウントで他のデバイスにアプリをインストールしても、購入はすべてのデバイスで利用可能になります。アプリの各インスタンスが独自のカスタマープロファイルを持っている場合でも同様です。

## Transfer access to new user \{#transfer-access-to-new-user\}

この設定は、**認証の有無にかかわらず購入を許可する**アプリケーション、または**1 デバイスにつき 1 ユーザー**のポリシーを適用したいアプリケーションに最適です。

Adapty は購入へのアクセスを一度に 1 つの Customer ID に制限します。デバイス所有者はアプリを再インストールしたり、ログインとログアウトを繰り返すことができますが、複数の Customer ID から同時に同じプロダクトにアクセスすることはできません。

この設定を有効にすると、匿名プロファイル（たとえばユーザーがログアウトした後にアクティブになるプロファイル）は常に最後にアクティブだった Customer ID のアクセスレベルを継承します。これは後でアクセスを失わないようにするために必要です。

:::warning
デフォルト設定を無効にして **Transfer access to new user** を有効にしても、Adapty は既存のカスタマープロファイルのアクセスレベルをすぐには更新しません。

切り替えは、ユーザーが新しいストアイベント（サブスクリプションの更新や購入の復元など）をトリガーしたときに行われます。
:::

:::important
Adapty が古いプロファイルを失効させるのは、SDK がトランザクションを伝播する時点で新しいプロファイルに [Customer User ID](identifying-users#set-customer-user-id-on-configuration) が設定されている場合のみです。`restorePurchases` が匿名プロファイルで実行された場合、古い Customer User ID と新しい匿名プロファイルの両方がアクセスレベルを持つことになります。古いプロファイルは、匿名プロファイルを識別した後に失効します。

これを避けるには、SDK メソッドをこの順番で呼び出してください：`activate` → `identify` → `restorePurchases`。
:::

## 有料アクセス共有の無効化 \{#disable-paid-access-sharing\}

この設定は、**必須認証**を持つアプリケーション、または独自のアクセス管理を実装しているアプリケーションに**のみ適切**です。それ以外の場合、ユーザーが購入にアクセスできなくなり、アプリが**必須のストアレビューに失敗するリスク**があります。

有料アクセス共有を無効にすると、Adapty は購入時にアクティブな [Customer ID](identifying-users#set-customer-user-id-on-configuration) にプロダクトを紐付け、他のカスタマープロファイルとアクセスレベルを共有しません。このポリシーにより、厳格な 1 対 1 のプロダクト配布が可能になります。

:::warning
有料アクセス共有を無効にすると、Customer ID が有料アクセスを継承できなくなります。過去に有料アクセスを継承した Customer ID がある場合、自動的に取り消すことはできません。
:::

:::important
緊急時には、次に利用可能なプロファイル（識別済みまたは匿名）がアクセスレベルを引き継げるよう、[ユーザープロファイルを削除する](api-adapty/operations/deleteProfile)必要がある場合があります。
:::

## 実践的なリファレンス \{#practical-reference\}

モードを選択したら、以下の一覧で期待される動作を確認してください：どのプロファイルがアクセスを受け取るか、古いプロファイルがいつアクセスを失うか、どのウェブフックイベントが発火するか。

| モード | 複数のプロファイルが 1 つの購入を共有するか | 転送時に古いプロファイルが失効するか | 古いプロファイルが失効するタイミング | 2 番目のプロファイルがサブスクリプションを引き継ぐ際のウェブフックイベント |
| --- | --- | --- | --- | --- |
| **Enabled (default)** | はい — 復元またはサインインしたすべてのプロファイルがアクセスを継承 | しない | N/A | 継承する各新規プロファイルに `access_level_updated`（`is_active=true`） |
| **Transfer access to new user** | いいえ — 排他的だが、プロファイル間で移動可能 | はい | 新しい識別済みデバイスがトランザクションを伝播したとき（`restorePurchases`、identify、または次のストア側イベント）に即時 | 新しいプロファイル：`access_level_updated`（`is_active=true`）。古いプロファイル：`access_level_updated`（`is_active=false`） |
| **Disabled** | いいえ — 購入ごとに 1 つの Customer User ID、永続的 | N/A — アクセスは転送されない | N/A | 2 番目のプロファイルには何もなし。SDK はそのプロファイルのアクセスを表示しない |

## サンドボックスでの有料アクセス共有 \{#sharing-paid-access-on-sandbox\}

サンドボックス環境専用の有料アクセス共有ポリシーを設定できます。サンドボックス環境で購入をテストする際は、以下の動作が予想されます：

* Apple はアカウントの購入履歴に過去の購入情報を保存します。Adapty SDK もこれにアクセスできます。
* アプリを再インストールした際、Adapty がプロダクトがすでに購入済みであることを検出した場合、アクティブなプロファイルがアクセスレベルを継承します。
* Apple がプロダクトの既存の購入を検出した場合、アクティブなプロファイルに必要なアクセスレベルがなくても、同じ購入を 2 回行うことはできません。

この動作は**有料アクセス共有の設定に関係なく**発生します。アプリにペイウォールが表示されず、プロダクトを購入できません。唯一の解決策は、**アカウントの購入履歴をクリアすること**です。詳細な手順は[サンドボックステストガイド](test-purchases-in-sandbox)を参照してください。

:::warning
Apple のサンドボックスサブスクリプションは数分ごとに自動更新されます。この急速な更新により、Adapty が[親プロファイル](how-profiles-work#parent-and-inheritor-profiles)として扱うプロファイルが入れ替わることがあります。これは本番環境ではほとんど再現されないパターンです。本番環境で使用するモードをテストし、サンドボックスでの結論を出す前に実際の Apple ID で動作を確認してください。
:::

## アナリティクスにおける有料アクセス共有 \{#paid-access-sharing-in-analytics\}

* Adapty はトランザクションが発生した時点でそれを記録します。1 つのトランザクションが複数のプロファイルに関連付けられることがありますが、複数回カウントされることはありません。
* 2 つ以上のプロファイルが同じアクセスレベルを共有している場合、購入は[親プロファイル](how-profiles-work#parent-and-inheritor-profiles)に帰属されます。
* アクセスレベルの継承はインストール統計には影響しません。Adapty がインストールをカウントする方法を決定するには、設定ページで利用可能な 2 つの[インストール定義](installs#counting-modes)のいずれかを選択できます。