# デジタルスタンプカードの作り方：ブランディング、Apple・Google Wallet、AIジェネレーター、70種類以上のカスタマイズ

> ステップバイステップ：reloop で最初のプログラムを設定する方法 — ブランドカラーやスタンプアイコンから Wallet パスまで。3つの方法、70種類以上のオプション、ライブプレビュー。

Canonical: https://reloop.cards/ja/blog/digitale-stempelkarte-erstellen
Published: 2026-04-27
Updated: 2026-08-02
Author: reloop Team (candybytes GmbH)

---
export const metadata = {
  title:
    'デジタルスタンプカードの作り方：ブランディング、Apple・Google Wallet、AIジェネレーター、70種類以上のカスタマイズ',
  description:
    'ステップバイステップ：reloop で最初のプログラムを設定する方法 — ブランドカラーやスタンプアイコンから Wallet パスまで。3つの方法、70種類以上のオプション、ライブプレビュー。',
  publishedAt: '2026-04-27',
  updatedAt: '2026-08-02',
  category: 'How-To',
  tags: [
    'プログラムを作成',
    'Apple Wallet',
    'Google Wallet',
    'ブランディング',
    'AIジェネレーター',
    'スタンプカード',
  ],
  readingMinutes: 12,
};

**デジタルスタンプカード**を作成すると、実は裏側で2つの Wallet パスを同時に構築しています。Apple Wallet の `.pkpass` と Google Wallet のロイヤルティオブジェクトです。どちらも reloop ダッシュボードでの1つの設定から生成されます。この記事では、プログラムを設定する3つの方法すべてをご案内し、70種類以上ある設定オプションの一つ一つ — ブランディングやスタンプの仕組みから不正防止機能まで — を解説します。始める前に：ダッシュボードの全体像は[柱となる記事](/blog/merchant-dashboard-funktionen)でご確認いただけます。

## 最初のスタンプカードへの3つの道

最初のプログラムを作成する方法は3つあり、いずれも最終的には同じエディターにたどり着きます。

1. **ホームページ URL からの AIジェネレーター** — 最速の方法、約10秒
2. **手動で作成** — 完全なコントロール、空のフォーム
3. **サンプルからコピー** — 当社の[デモサンプル](/beispiele)の1つをテンプレートとして使用

### オプション1：AIジェネレーター

<Callout tone="tip" title="AIジェネレーターがうまく機能する場合">
ウェブサイトに明確なロゴ、ヘッダー／ヒーローセクションのブランドカラー、認識できる店舗名がある場合です。確立されたウェブプレゼンスを持つカフェ、ベーカリー、美容室、レストランで特にうまく機能します。非常にミニマルなサイトやグラフィックの多いサイトの場合は、CSS から直接色を抽出します — その場合、結果にばらつきが出ることがあります。
</Callout>

「AI で作成」をクリックし、ウェブサイトの URL を入力すると、システムがトップページをスクレイピングします。10〜15秒以内に、以下を含むドラフトが得られます。

- 店舗名（`<title>` またはメイン見出しから）
- プライマリカラー（Tailwind トークン、CSS 変数、または最も支配的なロゴの色から）
- アクセントカラー（補色または2番目に強い UI カラー）
- ロゴ（`<link rel="apple-touch-icon">` またはヒーローセクションから抽出）
- 業種の検出（「カフェ」「レストラン」「美容室」など）をプログラム名の候補として
- 業種に基づいた特典テキストの提案

ドラフトは `sessionStorage` に10分間キャッシュされます。すべてのフィールドが事前入力された通常のプログラムエディターに移動し — 保存する前にすべてを調整できます。抽出に起因する問題（たとえばロゴの欠落など）がある場合、エディターは警告を表示します。

### オプション2：手動で作成

明確なブランディングがすでにある場合や、店舗が公開されていない場合（インサイダー向けロイヤルティ、アーリーバードプログラム）は、「手動で作成」から始めます。空のエディターに移動し、フィールドを自分で入力します。所要時間：標準的なプログラムで約3〜5分。

### オプション3：サンプルからコピー

[reloop.cards/beispiele](/beispiele) には、6つのインタラクティブなデモパス（カフェ、レストラン、美容室、ベーカリー、ドッグサロン、フードトラック）があります。それぞれをテンプレートとして直接あなたのアカウントにクローンできます — 仕組みとブランドスタイルを引き継ぎ、あなたの店舗に合わせて調整するだけです。ゼロからのデザインは不要です。

