---
title: "ウェブペイウォールの実装"
description: "Adapty SDK を使用して Capacitor アプリにウェブペイウォールを実装する方法を説明します。"
---

:::important
始める前に、[ダッシュボードでウェブペイウォールを設定](web-paywall)し、Adapty SDK バージョン 3.6.1 以降をインストールしていることを確認してください。
:::

## ウェブペイウォールを開く \{#open-web-paywalls\}

自分で開発したペイウォールを使用している場合は、SDK メソッドを使ってウェブペイウォールを処理する必要があります。`.openWebPaywall` メソッドは以下を行います：
1. 特定のユーザーに表示されたペイウォールを、そのユーザーがリダイレクトされるウェブページに Adapty が紐付けるための一意の URL を生成します。
2. ユーザーがアプリに戻ったタイミングを検知し、プロファイルのアクセス権が更新されたかどうかを確認するために、短い間隔で `.getProfile` をリクエストします。

これにより、支払いが成功してアクセス権が更新されると、アプリ内でほぼ即座にサブスクリプションが有効になります。

```typescript showLineNumbers

try {
  await adapty.openWebPaywall({ paywallOrProduct: product });
} catch (error) {
  console.error('Failed to open web paywall:', error);
}
```

:::note
`openWebPaywall` メソッドには 2 つのバージョンがあります：
1. `openWebPaywall({ paywallOrProduct: product })` — ペイウォールに基づいて URL を生成し、プロダクトデータも URL に追加します。
2. `openWebPaywall({ paywallOrProduct: paywall })` — ペイウォールに基づいて URL を生成しますが、プロダクトデータは URL に追加しません。Adapty のペイウォールに設定されているプロダクトとウェブペイウォールのプロダクトが異なる場合に使用してください。
:::

#### エラー処理 \{#handle-errors\}

| エラー                                  | 説明                                                   | 推奨対応                                                                  |
|-----------------------------------------|--------------------------------------------------------|---------------------------------------------------------------------------|
| AdaptyError.paywallWithoutPurchaseUrl   | ペイウォールにウェブ購入 URL が設定されていません       | Adapty ダッシュボードでペイウォールが正しく設定されているか確認してください |
| AdaptyError.productWithoutPurchaseUrl   | プロダクトにウェブ購入 URL が設定されていません         | Adapty ダッシュボードでプロダクトの設定を確認してください                  |
| AdaptyError.failedOpeningWebPaywallUrl  | ブラウザで URL を開くことができませんでした             | デバイスの設定を確認するか、代替の購入方法を提供してください               |
| AdaptyError.failedDecodingWebPaywallUrl | URL のパラメータのエンコードに失敗しました              | URL パラメータが有効で正しい形式になっているか確認してください             |

## アプリ内ブラウザでウェブペイウォールを開く \{#open-web-paywalls-in-an-in-app-browser\}

:::important
アプリ内ブラウザでのウェブペイウォールの表示は、Adapty SDK v3.15 以降でサポートされています。
:::

デフォルトでは、ウェブペイウォールは外部ブラウザで開きます。

シームレスなユーザー体験を提供するために、アプリ内ブラウザでウェブペイウォールを開くことができます。これにより、アプリを切り替えることなく、アプリ内でウェブ購入ページを表示してトランザクションを完了できます。

これを有効にするには、`openWebPaywall` の `openIn` に `WebPresentation.BrowserInApp` を設定します：

```typescript showLineNumbers

try {
    await adapty.openWebPaywall({
        paywallOrProduct: product,
        openIn: WebPresentation.BrowserInApp, // default – WebPresentation.BrowserOutApp
    });
} catch (error) {
    console.error('Failed to open web paywall:', error);
}
```