メインコンテンツへスキップ
クイックサービスレストラン向け

メニューやプロモーションの変更を、公開日に即座に反映

キャンペーン開始時に、CIから注文アプリのWebレイヤーをupload。チャンネル機能で市場やブランドごとに配信し、パイロット運用から開始して、万が一注文機能に不具合が出た場合は即座にロールバックできます。

飲食店チームが live update を導入する理由

メニューやキャンペーンは、アプリのリリース更新よりも速く変化する

ストア経由の更新のみに頼る、リリース当日のバグという悪夢

期間限定のアイテムが指定日に公開される予定。しかし、公開日の朝、QAがアプリのメニューに表示されていないことに気づく。

修正はWebレイヤーで可能だが、ストア経由のプロセスでは新しいバイナリの作成とストア審査が必要になり、通常24〜48時間、時にはそれ以上かかる。

審査が通った後も、ユーザーはアップデートをインストールする必要があり、店舗のキオスク端末には別途アップデートの仕組みが必要になる。

プロモーションには期限がある

期間限定のオファーはキャンペーン開始と同時に始まらなければならない。Webレイヤーの修正をストアのリリースまで待つべきではない。

複数のブランドと市場

同じコードベースから、ブランドアプリや市場ごとに異なるメニュー、プロモーション、法的テキストが必要になることがある。

変更にはまずパイロット運用を

新しい注文フローは、全展開する前に、1つの市場または少数のテストデバイスで動かすべきだ。

ピーク時間帯にミスは許されない

ランチタイムに注文画面が壊れた場合、ストアのリリースに依存しない復旧手段が必要だ。

ユースケース

飲食アプリにおける Live Update の活用シーン

注文とチェックアウト

バイナリを更新せずに、Webレイヤーで注文・決済画面の修正やメニュー表示の変更を即座に反映できます。

ロイヤリティと特典

特典画面、ポイント表示、引き換えフローを更新。バックエンドに連動するポイント値の変更もここで行えます。

店舗検索とピックアップ

店舗情報画面、受け取り方法の案内、カーブサイド・ピックアップのオプションをWebレイヤーから更新可能です。

プロモーション

キャンペーン開始日に合わせ、バナーやオファーページ、キャンペーンへの導線を公開。まずは1つのチャネルでテスト運用も可能です。

店内のキオスク端末

終日稼働するキオスクアプリでも、定期的なチェック時や待機画面への遷移時にアップデートを適用できます。

マルチブランドアプリ

各ブランドのアプリを一つの Capgo 組織内で管理。アプリID、チャンネル、リリース履歴も個別に保持できます。

Capgo がレストランチームにもたらす価値

市場やブランドごとに、最適なタイミングでリリース

任意のタイミングでCIからアップロード

Capgo にリリーススケジューラーはありません。マージ時、手動実行、またはリリース用に設定したcronスケジュールなど、CIからアップロードをトリガーします。

  • GitHub Actions、GitLab CI、Bitbucket、Azure DevOps 用のガイド
  • Capgo API キーをCIのシークレットに保存
  • リリースに問題が発生した場合は、コンソールまたは CLI からロールバック
# .github/workflows/capgo-launch.yml
on:
  workflow_dispatch:
  schedule:
    - cron: '0 6 15 11 *' # 06:00 UTC on 15 Nov, your launch time

jobs:
  upload:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - run: npm ci && npm run build
      - run: npx @capgo/cli@latest bundle upload --channel production --delta
        env:
          CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
# one app ID per brand, same web codebase
npx @capgo/cli@latest bundle upload com.yourgroup.brand-a --channel production
npx @capgo/cli@latest bundle upload com.yourgroup.brand-b --channel production

一つのアカウントで複数のブランドを管理

各ブランドのアプリは Capgo 内で独立したアプリとして扱われ、独自のチャンネルとリリース履歴を持ちます。チームメンバーごとのロールを設定し、一つの組織で一括管理できます。

  • ブランドアプリごとに1つの組織
  • アプリIDごとにチャネルと履歴を分離
  • 組織・アプリ・チャネルへのアクセス権限を管理するロール

市場やテストグループ向けのチャネル

市場、地域、パイロットグループごとにチャネルを作成できます。アプリは、自己割り当てを許可するチャネルに setChannel() で参加し、チームはオーバーライドでデバイスを固定できます。

  • 市場、地域、または試験店舗向けのチャネル
  • デバイスは setChannel() またはデバイスオーバーライドで参加
  • 各チャネル内での段階的ロールアウト
// in the app, after the user or kiosk picks a market
import { CapacitorUpdater } from '@capgo/capacitor-updater'

await CapacitorUpdater.setChannel({ channel: 'market-uk' })
キオスクのアップデート
// capacitor.config.ts
CapacitorUpdater: { autoUpdate: 'onlyDownload' }

// kiosk app
let next
CapacitorUpdater.addListener('updateAvailable', ({ bundle }) => {
  next = bundle
})

// when the kiosk is back on its idle screen
if (next) await CapacitorUpdater.set({ id: next.id })

24時間稼働し続けるキオスク端末

デフォルトではアプリがバックグラウンドに回った際に更新が適用されますが、キオスク端末では稀なケースです。更新を自動でダウンロードし、端末がアイドル状態の時に適用することが可能です。

  • onlyDownload モードなら、bundle の準備ができ次第 updateAvailable を発行
  • アイドル画面で set() を呼び出して適用
  • デバイスをアプリに固定する Android キオスクモード用プラグイン