## プログラムの基本

どの方法を選んでも、この4つのフィールドがすべてのプログラムの土台となります。

| フィールド | 説明 | 例 |
| --- | --- | --- |
| **プログラム名** | Wallet カードとダッシュボードに表示されるタイトル | 「コーヒーロイヤルティカード」 |
| **サブタイトル** | 任意のサブ見出し、パスにイタリック体で表示 | 「5杯目は無料」 |
| **特典テキスト** | カードが満杯になったときにお客様が得られるもの | 「コーヒー1杯サービス」 |
| **ホームページ URL** | パスの裏面のクリック可能なリンク、任意 | `https://cafe-milchschaum.at` |

### スタンプの仕組み

| フィールド | 範囲 / デフォルト | 意味 |
| --- | --- | --- |
| **スタンプ目標** | 2〜100（デフォルト：5） | 特典までに必要なスタンプ数 |
| **1日あたりの最大スタンプ数** | 1〜10（デフォルト：1） | カードごとの不正防止のための1日の上限 |
| **有効期限（日数）** | 0〜730（0 = 無期限） | 非アクティブ状態が X 日続くとスタンプが失効 |
| **ボーナス表示のタイミング** | `at_max` \| `before_max` | 特典状態を N で表示するか、すでに N–1 で表示するか |
| **ボーナス表示で追加を表示** | ブール値 | カウンターに「+1スタンプ」の接尾辞を表示（X/Y+1） |

<Callout tone="info" title="`at_max` と `before_max`">
**`at_max`**（デフォルト）：お客様は最後のスタンプを獲得したときにだけ特典画面を目にします。クラシックなモデルです。<br />
**`before_max`**：カードは早くも N–1 スタンプの時点で特典を表示します。最後のスタンプが引き換え時に押される場合に便利です（例：「5回目に押印され、かつ無料コーヒーがもらえます」— 4杯目の時点で特典を表示することで、次回が対象だと知らせます）。
</Callout>

## ブランディング：色、ロゴ、背景

ブランディングこそが、ありふれた「ロイヤルティカード」と、一目で**あなたの店舗**らしく見えるカードとの違いを生み出します。

<StampMockup
  merchant="Cafe Milchschaum"
  program="コーヒーロイヤルティカード"
  reward="5杯目のコーヒーが無料"
  brandColor="#5B3826"
  accentColor="#E8C180"
  stamps={2}
  required={5}
  emoji="☕"
  caption="ブランドカラーはエスプレッソ（#5B3826）、アクセントはキャラメル（#E8C180）、スタンプ絵文字は ☕"
/>

| フィールド | 形式 | 効果 |
| --- | --- | --- |
| **ブランドカラー** | 16進数 `#RRGGBB` | カードの背景。テキストのコントラストは自動的に選択されます |
| **アクセントカラー** | 16進数 `#RRGGBB` | スタンプのハイライト、特典のアイブロウ、パス内の CTA ボタン |
| **ロゴ** | URL（Firebase Storage、最大2 MB） | パスヘッダーに表示、Retina 向けに自動でスケーリング（1×、2×、3×） |
| **ストリップ背景** | URL、任意 | スタンプの背後の背景画像（例：カフェならラテの写真） |
| **ストリップオーバーレイモード** | `none` / `darken` / `lighten` / `brand-tint` | 背景画像をブランドカラーとどのように混合するか |
| **ストリップオーバーレイの不透明度** | 0〜80％（デフォルト：35％） | オーバーレイの強さ |

<Callout tone="tip" title="ロゴのヒント">
- **透明な背景の PNG** が最適です — ロゴの周りに白い枠が付きません<br />
- **正方形または 3:1 の横長** — どちらの形式も 160×50pt にスケーリングされます<br />
- **最低でも 2× の解像度**（例：320×100 px）で、Retina ディスプレイでも鮮明に保ちます<br />
- **ブランドカラーとのコントラストを確認** — 明るいロゴには暗いブランドカラーが必要で、その逆もまた然りです
</Callout>

## スタンプ表示：数字付きの円か、画像のみか

基本となる2つの表示モードがあります。

### `circle-number`（デフォルト）

番号付きのクラシックな円。未押印：アウトライン。押印済み：アクセントカラーで塗りつぶされ、ブランドカラーの数字が入ります。5〜10個のスタンプに適しています。

### `image-only`

