---
title: "カスタムタグ"
description: "アプリからフローに値を渡し、テキスト要素に表示します。"
---

> **AI agents**: to search Adapty docs faster and with fewer tokens, install the Adapty skill. Claude Code (self-updating via plugin): `claude plugin marketplace add adaptyteam/adapty-skills && claude plugin install adapty-skills@adapty` — other tools: `npx skills add adaptyteam/adapty-skills --all`

カスタムタグとは、アプリから値を渡す[カスタム変数](onboarding-variables#custom-variables)のことです。変数の設定で **Value comes from outside the app** を選択すると、アプリは Adapty SDK を通じてその値を設定できます。たとえば、テキスト要素に「Coins:」とカスタムタグが含まれている場合、アプリがタグに「120」を渡すと、ユーザーには「Coins: 120」と表示されます。

カスタムタグを使用して以下を表示できます。

- **ユーザーの情報**: 「DragonSlayer42さん、おかえりなさい！」のような挨拶でのユーザー名。
- **ユーザーが持っているもの**: 連続ログイン日数やプレイヤーのレベル。
- **アプリが計算した値**: 大容量パックの割引価格や、以前のフローでのユーザーの回答から計算した[BMI](ios-flow-custom-tags#example-show-a-bmi-from-onboarding-answers)。

## 値とフォールバック \{#values-and-fallbacks\}

アプリは各値をカスタムタグの名前で識別します。値は常に文字列です。Adapty は文字列をフォーマットしたり翻訳したりしないため、フローに表示する前にアプリ側で人間が読める形式に変換する必要があります。たとえば、"1250.0" ではなく "1,250" を渡してください。

以下の場合、ユーザーにはカスタムタグの**初期値**がフォールバックとして表示されます。

- アプリがそのタグに値を渡していない場合。
- ユーザーがアプリを値を渡すバージョンにアップデートしていない場合。
- アプリのコード内の名前が、大文字・小文字を含めタグのフルネームと一致していない場合。
- 同じテキスト要素内の別のカスタムタグに値がない場合。その場合、そのテキスト要素内のすべてのカスタムタグが初期値を表示します。

タグの位置に何も表示しないようにするには、空の文字列を渡してください。Adapty は空の文字列を値として扱うため、フォールバックは表示されません。

## 1. カスタムタグを作成する \{#create-a-custom-tag\}

1. フロービルダーで Variables Variables パネルを開きます。
2. 新しい変数を追加します — Plus をクリックします。
3. 変数の **Name** を設定します。アプリのコードは大文字・小文字を含め、この名前を正確に参照する必要があります。
   - **使用できる文字**: ラテン文字（A〜Z、a〜z）、数字、`_`、`-` が使えます。タグをグループに入れるには、`user.streak` のようにグループ名とドットで始めます。
   - **予約済みの名前**: 大文字・小文字を問わず、`PRICE`、`TITLE`、`VALUE`、または `TIMER_` で始まる予約済みの名前は使用しないでください。
   - **一意性**: フロー内で重複しない名前を使用してください。
4. （任意）変数を区別しやすくするために、**Description** フィールドに説明を入力します。ビルダーで変数名にカーソルを合わせると説明が表示されます。
5. **Initial value** フィールドに、アプリから値が渡されなかった場合にユーザーに表示されるフォールバック値を入力します。
   - **どのユーザーにも通じる言葉**: 挨拶の `username` タグには `friend` と入力します。未認証ユーザーには「Welcome back, friend!」と表示されます。なお、初期値はローカライズできません。
   - **残高やカウントにはダッシュ**: 未認証ユーザーに不正確な残高を表示しないよう、ダッシュ（`—`）を入力します。

6. (**String** 変数のみ) **Value comes from outside the app** チェックボックスをオンにします。この操作は元に戻せません。また、**Value Type** が固定されます。
7. **Create variable** をクリックします。

変数はフロー固有です。別のフローでカスタムタグを使用するには、同じ名前で変数を作成してください。

### 変数をカスタムタグに置き換える \{#replace-a-variable-with-a-custom-tag\}

**Value comes from outside the app** チェックボックスは、変数を作成するときにのみ選択できます。[変換済みのペイウォール](convert-paywall-to-flow)からのカスタム変数など、通常のカスタム変数の代わりにアプリの値を表示するには、変数をカスタムタグに置き換えます。

1. フロー内の変数とそのすべての参照を削除する。
2. 同じ名前で[カスタムタグを作成する](#create-a-custom-tag)。
3. 変数を使用していた各テキスト要素に[カスタムタグを挿入する](#add-a-custom-tag-to-a-text-element)。

## 2. テキスト要素にカスタムタグを追加する \{#add-a-custom-tag-to-a-text-element\}

テキスト要素を選択します。**Content** セクションで Variables **Add variable** をクリックし、**Custom** タブでタグを選択します。

カスタムタグは[条件付きテキスト](onboarding-text#add-conditional-text)のすべての分岐に挿入できますが、**if** 条件では選択できません。

## 3. アプリから値を渡す \{#pass-the-values-from-your-app\}

アプリのコードでは、各カスタムタグの正確な名前（グループを含む）を使用する必要があります。たとえば、`user` グループに `streak` タグがある場合、そのタグの正確な名前は `user.streak` です。

セットアップコードはプラットフォームによって異なります：

- [iOS](ios-flow-custom-tags)
- [Android](android-flow-custom-tags)
- [React Native](react-native-flow-custom-tags)
- [Flutter](flutter-flow-custom-tags)
- [Unity](unity-flow-custom-tags)
- [Kotlin Multiplatform](kmp-flow-custom-tags)
- [Capacitor](capacitor-flow-custom-tags)

カスタムタグをテストするには、タグの値を設定するコードを追加した後、アプリでフローを開いてください。ビルダーのキャンバスおよび[デバイスでのプレビュー](paywall-device-compatibility-preview#preview-on-devices)には初期値のみが表示されます。Adapty モバイルアプリはカスタムタグの値を設定しません。

## 制限事項 \{#limitations\}

- **テキスト要素のみ**: カスタムタグはテキスト要素にのみ挿入できます。以下には挿入できません：
  - **Set variable** アクション
  - **Show alert** アクション
  - **Open URL** アクション
  - 入力プレースホルダー
- **カスタムタグに条件は設定不可**: カスタムタグを条件や条件付き表示で選択することはできません。アプリの値に基づいてユーザーが見る文章・要素・画面を決定するには：
  - **文章**: アプリのコードで文章を組み立て、タグの値として渡します。例えば、`coins_message` タグの場合、コインを持つユーザーには "You have 120 coins"、それ以外には "Get your first coins" を渡します。
  - **要素と画面**: [カスタム属性として値を設定](setting-user-attributes)し、その属性から作成した[オーディエンス](audience)に対して別のフローを表示します。
- **開いているフロー内の値を更新するSDKメソッドはありません**: フロー内でユーザーが入力した内容に基づいて結果を表示するには、[BMIの例](ios-flow-custom-tags#example-show-a-bmi-from-onboarding-answers)のように、結果を次のフローに渡してください。