月間アップデート配信数
10億+
一般的な API レイテンシ
~50ms
接続デバイス数
9,000万+
Capgo を利用中のアプリ
4,700+

仕組み

Capgo で実現する、飲食店のメニュー変更デプロイ

特定の市場から開始するプロモーションの一般的なフローです。以下のコマンドはすべて Capgo CLI のドキュメントに基づいています。

  1. 市場やパイロットごとにチャンネルを作成

    セルフアサインを許可することで、ユーザーやキオスクが所在する市場のチャンネルにアプリが自動参加できるようにします。

    npx @capgo/cli@latest channel add market-uk --self-assign
    チャネルのドキュメント
  2. 市場の一部にプロモーションをアップロード

    リリース時に CI から実行します。ロールアウトにより、チャンネル内のデバイスの一部に bundle が送信され、残りのデバイスは安定版を維持します。

    npx @capgo/cli@latest bundle upload --channel market-uk --delta --rollout 10
    段階的ロールアウトのドキュメント
  3. 注文フローの確認後にプロモート

    注文機能が正常に動作することを確認したら、そのbundleをチャンネル内の全デバイスにプロモートします。

    npx @capgo/cli@latest channel set market-uk --rollout-promote
    段階的ロールアウトのドキュメント
  4. 混雑時にロールバック

    注文機能に不具合が発生した場合は、ロールアウトを安定版に戻すか、コンソールからチャンネル履歴から以前のbundleを選択してください。

    npx @capgo/cli@latest channel set market-uk --rollout-rollback
    ロールバックのドキュメント

Capacitor で構築されたアプリ

メニューやキャンペーンを頻繁に変更する飲食店アプリ

クイックサービスレストラン(QSR)のアプリなら、店舗の承認を待つことなく、プロモーション、店舗検索コンテンツ、注文に関する通知、地域限定キャンペーンへの導口などを即座に更新できます。

BURGER KING® アプリのアイコン アプリ

バーガーキング®

クーポン、店舗検索、キャンペーン機能を備えた飲食店アプリ。

Google Play インストール数
1,430万
ストア評価
3.9
Jack in the Box® - 注文アプリのアイコン フード & ドリンク

Jack in the Box® - 注文アプリ

メニュー、特典、決済ガイドを迅速に変更できる注文アプリ。

Google Play インストール数
270万
ストア評価
2.5
Denny's のアプリアイコン フード&ドリンク

Denny's

ロイヤルティとフード注文の導線を頻繁にブラッシュアップする必要があるレストランアプリ。

Google Play インストール数
170万
ストア評価
4.7

導入実績

Capgo を活用するチームの声

5.0/5 開発チームによる評価 9,400+ チーム数 レビューを読む

Kapil

NuTriQ 創業者

「本番環境のOTAアップデートを、App Storeの審査サイクル全体を待たずに即座に配信できることは、運用面で非常に大きな強みです。」

Sergiu Sのポートレート

Sergiu S

リードデベロッパー、drivolino GmbH

“Capgo Capacitor Updater pluginのおかげで、アップデートの配信方法が完全に変わりました。以前は何日もかかっていた作業が、今ではわずか数分で終わります。”

no-tone @ Webincode

Webincode 開発者

「Device IDを特定のグループに追加して、そのグループにだけ変更をプッシュできるのは本当に助かります。」

よくある質問

レストランチームからのよくある質問

タイミング、キオスク、市場、そして live update が変えられること。

メニューの公開をスケジュールできますか?

Capgo にはリリーススケジューラーはありません。任意のタイミングで、例えばスケジュールされた GitHub Actions ワークフローや、開店当日の手動実行などで、CIから upload をトリガーしてください。特定の期日まで新しいUIを非表示にしたい場合は、アプリ内またはバックエンドで制御してください。

GitHub Actions ガイド

アプリを閉じないキオスク端末では、どのようにアップデートを適用するのですか?

デフォルトモードでは、アプリがバックグラウンドに回った際にアップデートが適用されますが、キオスク端末では稀なケースです。autoUpdateを'always'に設定して定期チェック時(デフォルトは10分ごと)に適用するか、'onlyDownload'に設定してキオスクがアイドル画面に戻った際にset()を呼び出すようにしてください。

アップデート動作のドキュメント

市場やブランドごとに異なるバージョンを運用できますか?

はい。Capgoでブランドごとに独自のapp IDを割り当て、市場やパイロットグループごとに独自のchannelを設定してください。デバイス側で設定が許可されている場合はsetChannel()を使用してchannelに参加するか、デバイスのオーバーライドを通じて参加させることができます。

チャネルのドキュメント

プロモーション用のリリースで注文機能が壊れてしまった場合はどうすればよいですか?

段階的なロールアウトをロールバックするか、channelの履歴から以前のbundleを選択してください。新しいbundleが起動に失敗し、notifyAppReady()が一度も呼び出されなかった場合、デバイスは自動的に最後に動作していたbundleに戻ります。

ロールバックのドキュメント

live updateでメニューの価格を変更できますか?

価格は通常、バックエンドやPOSとの連携から取得されるため、そちらで変更してください。live updateで変更できるのは、メニューや価格を表示するWeb画面です。Native plugin、決済SDK、およびCapacitorのアップグレードには、ストア経由のリリースが必要になります。

ネイティブ互換性ドキュメント

自分のスケジュールでリリースしませんか?

トライアル期間中に、自分のアプリでマーケットチャネルとCI経由のアップロードを設定できます。