スタンプアイコン（絵文字またはカスタム URL）のみで、数字はありません。未押印：グレースケール。押印済み：フルカラー。モダンで、ブティックブランドにとても洗練された印象を与えます。

| 追加オプション | 意味 |
| --- | --- |
| **スタンプアイコン URL** | カスタム画像（PNG、透明）、例：あなたのロゴマーク |
| **スタンプ絵文字** | 厳選されたパレット（☕、🥐、✂️、🐶 など）から、または任意の絵文字 |
| **スタンプアイコンの拡大縮小** | 50〜200％（デフォルト：100％）— 大きいほど目立ちます |
| **画像のみ：ゴールリングを表示** | `image-only` の場合：空のスロットの周りの進捗リングをオン／オフ |

### ゴールアイコン：「最後のスタンプ」を示すシンボル

デフォルトでは、特典の直前のスロットに星が表示されます。このアイコンは差し替えできます。

| フィールド | 効果 |
| --- | --- |
| **カスタムゴールアイコンを使用** | トグル：星の代わりに独自のアイコン |
| **ゴールアイコン URL** | 画像 URL（例：王冠にしたあなたのロゴ） |
| **ゴールアイコン絵文字** | あるいは絵文字（例：🏆） |
| **ゴールアイコンのアクセント着色** | アイコンをあなたのアクセントカラーで着色します |

<StampMockup
  merchant="Cafe Milchschaum"
  program="コーヒーロイヤルティカード"
  reward="5杯目のコーヒーが無料"
  brandColor="#5B3826"
  accentColor="#E8C180"
  stamps={5}
  required={5}
  state="reward"
  caption="特典状態：サンバースト、アイブロウテキスト、大きな特典を中心に配置。"
/>

## 特典画面：ご褒美の瞬間

カードが満杯になると、パスは**特典状態**に切り替わります。ここでは、進捗状態と同じくらい多くのカスタマイズオプションが用意されています。

| フィールド | 意味 |
| --- | --- |
| **特典背景 URL** | 特典状態のカスタムヒーロー画像（例：看板ドリンクの写真） |
| **特典背景色** | 画像がない場合のフォールバックとしての単色 |
| **特典オーバーレイモード** | 上記のストリップと同じ |
| **特典オーバーレイの不透明度** | 0〜80％ |
| **特典アイブロウテキスト** | 特典の上の小さな見出し要素（例：「🎉 おめでとうございます」） |
| **特典テキストの色** | 大きな特典の行の16進数カラー |
| **特典サンバースト** | 特典の背後の放射状のアニメーション — お祝い感を演出 |
| **特典アイブロウを非表示** | トグル：アイブロウを省略（ミニマルなデザイン向け） |
| **特典テキストを非表示** | トグル：テキストなしの画像のみ（画像だけですべてが伝わる場合） |

## Apple Wallet 連携：`.pkpass` 形式

Apple は Wallet パスに独自の **PassKit 形式** — 厳密に定義された構造を持つ署名済み ZIP ファイル — を要求します。reloop はこれをサーバー側で生成します。

- **Pass.json**：設定されたすべてのフィールド（プログラム、特典、カウンター、ジオフェンス、更新用ウェブサービス URL）を含む
- **ストリップ画像**（1×、2×、3×）— あなたのブランディングから `sharp` を使ってレンダリング
- **ロゴ**（1×、2×、3×）— 自動でスケーリング
- **アイコン**（1×、2×、3×）— 通知センター用
- **署名**：あなたの Pass Type 証明書を使用（reloop が管理）

パスジェネレーターをトリガーすると、次のパイプラインが実行されます。

1. エディターからのプログラムデータ → AppleWalletInput
2. Firebase Storage からのロゴ取得（8秒タイムアウト、15分 TTL キャッシュ）
3. すべての Retina サイズへの Sharp によるリサイズ
4. `renderAppleStripSet()` が、あなたの色、スタンプ、ゴールアイコン、サンバースト（特典状態の場合）でストリップ画像をレンダリング
5. Pass.json にすべてのフィールドが入力される
6. PassKit ジェネレーターが ZIP に署名
7. `.pkpass` が配信される

お客様は「Wallet に追加」をタップします — アプリのインストールは不要です。iOS は MIME タイプ `application/vnd.apple.pkpass` を自動的に認識します。

### APNs 経由のプッシュ更新

新しいスタンプが押されると、reloop はすぐに Apple のサーバーへ APNs プッシュを送信します。Apple はデバイス上のパスを起こし、パスは新しいデータをバックグラウンドで静かに読み込みます。**お客様は次にカードを開いたときに新しいスタンプ数を目にします** — アプリの更新も、再インストールも不要です。

## Google Wallet 連携：LoyaltyClass + LoyaltyObject

Google は API 中心のモデルを使用します。プログラムごとに **LoyaltyClass**（静的なブランディング）を、カードごとに **LoyaltyObject**（動的なスタンプ数）を作成します。スタンプが押されるたびに、バックエンドが PATCH リクエストを行い — Google がカードをユーザーのすべてのデバイスに自動で同期します。

### LoyaltyClass に含まれるもの

- IssuerName + ProgramName（ドイツ語と英語）
- HexBackgroundColor（あなたのブランドカラー）
- ProgramLogo（Firebase Storage URL）
- HeroImage（あなたのストリッププレビュー）
- TextModulesData（「使い方」の説明）
- ValueAddedModuleData（任意のプロモーションブロック、下記参照）
- ScreenShotEligibility（共有無効化がオンの場合は `INELIGIBLE`）
- MultipleDevicesAndHoldersAllowedStatus（共有無効化がオンの場合は `ONE_USER_ALL_DEVICES`）

### LoyaltyObject に含まれるもの

- スタンプカウンター（例：「3/5」）
- 現在のステータス（`ACTIVE`、または有効期限に達した場合は `EXPIRED`）
- バーコード（プログラムに応じて、静的な QR またはローテーションする TOTP）
- HeroImage（キャッシュバスター付き：スタンプ数ごとに変化するため、Google が新しい状態をすぐに認識します）
- LinksModuleData（ホームページ、カードをオンラインで表示、サポートメール、プライバシーポリシー、運営者情報）
- ValidTimeInterval（有効期限）
- MerchantLocations（緯度／経度を持つ最大10個のジオフェンス）

### Wallet ブロードキャスト経由のプッシュ通知

Apple とは異なり、Google は**ロック画面への直接的なプッシュ通知**を送信できます。ダッシュボードでヘッダーと本文を書き、対象プログラムを選択すると — 通知はすべての Google Wallet ユーザーに、ロック画面上のバナーとして直接表示されます。詳しくは[レポーティングのスポーク記事](/blog/loyalty-reporting-push-newsletter#wallet-push-broadcasts)をご覧ください。

## ライブプレビュー：入力したものがそのまま見える

エディターで入力している間、右側で **WalletSimulator** が動作します — これは [/beispiele](/beispiele) でデモパスに使っているのと同じコンポーネントです。Apple と Google を切り替え、すべてのスタンプ状態（0/5、1/5、…、5/5 + 特典）をスクラブして、各段階で色、アイコン、テキストがどのように振る舞うかをすぐに確認できます。

<DashboardMock variant="program-editor" caption="ライブプレビュー付きのエディター。左側での変更はすべて、右側のプレビューに 300 ms 未満でレンダリングされます。" />

ストリップ画像のレンダリングはサーバー側の `/api/wallet-preview/strip.png` で実行され、200 ms キャッシュされます — 高速なドラッグ入力（例：カラーピッカー）は1つのリクエストにまとめられ、動作がスムーズに保たれます。

## メールキャプチャ＆ロイヤルティ階層

上級プログラム向けの、特に強力な2つの機能です。

### メールキャプチャモード

| モード | 挙動 |
| --- | --- |
| `off` | メールキャプチャなし。カードは100％匿名です。 |
| `optional` | Wallet への保存後にメールフィールドが提示されます。インセンティブとしてのボーナススタンプも可能です。 |
| `required` | カードはメールがなければ保存できません。ニュースレターへの最大限のリーチ。 |

**メールキャプチャ特典スタンプ** = お客様がメールを入力したときにもらえるボーナススタンプの数。一般的な値：1〜2スタンプ。コンバージョンの推進力として非常に効果的です。

### ロイヤルティ階層（ブロンズ／シルバー／ゴールド）

Premium プランでは、**多階層プログラム**を構築できます。1枚のカードに階層があり、お客様はスタンプの列を1つ埋めるごとに次の階層へと進みます。`tierConfig` は、階層ごとに特典テキスト、しきい値、表示名を定義する JSON ブロックです。

例（架空のカフェの場合）：ブロンズ（コーヒー5杯 → 無料コーヒー）、シルバー（コーヒー15杯 → クロワッサン1個無料）、ゴールド（コーヒー30杯 → 名前入りのマイマグカップ）。既存顧客の維持に非常に強力です。

## 不正防止：ローテーションQRコード、NFCタップ、共有の無効化

不正利用を防ぐ3つのセキュリティ機能です。

### ローテーションQRコード（TOTP）

カード上の QR コードは30秒ごとにローテーションします。古いコードでのスタンプ試行はすべて失敗します。スクリーンショットや写真の共有を防ぎます。Business プラン以上で利用可能。TOTP は認証アプリと同じ標準規格です — 非常に安全です。

### NFCタップ・スタンプ

QR コードの代わりに、お客様はスマートフォンをカウンターの NFC タグにかざします。あなたもお客様もアプリを開くことなく、スタンプが即座に記録されます。必要なのは、当社が発行した NFC タグだけです。すべてのプランに含まれています。

### 共有の無効化

Google Wallet の場合：`screenShotEligibility: INELIGIBLE` および `multipleDevicesAndHoldersAllowedStatus: ONE_USER_ALL_DEVICES`。これは、カードを転送できず、スクリーンショットがパスの表示をブロックすることを意味します。カード共有に対する最大限の保護です。すべてのプランに含まれています。

### 標準の不正防止（すべてのプランで有効）

- HMAC-SHA256 で署名された QR トークン（60秒 TTL）
- プログラムごとの1日あたり最大スタンプ数の上限
- スタンプごとにスタッフ ID、時刻、IP を記録する監査ログ
- 匿名でのスタンプトリガーは不可 — ログインしたスタッフのみがスタンプを押せます

## 公開、QR コード、一時停止／終了

満足したら、**公開**をクリックします。プログラムのステータスが `active` に切り替わり、QR コードが生成され（`/s/[slug]/scan` の URL を QR 化）、以下ができます。

- **PNG としてダウンロード**（プリンター向けの標準形式）
- **SVG としてダウンロード**（可逆でスケーラブル、ポスターデザインに最適）
- ブラウザの印刷ダイアログから**直接印刷**
- **メールで共有**（ログイン不要のダイレクトリンク）

<Callout tone="info" title="QR 印刷の推奨事項">
- **最小サイズ：** 卓上スタンド用は 4×4 cm、ドアステッカー用は 8×8 cm<br />
- **高コントラスト：** 白背景に暗い QR、**決して**色付き背景に白い QR にしないこと<br />
- **クワイエットゾーン：** 周囲の余白として QR モジュールサイズの最低4倍<br />
- **試験テスト：** 印刷する前に、2つの異なるスマートフォン（iOS と Android）でスキャンする
</Callout>

### プログラムの一時停止または終了

- **一時停止** → 既存のカードはそのまま維持され、新しいスタンプはブロックされます。元に戻せます。
- **終了** → プログラムは読み取り専用になります。カードは現在の残高をまだ引き換えられますが、新しいスタンプは集められません。元に戻せません。
- **削除** → 関連するすべてのカードとスタンプ履歴を含む完全なハード削除。二要素の確認ダイアログ。

## テストカードの作成

本番稼働の前に、カスタマーワークフロー全体を自分で通しで試すべきです。プログラムエディターで**「テストカードを作成」**をクリックすると — 実際のカスタマー ID を持たない完全に機能するカードが得られ、自分でスタンプを押したり、引き換えたり、削除したりできます。テストカードはカードの割り当て枠にはカウントされず、レポートでは別途表示されます。

## まとめ：5分で作る最初のプログラム

順を追って進めれば、次のようになります。

1. **AIジェネレーター** → URL を入力し、ドラフトを確認
2. **プログラムの基本**を調整（名前、特典、スタンプ目標）
3. **ブランディング**を仕上げる（ロゴ、色、スタンプ絵文字）
4. **ライブプレビュー**を確認 — すべてのスタンプ状態をスクラブ
5. **不正防止**を選択（多くの場合、標準で十分です）
6. **公開** → QR を印刷 → 最初のカードを配布

<Callout tone="success" title="次のステップ">
- [プッシュとニュースレターで既存顧客を呼び戻す方法 →](/blog/loyalty-reporting-push-newsletter)<br />
- [すべてのダッシュボード機能の完全な概要 →](/blog/merchant-dashboard-funktionen)<br />
- [6つの業種のデモサンプル →](/beispiele)<br />
- [無料で始める →](/signup)
</Callout>
