<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>RevenueCat Blog</title>
    <link>https://www.revenuecat.com/jp/blog</link>
    <description>RevenueCatによるサブスクリプションアプリ、マネタイズ、成長についての洞察</description>
    <language>ja</language>
    <lastBuildDate>Tue, 31 Mar 2026 16:04:39 GMT</lastBuildDate>
    <atom:link href="https://www.revenuecat.com/jp/blog/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title><![CDATA[AI機能はサブスクアプリの利益率を圧迫している — その解決方法とは]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/ai-feature-cost-subscription-app-margins</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/ai-feature-cost-subscription-app-margins</guid>
      <pubDate>Tue, 31 Mar 2026 16:04:39 GMT</pubDate>
      <dc:creator><![CDATA[Alice Muir Kocourková]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[AI機能に潜む見えないコストと、なぜAIの利用を広告費と同じように扱うべきなのか]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/b20eb47f14418d41d14882141b22db2965be3b34-1600x850.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>現在、多くのサブスクリプションアプリがAI機能をできるだけ早く追加しています。そして、それは実際に効果を上げています。プロダクトのデモは印象的になり、エンゲージメントは急増し、その機能はすぐにアプリやユーザー体験の中心的な存在になります。しかし、その裏側では別のことが起き始めています。生成のたびに、プロンプトのたびに、「再生成」ボタンがクリックされるたびに、ユーザーにサービスを提供するコストが静かに（しかし急速に）増加しているのです。</p>
<p>最近、複数のAI搭載サブスクリプションアプリと関わる中で、このパターンに気づきました。本来促進したい行動――より多くの利用、より多くの探索、より多くのインタラクション――が、マネタイズとインフラが連動して設計されていない場合、利益率を圧迫してしまうのです。</p>
<p>AIは単なるプロダクト機能ではありません。<em>インフラ</em>です。したがって、リリース前にAIの利用量をARPU、チャーン、LTVと照らし合わせてモデリングしていない場合、<strong>エンゲージメントを高めながら、気づかないうちに経済性を損なっている可能性があります</strong>。</p>
<h2>ユーザーエンゲージメントはもはや無料ではない</h2>
<p>サブスクリプションビジネスは構造的に効率的です。少なくとも、これまではそうでした。コアとなるプロダクト体験を構築してしまえば、アプリ内で追加のサブスクライバーにサービスを提供するための限界コストは通常ほぼゼロに近く、スケールするほど経済性は複利的に向上していきます。（この点については、Thomas Petitが<em>「</em><a href="https://www.revenuecat.com/blog/growth/ai-hybrid-monetization/#h-why-now-the-variable-cost-of-ai-is-an-ignition-towards-hybrid-monetization"><em>なぜハイブリッドマネタイズがサブスクリプションアプリのデフォルトになるべきか</em></a><em>」</em>というブログで触れています。）</p>
<p>一方でAIは、この美しい構造を崩します。AI機能を導入することで、<strong>機能単位での変動コストが発生</strong>します。ユーザーがAI機能を利用するたびにトークンが消費され、推論エンドポイントが呼び出され、サードパーティのプロバイダーに計算コスト（AIモデルを動かすためのハードウェアリソース）を支払う必要があります。</p>
<p>要するに、コスト構造は利用量と切り離せなくなります。</p>
<p>これにより、微妙ながら重要な緊張関係が生まれます。これまで増やしてきたエンゲージメントそのものが、今度は<strong>追加コストを生む</strong>要因になるのです。エンゲージメントが高まるほどAIの呼び出しが増え、AIの呼び出しが増えるほどインフラコストが増加します。そして、収益がそれに比例して拡大しない限り、粗利率は徐々に低下していきます。</p>
<h2>アプリにおけるAIコストを削減する5つの方法</h2>
<p>では、これは何を意味するのでしょうか？AI機能は本質的に利益率を下げるものなのでしょうか？必ずしもそうではありません。AIの導入によって、サブスクリプションビジネスはクラウドインフラビジネスのように考える必要が出てきます。つまり、利用量はもはや成長指標であるだけでなく、コストを生み出す要因でもあるということです。</p>
<h3>1. AIインフラは自前で構築するのではなく、購入するべき</h3>
<p>最近、複数のAIプロダクトに関わるポートフォリオのOpsマネージャーと話した際、よくある問題が挙げられました。あるアプリで使用していた音楽生成APIが不安定になり、有料ユーザーでさえコア機能にアクセスできなくなったのです。その結果、クレームが増え、レビューは悪化し、マネタイズのパフォーマンスも評価しづらくなりました。</p>
<p>これが、AIが従来のアプリ機能と異なる点です。問題は「ユーザーがその機能を求めているか」だけではなく、「インフラがそれを十分に安定して提供できるか（かつ経済性を損なわないか）」という点にあります。</p>
<p>そのため、どのインフラを選ぶかは慎重に検討すべきです。大規模なAIプラットフォームを運営している場合は、大規模データの学習や独自モデルの構築が適していることもあります。しかし、ほとんどのサブスクリプションアプリにとっては、サードパーティのAPI（例：OpenAIのChatGPT、GoogleのGemini、AnthropicのClaude）を利用する方がはるかに適しています。特に、マネタイズや機能、<a href="https://www.revenuecat.com/blog/growth/product-market-fit-subscription-apps/">プロダクトマーケットフィット</a>をまだ検証中であればなおさらです。</p>
<p>自前でモデルを運用する場合、以下のような課題が発生します：</p>
<ul>
<li>GPUのコスト負担</li>
<li>DevOpsの複雑性</li>
<li>モデルメンテナンスのリスク</li>
<li>利用量に関係なく発生する固定的な月額コスト</li>
</ul>
<p>これは非常にリスクの高い状態です。そのため、多くの成長段階のサブスクリプションアプリにとっては、APIベースの基盤モデルを利用する方が合理的です：</p>
<ol>
<li>トークン課金により、AIコストを実際の利用量に応じた変動コストにできる</li>
<li>機能がインストールから課金へのコンバージョン、トライアル開始、ARPU、リテンションに寄与しなければ、その機能を停止すればコストも消える</li>
</ol>
<p>要するに：変動コストは戦略的な柔軟性を維持する。一方で固定インフラは、正当化できない実験に縛り付けることになります。</p>
<h3>2. AIの利用を広告費と同じように扱う</h3>
<p>サブスクリプションチームは通常、獲得コストに対して非常に敏感です。CAC、回収期間、<a href="http://revenuecat.com/blog/growth/creative-fatigue-mobile-apps-roas">ROAS</a>などを細かく追跡しています。しかし、その同じチームがAIの利用については軽視していることが多く、<strong>AIトークンもまた「支出の一種」である</strong>という認識が十分ではありません。</p>
<p>ユーザーがAI機能を使うたびに、そのコストは発生します。プロンプトが長くなればなるほど、レスポンスが長くなればなるほど、そしてユーザーが「再生成」を押す回数が増えるほど、コストは増加します。これを有料広告と同じように考えてください。インプレッションごとにコストが発生し、クリックごとにコストが発生するのと同様に、AIでもリクエストごとに費用がかかります。</p>
<p>あるAIチームは、クレジットシステムを変更した際にこの影響をすぐに実感しました。日ごとの制限が厳しい仕組みから、柔軟な月次クレジットへと移行したところ、生成量は一夜にして増加しました。一部のユーザーは初日だけで大量のクレジットを消費しました。機能自体は変わっていませんが、<strong>利用制限</strong>が変わったのです。そしてAIプロダクトにおいては、この<strong>利用制限がインフラコストに直結</strong>します。</p>
<p>優れたチームは、コストを前提にAI機能を設計します。レスポンスの長さを制限し、ユーザーが必要としない限り不要な説明を生成させないようにします。このような小さな判断が、想像以上に大きな影響を持ちます。たとえば、600語の説明を書かせるよりも、構造化された30語の回答を返させる方が、はるかに低コストです。</p>
<p>スケールした場合、こうした選択はAIコストを大きく削減します。数百万件のリクエストにおいては、これは小さな最適化ではありません。<strong>粗利に直結する重要なレバーとなります。</strong></p>
<h3>3. 必要十分な最も安価なAIモデルを使う</h3>
<p>もう一つよくあるコストの無駄は、すべてのAIリクエストを常に最も高性能なモデルに送ってしまうことです。一見安全に思えますし、最高のモデルが最良の体験を生むと考えがちです。しかし実際には、多くの場合それは単に請求額を最大化しているだけです。</p>
<p>すべてのタスクに高性能なモデルが必要なわけではありません。多くのAI機能は比較的シンプルな処理を行っています。たとえば、コンテンツのタグ付け、テキストの整形、情報の要約、短いアウトプットの生成などです。これらはより小型で安価なモデルでも十分に対応でき、ユーザー体験も変わりません。ユーザーはプレミアムモデルと中価格帯モデルの違いに気づかないかもしれませんが、インフラコストには確実に差が現れます。</p>
<p><strong>高価なモデルは、本当に高度な推論が必要な複雑なタスクに限定し、それ以外は安価なモデルを使うべきです。</strong>タスクごとに適切なモデルを選択することは、AI搭載アプリにおいて最も効果の大きいコスト最適化の一つです。</p>
<h3>4. AIの結果を再生成するのではなく再利用する</h3>
<p>ユーザーの行動は、多くのチームが想像している以上に反復的です。特に生産性系やユーティリティ系のアプリでは、ユーザーは同じようなことを何度も繰り返し求める傾向があります。似たプロンプト、似た変換、似たワークフローです。もしアプリが毎回まったく新しいAIレスポンスを生成している場合、すでに生成済みの回答に対して繰り返しコストを支払っている可能性があります。同様に、ユーザーは過去の会話を遡る代わりに、再び同じ内容を質問することもあります。</p>
<p>こうした場面では、可能な限り結果を再利用することが重要です。よく使われる出力を保存し、<strong>再利用可能な</strong>テンプレートを用意し、頻出リクエストに対しては事前にレスポンスを生成しておくことで、再生成せず即座に提供できます。こうした小さな改善でも大きな効果があります。仮にリクエストの20％だけでも再利用できれば、AIコストは大幅に削減できます。</p>
<h3>5. AI機能をマネタイズの背後に配置する</h3>
<p>すでに、多くのアプリが無料プランでのAI利用を制限し、高度な機能をサブスクリプションプランの背後に配置する動きが見られます。通常、計算コストに応じて価格帯ごとに機能が分けられています。このような変更はユーザーにとって特に驚くものではありませんが、ビジネスには大きな財務的インパクトをもたらします。</p>
<p>一部のアプリでは、少数のヘビーユーザーが過剰なインフラコストを生み出さないように、日次または月次の利用上限を設けています。たとえば、月あたり0.15ドルのコストがかかるヘビーユーザーが、その後29.99ドルの年額プランを購入すれば、経済的には問題ありません。しかし、そのユーザーが課金せずにAIを使い続けた場合、収益構造は静かに悪化していきます。</p>
<p>あるチームは、AIを活用した学習プロダクトにクオータ制を導入しました。新規ユーザーには初期クレジットが付与され、追加利用は有料パッケージによって解放されます。このようなモデルは、利用量とコストが相対的であることを前提としています。</p>
<p>また、別のAIアプリチームでは、従来の無料トライアルを提供しないという判断をしました。トライアルユーザーが大量の出力を生成し、APIコストを消費したうえで課金せずに離脱してしまうためです。その代わりに、一度限りのクレジット付与をテストし、無制限の推論コストを発生させることなくプロダクトの品質を評価できるようにしました。</p>
<p>無料のAIクレジットにおける本当のリスクは、単にユーザーがそれを使うことではありません。プロダクトが十分に良くなる前に使われてしまうことです。その場合、あなたはアクティベーションではなくチャーンにコストを投じていることになります。</p>
<p>これが、<a href="https://www.revenuecat.com/blog/growth/ai-subscription-app-pricing/">サブスクリプションアプリにおけるAIマネタイズ</a>が従来のサブスクリプション設計と根本的に異なる理由です。単に価値へのアクセスに価格を付けているのではありません。マネタイズや価格設計の変更は、より広いインフラ経済全体に影響を与えます。利用状況とリテンションの分析は極めて重要です。誰が何をどれくらい使っているのか、なぜ使っているのかを理解し、それに基づいて価格設計（P&amp;P）と計算コストをセットで見直していきましょう。</p>
<h2>AIのユニットエコノミクス</h2>
<p>AIの隠れたコストに関する議論は定量化が難しいものですが、すでにAI機能やアプリを運用している場合は比較的理解しやすくなります。ここでは、馴染みのあるサブスクリプション指標を使って考えてみましょう。</p>
<p>以下のような指標を持つサブスクリプションアプリを想定します：</p>
<ul>
<li>月次 <a href="https://www.revenuecat.com/blog/growth/subscription-app-expand-value/">ARPU</a>：$6.00</li>
<li>正規化された年次ARPU：$4.20</li>
<li>ユーザーベース全体のブレンドARPU：$5.10</li>
<li>月次チャーン：5%</li>
<li>粗利率（AI導入前）：85%</li>
</ul>
<p>ここでAI機能を導入します。平均的なAI利用ユーザーは月に10回リクエストを行い、各リクエストで1,000トークンを消費します。トークン単価は0.002ドルとすると、AIアクティブユーザー1人あたりのコスト（1,000トークンあたり）は0.02ドルになります。</p>
<p>MAUが300,000人で、そのうち15％がAI機能を利用している場合、AIアクティブユーザーは45,000人です。これにより、月間のAIコストは900ドル、年間では10,800ドルとなります。この水準であれば管理可能です。</p>
<p>しかし、利用量が増加し、より高価なモデルへのルーティングが増えた場合を考えてみましょう。AIアクティブユーザー1人あたりのコストが月0.10ドルに上昇すると、同じ45,000人でも月間コストは4,500ドル、年間では54,000ドルになります。</p>
<p>これが高いかどうかは様々な要因に依存しますが、最終的に重要なのは、AI機能がユーザーあたりのコスト増加以上にLTVを押し上げるかどうかです。つまり――</p>
<h3>AI機能はコストに見合う価値があるのか？</h3>
<p>年間100万インストールがあり、インストールから課金へのコンバージョン率が4％だとすると、有料ユーザーは40,000人になります。平均LTVが42ドルの場合、年間のサブスクリプション収益は168万ドルです。</p>
<p>ここでAI機能によってコンバージョン率がわずか0.5ポイント向上したとします。有料ユーザーは45,000人となり、5,000人の増加です。これは追加で210,000ドルの収益に相当します。</p>
<p>年間54,000ドルのAIインフラコストと比較すると、この機能はコストを大きく上回る収益を生み出しています。つまり、<strong>コストに見合う価値がある</strong>と言えます。</p>
<p>しかし、コンバージョンが<em>十分に</em>改善せず、リテンションも向上しない場合はどうでしょうか。その場合、<strong>54,000ドルを使って収益に影響しないエンゲージメント指標を伸ばしている</strong>だけになります。結果として、粗利率は低下し、MAUあたりの貢献利益も縮小し、その機能は高コストな“気をそらす要因”になってしまいます。</p>
<p>これが、AIが静かにサブスクリプションビジネスを壊していく仕組みです。</p>
<h3>誰もがAIに注目しているが、リテンションは改善されていない</h3>
<p>これは、AIがコストに見合うためにはコンバージョンを向上させる必要があるという意味でしょうか？理想的にはそうです。しかし、リテンションを改善することでも価値を生み出せます。</p>
<p>月次ARPUが6ドル、チャーン率が5％の場合、理論上の定常状態のLTVは約120ドルになります。ここでAIによってチャーンが4.6％に低下したとすると、LTVは約130ドルに上昇します。これは1ユーザーあたり10ドルの増加であり、20,000人のサブスクライバー全体では200,000ドルの追加価値となります。</p>
<p>元の数値に戻ると、AIの年間コストが54,000ドルであっても、わずかなリテンション改善（この例では0.4％の低下）でも生み出せれば、<strong>非常に高いリターンを持つ投資となり得ます</strong>。</p>
<p>ただし、新しいAI機能を追加する前に重要な点があります。リテンションの改善は、単なるエンゲージメントから推測するのではなく、コホートデータで実際に確認する必要があります。AIによる改善は、必ず<em>測定可能</em>でなければなりません。</p>
<h2>AIの価値を読み解く：AIコストは収益ダッシュボードに含めるべき</h2>
<p>RevenueCatはすでに、サブスクリプションのパフォーマンスを左右する主要な指標――ARPU、チャーン、LTV、コホートリテンション――を明確に可視化してくれます。しかし、それはパズルの半分に過ぎません。アプリにAI機能が含まれている場合、これらの指標と並行してAIインフラコストも分析する必要があります。</p>
<p>実務的には、AIの利用データとサブスクリプション指標を組み合わせて、利用量が利益率にどのように影響しているかを理解することを意味します。</p>
<p>具体的には、以下のような指標を把握しておくべきです：</p>
<ul>
<li>MAUあたりのAIコスト</li>
<li>AIアクティブユーザーあたりのAIコスト</li>
<li>課金ユーザーあたりのAIコスト</li>
<li>ARPUに対するAIコストの割合</li>
<li>ブレンドARPUに対するAIコストの割合</li>
</ul>
<p>これらの数値をサブスクリプション指標と並べて見ることで、AIがビジネスを強化しているのか、それとも静かに利益率を削っているのかを理解しやすくなります。</p>
<p>たとえば、ARPUが6ドルでAIコストが0.18ドルの場合、収益の約3％をAIに使っていることになります。これは問題ありません。しかし、ARPUが3.50ドルでAIコストが0.60ドルになると、その割合は17％に跳ね上がります。これは単なる機能コストではなく、構造的な利益率の問題です。</p>
<h3>ハイブリッドマネタイズにおけるブレンドARPU</h3>
<p>広告とサブスクリプションを組み合わせた<a href="https://www.revenuecat.com/blog/growth/hybrid-monetization-techniques/">ハイブリッドマネタイズモデル</a>では、分析はより複雑になります。AIコストがサブスクライバーだけでなく無料ユーザーにも広く適用される場合、MAUあたりのコストはブレンドARPUと比較して評価する必要があります。</p>
<p>数値で考えてみましょう。サブスクライバーのARPUが6ドル、広告ARPUが0.20ドル、MAU全体でのブレンドARPUが0.95ドルだとします。このとき、AIコストがMAUあたり0.06ドルであれば、収益の約6％に相当します。一方で、AIコストがMAUあたり0.20ドルであれば、ブレンド収益の20％以上を消費することになります。</p>
<p>これらの指標を分析することは、AIがどのようにマネタイズモデルを変化させているかを理解するうえで不可欠です。ハイブリッドモデルを採用しているチームは、ブレンドマージンを守るために特に厳密な管理が求められますが、AI機能を扱うすべてのチームにとって、利益率への影響を常に意識することが重要です。</p>
<h2>AI導入前のチェックリスト</h2>
<p>AI機能をリリースする前に、以下の項目について<strong>数値で</strong>答えられる状態にしておくべきです：</p>
<ul>
<li>どの指標を改善しようとしているのか？インストールから課金へのコンバージョン、トライアル開始、トライアルコンバージョン、リテンション、ARPUの向上のどれか</li>
<li>どの程度の改善を想定しているのか？コンバージョンが0.3ポイント上がるのか、チャーンが0.2ポイント下がるのか</li>
<li>アクティブユーザーあたり、課金ユーザーあたりのAIコストはいくらになる見込みか</li>
<li>想定される利用量において、AIコストはARPUの何％を占めるのか</li>
<li>どの利用量を超えると、粗利率が許容範囲を下回るのか</li>
</ul>
<p>これらの質問に答えられないのであれば、そのリリースは戦略的とは言えません。</p>
<h2>AIは経済性が成立してこそ機能する</h2>
<p>これまで長年にわたり、サブスクリプションアプリはシンプルな経済モデルの恩恵を受けてきました。エンゲージメントが高まるほど価値が増し、リテンションも向上し、コストはほとんど増えない――そうした構造でした。しかし、AIはそれを根本から変えました。</p>
<p>とはいえ、AIがサブスクリプションビジネスにとって悪いものだというわけではありません。多くの場合、リテンションの改善、コンバージョンの向上、LTVの拡大に寄与します。ただし、それらは保証された結果ではありません。<strong>チームがAIを「プロダクト機能」であると同時に「コストレイヤー」として扱った場合</strong>にのみ実現します。</p>
<p>チームはAIを、ユーザー獲得費用やインフラと同じように管理する必要があります。結果の再利用、安価なモデルへのタスク振り分け、マネタイズによるアクセス制御、そしてARPUやLTVといったサブスクリプション指標と並行したAIコストのトラッキングです。最も成功しているAIアプリは、単に機能を追加しているのではなく、利用量の経済性を中心にシステム全体を設計しています。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Androidのペイウォールコンバージョンギャップ：問題はトライアルではなく、ファネルの入口にある]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/android-paywall-gap</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/android-paywall-gap</guid>
      <pubDate>Tue, 31 Mar 2026 09:19:58 GMT</pubDate>
      <dc:creator><![CDATA[Jaewoong Eum]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[Androidのペイウォールファネルを分解し、ユーザーがどこで離脱するのか、そしてサブスクリプションオプションが実際にどのように選択されるのかを解説します。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/7337a333acfd1bc7a93d89149cf7f6ad3f8758c2-1600x850.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>Androidのサブスクリプションコンバージョン率は、iOSと比較するとプラットフォームの問題のように見えます。RevenueCatが<a href="https://www.revenuecat.com/state-of-subscription-apps/">「State of Subscription Apps 2026」レポート</a>のために11万5,000以上のアプリと160億ドル以上の収益を分析したところ、数値は明確でした。AndroidではDay 35時点のダウンロードから課金へのコンバージョン率の中央値は0.9％であるのに対し、iOSでは2.6％です。これはほぼ3倍の差です。この差を見ると、トライアルやユーザー層、あるいはAndroidユーザーの行動そのものに根本的な違いがあるのではないかと考えがちです。しかし、データはそうではないことを示しています。</p>
<p>同じデータセットをもう一段深く見ると、Androidのトライアルから課金へのコンバージョン率は32.5％、iOSは32.6％となっています。つまり、どちらのプラットフォームでも、一度トライアルを開始したユーザーは統計的にほぼ同じ割合で課金に至っています。ただし重要な注意点があります。Androidではトライアルを開始するユーザー層がより絞り込まれている可能性があります。Androidではそもそもトライアルが表示される機会が少ないため、トライアルを開始するユーザーはより購買意欲が高い傾向にあります。この選択バイアスが、両者のコンバージョン率が近づく理由の一部となっています。それでもなお、主要なレバーは明確です。Androidアプリは、この最初のステージにユーザーを十分に送り込めていません。このギャップを埋めるには、まずより多くのユーザーにトライアルを開始してもらうことから始まります。</p>
<p>本記事では、Androidのペイウォールファネルが2段階で構成されていることと、そのどこでユーザーが離脱しているのか、Google Playのオファーおよびタグシステムがどのサブスクリプションオプションをユーザーに表示するかをどのように制御しているのか、RevenueCatの<code>SubscriptionOptions</code>の選択ロジックがどのように機能し、どこでサイレントな設定ミスが発生するのか、ハードペイウォールとフリーミアムモデルに関するデータが何を示しているのか、そして<a href="https://www.revenuecat.com/docs/tools/experiments-v1">RevenueCat Experiments</a>を使ってこのギャップを体系的に解消する方法について解説します。</p>
<h2><strong>根本的な問題：2つのステージ、そのうち1つが壊れている</strong></h2>
<p>ダウンロードから課金に至るまでのユーザージャーニーは、2つの明確なステージに分かれており、それぞれ異なる挙動を示します。</p>
<p>最初のステージは「ダウンロードからトライアル開始まで」です。ユーザーはアプリをインストールし、ペイウォールに到達し、無料トライアルを開始するかどうかを判断します。2つ目のステージは「トライアル開始から課金まで」です。トライアルが終了し、ユーザーがサブスクライバーとして継続するかどうかを決定します。</p>
<p>RevenueCatのデータは、Androidにおいてこの2つのステージの挙動が大きく異なることを示しています。トライアルを開始したユーザーは32.5％の確率で課金に至り、iOSの32.6％とほぼ同じです。しかし、Androidアプリはこの最初のステージに送り込めているユーザー数が大幅に少ないのです。コンバージョンギャップの大部分は、このステージ1に存在しています。</p>
<p>これを具体的に示すデータがあります。トライアル開始の89.4％はインストール当日に発生しています。購買意欲の高いユーザーは、ダウンロード直後に行動します。一方で、インストール当日にトライアルを開始しなかったユーザーは、後から戻って開始することはほとんどありません。つまり、Androidにおける最初のペイウォール表示は、サブスクリプション収益の大半を決定づける瞬間なのです。その後のトライアル体験、オンボーディング、プロダクト自体のパフォーマンスは、AndroidでもiOSでもほぼ同等です。問題は、ユーザーがそもそもその瞬間に到達しているかどうかなのです。</p>
<h2><strong>ステージ1：ユーザーがトライアルを見るかどうかを決める要因</strong></h2>
<p>Androidでユーザーに無料トライアルが提示されるかどうかは、2つの要素によって決まります。それは「何を表示するか（ペイウォールの種類）」と「いつ表示するか（タイミング）」です。どちらも完全にコントロール可能です。</p>
<h3><strong>ペイウォールタイプの差</strong></h3>
<p>RevenueCatのデータでは、ペイウォールモデルごとにD35（35日間）のダウンロードから課金へのコンバージョン（最大1ヶ月のトライアル期間をカバーする測定ウィンドウ）が分析されています。コア機能にアクセスする前にサブスクリプションオファーとのインタラクションを必須とするハードペイウォールは、D35コンバージョンの中央値が10.7％です。さらに、上位10％のハードペイウォールアプリでは38.7％に達します。一方で、無料で一部機能を利用できるフリーミアムモデルの中央値は2.1％です。</p>
<p>これはコンバージョンにおいて約5倍の差でありながら、年間リテンションはほぼ同じです。ハードペイウォールは12ヶ月後に27％のサブスクライバーを維持し、フリーミアムは28％です。ほとんどのアプリカテゴリにおいて、ハードペイウォールの数値は大幅に優れています。もしあなたのプロダクトが1回のセッションで明確かつ即時に価値を提供できるのであれば、ハードペイウォールはほぼ確実に適したモデルです。一方で、フリーミアムが適しているのは、ネットワーク効果や価値の発見に時間がかかるカテゴリ――たとえばソーシャルアプリやコミュニティツールのように、収益化の前に広いユーザーベースの獲得が重要な場合です。</p>
<table>
<thead><tr>
<th><p>ペイウォールモデル</p></th>
<th><p>D35コンバージョン中央値</p></th>
<th><p>上位10％のD35コンバージョン</p></th>
<th><p>12ヶ月後のリテンション</p></th>
</tr></thead>
<tbody>
<tr>
<td><p>ハードペイウォール</p></td>
<td><p>10.7%</p></td>
<td><p>38.7%</p></td>
<td><p>27%</p></td>
</tr>
<tr>
<td><p>フリーミアム</p></td>
<td><p>2.1%</p></td>
<td><p>—</p></td>
<td><p>28%</p></td>
</tr>
</tbody>
</table>
<p>ただし、フリーミアムが後半のコンバージョンで優位性を示すケースが1つあります。6週目時点では、フリーミアムアプリはそのコホートの22.9％をコンバージョンさせるのに対し、ハードペイウォールは15.3％にとどまります。もしプロダクトが数週間かけて徐々に価値を発揮するような長い発見サイクルを持つ場合、フリーミアムはハードペイウォールでは取りこぼしてしまうユーザーを獲得できるのです。</p>
<h3><strong>ペイウォール表示タイミングの差</strong></h3>
<p>トライアル開始の89.4％がDay 0（初日）に集中しているという事実は、タイミングに対して明確な示唆を与えます。ペイウォールは最初のセッションで表示すべきです。最初のセッション以降は、効果が急速に低下していきます。</p>
<p>ただし、これはオンボーディングの前にペイウォールを表示すべきという意味ではありません。ユーザーがプロダクトの価値を理解する前にペイウォールを表示するアプリは、一般的にオプトイン率が低くなります。効果的なパターンはこうです：まず1つの強い価値体験（1つのタスクの完了、主要機能の提示、具体的なアウトプット）を提供し、その後にペイウォールを表示する。しかも、それをDay 0に行うことです。</p>
<h2><strong>見えない失敗：オファー設定ミスによってトライアルがサイレントに抑制される場合</strong></h2>
<p>ペイウォールの種類とタイミングが正しくても、Androidにはもう一つ見落とされがちなトライアル失敗の原因があります。それは、サブスクリプションオファー自体がユーザーに表示されていない可能性です。これはGoogle Playの設定に関する問題であり、エラーが表示されないまま発生することがあります。</p>
<h3><strong>Google Playにおけるサブスクリプションオファーの構造</strong></h3>
<p>Google Playのすべてのサブスクリプションは、ベースプランと、必要に応じて1つ以上のオファーで構成されます。オファーは、ベースプランの価格に先立つプロモーション価格のフェーズ（無料トライアル、導入価格、またはその両方）を定義します。オファーはBilling Library内では <code>ProductDetails.SubscriptionOfferDetails</code> として表現されます。</p>
<p>各 <code>SubscriptionOfferDetails</code> オブジェクトは、価格フェーズのリスト、オファータグのセット、そして購入を開始するためのオファートークンを持っています。価格フェーズは各ステージの価格と期間を示します。オファータグは、Play Console上でベースプランまたはオファー単位で設定する文字列です。Billing Libraryでは getOfferTags() によって両方のタグの集合（ユニオン）が返されるため、ベースプランに設定したタグは、その下のすべてのオファーにも自動的に適用されます。</p>
<p>RevenueCatがプロダクト情報を取得すると、各 <code>SubscriptionOfferDetails</code> は <code>GoogleSubscriptionOption</code> に変換されます。 <code>subscriptionOptionConversions.kt</code> における変換処理を見ると、以下のようになります：</p>
<pre><code class="language-kotlin">internal fun ProductDetails.SubscriptionOfferDetails.toSubscriptionOption(
    productId: String,
    productDetails: ProductDetails,
): GoogleSubscriptionOption {
    val pricingPhases = pricingPhases.pricingPhaseList.map { it.toRevenueCatPricingPhase() }
    return GoogleSubscriptionOption(
        productId,
        basePlanId,
        offerId,
        pricingPhases,
        offerTags,
        productDetails,
        offerToken,
        presentedOfferingContext = null,
        installmentPlanDetails?.installmentsInfo,
    )
}</code></pre>
<p><code>offerId</code> はベースプランでは null であり、オファー付きのオプションでは値が設定されます。 The <code>offerToken</code> はユーザーが「無料トライアルを開始」をタップした際に課金フローへ渡されるものであり、The <code>offerTags</code> にはPlay Consoleで割り当てたラベルが含まれます。</p>
<h3><strong>RevenueCatがデフォルトオファーを選択する仕組み</strong></h3>
<p>プロダクトに <code>GoogleSubscriptionOption</code> オブジェクトのリストが含まれると、RevenueCatはそれらを <code>SubscriptionOptions</code> コレクションにまとめ、 <code>defaultOffer</code> プロパティとして公開します。これは、明示的に別のオプションを選択しない限り、ペイウォール上に表示されるオプションです。</p>
<p><code>SubscriptionOptions.kt</code> における選択アルゴリズムは次のように動作します：</p>
<pre><code class="language-kotlin">public val defaultOffer: SubscriptionOption?
    get() {
        val basePlan = this.firstOrNull { it.isBasePlan } ?: return null

        val validOffers = this
            .filter { !it.isBasePlan }
            .filter { !it.tags.contains(RC_IGNORE_OFFER_TAG) }
            .filter { !it.tags.contains(SharedConstants.RC_CUSTOMER_CENTER_TAG) }

        return findLongestFreeTrial(validOffers) ?: findLowestNonFreeOffer(validOffers) ?: basePlan
    }</code></pre>
<p>このアルゴリズムでは、まず <code>rc-ignore-offer</code> または <code>rc-customer-center</code> のタグが付いたオファーを除外し、そのうえで最も長い無料トライアルを持つオファーを選択します。もし無料トライアルが存在しない場合は、最も低い導入価格のオファーが選択されます。これらの条件を満たすオファーが存在しない場合、プロモーションフェーズを持たないベースプランにフォールバックします。</p>
<p>このフォールバックこそが、サイレントに発生する失敗です。トライアルオファーに <code>rc-ignore-offer</code> のタグが付いている場合、正しいベースプランに紐づいていない場合、あるいはオファータグがまったく設定されておらずアプリ側がタグベースのフィルタリングに依存している場合、 <code>defaultOffer</code> はベースプランを返します。ペイウォール自体は正常に表示され、見た目も問題ありません。エラーも発生しません。しかし、トライアルは表示されていないのです。</p>
<h3><strong>ペイウォールが実際に何を表示しているかを確認する</strong></h3>
<p>他の最適化に着手する前に、まずプロダクトの <code>defaultOffer</code> が無料トライアル付きのオファーに解決されていることを確認してください。 <code>SubscriptionOption</code> インターフェースには、まさにこの確認のために <code>freePhase</code> プロパティが用意されています：</p>
<pre><code class="language-kotlin">val freePhase: PricingPhase?
    get() = pricingPhases.dropLast(1).firstOrNull {
        it.price.amountMicros == 0L
    }</code></pre>
<p><code>freePhase</code> が null でない場合、そのオプションには無料トライアルのフェーズが含まれていることを意味します。同様に、<code>introPhase</code> は有料の導入フェーズの有無を確認します。もし <code>defaultOffer</code> の <code>freePhase</code> と <code>introPhase</code> の両方が null であれば、プロモーションフェーズは一切表示されません。また、 <code>defaultOffer?.isBasePlan</code> を直接確認することもできます。これが true の場合、SDKは有効なオファーを見つけられず、ベースプランにフォールバックしたことを意味します。いずれにしても、Play Console上のオファー設定を確認してください。</p>
<p>この確認は、offeringsを取得した後にコード上で行うことができます：</p>
<pre><code class="language-kotlin">Purchases.sharedInstance.getOfferingsWith(
    onError = { error -&gt; \/* handle *\/ },
    onSuccess = { offerings -&gt;
        val currentOffering = offerings.current ?: return@getOfferingsWith
        val monthlyPackage = currentOffering.monthly ?: return@getOfferingsWith
        val subscriptionOptions = monthlyPackage.product.subscriptionOptions

        val defaultOffer = subscriptionOptions?.defaultOffer
        val hasFreeTrialOption = defaultOffer?.freePhase != null
        val hasIntroductoryOffer = defaultOffer?.introPhase != null

        Log.d(&quot;Paywall&quot;, &quot;Default offer: ${defaultOffer?.id}&quot;)
        Log.d(&quot;Paywall&quot;, &quot;Has free trial: $hasFreeTrialOption&quot;)
        Log.d(&quot;Paywall&quot;, &quot;Has intro offer: $hasIntroductoryOffer&quot;)
    }
)</code></pre>
<p>開発中にこれを実行し、出力結果がPlay Consoleで設定したオファー構成と一致していることを確認してください。もし <code>hasFreeTrialOption</code> が false で、トライアルが表示される想定だった場合、そのオファーは選択されていません。オファータグを確認し、オファーが正しいベースプランに紐づいていることを検証し、さらにそのオファーがPlay Console上で有効になっていることを確認してください。</p>
<h2><strong>注意すべき構造的な違い</strong></h2>
<p>トラッキングや実験に進む前に、AndroidとiOSの比較では完全には捉えきれない、プラットフォームレベルの違いを1つ押さえておく価値があります。</p>
<p>iOSでは、トライアル終了前にAppleがシステムレベルのプッシュ通知を送信し、ユーザーに有料へ移行することを知らせます。一方で、Google Playにはこれに相当するシステム通知は存在しません。つまり、iOSではトライアルから課金への重要なタイミングで、再エンゲージメントの仕組みがプラットフォーム側に組み込まれているのに対し、Androidにはそれがありません。Androidでは、このリマインドは完全にアプリ側の責任となります。アプリ内バナー、自前のバックエンドからのプッシュ通知、あるいはトライアル終了間際にユーザーが戻ってきた際に発動する再エンゲージメントフローなどで対応する必要があります。</p>
<p>この構造的な違いは、トライアル開始ユーザー数が大きく異なるにもかかわらず、トライアルから課金へのコンバージョン率が似て見える理由の一部を説明しています。iOSではコンバージョンのタイミングでプラットフォームによる後押しがあるのに対し、Androidでは同じ結果を得るためには明示的な実装が必要です。もしAndroidのトライアルから課金へのコンバージョン率がiOSより低い場合、その要因の一つとして、トライアル終了リマインダーがアプリ内に存在しないことが考えられます。</p>
<h2><strong>PresentedOfferingContextを使ったペイウォールパフォーマンスのトラッキング</strong></h2>
<p>オファー設定が正しく行われたら、次のステップは、どのペイウォール配置が最も多くのトライアル開始を生み出しているかを理解することです。RevenueCatの <code>PresentedOfferingContext</code> を使うことで、すべての購入に配置識別子を付与できるようになり、アプリ内のどの位置でペイウォールが表示されたかに基づいて分析をセグメント化できます。</p>
<p><code>PresentedOfferingContext</code> には3つのフィールドが含まれます：</p>
<pre><code class="language-kotlin">public class PresentedOfferingContext(
    public val offeringIdentifier: String,
    public val placementIdentifier: String?,
    public val targetingContext: TargetingContext?,
)</code></pre>
<p><code>offeringIdentifier</code> は、RevenueCatダッシュボード上のofferingを指します。 <code>placementIdentifier</code> は、その表示箇所に付けるために自分で定義する文字列で、たとえば<code>&quot;onboarding_paywall&quot;</code>、 <code>&quot;settings_upgrade&quot;</code>、 <code>&quot;feature_gate&quot;</code>などがあります。<code>targetingContext</code> には、RevenueCatのtargeting機能を使用している場合に、そのルールデータが含まれます。</p>
<p>購入を開始すると、このコンテキストはトランザクションとともに渡され、RevenueCatダッシュボードやWebhookイベント上に現れます。これにより、配置ごとのトライアル開始率やD35コンバージョンを比較し、どの表示箇所から優先的に最適化すべきかを判断できるようになります。</p>
<h2><strong>トライアル期間：見落とされがちな変数</strong></h2>
<p>オファーの可視性やペイウォールの種類に加えて、トライアル期間はトライアルから課金へのコンバージョンに測定可能な影響を与えます。RevenueCatのデータは明確なパターンを示しています：</p>
<table>
<thead><tr>
<th><p>トライアル期間</p></th>
<th><p>トライアルから有料へのコンバージョン</p></th>
</tr></thead>
<tbody>
<tr>
<td><p>4日以下</p></td>
<td><p>25.5%</p></td>
</tr>
<tr>
<td><p>17〜32日</p></td>
<td><p>42.5%</p></td>
</tr>
</tbody>
</table>
<p>より長いトライアルを提供しているアプリは、このデータセットにおいてトライアルから有料へのコンバージョンが約17ポイント高くなっています。ただし、これは相関関係であり、長いトライアルを提供するアプリは、単なる設定ではなく、意図的なプロダクト戦略として長いトライアルを採用している、生産性系やクリエイティブ系のツールである傾向があります。トライアル期間を延ばしたからといって、必ずしも17ポイントの改善が得られるわけではありません。それでもこのパターンは、価値が時間とともに積み上がるタイプのアプリにおいては、4日間のトライアルではユーザーが十分な体験を得る前に終了してしまう可能性があり、14日や30日のトライアルであればプロダクトが価値を示すための十分な時間を確保できることを示唆しています。</p>
<p>それにもかかわらず、このデータセットでは全トライアルの55％が4日以下となっており、前年の42％から増加しています。17日以上のトライアルを提供しているアプリはわずか5％にとどまっています。</p>
<p>もしあなたのトライアルから有料へのコンバージョン率が、Androidの中央値である32.5％を下回っている場合、トライアル期間はテストする価値があります。これは、新たにコードをリリースすることなく、RevenueCat Experimentsで検証できる高インパクトな変数の一つです。</p>
<h2><strong>RevenueCat Experimentsによる測定と改善</strong></h2>
<p>これまでに説明してきたすべての変数（ペイウォールの種類、タイミング、トライアル期間、オファー選択）は相互に影響し合っており、測定なしに最適解を導くのは困難です。何が効果的かは、プロダクト、ユーザー層、カテゴリによって異なります。</p>
<p><a href="https://www.revenuecat.com/docs/tools/experiments-v1">RevenueCat Experiments</a> を使えば、コードのリリースやバックエンド構築を行うことなく、これらの変数に対してA/Bテストを実施できます。RevenueCatダッシュボード上で、トライアル期間、デフォルトオファー、パッケージ構成などが異なるバリアントofferingを作成します。RevenueCatはユーザーをコントロール群とバリアント群にランダムに割り当て、トライアルからコンバージョンまでの行動を追跡し、D35コンバージョン、LTV、トライアル開始率をバリアントごとに可視化します。</p>
<p>実験を開始した後は、<code>CustomerInfo</code> 内の <code>EntitlementInfo.periodType</code> を通じて、ユーザーごとのトライアル状態を監視することができます：</p>
<pre><code class="language-kotlin">Purchases.sharedInstance.getCustomerInfoWith(
    onError = { error -&gt; \/* handle *\/ },
    onSuccess = { customerInfo -&gt;
        val premiumEntitlement = customerInfo.entitlements[&quot;premium&quot;]

        when (premiumEntitlement?.periodType) {
            PeriodType.TRIAL -&gt; {
                \/\/ User is in an active trial
                val trialEnds = premiumEntitlement.expirationDate
                showTrialExpirationReminder(trialEnds)
            }
            PeriodType.INTRO -&gt; {
                \/\/ User is in an introductory paid phase
            }
            PeriodType.NORMAL -&gt; {
                \/\/ User is a full subscriber
            }
            null -&gt; {
                \/\/ No active entitlement
                showPaywall()
            }
        }
    }
)</code></pre>
<p><code>periodType</code> は、ユーザーのサブスクリプションが現在どのフェーズにあるかを示します。これは、トライアル状態を考慮したUIを構築する際に役立ちます。たとえば、トライアル終了が近づいた際にバナーを表示したり、サブスクリプションのフェーズに応じてメッセージを調整したり、トライアル終了後に課金へ至らなかったユーザーに対して再エンゲージメント用のペイウォールを表示したりすることが可能になります。</p>
<h2><strong>まとめ</strong></h2>
<p>Androidにおけるコンバージョンギャップは、主にファネル入口の問題であり、その原因は特定可能です。AndroidとiOSの間に見られるD35のダウンロードから課金への約3倍の差は、プラットフォームの限界を示しているわけではありません。これは、オファー設定ミス、トライアル開始を抑制するフリーミアムモデル、そして遅すぎる、あるいは表示されないペイウォールといった要因が重なった結果です。さらに、構造的な違いも影響しています。iOSはトライアル終了前にシステムレベルの通知を送りますが、Androidにはそれがないため、トライアル終了付近での再エンゲージメントはアプリ側で明示的に実装する必要があります。</p>
<p>このギャップを埋めるための道筋は明確な順序に従います。まず、アクティブなofferingにおける <code>defaultOffer</code> が <code>freePhase</code> を持つオプションに解決されていることを確認してください。そうでなければ、他の変更を行う前にPlay Consoleのオファー設定を修正します。次に、フリーミアムモデルを採用している場合は、ハードペイウォールのバリアントで実験を行い、トライアル開始率と12ヶ月リテンションの両方を測定します。すでにハードペイウォールを採用している場合は、より長いトライアル期間をテストします。そして最後に、<code>PresentedOfferingContext</code>に <code>placementIdentifier</code> を追加し、どの表示箇所がトライアル開始に寄与しているかを把握できるようにします。</p>
<p>これらの変更はすべて測定可能です。RevenueCat Experimentsは推測に頼らずテストを行うための基盤を提供し、D35やトライアルから課金への指標が意思決定のシグナルとなります。</p>
<p>本記事では、Androidのペイウォールコンバージョン問題が2段階ファネルのステージ1に主に存在すること、Google Playのオファーおよびタグシステムがどのサブスクリプションオプションを表示するかをどのように決定しているか、RevenueCatの <code>SubscriptionOptions.defaultOffer</code> アルゴリズムがどのようにトライアルを選択し、どこでサイレントな設定ミスが起こり得るのか、ペイウォールモデルやトライアル期間に関するデータが何を示しているか、トライアルリマインダーに関するプラットフォーム間の構造的な違い、そしてRevenueCatのツールを用いた診断と改善方法について解説してきました。</p>
<p>ギャップがどこに存在するかを理解することで、何を構築すべきかが変わります。大半の作業はステージ1にあります。つまり、ユーザーにトライアルを「見せて」「開始してもらう」ことです。トライアルを開始したAndroidユーザーは、iOSユーザーとほぼ同じ確率で課金に至ります。重要なのは、ユーザーにその開始の機会を与え、トライアル終了前に課金へ進む理由を提供することです。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[10分でわかるサブスクリプションアプリの現状：2026年の教訓・トレンド・ベンチマーク]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/subscription-app-trends-benchmarks-2026</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/subscription-app-trends-benchmarks-2026</guid>
      <pubDate>Mon, 30 Mar 2026 18:51:46 GMT</pubDate>
      <dc:creator><![CDATA[Lorelei Whitman]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[世界最大のサブスクアプリデータセットから得られた重要なインサイト]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/86577d1aa23e4becdcdce1388a7416ff060ecd97-1600x850.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>毎年、私たちの「<a href="https://revenuecat.com/state-of-subscription-apps/">State of Subscription Apps</a>」レポートは、業界で何が変化しているのか――何が新しく、何が終わり、そしてこれから何が起ころうとしているのか――を理解することを目的としています。今年もデータセットはさらに拡大し、11万5,000以上のアプリ、そして総額160億ドルを超える収益を対象としています。そして、そのすべてのアプリのデータを分析しました。</p>
<p>昨年のレポートが大作だと思ったなら、今回は覚悟してください。今年は338ページにわたり、あらゆる指標、ベンチマーク、トレンドを網羅しています。</p>
<p>David Barnardの言葉を借りるなら、「多くのアプリが、莫大な金額を稼いでいる」ということです。</p>
<p>しかし、（驚くことに）もしあなたが（<a href="https://www.youtube.com/watch?v=UO0NQNfICwo">DavidやJacobのように</a>）すべてのページを読む時間がないのであれば、この要約はあなたのためのものです。さあ、しっかりついてきてください。</p>
<h2>1. サブスクリプションアプリの中間層は消滅した</h2>
<p>サブスクリプションアプリにおいて、成長はもはや連続的なものではありません。二極化しています。</p>
<p>2026年のデータは、アプリの成長が大きく分極化していることを示しています。これまでアプリビジネスにおいて、安全で健全と考えられていた安定成長（例：前年比5〜15％）という<strong>中間領域は、現在では足元から消えつつあります</strong>。</p>
<p>市場のダイナミクス――ユーザー獲得コスト、アルゴリズムの変化、プラットフォーム手数料、AIのユニットエコノミクス――は、今やトップパフォーマーを強く優遇するようになっており、モバイルアプリ経済はより広い意味での富の格差を反映する構造になっています。すなわち、成功する者はさらに成功し、インディー開発者は生き残るのに苦しんでいるのです。</p>
<h3><strong>データ：</strong></h3>
<ul>
<li><strong>上位四分位：</strong>サブスクリプションアプリの上位25％は、月次経常収益（MRR）を前年比で80％以上成長させた</li>
<li><strong>下位四分位：</strong>下位25％のアプリは、MRRが33％以上減少した</li>
<li><strong>格差：</strong>急速にスケールする勝者と、収益を失っているアプリの間に、113ポイントという巨大な差が生まれている</li>
<li><strong>2025年との比較：</strong>昨年のデータでは、上位5％と下位25％の間の収益格差が拡大しており（上位は2024年の200倍から400倍へ増加）、2026年のデータはこのトレンドを確認するとともに、成長率の観点から初めて定量化している</li>
</ul>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/56aaf1dd0b40c5090c456e55712d90a4a39ad912-1600x964.png" alt=""/><figcaption>月次経常収益（MRR）の前年比成長率（中央値、開発者本社所在地別）— State of Subscription Apps 2026</figcaption></figure>
<h3><strong>What next?</strong></h3>
<p>アプリチームはもはや「そこそこ良い」で満足することはできません。守りの余地はありません。もし中央値（5〜17％）の成長にとどまっている場合、下位四分位に落ち込み、埋もれてしまうリスクがあります。チームは維持モードから、積極的な成長最適化へとシフトする必要があります。</p>
<p><strong>→ 次のステップ：</strong><a href="https://www.revenuecat.com/blog/growth/the-subscription-value-loop-a-framework-for-subscription-app-growth/">アプリ成長のフレームワークである「Subscription Value Loop」について学びましょう</a></p>
<h2>2. ハードペイウォールはフリーミアムより5倍高いコンバージョン</h2>
<p>「ハードペイウォールはユーザー体験を損なう」という言説は、誰もが一度は耳にしたことがあるでしょう。しかし、その神話は覆されました。カテゴリ全体で見ると、35日後のトライアルから有料へのコンバージョンは、<strong>ハードペイウォールを採用しているアプリの方が5倍高く</strong>なっています。一般的な認識とは異なり、ハードペイウォールはユーザーを遠ざけたり、準備ができていない段階で購入を強制したりするものではありません。このような見方は、サブスクリプションに慣れたユーザーを過小評価しているに過ぎません。ユーザーは自分の意思で課金するタイミングを判断しています。現在では、ユーザーはハードペイウォールと積極的に向き合っており、その結果、アプリはより早く投資回収ができるようになっています。</p>
<p>「この選択（ハードペイウォール vs フリーミアム）はユニットエコノミクスを完全に変えます。同じ広告費でも、初日の収益は劇的に変わります。」— モバイルグロースコンサルタント Sven Jürgens</p>
<p>ペイウォールのタイプはコンバージョンに影響を与える一方で、長期的なリテンションはどちらのモデルでもほぼ同等になります。フリーミアムアプリは6週目以降も継続的にコンバージョンしており、最終的なコンバージョンの全体像は、想像よりも長期的なゲームであることを意味しています。</p>
<p>つまり、フリーミアムだからといって成功しないわけではなく、それを証明する成功事例も数多く存在します。しかしデータは明確に、ハードペイウォールの方がより高く、そしてより速くコンバージョンすることを示しています。2026年において、フリーミアムは安全な選択に見えるかもしれませんが、必ずしも最適な選択とは限りません。</p>
<h3><strong>データ：</strong></h3>
<ul>
<li><strong>コンバージョン：</strong>ハードペイウォールは35日時点のトライアルから有料へのコンバージョン率の中央値が<strong>10.7％</strong>であるのに対し、フリーミアムアプリはわずか<strong>2.1％</strong>にとどまり、約5倍の差がある</li>
<li><strong>リテンション：</strong>フリーミアムアプリは1年後に年間サブスクライバーの<strong>28％</strong>を維持している一方、ハードペイウォールアプリは<strong>27％</strong>であり、この差は統計的にほぼ無視できるレベル</li>
<li><strong>インストールあたり収益：</strong>ハードペイウォールアプリは、60日目時点のRPIがフリーミアムの8倍（3.09ドル vs 0.38ドル）</li>
<li><strong>2025年との比較：</strong>フリーミアムの35日後のコンバージョンは2025年から2.1％で<strong>変わっていない</strong>一方で、ハードペイウォールは約2％<strong>低下</strong>（2025年は12.1％）しており、全体的にコンバージョンへの慎重さが高まっていることを示唆している</li>
</ul>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/9baf6ffef2d8ee483700573021a17f0a3ed3eda7-1600x963.png" alt=""/><figcaption>ダウンロードから35日後の課金率（フリーミアム vs ハードペイウォール）— State of Subscription Apps 2026</figcaption></figure>
<h3><strong>次にやるべきことは？</strong></h3>
<p>ハードペイウォールに切り替えましょう（もし挑戦する勇気があるなら 😈）。ハードペイウォールは初期段階でROIを生み出し、その資金を成長に再投資することができます。フリーミアムモデルでユーザーとの信頼関係を築こうとしている場合、1年後にわずか1％のリテンション向上を得るために、ファネル上流の大きな収益機会を犠牲にしていることになります。この競争の激しい市場においては、リスクの高い選択です。</p>
<p><strong>→ 次のステップ：</strong><a href="https://www.revenuecat.com/blog/growth/how-top-apps-approach-paywalls/">優れたサブスクアプリがペイウォールで何を正しく行っているのかを理解しましょう</a></p>
<h2>3. ゼロ日目の「購入直後の後悔」ウィンドウ</h2>
<p>ここで意外な事実です：あなたの3日間トライアルは、実際には「1時間トライアル」です。そう、<strong>トライアル解約の55％はゼロ日目に発生</strong>しています。つまり、開発者が3日間の体験を設計している一方で、現代のユーザーは即座に価値が証明されることを求めているのです。</p>
<p>チームはもはや、ユーザーが数日かけてアプリの機能をじっくり試してから判断するとは考えられません。実際には、ユーザーはアプリのトライアルを衝動的な買い物のように扱っています。ペイウォールを通過するために登録し、すぐにコア機能を体験して評価し、その後、課金を避けるために解約します。最初の60分で「アハ体験」を提供できなければ、その時点でユーザーはすでに離脱しているのです。</p>
<h3><strong>データ：</strong></h3>
<ul>
<li><strong>ゼロ日目の解約：</strong>3日間トライアルにおけるすべての解約のうち、正確に<strong>55.4％</strong>がゼロ日目に発生している</li>
<li><strong>離脱の集中：</strong>3日間トライアルの解約の実に<strong>84％</strong>が、ゼロ日目から1日目の間に発生している</li>
<li><strong>2025年との比較：</strong>昨年は約51％の解約がゼロ日目に発生しており（今年は約4％増加）、ユーザーの「即座に解約する」傾向がさらに<strong>強まっている</strong>ことを示している</li>
</ul>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/e4fef1489f7a56271bbdda1428c87b8b81f75b62-1600x965.png" alt=""/><figcaption>トライアル解約率（日時別・トライアル期間別）— State of Subscription Apps 2026</figcaption></figure>
<h3><strong>次にやるべきことは？</strong></h3>
<p>オンボーディングフローを、最も重要なリテンション施策として扱いましょう。ユーザーが最初のセッションで「aha体験」に到達しなければ、すぐに自動更新をオフにしてしまいます。トライアル期間を見直してください――本当に3日間である必要がありますか？（これについては次で詳しく説明します。）トライアル中に解放する機能についても考えましょう。即座に価値を示すものは何か、逆に余計なものは何かを見極めることが重要です。価値を最短で証明するルートを特定し、それを設計してください。</p>
<p><strong>→ 次のステップ：</strong><a href="https://www.revenuecat.com/blog/growth/fix-onboarding-funnels/">グロースハックを追い求めるのをやめ、まずオンボーディングの改善方法を学びましょう</a></p>
<h2>4. 7日間トライアルはまだ健在<strong>（場合によっては）</strong></h2>
<p>サブスクリプションアプリ業界は短いトライアルに強く偏っていますが、実際のデータは何を示しているのでしょうか？7日間トライアルは本当に終わったのでしょうか？</p>
<p>結論から言うと、<em>そうではありません</em>。</p>
<p><strong>17〜32日のトライアルは、3日間トライアルと比べて70％高いコンバージョン</strong>を示しています（42.5％ vs 25.5％）。それにもかかわらず、<strong>46％のアプリが4日以下のトライアルへと移行</strong>しています。なぜでしょうか？グロースチームは、市場や経済的なプレッシャーの中で、短期間で収益を示すことを求められているからです。</p>
<p>「多くの開発者が3日間の無料トライアルを採用しているのはキャッシュフローのためです。30日後ではなく、3日で収益が欲しいからです。[あるいは] オンボーディングやペイウォールの実験を加速するために、コンバージョンデータをより早く取得したいという理由もあります。」 — <a href="https://www.youtube.com/watch?v=UO0NQNfICwo">David Barnard と Jacob Eiting（Sub Clubより）</a></p>
<p>短いトライアルはユーザーに迅速な意思決定を迫り、その結果として高い離脱率を招くことが多くあります（3日トライアルのゼロ日目解約率と長期トライアルの比較を参照）。一方で、長いトライアルはユーザーがアプリを日常習慣に組み込む時間を与え、誤って自動更新されることへの不安も軽減します。3日間トライアルはアプリチームにとって有用ではありますが、実際には短期的なダッシュボード上の成果（ドーパミン的な数値の上昇）のために、長期的なコンバージョンを犠牲にしているのです。</p>
<h3><strong>データ：</strong></h3>
<ul>
<li><strong>長期トライアルのコンバージョン：</strong>17〜32日のトライアルは、中央値で<strong>42.5％</strong>という非常に高いコンバージョン率を示している</li>
<li><strong>短期トライアルのコンバージョン：</strong>4日未満のトライアルは<strong>25.5％</strong>にとどまり、長期トライアルの方が約70％高いコンバージョンとなっている</li>
<li><strong>2025年との比較：</strong>昨年はトライアル期間が長期化する傾向にあったが、現在ではデータに反して、4日未満のトライアルの割合が2025年の42.1％から2026年には<strong>46.5％</strong>へと増加している</li>
</ul>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/7469afd269c12956d2c4e31aee1539931ae9ba31-1600x963.png" alt=""/><figcaption>トライアルから有料へのコンバージョン率（トライアル期間別）— State of Subscription Apps 2026</figcaption></figure>
<h3><strong>次にやるべきことは？</strong></h3>
<p>自分のカテゴリにおけるトライアルとリテンションのデータを深く分析しましょう。周囲の動向は参考にしつつも、それに縛られる必要はありません。トライアル期間を長くする実験を行い、コンバージョンやリテンションがどのように変化するかを確認してみてください。価値は最初にしっかり提示し、その上でユーザーに十分に体験する時間を与えることが重要です。</p>
<p><strong>→ 次のステップ：</strong><a href="https://www.revenuecat.com/blog/growth/7-day-trial-subscription-app/">あなたのアプリにとって最適なトライアル期間を見極めましょう</a></p>
<h2>5. 年額サブスクリプションは思っているほど確実ではない</h2>
<p>ユーザーが年額サブスクリプションを購入すると、開発者にとってはひと安心した気持ちになります。年額契約であれば、アプリの価値を証明するための12ヶ月があると考えるからです。丁寧に設計された各機能を示し、「来年もこのアプリを使い続けるべきだ」とユーザーに納得してもらうための12ヶ月がある、と思えるのです。</p>
<p>しかし、データは厳しい現実を示しています。<strong>ユーザーの3分の1以上が、最初の1ヶ月以内に自動更新をオフにしています</strong>。ユーザーは賢く、年額サブスクリプションを継続的な支払いとは捉えていません。今年分の一括支払いと考え、すぐに支出を守る行動を取ります。つまり、すでに見込んでいたYear 2の収益は、Year 1が本格的に始まる前に失われてしまうのです。</p>
<h3><strong>データ：</strong></h3>
<ul>
<li><strong>1ヶ月の解約：</strong>最初の1ヶ月だけで、年間サブスクリプションの解約全体の<strong>35％</strong>を占めている</li>
<li><strong>解約の推移：</strong>1ヶ月目の急増後は、年間の中盤では解約率が3〜10％まで低下し、その後12ヶ月目（更新前）に再び増加する</li>
<li><strong>2025年との比較：</strong>2025年には年間サブスクライバーの約56％が1年以内に解約していたが、2026年には約72％へと<strong>悪化</strong>している。ただし、1ヶ月目の解約スパイク自体は両年でほぼ同程度である</li>
</ul>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/9cda8a91746aa91f406d4c5702d2da78443560e8-1600x962.png" alt=""/><figcaption>年間サブスクリプションの解約推移 — State of Subscription Apps 2026</figcaption></figure>
<h3><strong>次にやるべきことは？</strong></h3>
<p>アプリチームは、ユーザーが年額サブスクリプションを「忘れてくれる」ことに頼ることはもはやできません。2年目をめぐる戦いは、1週目から始まっています。年間更新を勝ち取るための時間は11ヶ月もあるわけではなく、最初から自動更新をオフにしないようユーザーを事前に納得させる必要があります。そのためには、ダウンロード直後から価値を徹底的に強化して伝え、最初の2ヶ月間にわたってウィンバックキャンペーンを実施し、ユーザーが自動更新を再びオンにするよう促すことが重要です。ユーザーが最も関与している初期段階で働きかける必要があります。</p>
<p><strong>→ 次のステップ：</strong><a href="https://www.revenuecat.com/blog/growth/annual-subscriptions-apps-pros-cons/">年額サブスクリプションのメリットとデメリットを理解</a>し、その上で <a href="https://www.revenuecat.com/blog/growth/how-to-increase-your-annual-subscription-uptake/">年額プランの採用率を高める方法を学びましょう</a></p>
<h2>6. <strong>Google Playの“見えない税金”</strong></h2>
<p>Android開発者にとって、成長は実はエンジニアリングの問題でもあります。Google Playにおける解約の31％は、意図しない決済エラーによるものであり、App Store（14％）の2倍以上に達しています。</p>
<p>アプリがサブスクライバーを失うと、その原因は通常、プロダクトの機能や価格設定にあると考えられがちです。しかしAndroidアプリの場合、解約の約3分の1はユーザーがアプリを嫌ったからではありません。単にクレジットカードの失敗、有効期限切れ、または決済拒否が原因であり、アプリ側の課金インフラがそれを適切に回復できなかっただけなのです。</p>
<p>これは取りこぼされている収益です。成長は広告だけの問題ではありません。Google Playのエコシステムにおける技術的な“漏れ”を、より良いリトライロジックやグレース期間によって補うことが重要なのです。</p>
<h3><strong>データ：</strong></h3>
<ul>
<li><strong>Google Playの決済エラー：</strong>Google Playにおけるサブスクリプション解約のうち、実に<strong>31％</strong>が決済エラーによるもの</li>
<li><strong>App Storeとの比較：</strong>App Storeでは、決済エラーが占める割合はわずか<strong>14％</strong></li>
<li><strong>2025年との比較：</strong>Google Playの決済エラーは2025年の28.2％から今年は31％へと<strong>悪化</strong>している。一方でApp Storeは<strong>改善</strong>しており、決済エラーは1.1％減少（2025年は15.1％、2026年は14％）している</li>
</ul>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/5e983b379fe6380d7e3f752bd0d7dc7304bcdd60-1600x967.png" alt=""/><figcaption>解約理由（アプリストア別）— State of Subscription Apps 2026</figcaption></figure>
<h3><strong>次にやるべきことは？</strong></h3>
<p>Androidユーザーが一定数いる場合、最もROIの高い施策は、督促（dunning）プロセス（決済リトライ）の最適化とグレース期間の有効化です。これを適切に実施すれば、新たにユーザーを獲得することなく、失われた収益の15〜20％をほぼ即座に回収することができます。</p>
<p><strong>→ 次のステップ：</strong><a href="https://www.revenuecat.com/blog/growth/win-back-campaign-examples-ideas/">離脱したサブスクライバー向けのウィンバックキャンペーンを設定しましょう</a></p>
<h2>7. <strong>AIのパラドックス：獲得は強いが、リテンションは悪夢</strong></h2>
<p>AIは驚くほど売れますが、定着しません。AI搭載アプリは<strong>ユーザーあたりの収益が41％高い</strong>一方で、<strong>非AIアプリと比べて36％も速く解約</strong>されます。問題はユーザーにAIアプリをダウンロードさせることではありません（実際、ユーザーはAIに対してお金を払う意思があります）。課題は、彼らを継続的に利用させ続けることです。</p>
<p>vibe codingの盛り上がりの中で、新しいアプリが市場を埋め尽くしていくのを既存の開発者が見守る状況においても、データはAIアプリが長期的な勝負にまだ適していないことを示しています。AI機能はトライアル収益を大きく押し上げていますが、多くのAIアプリはプロダクトマーケットフィットの深刻な不足に直面しています。ユーザーはAIツールを試すためにプレミアム価格を支払うことには前向きですが、実際に使い始めると、その価格に見合う長期的な価値を見出せていません。</p>
<p>確かに、vibe codingによってアプリは素早くリリースできます。AI機能はファネル上流で強力な集客要因になります。しかし、それが下流でも同じユーザーを維持できることを意味するわけではありません。ユーザーベースを持続できる保証にもなりません。</p>
<p>経験豊富な開発者には依然として優位性があります。それは「持久力」です。彼らはアプリを継続的に改善し、ユーザーとの信頼関係を築き、収益を成長させる方法を知っています。これこそが、成功するアプリとそうでないアプリを分ける本当の差です。誰が最も速くアプリを作れるか、どんなAI機能を持っているか、人間が書いたコードかエージェントが書いたコードか、といったことではありません。</p>
<h3><strong>データ：</strong></h3>
<ul>
<li><strong>AIプレミアム：</strong>AIアプリは非AIアプリと比較して、1年目の実現LTVが<strong>41％</strong>高い（中央値：30.16ドル vs 21.37ドル）</li>
<li>解約の問題：高い収益にもかかわらず、AIの月額プランは12ヶ月間のリテンションが従来のアプリより<strong>36％低い</strong></li>
<li><strong>2025年との比較：</strong>AIアプリの12ヶ月後の課金ユーザーリテンションは、App Storeで9.2％、Google Playで11.5％と、それぞれのカテゴリにおける従来アプリと同程度だった。しかし2026年ではリテンションが大きく低下しており、AIアプリが主流化し、ユーザーがより長い期間で評価するようになった後に顕在化した問題であることを示唆している</li>
</ul>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/6a1f2fe051f16fe794e592c1782e6312e45948b9-1600x962.png" alt=""/><figcaption>12ヶ月後の継続サブスクライバー（AI vs 非AI）— State of Subscription Apps 2026</figcaption></figure>
<h3><strong>次にやるべきことは？</strong></h3>
<p>速くリリースすることや、AIの話題性に頼るだけでは不十分です。アプリにAIを組み込むのであれば、その収益増加を活用して、本当に価値のあるユーザー体験と堅牢なバックエンドを構築しましょう。新規性や一発ネタのようなAI機能に依存してはいけません。それらは数ヶ月で解約されてしまうだけです。既存の成功しているアプリからリテンションや成長の学びを得て、それをAIによって迅速に実現することが重要です。長期的に勝つのは、AIか非AIかではなく、AIと人間の専門性をどれだけうまく活用できるかにかかっています。</p>
<p><strong>→ 次のステップ：</strong><a href="https://www.revenuecat.com/blog/growth/product-market-fit-subscription-apps/">ユーザーに提供しているコアバリューを見直し、プロダクトマーケットフィットを確立しましょう</a></p>
<h2><strong>2027年に向けて</strong></h2>
<p>2026年の「State of Subscription Apps」レポートのデータは、アプリ業界における新たな変化を浮き彫りにしています。毎月14,000以上の新しいアプリが登場していることや、平均的なアプリの収益の安全圏が急速に崩れていることなどがその例です。とはいえ、これらのトレンドの多くはまったく予想外というわけではありません。Googleの課金に関する問題は数年前から顕在化しており、トライアル期間とコンバージョンの関係も新しい話ではありません。しかし2026年のデータが明確に示しているのは、<strong>アプリ開発者はこうした蓄積された変化や既知の課題を、もはや無視できない</strong>ということです。</p>
<p>「そこそこ良い」では、もはや十分ではありません。トップアプリが急速に収益を伸ばしている一方で、下位四分位のアプリは同じスピードで収益を失っています。ユーザー価値を中心に設計され、明確な意図を持ってマーケティングされているサブスクリプションアプリは、すでにエコシステム内での地位を確立しています。そしてその成功は時間とともに積み重なっていきます。一方で、その他のアプリは残されたわずかな機会を奪い合う状況に置かれています。あとは、2027年のレポートに向けて、自分たちがどちら側に立つのかをチームが決断するだけです。</p>
<aside class="tip"><strong>Dig into the data yourself</strong><p><a href="https://revenuecat.wpenginepowered.com/sosa-26-insights/">こちらをクリックして、「State of Subscription Apps 2026」の完全版レポートをオンラインで閲覧するか、PDFをダウンロードしてください。</a></p></aside>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[なぜ無料トライアルはもはや意味をなさないのか（そして代わりに試すべきユーザー獲得戦略）]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/free-trials-dont-make-sense-anymore</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/free-trials-dont-make-sense-anymore</guid>
      <pubDate>Mon, 30 Mar 2026 17:12:04 GMT</pubDate>
      <dc:creator><![CDATA[David Vargas]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[短期トライアル、AIコストの増加、そしてWebファネルの普及が、UAチームに無料トライアルの見直しを迫っている理由]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/eadfbca96802d534695bca532a17ddaa563cf13c-1600x850.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>サブスクリプションアプリが普及し始めて以来、無料トライアルは多くのユーザー獲得（UA）マーケターにとって基盤となる手法であり、実際の長期的な購読者を獲得するための主要なプロキシイベントとして機能してきました。しかし、この手法も業界の他の多くの要素と同様に、AIやいわゆる“vibe-coding”の影響によって変化しています。現在では、無料トライアルを最適化対象としたキャンペーンの運用はこれまで以上に難しくなっています。その主な理由は、激化する競争と、<a href="https://www.revenuecat.com/glossary/#trial-conversion-rate">トライアルから課金へのコンバージョン率</a>の全体的な低下です。</p>
<p>「<a href="http://revenuecat.com/report">State of Subscription Apps 2026</a>」が示すように、データは長いトライアルの方が有利であるにもかかわらず、トライアル期間は3日程度へと短縮される傾向が強まっています。実際、17日以上のトライアルは70％高いコンバージョン（42.5％ vs 25.5％）を示しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/e46361b1b375545bb95370a7dae253ab49d96d69-1766x1072.png" alt=""/><figcaption>トライアルから有料へのコンバージョン率（トライアル期間別）— State of Subscription Apps 2026</figcaption></figure>
<p>この大きな差があるにもかかわらず、現在ではほぼ半数のアプリが4日以下のトライアルを採用しています。これは、より早い収益回収と短いペイバック期間を求める動きによるものであり、UAの観点から見て収益性を改善するための選択です。</p>
<p>これは偶然ではありません。AIは市場全体を大きく変えました。AI技術の利用には変動的かつ上昇するコストが伴うため、開発者やパブリッシャーはできるだけ短期間で<a href="https://www.revenuecat.com/blog/growth/subscription-app-expand-value/">高いARPU（ユーザーあたり平均収益）</a>を実現する必要に迫られています。そうでなければコストを回収できず、ビジネスの持続が困難になります。その結果、アプリ自体がマーケティング不可能となり、<a href="https://www.revenuecat.com/blog/growth/product-market-fit-subscription-apps/">プロダクトマーケットフィット</a>（PMF）の達成もこれまで以上に難しくなっています。</p>
<p>さらに、<a href="https://www.revenuecat.com/blog/growth/web-to-app-funnels/">Web-to-Appキャンペーン</a>が<a href="https://www.revenuecat.com/webinars/signal-engineering-how-to-optimize-ad-campaigns-with-smarter-events/">シグナル設計</a>において重要な役割を果たしている現状を考えると、「無料トライアルはもはやあまり意味をなさない」と結論づけることもできます。では、それは本当に正しいのでしょうか？私はその見方には一定の真実があると思います。ただし、それは<strong>無料トライアルが完全に終わったという意味ではありません</strong>。より高度な形に進化した「トライアル的なコンバージョンイベント」を活用する余地はまだあります。</p>
<p>その具体像に入る前に、まずはなぜ無料トライアルがこれほどサブスクリプションアプリで普及したのか、その背景を見ていきましょう。</p>
<h2>無料トライアル：購入に最も近いプロキシイベント</h2>
<p>タイトルの通り、無料トライアルは多くの企業のUA戦略の基盤となってきました。その理由はシンプルで、<strong>無料トライアルは「購入に最も近いイベント」だからです</strong>。さらに、このイベントはユーザーの購買意欲をフィルタリングしつつ、広告ネットワークが効率的に最適化するために必要なボリュームも確保できます。</p>
<p>AIが存在せず、アプリの選択肢も限られていた時代には、無料トライアルはユーザーに課金を促す有効な手段でした。パブリッシャーはプロダクトやUXの力に大きく依存し、トライアルからのコンバージョンを実現していました。しかし、現在は状況が変わっています。今では、<strong>サブスクリプションへ直接誘導する</strong><a href="https://www.revenuecat.com/glossary/#hard-paywall">ハードペイウォール</a><strong>が増え</strong>ており、データによるとフリーミアムアプリと比べて初期収益がほぼ2倍に達するケースもあります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/85276ab2cb071f6f9a16ad95fff28f93ce1768f3-2048x1233.png" alt=""/><figcaption>ダウンロードから35日後の課金率（フリーミアム vs ハードペイウォール）— State of Subscription Apps 2026</figcaption></figure>
<p>この無料トライアルからのシフトは、2024年と2026年のレポートを比較すると明確に表れています。すべてのカテゴリにおいて、<strong>トライアルを提供しない戦略が14％増加</strong>しており（2024年は28％、2026年は32％）、無料トライアルを使わない選択が広がっています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a1607218d53ced28cb35226e1972d9b8977d8781-978x594.png" alt=""/><figcaption>トライアル戦略（2024年）— State of Subscription Apps 2024</figcaption></figure>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/b6060d9f6b9788baa8ece6ad5e81aac6e2a72878-1764x1068.png" alt=""/><figcaption>トライアル戦略（カテゴリ別）— State of Subscription Apps 2026</figcaption></figure>
<p>このような急速な変化の中で、パブリッシャーは新しい現実に適応する必要があります。ChatGPTが月額20ドルの支払いを一般化したことで、ユーザーの支払いに対する心理も変化しました。そして、その変化に対応する最も短い道が「価格設計の見直し」であり、それがトライアル戦略全体の変化につながっています。</p>
<h2>Webキャンペーン：無料トライアル消滅を後押しする要因</h2>
<p>この話題はもはや新しいものではありません。Webおよび<a href="https://www.revenuecat.com/blog/growth/web-to-app-funnel-examples/">Web-to-Appファネル</a>は、いくつかの理由から大手パブリッシャーにとって標準的な手法となっています。</p>
<ul>
<li>Googleや<a href="https://www.revenuecat.com/blog/engineering/small-business-program/">Appleの手数料（約30％）を回避</a>できる</li>
<li>オンボーディングや価格設定の<a href="https://www.revenuecat.com/blog/growth/should-your-app-stop-offering-free-trials/">A/Bテスト</a>をより柔軟かつ高速に実施できる</li>
<li><a href="https://www.revenuecat.com/blog/growth/enhanced-app-campaigns/">SKANなどの制約に依存せず</a>、より正確なアトリビューションが可能</li>
<li>ユーザーの購買意欲が高い</li>
<li>購買意欲をより細かくコントロールできる新たな広告在庫にアクセスできる</li>
<li>iOSユーザーに対する<a href="https://www.revenuecat.com/blog/growth/offering-customization-examples-targeting/">リターゲティング</a>が可能</li>
</ul>
<p>一方で、現時点では手数料が15％以下の小規模パブリッシャーにとって、Webオンボーディングは必ずしも最適とは言えません。税務対応やStripeなどの決済手数料（約3％）、返金対応、オンボーディング構築のためのツール管理など、追加の複雑さが発生するためです。しかし、大手プレイヤーの戦略変化は市場全体に影響を与えており、現在では小規模な開発者もこれらの手法を模倣し始めています。</p>
<p>このような状況を踏まえると、もはや「無料トライアルから離れるべき<em>かどうか</em>」ではなく、<strong>「何に置き換えるべきか、そしていつ置き換えるべきか」</strong>が重要な問いとなっています。市場は大きく二つに分かれています。</p>
<ol>
<li>強いPMFとバイラリティを持つアプリ向けの、直接サブスクリプションへ誘導するハードペイウォール</li>
<li>広告ネットワークに必要なボリュームを維持しつつ、シグナルの質を大幅に向上させる、より高度なトライアル手法</li>
</ol>
<p>後者こそ、私が取り組んでいるアプローチであり、今後のシグナル設計の標準になると考えています。</p>
<p><a href="https://www.revenuecat.com/blog/company/lessons-from-app-growth-annual-2025/">App Growth Annual 2025</a>では、有料トライアル（<a href="https://www.revenuecat.com/blog/growth/introductory-offers-apps/">イントロオファー</a>）が<a href="https://www.revenuecat.com/blog/growth/activation-metrics/">アクティベーション指標</a>やUAパフォーマンスに与える即時的な影響について解説しました。現在では、この戦略をWebキャンペーンに取り入れる企業が増えています。というのも、Webキャンペーンはアプリキャンペーンよりも購買意欲の高いユーザーをターゲットしやすいからです。A</p>
<h2>トライアルクオリファイアと有料トライアルは排他的ではない</h2>
<p>イントロオファーに関する記事でも述べた通り、有料トライアルをアプリやWebキャンペーンに導入することで、指標は大きく変わります。<em>ただし</em>、有料トライアル後のコンバージョン率をしっかり監視する必要があります。この戦略は、直接サブスクリプションへ誘導するハードペイウォールと比べると、短期的な<a href="https://www.revenuecat.com/glossary/#lifetime-value-ltv">LTV</a>を損なう傾向があるためです。</p>
<p>「State of Subscription Apps」レポートによると、新規サブスクライバーの約30％がイントロオファー経由で獲得されています（中央値）。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/04d38d13fda08780ac395b48d091fd7d2079c64b-1774x1064.png" alt=""/><figcaption>新規課金ユーザーに占めるイントロオファー経由の割合（カテゴリ別・収益階層別）— State of Subscription Apps 2026</figcaption></figure>
<p>例えば「最初の1ヶ月を0.99ドルで提供する」モデルは、単にコンバージョンを改善するだけではありません。アルゴリズムに送るシグナルの質そのものを変えます。「無料ボタンをクリックしたユーザー」ではなく、「実際にクレジットカードを入力したユーザー」で学習させることになり、これはまったく異なる行動特性です。適切なクリエイティブ戦略と組み合わせてこれらのユーザーをターゲットできれば、大きなゲームチェンジャーになります。</p>
<p>このアプローチは、Webやweb-to-appキャンペーンで特に普及し始めました。なぜなら、上流ファネルの段階で購買意欲をフィルタリングできるチャネルを使えるためです。これは、現在主流となっている自動化されたアプリキャンペーンとは大きく異なります。</p>
<p>例えばGoogle Adsの検索キャンペーンでは、オーディエンスごとに広告グループを分け、キーワードによって購買意欲のレベルを調整できます。「free」を含むキーワードと含まないキーワードを使い分けることで、トライアルクオリファイアイベントへの影響を比較する戦略が有効です。</p>
<p>このような高度なターゲティングと有料トライアルを組み合わせることで、day 0から「実際に支払うユーザー」という強いシグナルをアルゴリズムに与えることができ、多くのパブリッシャーにとって非常に効果的な手法となっています。従来のトライアルのようなプロキシイベント（中央値30〜35％）ではなく、より直接的なシグナルを活用できるからです（出典：SOSA）。</p>
<p>ただし、私の見解では、これが将来の標準になるわけではありません。今後は<strong>トライアルクオリファイアがこの役割を担う</strong>ようになるでしょう。そして重要なのは、この2つはどちらか一方を選ぶ必要はないという点です。Webキャンペーンではユーザーの意図をよりコントロールできるため有料トライアルを活用しつつ、アプリキャンペーンではトライアルクオリファイアを使う、といった併用が可能です。</p>
<p>「State of Subscription Apps 2026」を見ると、ほぼすべてのカテゴリでトライアル開始はday 0に集中しています。オンボーディング中にすぐ試さないユーザーは、その後も試さない傾向があります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c3a63ff6dfe15d0356916722acb1eb1477973fa0-1768x1064.png" alt=""/><figcaption>トライアル開始までの時間（カテゴリ別）— State of Subscription Apps 2026</figcaption></figure>
<p>このデータから導かれる結論は明確です。現在、広告主にとって最も有効な手法はトライアルクオリファイアイベントです。その理由は以下の通りです。</p>
<ul>
<li>クレジットカード入力を強制せずに、day 0でアルゴリズムにシグナルを送れる</li>
<li>購入直前のイベントを最適化対象にでき、従来のトライアルよりも高い意図を持つユーザーを捉えられる</li>
<li>そして最も重要なのは、ユーザーの購買行動データに基づいて、送信するシグナルを自由に設計・調整できることです</li>
</ul>
<p>では、この仕組みをどのように自社のキャンペーンに実装していくべきでしょうか？</p>
<h2>新しい無料トライアル：高度なトライアル設計の方法</h2>
<p>トライアルクオリファイアイベントのパーソナライズは、アプリのカテゴリ、ペイウォールで提供しているサブスクリプションプラン、そして従来のトライアル開始イベントから分析できるユーザーの行動データに大きく依存します。ただし、初期設定としては、以下の条件をもとにトライアルクオリファイアイベントを設計することができます。</p>
<h3>1. 無料トライアルをキャンセルせずに継続した時間</h3>
<p>トライアルのキャンセルの多くは、開始から最初の2時間以内に発生しています。データでも、キャンセルはday 0が最も多く、次いでday 1に集中しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/aa67e4732be4d5924fd4c083fa45472b2a2de2e2-1766x1066.png" alt=""/><figcaption>トライアル解約率（日時別・トライアル期間別）— State of Subscription Apps</figcaption></figure>
<p>これらのユーザーは、単にペイウォールの中身を確認したいだけで、実際に課金する可能性はほとんどありません。しかし、こうしたユーザーは広告ネットワークに送るシグナルを汚染し、全体のパフォーマンスを悪化させます。そのため、<strong>まずはこの層をフィルタリングすることが重要</strong>です。自社の過去データを分析し、どの時間基準が最適かを見極めましょう。</p>
<h3>2. 無料トライアルをキャンセルせずに継続した時間＋エンゲージメント</h3>
<p>プロダクトによっては、積極的に利用するユーザーと、登録後に放置するユーザーとで、LTVやリテンション、回収期間に大きな差が生じます。そのため、トライアルクオリファイアを設計する際には、「キャンセルせずに継続した時間」に加えて、初回セッションでの<strong>エンゲージメントシグナルを組み合わせる</strong>のが有効です。これにより、広告ネットワークに送るシグナルの質が向上し、より最適化しやすくなります。</p>
<p>ただし注意点として、初回セッションのエンゲージメント条件を厳しくしすぎると、シグナルの量が減りすぎてしまい、キャンペーンの最適化が難しくなる可能性があります。</p>
<h3>3. 無料トライアルをキャンセルせずに継続した時間＋追加シグナルの送信</h3>
<p>これは1つ目の手法に近いですが、ユーザーごとに2つのシグナルを送る点でより高度です。具体的には、<strong>トライアル開始から2時間後に最初のシグナルを送信</strong>し、その後<strong>トライアル終了前日にもう1つのシグナルを送ります</strong>。例えば3日間のトライアルであれば、開始2時間後に1回、そしてday 2時点でトライアルが継続されていればもう1回シグナルを送ります。これによりイベント数が増え、広告ネットワークの最適化がしやすくなります。一方で、実際のトライアルコンバージョン率やインクリメンタリティの測定は複雑になります。</p>
<h3>4. トライアルクオリファイアのマッピングを自動化する</h3>
<p>さらに一歩進めたい場合は、RevenueCatと<a href="https://www.revenuecat.com/blog/engineering/revenuecat-now-integrates-with-appstack/">Appstack</a>の新しい連携を活用することで、<strong>トライアルクオリファイアイベントのマッピングを数クリックで自動化</strong>できます。この連携により、キャンペーンユーザーをRevenueCatで作成した特定のペイウォールに誘導でき、広告視聴からアプリ内オンボーディング完了までの体験を完全にカスタマイズできます。これは市場でも非常にユニークな機能であり、購買意欲の高いユーザーに対してテストを行える点で、ペイウォール設計と検証の方法を大きく変える可能性があります。</p>
<p>最終的には、これらのアプローチをベースにトライアルクオリファイアイベントを試し、従来の無料トライアルキャンペーンとパフォーマンスを比較することをおすすめします。最適なパターンが見つかったら、シグナルの質と量のバランスを取りながら継続的に改善していきましょう。</p>
<h2>無料トライアルを見直す準備はできていますか？</h2>
<p>この記事は少し大げさに聞こえるかもしれませんし、従来の無料トライアルの方が良い成果を出すケースももちろん存在します。しかし、さまざまなアプリに日々関わる中で感じるのは、私たちが急速に「即時的な成果」を求める方向へと移行しているということです（AIに伴う限界費用の上昇がその背景にあります）。そのため、近い将来、多くのアプリがこのような形で無料トライアルのシグナルを洗練させていくと考えています。これにより、広告配信の精度が向上し、最終的にはユーザー獲得に投じる1ドルあたりの効率を最大化できるようになるでしょう。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[7日間トライアルの神話：サブスクアプリに最適な無料トライアル期間の選び方]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/7-day-trial-subscription-app</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/7-day-trial-subscription-app</guid>
      <pubDate>Mon, 30 Mar 2026 14:48:53 GMT</pubDate>
      <dc:creator><![CDATA[Daphne Tideman]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[習慣を構築し、チャーンを減らし、収益を伸ばすトライアル設計の方法]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/85dfa55c8c86f34c6d3e496ad052f1296b80a156-1600x850.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>以前、私は<strong>34日間の無料トライアル</strong>を受け取ったことがあります。30日でも「1か月」でもなく、34日です。</p>
<p>それは<a href="https://www.revenuecat.com/blog/growth/web-to-app-funnel-examples/#h-4-ynab-workshop-funnel">YNABという家計管理アプリ</a>でした。最初は完全にランダムに思えました。多くの無料トライアルは5〜9日程度なので、なぜ34日なのかと疑問に感じたのです。</p>
<p>しかしアプリを開いたとき、その理由はすぐに理解できました。</p>
<p>家計管理はすぐに価値が出るものではなく、1つのサイクルが必要です。</p>
<ul>
<li>給料日</li>
<li>支払いの発生</li>
<li>時間を通じた実際の行動</li>
</ul>
<p>YNABは1週間で印象づけようとしていたのではありません。<strong>実際にプロダクトを体験できるだけの時間</strong>を提供していたのです。</p>
<p>この体験はとても印象に残りました。そしてこう考えるようになりました。「業界全体として、7日間トライアルをデフォルトにしていることで、自分たちの可能性を過小評価しているのではないか？」と。</p>
<p>2024年には、すべてのトライアルのうち半数以上が5〜9日の範囲にあり、2023年から増加しました。さらに2025年にはトライアルはより短くなり、4日以下のトライアルがシェアを伸ばし、全体のほぼ半分（46.5％）に達しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/d5f88035ca417bb0f672416dbe7c7995fcd26614-1780x1070.png" alt=""/><figcaption>トライアル期間の推移（前年比）— State of Subscription Apps 2026</figcaption></figure>
<p>「7日間トライアルは終わった」という一般論を耳にしたことがあるかもしれませんが、実際にはトライアルが短くなり続けていることがその背景にあります。これから詳しく見ていく通り多くの要素があるにもかかわらず、業界のデフォルトはむしろ固定化されつつあります。</p>
<p>そしてそれこそが問題です。7日間トライアル自体が悪いわけではありません。ただ、それがほとんど疑われていないのです。トライアル期間は、オンボーディングやアクティベーション、リテンションと同じくらい真剣に検討されるべきです。</p>
<p>なぜなら最終的に、<strong>トライアル期間は価格の問題ではなく、プロダクトの問題</strong>だからです。</p>
<p><a href="https://aperture.london/">Aperture</a>の創業者である<a href="https://www.linkedin.com/in/hnpvz/">Hannah Parvaz</a>氏はこう述べています。</p>
<p>「私は“トライアル期間はデフォルトではなく設計の意思決定である”という立場です。複数のサブスクリプションアプリを見てきた中で最大のミスは、トライアル期間を単独のグロースレバーとして扱い、Time-to-Valueや信頼構築と結びつけていないことです。」</p>
<p>この「トライアル期間はプロダクトの意思決定である」という考え方が、私をいつもの“Daphne的な思考の深掘り”へと導きました。では実際に、<strong>適切な無料トライアル期間は何によって決まるのでしょうか？</strong></p>
<h2>トライアル期間の前に：そもそもトライアルは必要か？</h2>
<p>異なるトライアル期間について考える前に、まず答えるべきもっと重要な問いがあります。</p>
<p><strong>そもそも、トライアルは本当に必要なのでしょうか？</strong></p>
<p>トライアル自体が適切な戦略でなければ、トライアル期間を最適化することに意味はありません。</p>
<p>以前の私は、トライアルは必須だと考えていました。実際、<strong>「State of Subscription Apps 2026」</strong>によると、ほとんどのカテゴリのアプリが何らかの形でトライアルを提供しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/b5f8b113b04b94aafcbd671669ca460ba9ee9127-1784x1080.png" alt=""/><figcaption>カテゴリー別のトライアル戦略 — 2026年サブスクリプションアプリ市場動向</figcaption></figure>
<p>どのカテゴリにおいても、<strong>トライアルを提供していない</strong>アプリが多数派になることはありません。最もトライアル非提供の割合が高いのはソーシャルカテゴリで、それでも43.6％にとどまっています。</p>
<p>そんな中で、<a href="https://www.revenuecat.com/blog/growth/should-your-app-stop-offering-free-trials/">David Vargas氏の記事</a>を読んだことで、トライアルに対する考え方が大きく変わりました。彼はこう説明しています。</p>
<p>「無料トライアルはあくまで数ある戦略の一つに過ぎない。重要なのは、プロダクトや機能がどれだけ“粘着性（stickiness）”を持ち、ユーザーをサブスクへと納得させられるかだ。」</p>
<p>特に印象的だったのは、彼が<strong>無料トライアルを完全に廃止</strong>した実験です。</p>
<p>大胆で（私の大好きなタイプの実験です）、少し恐ろしくもありました。しかし重要なのはその背景です。彼らはトライアルから有料へのコンバージョン自体は高かったものの、有料獲得がうまくいっていませんでした。なぜなら、1人の有料ユーザーを獲得するために必要なトライアル開始数を考慮すると、<strong>獲得単価が高すぎた</strong>からです。</p>
<p>トライアルを廃止したことで、<strong>LTVはほぼ2倍</strong>になり、有料成長が可能になりました。</p>
<p>これは、たとえトライアルを継続する場合でも重要な示唆です。トライアルが非常に短くない限り、広告最適化は「購入」ではなく「トライアル開始」に向かいがちです。そしてコンバージョンがアトリビューション期間外で発生すると、広告プラットフォームは<strong>「トライアルを開始する人」</strong>には最適化されても、「実際に課金する人」には最適化されません。</p>
<p>ここから導かれる第一原則はシンプルです。</p>
<p><strong>トライアルが本当に必要かどうかを明確にするまでは、トライアル期間には手をつけないこと。</strong></p>
<p>トライアルの廃止をテストするのは怖く感じるかもしれません。しかし、トライアルが十分な価値を生んでいないのであれば、その前提自体を疑う価値があります。または、まず<strong>トライアルの中で実際の価値提供を強化</strong>することに注力すべきです。Subscription Indexの創業者（元Codecademy、Uber）であるDan Layfield氏はこう述べています。</p>
<p>「トライアルは、ユーザーにとって分かりやすく、明確で、魅力的である限り、あなたの味方だ。」</p>
<p>トライアルの必要性に確信が持てたら、次はトライアルに関するよくある誤解を解いていきましょう。</p>
<h2>神話：短いトライアルの方がコンバージョンが高い</h2>
<p>直感的にはこう考えがちです。<strong>トライアルが短いほど緊急性が生まれ、緊急性が行動を促し、その行動がコンバージョンにつながる。</strong>シンプルですよね。</p>
<p>これは「24時間限定セール」や「残りわずか」といった訴求と同じ発想です。強力に行動を促す手法です。</p>
<p>もちろん、短いトライアルが有効なケースもあります。特に、有料キャンペーンを購入ベースで素早く最適化したい場合には効果を発揮します。しかし、データを見ると話はもっと複雑です。</p>
<p><a href="https://www.revenuecat.com/state-of-subscription-apps-2025/">RevenueCatの「State of Subscription Apps」レポート</a>によると、短いトライアルでは初日〜翌日にかけての解約が大きく増加します。例えば3日間のトライアルでは、55％以上のユーザーがほぼ即座に解約します。一方、30日間トライアルではその割合は約31％にとどまります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/aa67e4732be4d5924fd4c083fa45472b2a2de2e2-1766x1066.png" alt=""/><figcaption>トライアル解約率（日時別・トライアル期間別）— State of Subscription Apps 2026</figcaption></figure>
<p>この初期解約は、<strong>必ずしもユーザーの意欲が低いことを意味するわけではありません</strong>。多くの場合、次のような心理が影響しています。</p>
<ul>
<li>信頼の欠如</li>
<li>解約を忘れることへの不安</li>
<li>そしてよくある「念のため今のうちに解約しておこう」という行動</li>
</ul>
<p>興味深いのは、トライアルが長くなるほど解約率が下がる点です。3日間トライアルでは解約の84％、7日間トライアルでも64％が初日〜翌日に集中しています。リスクは後半ではなく、最初に集中しているのです。</p>
<p>つまり、<strong>短ければ良いというわけではありません</strong>。ただし、ここでさらにややこしいことを言うと、<strong>長ければ良いというわけでもない</strong>のです。</p>
<h2>長いトライアル：効果がある場合と逆効果になる場合</h2>
<p>ここまでの話を聞くと、多くの人はすぐに<strong>「じゃあ長い方が良いのでは？」</strong>と考えがちです。</p>
<p>しかし、集計データをそのまま鵜呑みにするのは、7日間トライアルをデフォルトにするのと同じくらい危険です。</p>
<p>確かに、17〜32日のトライアルは平均的にトライアルから有料へのコンバージョン率が高い傾向にあります（中央値で42.5％、4日未満のトライアルでは25.5％）。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/e46361b1b375545bb95370a7dae253ab49d96d69-1766x1072.png" alt=""/><figcaption>トライアルから有料へのコンバージョン率（トライアル期間別）— State of Subscription Apps 2026</figcaption></figure>
<p>一見すると素晴らしい結果ですが、私たちはしばしば「トライアル→有料のコンバージョン率＝良い結果」と考えてしまいがちで、ここに落とし穴があります。</p>
<p>例えば、私が関わったウェルネスアプリでは、主要な<a href="https://www.revenuecat.com/blog/growth/activation-metrics/">アクティベーション指標</a>は「14日以内に長尺コンテンツを2本消費すること」でした。各コンテンツは約45分で、週次のライブセッションと関連していました（ただしそれだけではありません）。この行動は長期的なリテンションの強い指標でした。</p>
<p>そこで当然の疑問が生まれます。<strong>「アクティベーションに14日必要なのに、なぜ7日間トライアルなのか？」</strong></p>
<p>そこで実験を行いました。7日間と14日間のトライアルでA/Bテストを実施したのです。結果として、長いトライアルの方がトライアル開始数はわずかに増えましたが、最終的なコンバージョンはむしろ減少しました。</p>
<p>理由は、不正利用や時間不足ではありません。アクティベーション自体が改善しなかったのです。ユーザーはコンテンツを多く消費するようにはならず、単に後回しにしただけでした。典型的な先延ばしです。結果として有料への転換率は悪化し、最終的に7日間トライアルへ戻しました。</p>
<p>これが、私たちが誰もが経験したことのある「長いトライアルの落とし穴」です。長いジムの無料体験は後回しにしやすいですが、「7日以内に予約が必要な有料の体験レッスン」は行動を促します。「後でやろう」は静かに「結局やらなかった」へと変わります。</p>
<p>ここからの重要なポイントは、<strong>トライアルのコンバージョンはあくまで先行指標</strong>に過ぎないということです。本当に重要なのは次の3つです。</p>
<ul>
<li>ユーザーあたりの長期的な収益</li>
<li>リテンション</li>
<li>継続的なエンゲージメント</li>
</ul>
<p>さらに、Hema Yoganarasimhan氏、Ebrahim Barzegary氏、Abhishek Pani氏による<a href="https://pubsonline.informs.org/doi/10.1287/mnsc.2022.4507">SaaS研究</a>では、短いトライアル（7日間）の方が、30日トライアルよりも獲得、リテンション、収益性の面で優れるケースがあることも示されています。</p>
<p>ただし、<strong>7日目に課金して8日目に解約するユーザーは成功とは言えません</strong>。</p>
<p>ここまでで少し混乱しているかもしれませんが、それも無理はありません（両極端を否定しましたからね）。しかし安心してください。答えはあります。それは<strong>「トライアル期間は文脈の中でのみ意味を持つ」</strong>ということです。</p>
<p>ApertureのHannah Parvazは、複数のチームを通じていくつかの共通パターンを見出しています。</p>
<ul>
<li>「コア価値が1回のセッションで体験できる場合、長いトライアルは有料コンバージョンを下げることが多いです。この場合、短いトライアル（あるいはトライアルなし＋強い安心感の提供）の方が優れます。ユーザーはすぐに価値を理解するか、まったく理解しないかのどちらかだからです。</li>
<li>価値が時間とともに積み上がるプロダクト（習慣、学習、行動変容など）の場合は、長いトライアルが有効になることがあります。ただし、オンボーディングが積極的に“アハ体験”へ導く設計になっていることが前提であり、単に待つだけではうまくいきません。</li>
<li>7日間はデフォルトとして最適であることはほとんどありません。即時価値型のプロダクトには長すぎ、信頼構築が必要なプロダクトには短すぎることが多いです。実際には、ユーザーが意味のあるマイルストーンに到達する速度に応じて、3日から30日までさまざまな期間でより良い結果が出ています。」</li>
</ul>
<p>この「文脈」をより深く理解するために、さらに詳しく見ていきましょう。そのうえで、あなたのアプリにとって最適なトライアル期間を決めるためのフレームワークを紹介します。</p>
<h2>トライアル期間において価格は重要</h2>
<p>トライアル期間について議論する際に見落とされがちなのが、<strong>価格やプラン設計との強い関係</strong>です。</p>
<p>例えば、月額5ドルのプラン前に設定された14日間トライアルと、年額120ドルのプラン前に設定された14日間トライアルでは、ユーザーの感じ方は大きく異なります。前者はリスクが低い一方で、後者は心理的ハードルが高く、ユーザーはより多くの証拠や安心感、あるいは単純により長い検討時間を必要とします。</p>
<p>そのため、<strong>年額プランに長めのトライアルが付いて</strong>いたり、年額プランにのみトライアルが提供されているケースが多く見られます。これは単なる「太っ腹」ではなく、ユーザーが感じるリスクを下げるための設計です。価格が高い、または契約期間が長いほど、より長いトライアルが必要になる可能性があります。</p>
<p>実際に、年額プランに14日間の無料トライアル、月額プランに7日間のトライアルを提供することで、<a href="https://subclub.com/episode/how-headspace-optimized-revenue-by-gating-content-shreya-oswal-and-keya-patel-headspace">Headspaceはコンバージョンの大幅な向上</a>を実現しました。これにより、ユーザーは長期プランへのコミットに対して安心感を持ちやすくなり、年額プランの魅力も高まったと考えられます。</p>
<p>さらに、サブスクリプション期間が短い場合、トライアルの追加は過剰になることもあり、かえってアプリの価値を下げてしまう可能性もあります。例えば<a href="https://www.revenuecat.com/blog/growth/weekly-subscriptions/">週額プラン</a>は、それ自体が一種のトライアルの役割を果たすため、さらに無料トライアルを付ける必要はないかもしれません。実際、週額プランにトライアルを付ける場合でも、1週間まるごと無料にすると価値を下げてしまうため、3日間程度にとどめるケースが多く見られます。</p>
<h2>カテゴリは想像以上に重要</h2>
<p>「最適なトライアル期間」という万能の正解は存在しません（データ上は長めに寄る傾向はありますが）。トライアルデータをカテゴリ別に分解すると、その違いは非常に明確です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/27cd139fe2de40cbab687d620d333e466f741e9a-1774x1068.png" alt=""/><figcaption>トライアル期間（カテゴリ別）— State of Subscription Apps 2026</figcaption></figure>
<p>ゲームアプリでは、圧倒的に短いトライアル（多くは4日未満）が好まれます。トライアルが長くなると、ユーザーは習慣形成ではなく「クリア」を目的に最適化してしまい、不正利用が起こりやすくなるためです。</p>
<p>写真・動画アプリも短い傾向にあります。価値が即座に体験できるため、ユーザーはすぐにコンテンツを編集し、ツールの利点を実感できます。</p>
<p>一方で、ヘルス＆フィットネス、教育、旅行アプリなどは、成果が出るまでに時間がかかったり、より大きな意思決定（例えば旅行の予約）を伴ったりします。そのため、5〜9日のトライアルが一般的であり、これが7日間トライアルが業界のデフォルトになった理由の一つです。</p>
<p>しかし、「一般的」であることは「正しい」ことを意味しません。だからこそ強調したいのは、どうか7日間をデフォルトにしないでほしいということです。重要なのは、<strong>トライアル期間を価格や業界慣習ではなく、アクティベーションまでの時間に合わせる</strong>ことです。</p>
<h2>エンゲージメントは長期トライアルの静かな落とし穴</h2>
<p>長いトライアルは一見すると良さそうに見えますが、実際には管理が難しいものです。まさに「Instagramの写真と現実」のようなものです。美しい旅行写真の裏で、実際は食あたりで寝込んでいる、そんなギャップがあります。</p>
<p>YNABの長期トライアルがうまく機能しているのは、負担がユーザーではなくプロダクト側にあるからです。ワークショップやライブセッション、明確なメソッドを通じて、ユーザーを積極的に導いています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/f250466387b4045e7f37f65988746db6e89b4449-1455x555.png" alt=""/><figcaption>YNAB’s web-to-app funnel is focused on you attending a live free workshop</figcaption></figure>
<p>つまり、そのトライアルは受動的ではなく、しっかりと構造化されているのです。しかし残念ながら、こうした設計は一般的ではありません。</p>
<p>多くのアプリにとって本質的な問いは、「一度試してもらえるか」ではなく、「ユーザーが勢いを失う前に習慣を作れるか」です。</p>
<p>そのためには、次のことが必要です。</p>
<ul>
<li>継続的な利用を促すこと</li>
<li>先延ばしを防ぐこと</li>
<li>価値の実感を積み上げ続けること</li>
</ul>
<p>私自身も最近、GOWODというモビリティアプリでこれを体験しました。このアプリは14日間のトライアルを提供しています。オンボーディングは非常に良く、最初にモビリティ診断から始まります（私の股関節の可動域にはかなり改善の余地がありそうでした）。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/cfe2d320307caddde0870c746c8a1a384aed9e23-1600x1035.png" alt=""/></figure>
<p>しかし、モビリティは「やった方がいいと分かっているけれど、なかなか優先されない」典型的なものです。長いトライアルはそれを後回しにする余地を与えてしまいました。忙しい時期にトライアルを開始し、「後で時間を見つけてやろう」と思っていたのです。</p>
<p>実際には、14日間で2回しかセッションを行えず、習慣化にはまったく足りませんでした。もし、より明確な目標やチャレンジがあれば、続けられていたかもしれません。例えば「2週間で週にX回実施する」と決め、最後に再度モビリティを測定する、といった形です。</p>
<h3>フリーミアムと無料トライアル</h3>
<p>フリーミアムモデルになると、話はさらに複雑になります。あまりにも寛大なフリーミアムと長いトライアルを提供しているアプリを見ると、「本当にユーザーに課金してほしいのだろうか？」と疑問に思うことさえあります。</p>
<p>Ling Zhang氏とJiang Duan氏によるフリーミアムSaaS企業の<a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC12217587/">研究</a>では、長いトライアルは<strong>トライアル開始数を増やすものの、必ずしもコンバージョンを改善するわけではない</strong>ことが示されています。ユーザーが十分な価値を感じていなければ、トライアル期間を延ばしても意味はありません。しかし興味深いのはここからです。長いトライアルは「<em>遅延</em>コンバージョン」を増やす効果がありました。つまり、プレミアム機能を試す時間が長かったユーザーは、後になってから課金する傾向があったのです。</p>
<p>これが、StravaやMediumのような一見シンプルに見えるアプリが、あえて30日間のトライアルを提供している理由です。彼らは即時のコンバージョンではなく、長期的な成果を狙っています。</p>
<p>フリーミアムアプリに影響する要素はいくつもあります。</p>
<ul>
<li><strong>ネットワーク効果の価値：</strong>多くのフリーミアムアプリは口コミによる成長に依存しており、同時に価値あるデータの蓄積にも依存しています。例えばStravaでは、特定の地域に十分なユーザーがいなければリーダーボードを成立させることができません。Mediumでは読者の行動が、どのコンテンツが有益かを判断するアルゴリズムに影響します。</li>
<li><strong>価値は時間とともに蓄積される：</strong>Stravaの場合、パフォーマンス分析などの機能は1週間程度では十分な価値が現れない可能性があります。フリーミアムアプリは「じわじわ効いてくる」タイプが多く、プレミアム機能をすべてペイウォールの裏に置いている場合（最初に一部体験させるのではなく）、長いトライアルの方が価値を生むことがあります。Mediumでも、ユーザーは時間をかけて好みのライターやコンテンツを見つけていき、それがスイッチングコストを高めていきます。</li>
</ul>
<p>つまり、さらに一段階深い問いが生まれます。長いトライアルは、短期的なコンバージョンの低下を上回るネットワーク効果やスイッチングコストを生み出すのか？プラットフォーム型ビジネスでは、その答えは多くの場合「Yes」です。</p>
<p>フリーミアムモデルにおいて本当に考えるべきは、トライアル期間ではありません。課金する価値があると感じさせるために、どれだけの価値をペイウォールの裏に置くべきか、そして同時に無料ユーザーを十分にエンゲージさせ、エコシステムを強化できているか、という点です。</p>
<h2>トライアル期間の背後にある心理</h2>
<p>視点を少し引いてみると、<strong>トライアル期間は本質的には心理の問題</strong>です。</p>
<p>特に重要なのが「損失回避」です。トライアルが終了することは、すでに自分のものになっている何かを失うように感じられます。特にユーザーが次のような投資をしている場合はなおさらです。</p>
<ul>
<li>時間を費やしている</li>
<li>データを作成している</li>
<li>習慣を築いている</li>
</ul>
<p>ここで重要なのは、期間そのものではなく「投資」です。写真編集アプリであれば数日でも損失回避を生み出せますし、ゲームであればさらに短期間でも可能です。一方で、他のプロダクトではより長い時間が必要になります。</p>
<p>これは「保有効果（エンダウメント効果）」とも密接に関係しています。ユーザーが多くの努力を費やすほど、それを手放すのが難しくなります。IKEAの家具のようなものです。組み立ては大変でも、一度完成すると手放しづらくなります（私のように組み立て中に壊してしまわない限りは）。</p>
<p>ただし、<strong>長いトライアルが機能するのは、その投資が自然で繰り返し可能な場合に限られます</strong>。一度きりのセットアップではなく、時間とともに積み上がるものである必要があります。</p>
<p>一方で、短いトライアルは「緊急性」を生み出す点で優れています。早期の行動を促し、先延ばしを防ぎます。</p>
<p>すべてのトライアルは次のバランスの上に成り立っています。</p>
<ul>
<li><a href="https://phiture.com/mobilegrowthstack/the-subscription-stack-how-to-optimize-trial-length/">緊急性 vs 習慣形成</a></li>
<li>スピード vs 深さ</li>
</ul>
<p>また、利用頻度も重要です。</p>
<ul>
<li>日常的に使うアプリは習慣化が早い</li>
<li>週次・月次で使うプロダクトは、より長い期間が必要</li>
</ul>
<p>さらにここに<strong>認知負荷</strong>の要素が加わります（少し心理学の話ですがお付き合いください）。</p>
<ul>
<li>複雑なプロダクトは学習時間が必要</li>
<li>シンプルなプロダクトでは、長すぎるトライアルは不要な摩擦になる</li>
</ul>
<p>最もシンプルに言えばこうです。<strong>トライアルは「習慣が形成されるのに十分な長さ」でありながら、「忘れられてしまわない程度の短さ」であるべき</strong>です。</p>
<p>トライアル期間を決めるための実践フレームワーク</p>
<p>これを実務に落とし込むために、私は「自然な利用習慣」という観点で考えるのが有効だと思っています。これは<a href="https://phiture.com/mobilegrowthstack/">PhitureのMobile Growth Stack</a>で提唱されている考え方です。</p>
<p>トライアル期間を決める前に、次の3つの問いを自分に投げかけてください。</p>
<ol>
<li><strong>ユーザーは価値を実感するために、どのくらいの頻度で利用する必要があるか？</strong>利用頻度とエンゲージメント回数のバランスを考えます。例えば、あるアプリでは「友達を1人作る」よりも「5人作る」方がリテンションに大きく影響する場合があります。</li>
<li><strong>最初の「アハ体験」はいつ起こるか？</strong>これは最終目標（例：Stravaでマラソン完走）ではなく、「進歩を実感する瞬間」です。例えば、最初の数回のワークアウトを終えたときや、何かしらの測定可能な成果を得たときです。</li>
<li><strong>課金が成立するために必要な行動は何か？</strong>プロダクトの価値を実感し、「お金を払う価値がある」と感じる最低限の行動を特定します。これがトライアルから課金へと移行する閾値になります。</li>
</ol>
<p>それでもなお、必ずテストを行うことを強くおすすめします。トライアル期間を変更した際の短期的・長期的な影響の両方を測定してください。だからこそ、事前にこれらの問いを考えることが重要なのです。</p>
<p>まだ迷っている場合は、以下の目安（あくまでガイドラインでありルールではありません）を参考にしてください。</p>
<ul>
<li><strong>3〜7日：</strong>シンプルなユーティリティ、ゲーム、即時価値型アプリ</li>
<li><strong>7〜14日：</strong>日常的に使うアプリ（習慣形成に時間が必要）</li>
<li><strong>14〜30日：</strong>週次利用のツール（プロジェクト管理など、2〜3サイクル必要）</li>
<li><strong>30日以上：</strong>複雑な分析・レポート系ツール（オンボーディングやデータ蓄積に時間が必要）</li>
</ul>
<p>上級編：すべてのユーザーに同じトライアルは必要ない</p>
<p>十分なユーザーベースがある場合、トライアルの最適化はさらに進めることができます。ユーザーごとに最適なトライアル期間が異なる可能性があるためです。</p>
<ul>
<li>早くアクティベーションするユーザー vs 遅いユーザー</li>
<li>フリーミアムで活性化済みユーザー vs 初回ユーザー</li>
<li>月額プラン vs 年額プラン（年額のみトライアルを提供するケースもあります）</li>
<li>離脱ユーザーの復帰施策としてのトライアル</li>
</ul>
<p>ただし注意点として、複雑さは適切に運用できてこそ意味があります。過度に複雑なマネタイズ設計は、しばしばユーザーの混乱を招くだけです。</p>
<p>また、<a href="https://www.revenuecat.com/blog/growth/app-trial-conversion-rate-insights/">App Storeにはトライアル期間や設定に関する制約</a>もあります。YNABのような柔軟な設計を実現するには、Webベースのトライアルが必要になる場合もあります（最近は<a href="https://www.revenuecat.com/blog/growth/web-to-app-funnels/">Web-to-App</a>が主流になりつつあります）。ただし、その場合でもアプリ内体験との整合性を保たなければ、<a href="https://developer.apple.com/forums/thread/129010">Appleの審査でリジェクトされる</a>可能性があります。</p>
<p>特定のユーザーに対して延長トライアルを提供したい場合、<a href="https://docs.revenuecat.com/docs/ios-subscription-offers">iOSではプロモーションオファー</a>を利用する方法もあります。Androidでは、<a href="https://docs.revenuecat.com/reference#defer-a-google-subscription">コードによってサブスクリプションの期限を延長する</a>ことが可能です。</p>
<p>このようなセグメンテーションは、十分なアクティベーション指標とデータ量が揃ってからでないと、結果が不明確になるリスクがあります。</p>
<p>7日間デフォルトを超えて</p>
<p>だからこそ、7日間をデフォルトにしないでください。多くのアプリにとって悪い出発点ではありませんが、より短い、あるいは長いトライアルの方が大きな成果を生むケースは数多くあります。</p>
<p>まずは、そもそもトライアルが必要かを判断し、それがユーザーのアクティベーションに寄与しているかを確認しましょう。Davidのように大胆にトライアル廃止を試すことも有効です。トライアル期間をテストする場合は、評価指標を正しく設定することが重要です。トライアル開始数やトライアル→課金のコンバージョン率だけでなく、アクティベーション、リテンション、収益を重視してください。</p>
<p>次に、ユーザーの心理を理解しましょう。ユーザーには緊急性が必要なのか、それとも時間をかけた投資が必要なのか。損失回避は働くのか。文脈が重要です。ゲームは短いトライアルと相性が良く、ヘルス＆フィットネスは長めが適しているのには理由があります。最終的に重要なのは、「最も多くのユーザーをコンバージョンさせるトライアル期間」ではありません。<strong>「実際に長く使い続ける顧客を生み出すトライアル期間」</strong>です。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Appleガイドライン解説：アカウント停止されずにiOSアプリをリモートテストする方法]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/ios-remote-testing-ban</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/ios-remote-testing-ban</guid>
      <pubDate>Mon, 30 Mar 2026 13:36:15 GMT</pubDate>
      <dc:creator><![CDATA[Rik Haandrikman]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[リモート設定におけるAppleの境界線：安全な実験と違反の違い]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/e57040750722a1bc1e0616caedcf944c17909317-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>アプリの収益を最適化したい開発者にとって、A/Bテストやリモート設定は単なる「あれば便利な機能」ではありません。それこそが競争優位を見つけるための手段です。ペイウォールをテストし、オンボーディングフローを調整し、機能を段階的に展開しながら、実際に成果に影響を与える要素を見極める必要があります。</p>
<p>しかし、多くの人が抱く不安があります。<em>「App Reviewを通さずにリモートでアプリを変更したら、AppleにアカウントをBANされるのではないか？」</em></p>
<p>結論から言うと、ルールを正しく理解していれば、その心配はありません。</p>
<p>AppleはA/Bテストそのものに反対しているわけではありません。実際、App Store上のアセットをテストするためのProduct Page Optimizationツールも提供しています。アプリ内で安全にテストを行うためのポイントは、「<em>データ</em>の変更」と「<em>コード</em>の変更」の違いを理解すること、そして審査プロセスの本質を尊重することにあります。</p>
<p>ここからは、リモートでテストすべき内容（そしてテストできる内容）、安全に実施する方法、そして絶対に越えてはいけないラインについて詳しく見ていきます。</p>
<h2>青信号：テストすべきこと</h2>
<p>リモートテストにおける最も重要なルールは、ガイドライン2.5.2です。ここでは「アプリは、機能や動作を追加・変更するコードをダウンロード、インストール、または実行してはならない」と定められています。</p>
<p>ここで注目すべきは「<em>コード</em>」という言葉です。</p>
<p>FirebaseやRevenueCat Offeringsのようなリモート設定を使って「<em>データ</em>」を変更している場合、つまり既にコンパイル済みのコードの挙動をJSONなどで制御しているだけであれば、基本的には問題ありません。以下は、特に積極的にテストすべき影響度の高い領域です。</p>
<ul>
<li><strong>ペイウォールのUIやコピー：</strong>背景色を変えたり、ヒーロー画像を差し替えたり、「Start Free Trial」と「Subscribe Now」の文言をテストすることは問題ありません。ボタンを描画するコードはすでにアプリ内に存在しており、表示するテキストを変えているだけだからです。これはコンバージョン最適化における最も取り組みやすい領域です。</li>
<li><strong>価格とパッケージ：</strong>ペイウォールに表示するStoreKitプロダクトを切り替える（例えば、年額プランをデフォルトにするか月額にするかをテストしたり、新しいプランを追加するなど）は一般的な手法です。プロダクト自体がApp Store Connectで承認されている限り、どれを表示するかを動的に変更することは安全であり、推奨されています。</li>
<li><strong>段階的リリースのための機能フラグ：</strong>新機能のコードをAppleに提出したバイナリに含めており（かつレビュー担当者がアクセスできる状態にしている場合）、それをユーザーの10％にだけ有効化してクラッシュ率や利用状況を確認したい場合も問題ありません。機能自体はレビュー時点で存在していたため、単に無効化されていただけです。</li>
<li><strong>オンボーディングフロー：</strong>オンボーディング画面の順序を入れ替えたり、価値提案をより分かりやすくするためにテキストを変更することも、リモート設定の適切な使い方です。既存のコンポーネントを活用してユーザージャーニーを最適化しているだけです。</li>
</ul>
<h2>注意点：重要なのは「審査の精神」を守ること</h2>
<p>開発者が問題に直面する原因は、リモート設定の<em>仕組み</em>そのものではなく、「<em>何を</em>設定しているか」にあります。最もよくある落とし穴は、App Reviewの本来の意図をすり抜けようとすることです。</p>
<p>典型的な例として、「ハードペイウォール」と「ソフトペイウォール」のテストを考えてみましょう。</p>
<p>ソフトペイウォールは、ユーザーが閉じることができ、制限付きでアプリを利用できます。一方、ハードペイウォールは、サブスク登録するまで一切のアクセスをブロックします。どちらがより高いLTVを生むかを確認するために、これらをA/Bテストしたいと考える開発者は多くいます。</p>
<p>問題は何でしょうか？ハードペイウォールは、アプリの本質を大きく変えてしまう点にあります。App Storeのメタデータやスクリーンショットでは「無料アプリ＋任意のプレミアム機能」として紹介されているにもかかわらず、リモート設定によって突然ユーザーの50％がアプリを全く使えなくなる状態になると、実態との不一致が生じます。</p>
<p>Appleはフリーミアムアプリとして審査・承認しましたが、実際には「最初から有料」の体験を提供していることになります。これはガイドライン2.3.1（正確なメタデータ）に違反します。ユーザーはダウンロード時に実際の体験を正しく理解できていないからです。</p>
<p>ここで問題になるのはリモート設定そのものではなく、「見せかけと実態のすり替え」です。ハードペイウォールをテストしたい場合は、審査時点でハードペイウォールを有効にした状態でアプリを提出し、App Store上の情報と実際の体験が一致していることを保証するのが最も安全な方法です。</p>
<h2>赤信号：実際にBANされる行為</h2>
<p>Appleはデータに基づくA/Bテスト自体には寛容ですが、絶対に越えてはいけないラインがいくつか存在します。ガイドラインの導入部分には明確にこう書かれています。「システムを欺こうとした場合（例えば審査プロセスをだまそうとした場合など）、アプリはストアから削除され、Apple Developer Programから追放されます。」ここでは特に注意すべきポイントを見ていきます。</p>
<h3><strong>レビュー検知パターン</strong></h3>
<p>これは最も多く、かつ致命的なミスです。開発者がリモート設定を使ってAppleによる審査中かどうかを検知し（IPアドレスの確認や特定のテストアカウントの判定など）、審査時にはクリーンでガイドラインに準拠したバージョンのアプリを表示します。そして承認後にスイッチを切り替えて、強いマネタイズ施策を有効化します。Appleはこの手法を積極的に検出しており、発覚すればアカウントは即停止されます。</p>
<h3><strong>Webチェックアウトへのすり替え</strong></h3>
<p>Epic対Appleの判決により、米国では外部のWebチェックアウトへのリンクが許可されるようになりました。しかしこの判決を誤解し、審査後にリモート設定でIAPペイウォールをWebチェックアウトに置き換えるケースが多く見られます。これはいくつもの理由でリジェクトの原因になります。</p>
<ol>
<li>判決では、多くのアプリに対して外部リンクと並行してIAPを提供し続けることが求められており、完全に置き換えることはできません。</li>
<li>この判決は米国ストアにのみ適用されます。リモート設定で全世界にWebチェックアウトを有効化すると、他のすべての国でガイドライン違反となります。</li>
<li>審査後に支払い手段の本質を変更することは、機能を隠していたと見なされます。</li>
</ol>
<h3><strong>ネイティブStripe SDKの落とし穴</strong></h3>
<p>Epic判決に関するもう一つの誤解は、StripeのネイティブモバイルSDK（Payment Sheetなど）を使ってアプリ内でデジタルサブスクリプションを処理できるというものです。しかしこれはできません。Appleが許可しているのは、外部チェックアウトページを<em>デフォルトブラウザで開くリンクのみ</em>であり、WebViewも不可です。リモート設定でネイティブStripeチェックアウトを有効にするとリジェクトされますし、審査時に存在しなかったものを後から有効にするとアカウント停止のリスクがあります。</p>
<h3><strong>実行可能コードのダウンロード</strong></h3>
<p>レビュー済みのバイナリに含まれていない新しい画面や機能を追加するJavaScriptやネイティブコードをダウンロードすることはできません。画面に表示するデータを変更することは可能ですが、画面そのものを後からダウンロードして追加することは許可されていません。</p>
<h2>黄信号：グレーゾーンへの向き合い方</h2>
<p>ルールを守っていても、ガイドライン5.6（Developer Code of Conduct）に抵触する可能性があります。このガイドラインでは、ユーザーをだまして望まない購入をさせるような「操作的な行為（manipulative practices）」を禁止しています。</p>
<p>「操作的かどうか」は主観的な判断になるため、いくつかのテストはグレーゾーンに入ります。</p>
<ul>
<li><strong>離脱時オファー（Exit offers）：</strong>ユーザーがペイウォールを閉じようとしたときに、割引付きの別オファーを表示する手法です。これは効果的なリテンション施策とも言えますが、操作的と見なされる可能性もあります。実際にガイドライン5.6でリジェクトされた例もありますが、多くの高収益アプリが日常的に実施しています。</li>
<li><strong>連続したペイウォール表示：</strong>オンボーディング中にペイウォールを表示し、ユーザーが拒否した直後に別のペイウォールを表示するようなケースは、5.6違反と判断されやすい傾向があります。</li>
</ul>
<p>こうしたグレーゾーンでテストを行う場合、最も重要なのは透明性です。App Reviewに対して実験を隠そうとしてはいけません。離脱時オファーをテストする場合は、提出するビルドにもその機能を含めておきましょう。また、App Reviewのメモ欄で「現在、ペイウォールのA/Bテストを実施しており、レビュアーにはバリアントAまたはBのいずれかが表示される可能性があります」といった説明を加えることが推奨されます。</p>
<p>リモートテストは、成長を加速させる強力な手段です。未承認の機能をこっそり導入するのではなく、ユーザー体験の最適化や適切な価格設定を見つけるために活用する限り、自信を持ってテストを行うことができます。</p>
<p><strong><em>編集者からのちょっとした補足：</em></strong><em>このブログ記事では、多くの段落の末尾にピリオドが付いていないことにお気づきかもしれません。これは見落としではなく、RevenueCatのマーケティング担当VPであるRik Haandrikmanの“お約束”のスタイルです。彼のユニークな投稿をもっと見たい方は、</em><a href="https://x.com/HHaandr"><em>XでRikをフォロー</em></a><em>してみてください（ピリオドが消えているアカウントが目印です）。</em></p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Web-to-Appファネルを構築し、より多くのトラフィックをコンバージョンへ導く]]></title>
      <link>https://www.revenuecat.com/jp/blog/company/funnels-public-beta</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/company/funnels-public-beta</guid>
      <pubDate>Mon, 30 Mar 2026 12:59:48 GMT</pubDate>
      <dc:creator><![CDATA[Niklas Winkels]]></dc:creator>
      <category><![CDATA[[ 会社情報 ]]]></category>
      <description><![CDATA[RevenueCat Funnelsは現在パブリックベータとして提供されています。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/e60dcc954b799ee94fb301edec480ce2eaffb015-1600x850.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>広告クリックから有料サブスクライバーに至るまでの道のりは、決してスムーズではありません。ユーザーはアプリストアのページを見て、ダウンロードを待ち、オンボーディングを経て、最終的にペイウォールに到達します。しかし各ステップでユーザーは離脱していき、ペイウォールにたどり着く頃には、獲得にコストをかけたユーザーの大半をすでに失っています。</p>
<p>Web-to-Appファネルはこの流れを覆します。ユーザーがApp Storeに触れる前の段階で、Web上でユーザーを獲得し、適格化し、コンバージョンさせることができます。しかしこれまでは、ランディングページツール、決済プロセッサ、分析プラットフォーム、そしてそれらをアプリと連携させるためのカスタムコードを組み合わせて構築する必要がありました。</p>
<p>RevenueCat Funnelsは現在パブリックベータとして提供されており、このような自前構築のスタック全体を置き換えるものです。</p>
<p><a href="https://www.youtube.com/watch?v=E5OFGHfkX-I">Watch on YouTube</a></p>
<h2>Web-to-Appオンボーディングファネルのためのノーコードビルダー</h2>
<p>RevenueCat Funnelsを使えば、ビジュアルエディタ上で複数ステップのWeb体験を設計し、それらを分岐ロジックでつなぎ、ホストされたURLとしてデプロイできます。Web開発やインフラ、エンジニアの作業待ちに頼ることなく、構築から公開まで行えます。</p>
<p>RevenueCatのPaywall Builderを使ったことがある方であれば、このエディタには見覚えがあるはずです。同じドラッグ＆ドロップの仕組みをベースに、複数の画面をつなげて完全なユーザー獲得フローを構築できるよう拡張されています。</p>
<p>エンドユーザーの体験は次のようになります。ユーザーは広告をクリックしてファネルにアクセスし、オンボーディング画面やアンケートを進み、Web上のチェックアウトに到達して購入を完了します。その後、Redemption Linkを受け取り、アプリをダウンロードしてリンクをタップすると、すでにサブスクリプションが有効な状態になっています。</p>
<h2>エディタの内部</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/4365737509df8a7ee701fb1e925b812b1b2b2908-1784x1200.png" alt=""/></figure>
<p>ファネルは、キャンバス上にステップを配置し、それらを接続することで構築します。ステップには、スクリーン（テキスト・画像・ボタン・アンケートを含むカスタマイズ可能なページ）、チェックアウト（RevenueCat、Paddle、そして今後はStripe Billingに対応）、さらには独自の認証フローなどを設定できます。</p>
<p>各ステップは、ボタンのタップやフォーム送信といったトリガーで接続します。その上で分岐ロジックを追加し、ユーザーごとに体験をパーソナライズできます。</p>
<ul>
<li>特定の広告キャンペーンから来たユーザーには、URLパラメータに基づいて異なるオファーを表示します。</li>
<li>アンケートの回答に応じて、異なるオンボーディングフローへユーザーを誘導します。</li>
<li>IPアドレスからユーザーの国を判定し、自動的に体験をローカライズします。</li>
</ul>
<p>フローに満足したら「公開」をクリックします。すると、広告、メール、SNS投稿などから誘導できるホスト済みのURLが発行されます。</p>
<h2>テンプレートですぐに公開</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/077dcd25eb1fe6c181155f34a022fae880d7d2d9-1784x1200.png" alt=""/></figure>
<p>ゼロから作り始める必要はありません。RevenueCat Funnelsには、カスタマイズ可能な事前構築済みテンプレートが用意されています。テンプレートを選び、ブランド要素を反映し、コピーやフローを調整して、そのまま公開できます。ゼロの状態から実際に動くファネルまで、数分で立ち上げることが可能です。</p>
<h2>収益の流れが分かるアナリティクス</h2>
<p>すべてのファネルには、RevenueCatダッシュボード上で利用できる組み込みのアナリティクスが含まれています。</p>
<p>General Metricsタブでは、ユニークセッション数、コンバージョン率、時間ごとの収益を確認できます。トラフィックソース、キャンペーン、国などの軸でデータをセグメント化することで、どのチャネルが最も価値の高いユーザーを生み出しているかを把握できます。</p>
<p>Step-by-Step Metricsタブでは、各ステップごとのコンバージョン率と離脱率を詳細に分解して表示します。特定の画面でユーザーが離脱している場合、どこに改善の余地があるのかを正確に把握できます。このビューは現在ベータ初期段階にあり、今後さらに詳細な情報が追加される予定です。</p>
<p>また、アナリティクスにはカスタマーライフタイムの選択機能も含まれており、特定の日のセッションから得られた収益を、指定した期間（初日、7日間、14日間など）で測定できます。これはChartsにおけるRealized LTVと同様の概念で、トライアルを実施している場合に、キャンペーンごとの実際のROIを比較する際に役立ちます。</p>
<p>さらに、FunnelsはUTMパラメータ（source、medium、campaign、content、term）を自動で取得するため、ファネルで発生した収益をすべて、元となったキャンペーンに紐づけて把握することができます。</p>
<h2>RevenueCat Funnelsを試すべき人</h2>
<p><strong>有料ユーザー獲得（広告運用）を行っている場合</strong></p>
<p>広告トラフィックをクイズに誘導し、パーソナライズされたオファーを提示し、Web上で決済を完了させ、その後サブスクリプションが有効な状態でアプリにユーザーを送るファネルを構築できます。アトリビューションの可視性を保ったまま、アプリストアの手数料を回避できます。</p>
<p><strong>エンジニアの対応待ちに疲れているグロースマーケターの場合</strong></p>
<p>画面の差し替え、アンケート内容のテスト、分岐ロジックの調整を自分で行えます。結果はアナリティクスダッシュボードで確認でき、数分で変更をリリースできます。スプリント単位で待つ必要はありません。</p>
<p><strong>Webチームを持たないインディー開発者の場合</strong></p>
<p>RevenueCatがすべてをホスティングし、Web Billingによるチェックアウトも処理します。これにより、はるかに簡単に導入を始めることができます。</p>
<p><strong>インフルエンサー施策やキャンペーン別プロモーションを行っている場合</strong></p>
<p>1つのファネルを作成し、特定のキャンペーンコードを持つユーザーに対して特別な割引やプロモーションコンテンツを表示する分岐を追加できます。1つのファネルで、キャンペーンコードに応じて複数のオーディエンスに対応できます。</p>
<h2>パブリックベータに含まれる内容</h2>
<p>パブリックベータには、Web-to-appファネルの構築・公開・分析に必要なすべての機能が含まれています。</p>
<ul>
<li>ドラッグ＆ドロップで画面を構築できるビジュアルファネルエディタ</li>
<li>事前構築済みテンプレート</li>
<li>アンケートコンポーネント（複数選択・単一選択）</li>
<li>URLパラメータ、国、ブラウザ情報、アンケート回答に基づく分岐ロジック</li>
<li>RevenueCat Billingによるチェックアウト</li>
<li>Paddle Billingによるチェックアウト</li>
<li>カスタムドメイン対応</li>
<li>共有可能なURLによるホスト型デプロイ</li>
<li>Webでの購入をアプリのエンタイトルメントに紐づけるRedemption Link</li>
<li>コンバージョン率、離脱率、収益、カスタマーライフタイム値セレクターを含むアナリティクスダッシュボード</li>
<li>UTMパラメータの自動トラッキング</li>
<li>Amplitude、Mixpanel、Metaとの連携</li>
<li>ローカライズ管理</li>
<li>自動保存機能</li>
</ul>
<p>Funnelsは追加料金なしでRevenueCatのプランに含まれています。Funnels経由の購入は、他のRevenueCatトランザクションと同様にMTRにカウントされます。</p>
<h2>ロードマップの内容</h2>
<p>現在、チームはファネル内でのA/Bテスト機能を開発中です。AppsFlyerとの連携もロードマップに含まれており、Stripe Billingのサポートはリリース後まもなく追加される予定です。さらに、メール収集や自由入力テキストなどの新しい入力タイプも今後追加されます。もし追加してほしい機能があれば、<a href="https://form.typeform.com/to/wPjgRQ7V">ぜひご意見をお聞かせください</a>。</p>
<h2>はじめ方</h2>
<p>最初のファネルを作成する手順は以下の通りです。</p>
<ol>
<li>Paddleを使用したRevenueCat Web、またはStripeアカウントを連携したRevenueCat Billingを設定します。</li>
<li>RevenueCat WebダッシュボードのFunnelsセクションを開きます。</li>
<li>テンプレートから新しいファネルを作成するか、ゼロから作成します。</li>
<li>画面をデザインし、分岐ロジックを追加し、チェックアウトステップを接続します。</li>
<li>ファネルを公開し、URLを共有します。</li>
</ol>
<p>詳細なセットアップ手順は、<a href="https://www.revenuecat.com/docs/tools/funnels">Funnelsのドキュメント</a>に掲載されています。</p>
<p>RevenueCat Funnelsは現在、RevenueCatユーザー向けにパブリックベータとして提供されています。ダッシュボードを開いて、最初のファネルを作成してみてください。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[RevenueCatのプロダクトチームの内側]]></title>
      <link>https://www.revenuecat.com/jp/blog/company/inside-product-engineering</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/company/inside-product-engineering</guid>
      <pubDate>Mon, 30 Mar 2026 12:28:18 GMT</pubDate>
      <dc:creator><![CDATA[Jens-Fabian Goetzmann]]></dc:creator>
      <category><![CDATA[[ 会社情報 ]]]></category>
      <description><![CDATA[プロダクト組織の内部をのぞいてみる（採用中！）]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/d864dd49b5a81b4555c030f42761e4d4b3dfbc01-1600x850.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>RevenueCatの<a href="https://www.revenuecat.com/blog/company/values/">ミッション</a>は、<strong>開発者がより多くの収益を得られるように支援する</strong>ことです。CEOの<a href="https://www.linkedin.com/in/jeiting">Jacob</a>は、隔週で行われる全社会議で毎回、「勝てるチームをつくること」と「開発者がより多くの収益を得られるようなものを開発し、届け、販売すること」によってそれを実現していると語っています。後者、つまりプロダクトを<em>出荷する</em>ことは、Engineering・Product・Design（EPD）の責任範囲であり、<em>勝てるチーム</em>を支える3つの柱の1つが、私たちのプロダクトエンジニアチームです。</p>
<p>現在、このプロダクトチームは5名のプロダクトエンジニアで構成されており、複数のポジションを募集中で、2026年に向けてさらに採用を進めていく予定です。そこで本記事では、RevenueCatにおけるプロダクトエンジニア（PE）の実際の働き方、ここで成功するために必要なこと、そして私たちが直面している課題について紹介していきます。</p>
<h2><strong>RevenueCatのプロダクトが特別である理由</strong></h2>
<p>プロダクトに関わる立場として取り組める製品には、誰もが知っている（あなたの両親ですら知っているような）コンシューマー向けプロダクトから、特定の業界にいないと理解が難しいニッチなプロダクトまで、さまざまなものがあります。RevenueCatは明らかに後者に分類されますが、それでも非常に特別なプロダクトです。</p>
<h3><strong>難解な問題と意味のあるインパクト</strong></h3>
<p>RevenueCatを特徴づける要素のひとつは、非常に複雑で、やや専門的で分かりにくい問題を解決している点です。アプリ内課金のペイロードに含まれる各フィールドが何を意味するのか、Apple・Google・Stripeそれぞれでどのようなエッジケースが存在するのか、そしてそれらをどう扱うのが最適かを理解することは、複雑で決して華やかなものではありません。</p>
<p>私たちはよく<em>「痛みを食べて生きている」</em>と言います。つまり、<strong>開発者が向き合わずに済むように、つらいインフラの問題を引き受けている</strong>という意味です。それだけでもRevenueCatは扱うのが難しいプロダクトですが、それ以上に意味があるのは、その取り組みの背景にある理由です。私たちはアプリ開発者がアプリで収益を得られるよう支援しています。なぜなら…</p>
<ul>
<li>私たちは、ソフトウェアは（全体として見れば）世界にとってプラスの存在であると信じています。</li>
<li>人々がソフトウェアを作り、それで生計を立てられるようにすることが、人類がより多くのソフトウェアを生み出す最良の方法だと考えています。</li>
</ul>
<p>これらの考えに共感できるのであれば、RevenueCatは非常に魅力的なプロダクトです。私たちが解決している問題は、何万もの開発者がアプリで収益化することを支えているからです。</p>
<p>また、RevenueCatの多くのメンバーはアプリ開発のバックグラウンドを持っており、今でも個人アプリをストアで公開している人もいます。そのため、私たちは顧客と同じ立場を経験してきており、自分たちが解決している問題や提供している価値を実感として理解しています。これが私たちのユニークな点です。</p>
<h3><strong>顧客に愛されるプロダクト</strong></h3>
<p>RevenueCatは多くのファンを持つプロダクトです。もちろん、すべての顧客がファンというわけではありません。正当な不満を持つ人もいれば、単に日々の業務で使うツールのひとつとして捉えている人もいます。それでも、私たちのプロダクトを本当に気に入ってくれている顧客は数多く存在します。なぜなら、RevenueCatによって「好きなこと（アプリ開発）で収益を得ること」が可能になっていると実感しているからです。</p>
<p>カンファレンスで自ら私たちのブースを訪れてアプリの話をしてくれる顧客や、App Growth Annualに参加してくれる人たちと直接会うと、自分たちが関わっているプロダクトが愛されていることを実感できます。また、顧客が初めてのRevenueCatの請求書について誇らしげにSNSに投稿しているのもよく目にします。これは無料プランの上限を超え、アプリで実際に収益を得られるようになったことを意味します。これほど「お金を払うこと自体を喜ばれる」プロダクトは多くありません。</p>
<p>こうしたフィードバックは、RevenueCatで働くことの大きなやりがいにつながるだけでなく、問題に直面している顧客を支援したいというモチベーションにもなります。</p>
<h3><strong>顧客と一致したビジネスインセンティブ</strong></h3>
<p>最初の請求書の話に関連して言うと、RevenueCatとそのビジネスモデルの大きな特徴のひとつは、私たちのインセンティブが顧客のインセンティブと一致している点です。私たちは顧客の収益の一定割合を課金します。つまり、<strong>顧客が成長すれば私たちも成長</strong>し、顧客が収益を上げれば私たちも収益を得るという構造です。</p>
<p>これ以上に純粋なビジネスモデルはほとんどありません。私たちは顧客の成功を望んでいます。なぜなら、それがそのまま私たちの成功にもつながるからです。<strong>両者のインセンティブは完全に一致</strong>しており、その結果、プロダクトの意思決定においてビジネス的な妥当性を判断することが非常にシンプルになります。</p>
<p>数年前、私たちは価格体系をシンプルにし、無料プランであってもエンタープライズプランであっても、すべての顧客がすべての機能を利用できるようにしました。これは、私たちの収益が顧客の収益に比例して増えるため、顧客が大きくなれば自然とより多くの料金を支払う構造になっているからです。また、私たちは<strong>すべての開発者が成長ツールの恩恵を受けるべきだ</strong>と考えています。もし低価格プランの開発者に対してそれらのツールへのアクセスを制限してしまえば、自分たちの成長機会をも制限することになってしまいます。</p>
<h3><strong>異なるプロダクト領域とそれぞれの課題</strong></h3>
<p>最後に強調したいプロダクトの特徴は、複数の異なる領域（サーフェス）を持っている点であり、それぞれに固有の（技術的な）課題が存在することです。</p>
<ol>
<li><strong>バックエンド：</strong>私たちのバックエンドは顧客にとっての重要なインフラです。顧客の収益に影響を与えないよう、信頼性を最優先にする必要があり、同時に非常に高いスケーラビリティも求められます。バックエンドは毎日数十億件のAPIリクエストを処理しており、最も利用されるAPIエンドポイントは完全に<a href="https://www.revenuecat.com/blog/engineering/data-caching-revenuecat/">キャッシュ</a>されていなければ、データベースは瞬時に崩壊してしまいます。</li>
<li><strong>SDKおよびAPI：</strong>これらは、開発者がアプリやバックエンドを構築する基盤となるため、長期間にわたって安定して動作するように設計する必要があります。特にSDKは品質基準が非常に高く、バグのあるSDKが一度アプリに組み込まれてしまうと、ユーザーがアプリを更新しない限り、その問題が長期間にわたって残り続ける可能性があります。</li>
<li><strong>Webダッシュボード：</strong>この領域では、より自由度高くイノベーションや改善を行うことができるため、非常に高速に変更をデプロイできます。</li>
<li><strong>コンシューマー向けUI：</strong>最近では、より多くのコンシューマー向けUIを提供しています。<a href="https://www.revenuecat.com/docs/tools/paywalls">ペイウォール</a>、<a href="https://www.revenuecat.com/docs/tools/customer-center">カスタマーセンター</a>、<a href="https://www.revenuecat.com/docs/web/web-billing/customization">Webチェックアウト</a>、<a href="https://www.revenuecat.com/docs/web/web-billing/customer-portal">Webカスタマーポータル</a>などは、顧客のさらにその先のユーザーが利用するため、信頼感を与える高い完成度が求められます。</li>
</ol>
<h2><strong>プロダクト開発へのアプローチ</strong></h2>
<p>私たちのプロダクト開発へのアプローチは、会社のバリューとタレントビジョンの両方によって形作られています。</p>
<h3>プロダクトマネジメントではなく、プロダクトエンジニアリング</h3>
<p>私たちは最近、プロダクト<em>マネージャー</em>という役割をプロダクト<em>エンジニア</em>へと変更し、プロダクトエンジニアをエンジニアリング組織に統合するという意思決定を行いました。AIによる開発支援によってコードを書くことがボトルネックではなくなりつつある現在、プロダクトとエンジニアリングはこれまで以上に密接に連携する必要があります。プロダクト担当者はソフトウェアエンジニアを介さずにプロダクトの変更をリリースできるようになり、一方でエンジニアは単にコードを書くのではなく、より高いプロダクト視点や判断力が求められるようになります。つまり、プロダクトとエンジニアの連携と一体化がこれまで以上に重要になっており、この役割変更はその整合性を強化するものです。</p>
<h3><strong>何を作るかを決める</strong></h3>
<p>私たちは毎年、プロダクト戦略を策定します。この戦略が、その年に注力すべき領域を決定します。一般的に、毎年の戦略は過去の戦略の延長線上にある進化であり、大きな転換や急激な方向転換ではありません。戦略は経営陣によって決定されますが、その形成過程にはプロダクトエンジニア（PE）が重要なインプットを提供します。</p>
<p>この戦略に基づき、チーム構成も見直されます。私たちは比較的安定したクロスファンクショナルチームを持ち、PEはエンジニアチーム、エンジニアリングマネージャー（EM）、そしてデザイナーと協力して業務を進めます。</p>
<p>ロードマップは主に四半期ごとのプランニングプロセスで決定されます。このプロセスはこれまで何度も改善されてきましたが、現在は次のような流れになっています。</p>
<p>各チーム（PE、EM、デザイナーで構成）が優先事項のセットを提案し、それを経営陣（CEO、CTO、Head of Product）がレビューおよび議論します。これらの議論の中で一部調整が行われることもありますが、基本的には各チームがロードマップと優先順位の決定を担います。プロダクトエンジニアはこのプロセスにおいて重要な役割を果たしており、自身の担当領域を最も包括的に理解し、顧客にどのような価値を提供できるかを最もよく把握している存在であることが多いです。</p>
<p>日々および週単位の業務では、プロダクトエンジニアはEMやデザイナーと密接に連携し、少なくとも週1回のミーティングと、より頻繁な非同期コミュニケーションを通じて協働します。チームにおける機能の発見（ディスカバリー）と実装（デリバリー）はチーム全体で担われ、緊密なコラボレーションによって実現されています。</p>
<h3><strong>プロダクトチームにおけるバリューの実践</strong></h3>
<p>前述の通り、私たちのプロダクト開発の進め方を形作っているもう一つの要素は、会社のバリューです。これらはNotionに書かれて忘れられているような単なるリストではなく、私たちが日々意識し、実践し、自分たちを評価するための指針となるものです。</p>
<h4><strong>顧客への徹底したフォーカス（Customer obsession）</strong></h4>
<p>RevenueCatでは、何よりもまず<strong>顧客に価値を提供することを重視</strong>しています。これはいくつかの具体的な行動につながります。</p>
<ul>
<li><strong>PEは頻繁に顧客と会話し、関わることが求められる：</strong>これには1対1のミーティングやリサーチコールだけでなく、サポートチケット、SNSの投稿、営業との会話、顧客との共有Slackチャンネル、カンファレンスでの会話なども含まれます。</li>
<li><strong>PEと顧客の間に障壁はありません</strong>。より良いプロダクト判断につながるのであれば、すぐに会話を設定すべきです。</li>
<li><strong>顧客の具体的なエピソード</strong>は、プロダクトの意思決定を議論する際に非常に説得力のある材料になります。もちろん、顧客の要望をそのまま全て実装するわけではありませんが、その背後にある本質的なニーズや課題を理解しようとします。一般的に、顧客が自分の問題や未解決の課題を伝えてくれるほどプロダクトに関心を持っているのであれば、その声には耳を傾けるべきだと考えています。</li>
<li><strong>チームは、</strong>問題の規模に関係なく<strong>顧客のニーズに向き合います</strong>。たとえ小さな不満であっても軽視しません。戦略やロードマップは重要ですが、バグを素早く修正したり、ユーザーが直面している制約を取り除いたりすることで「自分たちは大切にされている」と感じてもらえれば、それだけで顧客の印象は大きく変わり、懐疑的だったユーザーがファンになったり、ファンがさらに強い支持者へと変わることもあります。</li>
</ul>
<h4><strong>常にリリースし続ける（Always be shipping）</strong></h4>
<p><em>「常にリリースし続ける」</em>という価値観は、私たちのプロダクト開発の進め方に大きく影響しています。具体的には、計画している機能のスコープをMVP（最小実用製品）まで削減することを促します。その理由はいくつかあります。</p>
<ol>
<li>顧客に価値をより早く届けることができるため</li>
<li>できるだけ早い段階で顧客からフィードバックや検証結果を得ることができるため</li>
</ol>
<h5><strong>リリース目標</strong></h5>
<p>この「常にリリースする」状態を実現し、スコープを最小化するための方法のひとつが、社内の締め切りを設定することです。</p>
<p>こうしたリリース目標を設定した場合、私たちはその期限までに必ずリリースできるよう、チームのスピードを上げるためにリソースを追加するなど、あらゆる手段を講じます。また同時に、「必須」だった要素を「あると良い」へと下げるといった、痛みを伴うスコープ削減を迫られることもあります（ソフトウェア開発を知っている人であれば分かる通り、多くの場合「あると良い」は<em>実際には</em>実装されません）。</p>
<p>興味深いのは、機能をリリースして顧客に使ってもらった後に寄せられる最初の要望が、後回しにした機能ではなく、まったく別のものになることが多い点です。これは、迅速にリリースすることの価値を示しています。私たち自身も顧客も、機能が実際にプロダクト内で使われたときにどう振る舞うかを正確に予測することはできません。それを知る唯一の確実な方法は、素早くリリースし、その後に改善を重ねることです。</p>
<h5><strong>行動バイアス（Bias for action）</strong></h5>
<p><em>「常にリリースし続ける」</em>もう一つの側面は、行動バイアスです。私たちは常に不完全な情報のもとで意思決定を行っています。もし完全な情報を待っていたら、決断は永遠にできません。そのため、プロダクトエンジニアには、<strong>不確実性の中でも意思決定を前に進める責任があります</strong>。多くの決定は後から修正可能であるため、延々と議論し続けるよりも前進することの方が重要です。行動せよ、議論だけで終わるな。</p>
<h4><strong>オーナーシップを持つ（Own it）</strong></h4>
<p>RevenueCatではオーナーシップが非常に重要です。プロダクトエンジニアにとって、それは「どんな問題も他人事ではない」という意味です。私たちは共に勝ち、共に負けます。問題に気づいたら、それが自分の担当領域でなくても行動するべきです。</p>
<p>もちろん、PEが<em>すべての問題を自分で解決</em>する必要があるわけではありません。しかし、顧客の課題から解決策の設計、技術的な実装に至るまで、最も広くエンドツーエンドで理解していることが多いため、<em>問題に気づく</em>立場にあり、実際にそれが期待されています。</p>
<p>RevenueCatのプロダクトエンジニアは<a href="https://x.com/shreyas/status/1276956836856393728?s=20">高い主体性</a>を持っており、困難な状況でも変化を起こせると信じられています。彼らは目の前の問題を解決するためにできる限りのことを行い、ときにはそれ以上のこともします（例えば、より良く問題を解決するために新しいことを学ぶなど）。コードベースを掘り下げてバグの原因を特定したり、データウェアハウスをクエリしてデータを理解したり、顧客の問題をデバッグするために急遽ミーティングに参加したりします。</p>
<p>また、AI支援による開発の進化により、プロダクト担当者がコードベースに直接貢献することも珍しくなくなっています。変更が比較的シンプルな場合、チケットを書いてエンジニアに依頼するよりも、PE自身がCursorやClaude Codeを使って直接修正を行い、レビューを経てリリースする方がはるかに速いこともあります。</p>
<p>要するに、やるべきことは多く、全員が総力戦で取り組んでいるということです。</p>
<h4><strong>バランス（Balance）</strong></h4>
<p><em>「バランス」</em>というバリューは、おそらく最も誤解されやすいものです。これは手を抜くという意味ではありません（むしろ、RevenueCatはスタートアップであり、仕事は意図的にハードです）。<strong>私たちはスピードを維持し続けてこそ成功できます</strong>。</p>
<p>しかし同時に、このバリューは「速く動くこと」と「燃え尽きること」の間にある微妙なバランスを意識させてくれます。興味深い課題に取り組み、モチベーションの高いチームと働くことは、大きなやりがいにつながります。PEはチームのモチベーションや関心を維持する上で重要な役割を担っており、自分たちが解決している問題と顧客へのインパクトを結びつけること、例えば顧客からのポジティブなフィードバックを共有したり、熱量のある雰囲気を生み出したりすることが求められます。</p>
<p>また、「バランス」は他者に対する思いやりや優しさ、そして信頼と相互理解に基づいたチーム環境を築くことも含んでいます。プロダクトエンジニアは自然とリーダー的な役割を担うことが多く、こうした行動を体現し、チームに広げていく上で重要な存在です。</p>
<h3><strong>RevenueCatのタレントビジョン</strong></h3>
<p>RevenueCatのタレントビジョンは、高い能力を持つメンバーで構成された「<a href="https://www.revenuecat.com/blog/engineering/engineering-strategy/#h-on-growth">勝てるチーム</a>」を築くことです。そのため、すべてのメンバーに対して高い基準を設けており、それを採用やパフォーマンス管理のプロセスを通じて維持しています。</p>
<p>この考え方は、プロダクト開発の進め方にもいくつかの影響を与えています。まず、私たちのチームは比較的シニアでプロダクト志向のエンジニアやエンジニアリングマネージャーで構成されています。そのため、RevenueCatのPEは、細かいプロジェクト管理や詳細なチケット作成に深く入り込む必要はあまりありません。むしろ、<strong>必要なコンテキストや問題領域の理解を的確に伝える能力</strong>が重要であり、それによってエンジニアがPEの意思決定によってボトルネックになることを防ぎます。</p>
<p>また、このビジョンはチームが比較的リーンであることも意味しています。私たちは、優秀な人材で構成された小さなチームの方が、基準の低い大規模なチームよりもはるかに速く動けると考えています。</p>
<h2><strong>プロダクトチームが直面している主な課題</strong></h2>
<p>ここでは、RevenueCatのプロダクトエンジニアとして直面している主な課題を紹介します。</p>
<h3><strong>やるべきことが多すぎて時間が足りない</strong></h3>
<p>これは典型的なスタートアップの課題かもしれませんが、RevenueCatでもまさに同じ状況です。私たちには常に、取り組むべきアイデアや解決すべき顧客の課題が、実際に対応できるキャパシティを上回っています。そのため、会社全体としても、各チームとしても、そしてPE個人としても、適切に優先順位を付け、それを市場や顧客、社内の関係者にしっかりと伝える必要があります。これに対しては、戦略とプランニングプロセスを通じて、常に最もインパクトの大きい機会に集中するようにしています。</p>
<h3><strong>顧客志向と戦略的優先順位のバランス</strong></h3>
<p>上記の優先順位付けの必要性に関連して、私たちはしばしば「<em>顧客への徹底したフォーカス</em>」と「戦略的優先順位」の間で引き裂かれる状況に直面します。戦略的なプロジェクトは成果が出るまでに時間がかかる一方で、顧客志向の価値観は小さなリクエストにも迅速に対応することを求めます。どちらかに偏りすぎるのは望ましくありません。顧客の声を無視して長期戦略だけに集中すれば、反応が遅いと見なされ、これまで築いてきた顧客からの信頼を失うリスクがあります。一方で、顧客の要望ばかりに対応していると、大きな成長機会を逃したり、市場の変化に乗り遅れたり、プロダクトや会社にとって次の大きなチャンスを掴めなくなります。</p>
<h3><strong>成長に伴う調整コストの増加</strong></h3>
<p>RevenueCatはここ数年で大きく成長してきました。タレントビジョンに基づき、収益ほど急速にチームを拡大してはいませんが、それでも組織は拡大しており、今後も成長を続けていく予定です。EPDチームが大きくなることでプロダクト改善のためのリソースは増えますが、その分、調整に必要なコストも増加します。エンジニアリングチームの人数が倍になったとしても、リリースできる変更が単純に倍になるわけではありません。一部のリソースは調整や連携に割かれる必要があるからです。また、チームが増えることで、プロダクトの各領域で一貫性のない体験が生まれるリスクも高まり、それを防ぐためにもさらなる調整が必要になります。</p>
<h3><strong>マルチプロダクト企業への転換</strong></h3>
<p>現在直面している最大の戦略的課題は、単一プロダクト企業からマルチプロダクト企業へと移行することです。RevenueCatは長年、アプリにアプリ内課金を導入するための最良の手段として位置づけられてきました。その結果、多くのサブスクリプションアプリが最初からRevenueCatを採用しています。しかし、新規のサブスクリプションアプリの市場には限界があります。</p>
<p>成長を続けるためには、既存のターゲット市場に対してより多くの価値を提供すると同時に、現在のRevenueCatプロダクトが適していない新しい顧客層にもアプローチする必要があります。そのためには、完全に新しいプロダクトを追加するか、既存のプロダクトを分解して個別に提供できるようにするなど、マルチプロダクト戦略が不可欠です。</p>
<p>私たちはその両方に取り組む計画であり、それに伴ってプロダクト意思決定のプロセスも大きく変わることになります。プラットフォームの一部だけを利用するユーザーにも適した体験を設計し、価格や課金モデルを構築し、適切なプロダクトを見つけて設定できるオンボーディングフローを設計する必要があります。</p>
<p>この取り組みはまだ始まったばかりであり、今後しばらくは私たちにとって大きなテーマであり続けるでしょう。</p>
<h2>RevenueCatにおける優れたとはプロダクトエンジニアとは</h2>
<p>ここまで読んでいただけましたか？それでは、RevenueCatにおけるプロダクトエンジニアに適した人物像について見ていきましょう。もしかすると、あなた自身がその人物かもしれませんし、思い当たる誰かがいるかもしれません。</p>
<ul>
<li><strong>ビルダーであり、マネージャーではない：</strong>RevenueCatのPEは自分たちを「プロダクトを作る人」と捉えています。バックログを管理したりステークホルダーを調整したりするのではなく、協働し、最適な解決策を提案し、チームがより速く前進できるよう支援します。</li>
<li><strong>ミッショナリー：</strong>私たちのミッションは開発者がより多くの収益を得られるようにすることであり、PEはそれを強く信じています。ソフトウェアが世界にとって良いものであり、開発者が成功することでより多くのソフトウェアが生まれると考えているからこそ、顧客に強くフォーカスします。</li>
<li><strong>徹底したオーナーシップ：</strong>RevenueCatのPEは、顧客の課題を解決しプロダクトを成功させるために必要なことはすべてやります。他人を責めたり失敗を受け入れたりするのではなく、チームの一員として責任を分かち合いながら前に進む方法を見つけます。孤立した個人ではなく、チームの一員として行動します。</li>
<li><strong>不完全な情報でも決断できる力：</strong>スピードの速いスタートアップ環境では、PEは必要十分な情報を集めて素早く意思決定を行います。現在のデータに基づいて行動し、方針を定めてチームを導きつつ、新しい情報が得られた場合には柔軟に方向転換できる姿勢を持っています。</li>
<li><strong>深い技術理解：</strong>RevenueCatは複数のユーザー層に対応していますが、本質的には開発者向けツールです。そのためPEには、API、分散システム、SDKの制約、データモデルといった領域について深い技術的理解が求められ、それらに関する意思決定を説明し評価できる必要があります。</li>
<li><strong>非同期コミュニケーション力：</strong>グローバルなリモートチームであるRevenueCatでは、PEはドキュメント、Loom、FigJamなどを用いた明確な非同期コミュニケーションに優れており、必要に応じてリアルタイムの会話に切り替えてチームの認識を揃える判断力も持っています。</li>
</ul>
<h2><strong>採用中です！</strong></h2>
<p>RevenueCatではプロダクトエンジニアチームを継続的に拡大しています。難しくも意味のある問題に取り組み、何万もの開発者が好きなことを仕事にできるよう支援したいと考えるビルダーであれば、ぜひお話ししましょう。詳しくは<a href="https://jobs.ashbyhq.com/revenuecat">キャリアページの募集</a>をご覧ください！</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Google Playの新しい「Merchandising and optimization」ページがAndroid開発者に与える影響]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/google-play-merchandising</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/google-play-merchandising</guid>
      <pubDate>Mon, 30 Mar 2026 06:34:43 GMT</pubDate>
      <dc:creator><![CDATA[Jaewoong Eum]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[既存の3つのアプリ外マーチャンダイジング機能が何であり、どのように機能しているのか、そしてそれらを新しい「Merchandising and optimization」ページに統合することでGoogle Playにどのような変更が加わるのかを見ていきます。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/7c15e31ed09a481504846d7ee82b874d9a7a25ee-1600x850.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>多くのAndroid開発者は、マネタイズを「アプリ内で何が起きるか」という観点で捉えています。つまり、課金フローの起動、ペイウォールの表示、購入結果の処理といった部分です。しかしGoogle Playは、アプリの外でもあなたのプロダクトを販促しています。ストア上の表示、通知、ブラウジング体験の中でユーザーに推薦されるのです。こうしたアプリ外のサーフェスは、多くの開発者が意識的に管理していないにもかかわらず、購入を生み出しています。現在、Googleはこれら3つの異なる販促機能を、単一のML駆動ページに統合しようとしており、対応には明確な期限が設けられています。</p>
<p>本記事では、既存の3つのアプリ外マーチャンダイジング機能の仕組みと役割、これらを新しい「Merchandising and optimization」ページに統合することでGoogle Playにどのような変更が加わるのか、既存設定に影響するタイムラインと3月16日の締め切り、移行時に各機能で注意すべきポイント、期限までに取るべき具体的な対応、そしてアプリ外購入がどのように課金基盤と連携するのかについて解説します。</p>
<h2><strong>背景：Google Playはどのようにアプリ外でプロダクトを販促しているのか</strong></h2>
<p>変更点に入る前に、Google PlayがすでにアプリのUIの外でどのようにプロダクトをプロモーションしているのかを理解することが重要です。アプリ外マーチャンダイジングが重要なのは、現在アプリを開いていないユーザーにもリーチできる点にあります。Playストアを閲覧しているとき、通知を受け取ったとき、関連コンテンツを見ているときなど、ユーザーはアプリを起動することなくあなたのプロダクトに触れる可能性があります。これは、アプリ内課金UIとは独立して機能する、追加の獲得およびコンバージョンチャネルを生み出します。</p>
<p>現在、このアプリ外マーチャンダイジングを担う機能は3つ存在し、それぞれがGoogle Play Console内で個別に設定されています。</p>
<h3><strong>購入フローのレコメンド（Purchase flow recommendations）</strong></h3>
<p>購入フローのレコメンド機能では、ユーザーがPlayストアを閲覧している際に、Google Playがあなたのプロダクトを提案することができます。ユーザーがアプリを探索したり、関連コンテンツを閲覧したり、購入画面を移動しているときに、アプリ内プロダクトやサブスクリプションがレコメンドとして表示されます。これらの提案は、ユーザーの購入履歴、閲覧行動、コンテキストシグナルに基づいて決定されます。</p>
<p>この機能は、どのSKUをプロモーション対象にするかを選択し、必要に応じて特定の国をターゲティングすることで設定します。その後、Google Playが適切なユーザーに対して、いつ・どこに表示するかを決定します。設定はGoogle Play Console内の専用の <a href="https://support.google.com/googleplay/android-developer/answer/15317027">purchase flow recommendations ページ</a> で管理されます。</p>
<h3><strong>注目プロダクト（Featured products）</strong></h3>
<p>注目プロダクトは、より直接的にプロモーションをコントロールできる機能です。Google Playに表示内容を任せるのではなく、どのプロダクトを強調するかを明示的に設定します。プロモーションの開始日と終了日を設定できるほか、特定のオファーやイベントと紐付けたり、特定のオーディエンスや国をターゲティングしたり、開発中はライセンステスターのみに限定することも可能です。</p>
<p>この機能は、期間限定のプロモーション、季節キャンペーン、新しいプレミアムコンテンツの訴求に適しています。何を、誰に、どの期間表示するかを細かく制御できる点が特徴です。</p>
<h3><strong>カート放棄リマインダー（Cart abandonment reminders）</strong></h3>
<p>カート放棄リマインダーは、購入ファネルの別の段階に対応する機能です。ユーザーが購入フローを開始したものの完了しなかった場合、Google Playが通知を送って購入の完了を促します。これは、ECで一般的な手法をアプリストアに適用したものです。</p>
<p>この機能では個別のプロダクト設定は行いません。代わりにGoogle Playが購入未完了の試行を自動的に追跡し、途中で離脱したユーザーにリマインド通知を送信します。この機能を利用したくない場合は、Google Play Consoleのフォームから完全にオプトアウトすることも可能です。現在は、ワンタイムプロダクトとサブスクリプションでそれぞれ別々にオプトアウト設定が管理されています。</p>
<h2><strong>何が変わるのか：統合されたML主導のアプローチ</strong></h2>
<p>Googleは、これまで別々に提供されていた3つのツールを、Google Play Console内の単一の <a href="https://support.google.com/googleplay/android-developer/answer/16431369">Merchandising and optimization ページ</a> に統合します。購入フローレコメンド、注目プロダクト、カート放棄リマインダーを個別に管理するのではなく、すべてを1か所で設定する形になります。</p>
<p>根本的な変化は、「手動設定」から「アルゴリズムによる最適化」への移行です。新しい仕組みは次のように動作します。</p>
<ol>
<li><strong>対象となるSKUを選択：</strong>新しいページで、アプリ外プロモーションの対象とするプロダクトを選択します。</li>
<li><strong>残りはGoogleのMLが判断：</strong>Google Playの機械学習モデルが、選択したプロダクトを表示する最適なサーフェス、タイミング、オーディエンスを決定します。</li>
<li><strong>より広いリーチと引き換えに手動コントロールは減少：</strong>MLシステムは、Google Playがサポートするすべてのアプリ外購入フローにプロダクトを配置できるため、手動で設定したプロモーションよりも多くのユーザーにリーチできる可能性があります。</li>
</ol>
<p>これはつまり、これまで注目プロダクトで可能だった細かなコントロールの一部を失うことを意味します。マーチャンダイジングレベルでのオーディエンスターゲティングや国別ターゲティング、特定のオファーやイベントとの紐付けはできなくなります。国単位の制限が必要な場合は、SKUレベルで設定する必要があります。</p>
<p>このトレードオフはシンプルです。手動設定を手放す代わりに、GoogleのMLがより広範なサーフェスで最適化を行います。多くの開発者にとっては、MLモデルが人手よりもはるかに速く配置戦略をテスト・改善できるため、結果としてパフォーマンス向上が期待できます。</p>
<p>また、これまでこれらの機能を設定してこなかった開発者にとっては、新しいページはチャンスでもあります。従来は3つの異なる設定画面を管理する必要があり、その煩雑さがアプリ外マーチャンダイジングの利用を妨げていました。単一ページでシンプルに管理できることで導入のハードルが下がり、Google Play上でのプロモーションの恩恵を受けやすくなります。</p>
<h2><strong>タイムライン：いつ何が起きるのか</strong></h2>
<p>移行は段階的に進められ、明確な締め切り日が設定されています。各段階で何が起きるのかを見ていきましょう。</p>
<table>
<thead><tr>
<th><p>日付</p></th>
<th><p>何が起きるか</p></th>
</tr></thead>
<tbody>
<tr>
<td><p>3月16日まで</p></td>
<td><p>既存の購入フローレコメンドおよび注目プロダクトの設定を変更できる最後の機会です。ワンタイムプロダクトに対するカート放棄リマインダーのオプトアウトフォームも、この日まで利用可能です。</p></td>
</tr>
<tr>
<td><p>3月16日</p></td>
<td><p>既存の購入フローレコメンドおよび注目プロダクトのページは凍結されます。ワンタイムプロダクト向けのカート放棄リマインダーのオプトアウトフォームも無効化されます。これらのページでは以降変更はできません。</p></td>
</tr>
<tr>
<td><p>3月16日以降</p></td>
<td><p>既存の設定は、後述の移行ルールに従って引き続き有効です。ただし、設定の変更はできなくなります。</p></td>
</tr>
<tr>
<td><p>新しいページの公開時</p></td>
<td><p>Google Playが既存の設定を新しい「Merchandising and optimization」ページへ自動的に移行します。その後は新しいページ上で設定を変更できます。従来の購入フローレコメンドおよび注目プロダクトのページは廃止され、ワンタイムプロダクト向けのカート放棄リマインダーのオプトアウトフォームも廃止されます。</p></td>
</tr>
</tbody>
</table>
<p>重要なポイントは、現在の設定を変更できる期限が3月16日であるということです。マーチャンダイジング設定を調整する必要がある場合は、その日までに対応を行ってください。</p>
<h2><strong>注目プロダクトに関する注意点</strong></h2>
<p>注目プロダクトは設定項目が最も多いため、移行パスも最も複雑になります。各設定項目が移行後にどう扱われるかを見ていきましょう。</p>
<table>
<thead><tr>
<th><p>設定項目</p></th>
<th><p>3月16日以降の挙動</p></th>
</tr></thead>
<tbody>
<tr>
<td><p><strong>終了日が設定されていない場合</strong></p></td>
<td><p>注目プロダクトはそのまま維持され、引き続きマーチャンダイジング対象となります。対応は不要です。</p></td>
</tr>
<tr>
<td><p><strong>終了日が3月16日以降に設定されている場合</strong></p></td>
<td><p>3月16日までに2つの選択肢があります。終了日を削除して無期限で公開し続けるか、3月16日以降に表示させたくない場合は削除します。</p></td>
</tr>
<tr>
<td><p><strong>オファーおよびイベント</strong></p></td>
<td><p>注目プロダクトに紐づいたオファーやイベントはサポートされなくなります。これらに依存している場合は、締め切り前に代替手段を検討してください。</p></td>
</tr>
<tr>
<td><p><strong>オーディエンスおよび国別ターゲティング</strong></p></td>
<td><p>既存の注目プロダクトに設定されているオーディエンスおよび国別ターゲティングはサポートされなくなります。国単位での制限が必要な場合は、SKUレベルで設定する必要があります。</p></td>
</tr>
<tr>
<td><p><strong>ライセンステスター</strong></p></td>
<td><p>ライセンステスターのみに対象を限定しているプロダクトは、マーチャンダイジング対象から除外されます。テスト専用設定のプロダクトは、アプリ外プロモーションには表示されません。</p></td>
</tr>
<tr>
<td><p><strong>パフォーマンスレポート</strong></p></td>
<td><p>パフォーマンスレポートおよび関連指標は、新しい「Merchandising and optimization」ページが公開されて該当ページが廃止されるまで、注目プロダクトページ上で引き続き確認できます。</p></td>
</tr>
</tbody>
</table>
<p>注目プロダクトを積極的に活用している開発者にとって最も影響が大きい変更は、オーディエンスターゲティングおよび国別ターゲティングが廃止される点です。地域ごとに異なるプロダクトを表示する戦略に依存している場合は、そのアプローチを見直す必要があります。国別制限はSKUレベルで設定することが唯一の対応手段となります。</p>
<h2><strong>購入レコメンドに関する注意点</strong></h2>
<p>購入レコメンドは、注目プロダクトと比べて設定項目が少ないため、移行も比較的シンプルです。</p>
<ul>
<li><strong>アクティブなSKUは引き続き有効：</strong>現在購入フローレコメンドに設定しているSKUは、3月16日以降も引き続きアプリ外購入の対象となります。</li>
<li><strong>国別ターゲティングは廃止：</strong>購入レコメンドに設定されている国別ターゲティングはサポートされなくなります。注目プロダクトと同様に、必要な場合はSKUレベルで国制限を設定する必要があります。</li>
<li><strong>ライセンステスターは対象外：</strong>ライセンステスターのみに対象を限定しているプロダクトは、マーチャンダイジング対象から除外されます。</li>
<li><strong>パフォーマンスレポートは引き続き閲覧可能：</strong>パフォーマンスレポートおよび関連指標は、新しいページが公開されて該当ページが廃止されるまで、購入レコメンドページ上で引き続き確認できます。</li>
</ul>
<p>購入レコメンドを利用している多くの開発者にとって、この移行はシンプルです。プロダクトは引き続きレコメンドされますが、どの国に表示するかを細かく調整する機能は失われます。</p>
<h2><strong>カート放棄リマインダーに関する注意点</strong></h2>
<p>カート放棄リマインダーは移行の影響が最もシンプルですが、理解しておくべき重要なポイントが1つあります。</p>
<ul>
<li><strong>初期リリースではワンタイムプロダクトのみ対象：</strong>新しい「Merchandising and optimization」ページでは、初期段階ではカート放棄機能は <a href="https://support.google.com/googleplay/android-developer/answer/16430488">ワンタイムプロダクト</a> のみに対応します。サブスクリプションは初期リリースの対象外です。</li>
<li><strong>サブスクリプションのブロックリストは変更なし：</strong>サブスクリプションに対してカート放棄リマインダーのブロックリストを設定している場合、その設定は引き続き有効であり、この移行の影響は受けません。</li>
<li><strong>オプトアウトの仕組み：</strong>ワンタイムプロダクトのカート放棄リマインダーは、3月16日までは既存のフォームからオプトアウトできます。それ以降は、新しいページが公開されるまでオプトアウトはできません。すでにオプトアウトしている場合は、その状態は維持されます。引き続きオプトイン状態にしたい場合は、特に対応は不要です。</li>
</ul>
<h2><strong>3月16日までにやるべきこと</strong></h2>
<p>締め切り前に対応すべき具体的なチェックリストは次のとおりです。</p>
<ol>
<li><strong>注目プロダクトの監査：</strong>Google Play Consoleの注目プロダクトページを開き、すべてのアクティブな設定を確認します。3月16日以降に終了日が設定されているものを特定し、無期限にするか削除するかを判断してください。</li>
<li><strong>オファーおよびイベントへの依存を解消：</strong>注目プロダクトが特定のオファーやイベントに紐づいている場合、それらは今後サポートされなくなります。対象プロダクトについては別のプロモーション戦略を検討してください。</li>
<li><strong>国別制限をSKUレベルへ移行：</strong>注目プロダクトや購入レコメンドで国別ターゲティングを使用している場合は、3月16日までにSKUレベルで設定し直してください。これにより、移行後も地域戦略を維持できます。</li>
<li><strong>ライセンステスター設定の確認：</strong>ライセンステスターのみに限定されているプロダクトは、マーチャンダイジング対象から除外されます。実ユーザーにも表示したい場合は、締め切り前にターゲティングを更新してください。</li>
<li><strong>カート放棄リマインダーのオプトアウト判断：</strong>ワンタイムプロダクトのカート放棄リマインダーをオプトアウトしたい場合は、3月16日までにフォームを提出してください。それ以降は新しいページの公開までオプトアウトできません。</li>
<li><strong>パフォーマンスデータの保存：</strong>履歴分析のために保持しておきたい指標がある場合は、注目プロダクトや購入レコメンドページからエクスポートまたはスクリーンショットを取得しておきましょう。ページが廃止されるまでは閲覧可能ですが、事前保存を推奨します。</li>
<li><strong>チームへの共有：</strong>Google Play Consoleの設定を管理しているチームメンバー全員に、3月16日の締め切りと今後の変更内容を周知してください。</li>
</ol>
<h2><strong>アプリ外購入が課金基盤とどのように連携するのか</strong></h2>
<p>アプリ外マーチャンダイジングについて議論する際によくある疑問は、これらの購入が実際にどのように課金インフラを通過するのかという点です。結論から言うと、Google Play上のサーフェスから開始されたアプリ外購入も、通常のアプリ内購入と同じPlay Billing Libraryのフローを通ります。</p>
<p>ユーザーがGoogle Play上でレコメンドされたプロダクト、注目プロダクト、またはカート放棄リマインダーをタップした場合、その購入は標準のGoogle Play Billingインフラを通じて処理されます。アプリ側では <code>PurchasesUpdatedListener</code> や <code>queryPurchasesAsync</code> といった、通常のアプリ内購入と同じ仕組みで購入を受け取ります。購入トークン、プロダクトID、承認（acknowledgment）の要件もすべて同一です。バックエンドでReal Time Developer Notifications（RTDN）を処理している場合も、アプリ外購入に対して同じ種類の通知を受け取ります。</p>
<p>つまり、課金基盤の管理にRevenueCatを使用している場合、アプリ外購入も自動的に処理されます。RevenueCatのSDKとバックエンドは、アプリ内購入と同様に、購入検証、エンタイトルメント付与、承認処理を行います。アプリ外サーフェスからの購入をサポートするために、特別なSDK統合やコード変更は必要ありません。</p>
<p>また、RevenueCat Chartsでは、アプリ外サーフェスからの収益もアプリ内収益と合わせて追跡できます。すべての購入が同じ課金パイプラインを通るため、既存の分析およびレポーティング基盤で追加設定なしにこれらの取引を把握できます。これは特に移行後に、ML主導のアプローチが従来の手動設定と比べて、アプリ外コンバージョンを増やしているのかどうかを確認する際に有用です。</p>
<p>重要なのは、「Merchandising and optimization」ページはConsole側の変更であるという点です。これはGoogle Playがどのようにプロダクトをユーザーにプロモーションするかに影響するものであり、購入処理そのものには影響しません。課金コード、RevenueCatの統合、バックエンドの仕組みは、これまで通りそのまま機能します。</p>
<h2><strong>結論</strong></h2>
<p>本記事では、購入フローレコメンド、注目プロダクト、カート放棄リマインダーという3つのマーチャンダイジング機能が、単一のML主導の「Merchandising and optimization」ページへ統合されるという、Google Playの今後の変更について解説しました。既存設定を変更できる期限は3月16日であり、各機能ごとの移行ルールを理解することで、プロダクトを引き続き効果的にプロモーションできるようになります。</p>
<p>手動設定からMLによる最適化への移行は、アプリストアにおけるプロダクト発見のあり方の変化を反映しています。多くの開発者にとって、手動コントロールの減少は、Google Playの各サーフェスにおけるより広範でアルゴリズム最適化されたリーチによって補われることになります。重要なのは、締め切り前に既存設定を見直し、国別制限をSKUレベルへ移行し、注目プロダクトの終了日について意図的に判断を行うことです。</p>
<p>Play Billing Libraryを直接利用している場合でも、RevenueCatを利用している場合でも、今回の変更はすべてConsole側で完結します。課金コード、購入処理、エンタイトルメントロジックには影響はありません。3月16日までにConsole設定の対応に集中し、その後の最適化はGoogleのMLに任せることが重要です。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Android Studio内でペイウォール生成・コード作成・収益分析まで行うAIエージェント登場]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/android-studio-ai</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/android-studio-ai</guid>
      <pubDate>Mon, 30 Mar 2026 06:00:43 GMT</pubDate>
      <dc:creator><![CDATA[Jaewoong Eum]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[AIによるペイウォール生成を含むRevenueCat IntelliJ Pluginの主要機能を解説し、チャートの分析についても取り上げます。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/822b9cbf7e753333d754ba6999f004ad0dc084dc-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>サブスクリプション、ペイウォール、収益指標の管理は、通常、IDEとRevenueCatダッシュボードの間で絶えずコンテキストを切り替える作業を伴います。Android Studioでコードを書き、MRRを確認するためにブラウザタブに切り替え、さらに別のタブでオファリングを設定し、再びペイウォールのデザインのために切り替える——こうしたコンテキストスイッチのたびに、作業の流れは途切れ、注意も分断されます。 <a href="https://plugins.jetbrains.com/plugin/29265-revenuecat-dashboard/">RevenueCat IntelliJ Plugin</a> は、サブスクリプションビジネス全体を開発環境内に直接持ち込むことで、この摩擦を解消します。</p>
<p>しかし、このプラグインは単なるダッシュボードのミラーではありません。RevenueCatプロジェクトを理解し、ユーザーに代わって操作できるフル機能のAIエージェントを備えています。オファリングの作成、AIによるペイウォール生成、収益チャートの分析、統合のデバッグ、さらにはソースコードの編集まで、すべてIDEを離れることなく、自然言語のプロンプトで実行できます。</p>
<p>本記事では、RevenueCat IntelliJ Pluginの主要機能を紹介します。具体的には、OAuthサインインがどのように手動のAPIキー設定を置き換えるのか、ダッシュボードパネルがブラウザへの切り替えなしにリアルタイムの指標をどのように表示するのか、AIエージェントがどのように会話ベースでペイウォールを生成しプロジェクト全体を管理するのか、そしてAIによるコード編集がどのように差分プレビューやUndo対応付きでプロジェクトファイルを変更できるのかを見ていきます。</p>
<h2><strong>はじめに：OAuthサインイン</strong></h2>
<p>このプラグインは、従来のAPIキー設定に代わり、PKCEフローを用いたOAuth 2.0認証を採用しています。初めてRevenueCatのツールウィンドウを開くと、「Sign in with RevenueCat」ボタンが表示されたウェルカム画面が表示されます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/ee5dfc09adbf9435b3e9d535f4ad9759eb680017-362x138.png" alt=""/></figure>
<p>サインインボタンをクリックすると、認証のためにブラウザが開きます。プラグインはローカルのコールバックサーバーを起動し、トークンの交換を自動で処理し、認証情報を安全に保存します。認証が完了すると、プラグインはあなたのプロジェクトを取得し、どのプロジェクトで作業するかを選択できるようになります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/0fbf4f60e63a1452e9740c25dfb5b3e3d9a58c83-470x680.png" alt=""/></figure>
<p>OAuthフローでは、プロジェクト設定、チャートおよび指標、顧客情報に対するスコープ付き権限が要求されます。トークンは期限切れになると自動で更新されるため、手動操作なしでセッションをまたいで認証状態が維持されます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/d899dbbdc63b6b67bdfe783abdf3a3e745fcea40-282x136.png" alt=""/></figure>
<h2><strong>AIエージェントによるコード編集：エージェント主導のファイル変更</strong></h2>
<p>データの取得や問い合わせにとどまらず、AIエージェントはプロジェクトのソースファイルを直接読み取り、検索し、編集することができます。これにより、「ApplicationクラスにRevenueCat SDKの初期化処理を追加して」や「ペイウォール画面を新しいoffering IDに対応するよう更新して」といったワークフローを実現できます。</p>
<h3><strong>ステージド編集システム</strong></h3>
<p>エージェントがコード変更を提案すると、それらはインライン差分プレビュー付きのステージド編集として表示されます。適用する前に、各変更を確認できます。</p>
<ul>
<li><strong>個別に承認：</strong>特定の変更だけを適用し、他は拒否する</li>
<li><strong>すべて承認：</strong>提案された変更を一括で適用する</li>
<li><strong>拒否：</strong>ファイルを変更せずに、提案された変更を破棄する</li>
</ul>
<h3><strong>AIによるペイウォール生成</strong></h3>
<p>AIエージェントの最も強力な機能は、エンドツーエンドのペイウォール生成です。必要な内容を説明するだけで、エージェントがすべてを処理します。オファリングの作成、パッケージの設定、プロダクトの紐付け、そしてコピー、画像、スタイリング、テンプレート選択を含む、完全にデザインされたペイウォールをAIで生成します。</p>
<p>エージェントは生成ジョブをバックグラウンドで監視します。ペイウォールの準備が完了すると通知が表示され、ペイウォールビルダーへの直接リンクからデザインの確認や公開が行えます。この監視は、OAuthトークンが期限切れになった場合でも、APIキーを独立したフォールバックとして使用することで、安定して動作します。</p>
<p>複数のペイウォールを連続して生成することも可能です。エージェントは各ジョブを個別に追跡するため、「プレミアム」ペイウォールの後に「フリーミアム」ペイウォールを依頼しても、両方を競合なく管理できます。</p>
<h3><strong>会話ベースでプロジェクトを管理する</strong></h3>
<p>エージェントは、RevenueCatのリソース全体に対して、作成（Create）、取得（Read）、更新（Update）、削除（Delete）のすべての操作に対応しています。以下は、実際に依頼できる内容の例です。</p>
<p><strong>リソースの作成：</strong></p>
<p><code>「Premiumという名前の新しいオファリングを作成し、月額9.99ドルのパッケージと年額79.99ドルのパッケージを設定して」</code></p>
<p>エージェントはオファリングを作成し、両方のパッケージを作成し、適切なプロダクトを紐付けます。これらのリソースがすでに存在する場合でも、エージェントは重複を検出し、エラーにするのではなく再利用します。</p>
<p><code>「pro_accessというエンタイトルメントを設定して、すべてのサブスクリプションプロダクトに紐付けて」</code></p>
<p>エージェントはエンタイトルメントを作成し、既存のプロダクトを一覧化し、それぞれに紐付けます。</p>
<p><strong>プロジェクトの確認：</strong></p>
<p><code>「すべてのオファリングと、どれにペイウォールが設定されているかを見せて」</code></p>
<p>エージェントはオファリングとペイウォールのデータを取得し、設定済みのものと不足しているものを分かりやすくまとめて表示します。</p>
<p><code>「設定されているプロダクトは何？どれがパッケージに紐付いていない？」</code></p>
<p>エージェントはプロダクト、パッケージ、オファリングを横断的に参照し、未紐付けのリソースを特定します。</p>
<p><strong>ペイウォール管理：</strong></p>
<p><code>「プレミアムオファリング用にAIペイウォールを生成して。アプリはFitCatというフィットネストラッカーで、健康意識の高いミレニアル世代がターゲットです」</code></p>
<p>エージェントはアプリのコンテキストをもとに、ブランドに合ったコピー、スタイル、デザインを持つペイウォールを生成します。</p>
<p><code>「現在のペイウォールを複製して、Holiday Promoという名前にして」</code></p>
<p>エージェントはAPI経由でペイウォールを複製し、カスタマイズ用のビルダーリンクを提供します。</p>
<h3><strong>Charts APIで収益を分析する</strong></h3>
<p>エージェントは、収益、MRR、ARR、チャーン率、トライアルから有料への転換率、アクティブなサブスクリプション数、リテンションコホートなど、21種類のチャートにアクセスできます。分析的な質問を投げかけると、データに基づいた回答を得ることができます。</p>
<p><code>「過去6か月間のMRRトレンドは？」</code></p>
<p><code>「トライアルから有料への転換率を週別で見せて」</code></p>
<p><code>「今月の収益と先月の収益を比較して」</code></p>
<p><code>「年額サブスクライバーのチャーン率は？」</code></p>
<p>エージェントは、日付範囲、解像度、セグメントフィルターなど適切なパラメータを指定してCharts APIをクエリし、結果を読みやすい形式で提示します。</p>
<h3><strong>デバッグと統合サポート</strong></h3>
<p>エージェントはCRUD操作にとどまりません。RevenueCatのSDKを理解しており、統合時の問題のデバッグも支援できます。</p>
<p><code>「ペイウォールを表示しようとすると 'Configuration not found' エラーが出ます。何が問題ですか？」</code></p>
<p>エージェントはプロジェクト設定を確認し、オファリングにプロダクトが紐付いたパッケージが存在するかを検証し、根本原因を特定します。</p>
<p><code>「Kotlin MultiplatformプロジェクトでRevenueCatを設定する手順を教えて」</code></p>
<p>エージェントは<a href="https://revenuecat.github.io/">Codelabsの内容</a>にもアクセスできるため、プラットフォームに合わせたステップバイステップのガイダンスを提供できます。</p>
<p><code>「offering lookup key と offering ID の違いは何ですか？コードではどちらを使うべきですか？」</code></p>
<p>エージェントは、一般的なドキュメントの説明だけでなく、実際のプロジェクト設定の文脈も踏まえて概念を説明します。</p>
<h3><strong>モデル選択</strong></h3>
<p>AIエージェントは複数のモデルに対応しており、入力バーの歯車アイコンから切り替えることができます。利用可能なモデルには、GPT-4.1、GPT-4.1 Mini、Claude Sonnet 4、Claude Haiku 4.5などがあり、用途に応じて性能と応答速度のバランスを調整できます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/86d1e2f73c4b62d5b4dd9f2f35bccccfb0437094-1316x243.png" alt=""/></figure>
<h2><strong>ダッシュボードパネル：コンテキスト切り替えなしで指標を確認</strong></h2>
<p>ダッシュボードパネルでは、ブラウザを開くことなく、RevenueCatプロジェクトの状態をリアルタイムで確認できます。サブスクリプションデータは折りたたみ可能なセクションとして整理されており、ツールウィンドウを開くと読み込まれます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/78f121f34e2253e73088a99c100aedbacd16dcfb-1050x720.png" alt=""/></figure>
<h3><strong>収益概要</strong></h3>
<p>最上部のセクションでは、主要な指標を一目で確認できます。アクティブなサブスクライバー数、アクティブなトライアル数、MRR、収益が表示されます。これらの数値はRevenueCat APIから直接取得されるため、常に最新のデータを確認できます。</p>
<h3><strong>マイルストーン</strong></h3>
<p>指標の下には、サブスクリプションビジネスの達成状況を追跡するマイルストーンセクションがあります。初めてのサブスクライバー獲得、収益の節目、トライアルに関するマイルストーンなど、RevenueCatダッシュボードで確認できるものと同じ内容が、IDE内に直接表示されます。</p>
<h3><strong>設定済みオファリング</strong></h3>
<p>オファリングセクションでは、すべてのオファリングと、それに紐づくパッケージおよびプロダクトが一覧表示されます。各オファリングを展開すると、パッケージ構成や紐づいているプロダクト、ペイウォールが設定されているかどうかを確認できます。ペイウォールが設定されているオファリングには、ペイウォールビルダーへの直接リンクが表示されます。</p>
<h3><strong>ペイウォールセクション</strong></h3>
<p>専用のペイウォールセクションでは、すべてのペイウォールがステータスバッジ付きで表示されます。Published（緑）、Draft（黄）、Has Unpublished Changes（オレンジ）といった状態が色分けされています。各ペイウォールには状態に応じたアクションボタンが用意されており、Edit、Publish、Unpublish、Discard、Duplicate、Deleteといった操作が可能です。Editボタンをクリックするとブラウザでペイウォールビルダーが開きます。ライフサイクル関連の操作はAPIを直接呼び出し、パネルは自動で更新されます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/7e84107540598f528827bb63bd979af54509b1e2-1045x552.png" alt=""/></figure>
<h2><strong>結論</strong></h2>
<p>RevenueCat IntelliJ Pluginは、IDEを完全なサブスクリプション管理環境へと変えます。OAuthサインインによって手動のAPIキー設定は不要になり、ダッシュボードパネルではブラウザに切り替えることなく、指標、マイルストーン、オファリング、ペイウォールを確認できます。AIエージェントは単なるチャットボットをはるかに超えた存在です。オファリングの作成、AIによるペイウォール生成、Charts APIを用いた収益データの分析、統合のデバッグ、そして安全かつレビュー可能な形でのソースコード編集までを実行できます。</p>
<p>特にAIによるペイウォール生成は、大幅な時間短縮につながります。ダッシュボード上でオファリングの作成、パッケージ設定、プロダクトの紐付け、ペイウォールのデザインを手作業で行う代わりに、やりたいことを1文で伝えるだけで、エージェントがすべての工程を処理します。その結果、ビルダー上で確認可能な、完全にデザインされたペイウォールが完成します。</p>
<p>コードレビューの合間にMRRを確認する場合でも、新しいオファリング用のペイウォールを生成する場合でも、チャーンのトレンドを分析する場合でも、あるいはSDKの統合コードの雛形作成をエージェントに依頼する場合でも、このプラグインは開発の流れを途切れさせません。目的はシンプルです。タブの切り替えに費やす時間を減らし、サブスクリプションビジネスの構築により多くの時間を使うことです。RevenueCat IntelliJ Pluginは、 <a href="https://plugins.jetbrains.com/plugin/29265-revenuecat-dashboard/">JetBrains Marketplace（RevenueCat Dashboard）</a> からインストールできます。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Shipyard: Creator Contest 2026 受賞者発表]]></title>
      <link>https://www.revenuecat.com/jp/blog/company/shipyard-2026-winners</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/company/shipyard-2026-winners</guid>
      <pubDate>Fri, 27 Feb 2026 22:25:18 GMT</pubDate>
      <dc:creator><![CDATA[Perttu Lähteenlahti]]></dc:creator>
      <category><![CDATA[[ 会社情報 ]]]></category>
      <description><![CDATA[Shipyard: Creator Contestの受賞アプリをご紹介します]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/985bc95146492c0d4ad36a163f0223e3309fa6a8-1200x630.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>本物のインフルエンサーがブリーフを手渡し、<em>「私のオーディエンスが本当に必要としているアプリを作ってほしい」</em>と言ったら、何が起きるでしょうか？<strong>Shipyard: Creator Contest</strong>は、その問いに答えるために開催されました。わずか4週間で、<strong>900人以上のビルダー</strong>が、長期的なアプリパートナーシップを見据えた7名のクリエイター向けに、MVPの設計・ローンチ・マネタイズを競い合いました。そして今回、7組の受賞者を誇りをもって発表します。</p>
<h2>Eitan Bernath</h2>
<p>Eitan Bernathのカテゴリーでは、「作ろうと思っていた料理を実際に作れるようにする」ことがテーマでした。インスピレーションを行動に変えるツールを考えてみてください。レシピ動画やリンクから買い物リストを生成し、作りたい料理を整理し、すぐに始められるようにするアプリです。</p>
<h3>受賞アプリ：Preplo – 料理動画を“作れるレシピ”へ</h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/3d2cd4693f23e696ca24c44a3fd6d5d7c8356903-3840x2160.png" alt=""/></figure>
<p>Preploは、料理のインスピレーションを実際に作れる形へと変えます。YouTube、TikTok、Instagramのリンクを貼り付けるだけで、分量、タイムスタンプ付きの手順、推定コスト、栄養情報を含む構造化されたレシピを瞬時に生成します。「あとで作ろう」と保存した状態から、「実際に食卓に並ぶ」状態へのハードルを大きく下げてくれます。</p>
<p>さらに、レシピはその場で調整可能です。よりスパイシーに、ヴィーガン仕様に、あるいは低糖質に変更すれば、内容は自動で更新されます。Expo React NativeとNext.jsバックエンドで構築されており、処理済みの動画はキャッシュされるため、同じ動画が二度解析されることはありません。</p>
<p><a href="https://devpost.com/software/preplo">Devpostリンク</a></p>
<h2>Gabby Beckford</h2>
<p>Gabby Beckfordのブリーフでは、目標を日々の小さな行動に落とし込み、前向きでモチベーションを高めてくれるアプリを作ることが求められました。チャレンジ機能、ストリーク（継続記録）や達成の可視化、進捗トラッキング、そして進歩を楽しく感じられるゲーミフィケーション要素を備えたものです。対象は、夢の旅行や人生のアップグレードを実現したいと考えている意欲的な女性たち。しかし、日常の忙しさに阻まれたり、インスピレーションと行動の間で足踏みしてしまうことが多い層です。</p>
<h3>受賞アプリ：Bloom – 大きな夢を日々の達成へ</h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/52ddd87447c69dd6e76b3f7d32437b011d0962ef-3840x2160.png" alt=""/></figure>
<p>Bloomは、夢を日常の一歩一歩へと変えるための行動を後押しする、女性向けのゲーミフィケーション型パーソナルグロースアプリです。単なるToDoリストではなく、目標、お金への自信、マインドセット、そして旅行といった要素をひとつのモチベーションシステムとして統合しています。</p>
<p>中心となるのは「Digital Garden」。日々の習慣が可視化された成長として反映されるため、進歩を実感できます。ユーザーは「Dream（夢）」を設定し、短時間で遊べる金融ミニゲームに挑戦し、AIのガイド付きでジャーナリングを行い、インタラクティブなマップで旅の記録を追跡できます。Flutterで構築され、SupabaseとMapboxによって支えられているBloomは、自己成長を“圧倒的”ではなく“前向き”に感じられる体験へと変えています。</p>
<p><a href="https://devpost.com/software/bloom-rhmx46">Devpostリンク</a></p>
<h2>Quin Gable</h2>
<p>常に移動していると、旅先での出会いや友人づくりは簡単ではありません。デジタルノマドのQuin Gableは、ノマド向けのデーティング機能やアクティビティベースの友達探し、さらにはバン改造プロジェクト向けの有料「ビルダーヘルプ」セクションまで備えた、バンライフ向けアプリを求めていました。コミュニティの安全性を保つため、アプリは招待制または認証制とし、安全で意図的なつながりが生まれる設計が必要でした。</p>
<h3>受賞アプリ：WanderBase – ロードライフのためのデーティング＆コミュニティ</h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/2a0eab678fa9a89586c918c84d9a1353d330b177-3840x2160.png" alt=""/></figure>
<p>WanderBaseは、バンライファーやノマドのために特化して作られたデーティング＆コミュニティアプリです。無限にスワイプする代わりに、ユーザーは自分のライフスタイルや旅の雰囲気を反映した、手描き風でカスタマイズ可能なバンのアバターを探索します。これはロードライフらしさを感じさせる、遊び心のあるアプローチです。</p>
<p>招待制を採用し、ルートベースのマッチング、双方合意でのチャット解放、バン改造プロジェクト向けのヘルプ掲示板などを備えています。React NativeとFirebaseで構築され、サーバーサイドでのマッチングと厳格なセキュリティルールにより、信頼性を担保しながら、安全性と楽しさの両立を実現しています。</p>
<p><a href="https://devpost.com/software/wanderbase-the-van-life-community">Devpostリンク</a></p>
<h2>Sam Beckman</h2>
<p>Samはリマインダー中心の生活を送っていますが、AndroidとiOSを切り替えるたびに、リマインダーの仕組みを一から作り直さなければならないという課題がありました。彼のブリーフは、iOSとAndroidの両方で動作する、美しく完全に機能するリマインダーアプリを作ることでした。通知からのカスタムスヌーズ、強力な繰り返しルール、そして一度消せばすべての端末で同期して消える“真の同期”が必要とされました。</p>
<h3>受賞アプリ：Remy Reminders – ついに同期するクロスプラットフォームのリマインダー</h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/98042efee7c9897204d15bbb2b278c2d5ae18006-3840x2160.png" alt=""/></figure>
<p>Remyは、iOSとAndroidを行き来する際にリマインダー環境を作り直さなければならないという現実的なストレスを解消します。どのプラットフォームを使っていても洗練されたリマインダー体験を提供し、シンプルかつ効果的なルール作成機能や、通知の一時停止機能などを備えています。</p>
<p>内部では、カスタムのオフラインファースト同期エンジンと、APNsおよびFCMと直接通信する通知システムが動作しており、すべてを正確に同期させています。React Native（Expo）とConvexで構築されたRemyは、どのデバイスを使っていても信頼できるリマインダー体験を実現することに注力しています。</p>
<p><a href="https://devpost.com/software/remy-reminders">Devpostリンク</a></p>
<h2>Better CreatingのSimon</h2>
<p>Simonのオーディエンスは、生産性や優れたデザイン、そして自己成長のための仕組みづくりを好みます。その中核にあるのがコーチングです。Simonは、コーチングによって得られる成長や自己確信を、より多くの人が手軽に体験できるようにしたいと考えました。そのために、ユーザーがAIコーチを閲覧・作成・共有でき、個人的な背景や価値観を追加し、すぐに対話を始められる、クリーンでミニマルなモバイルアプリを目指しました。</p>
<h3>受賞アプリ：Editor – 明確に決断する</h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/eb23f9e4da4961609afd30a0316c5792f766c08d-3840x2160.png" alt=""/></figure>
<p>Editorは、従来のコーチングやAIチャット体験を根本から再設計しています。終わりのない会話を促すのではなく、ビルダーやクリエイターが迅速かつ意図的に意思決定へ到達できるよう設計されています。単なるコーチングアプリにとどまらず、ユーザーは「優先順位付け」「アイデアのレビュー」「トレードオフの比較」など、構造化された思考モードを選択できます。</p>
<p>各セッションは、素早く意思決定に到達し、その時点で終了するよう設計されています。成果は意思決定ブリーフやロードマップに変換でき、Notionへエクスポートすることも可能です。ネイティブのSwiftUIアプリとして構築されたEditorは、意図的にミニマルかつフォーカスされた体験を維持しています。</p>
<p><a href="https://devpost.com/software/editor-decide-with-clarity">Devpostリンク</a></p>
<h2>Rebecca Louise</h2>
<p>Rebeccaが繰り返し耳にしてきたのは、ママたちは時間が足りず、経済的自立を望みながらも、実践的なサポートを必要としているということでした。彼女のブリーフは、日常的に役立つ節約ガイダンス（買い物の置き換え、まとめ調理、コスト比較、住宅リフォームの節約など）に加え、投資の基礎へ無理なく踏み出せる道筋を提供するアプリを作ることでした。ユーザーが圧倒されることなく、今あるものを着実に増やしていける設計が求められました。</p>
<h3>受賞アプリ：Sunny Money – 忙しいママのためのファイナンシャルサポート</h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/0d4e6a86370c2e0104589c5b107216d88e48f336-3840x2160.png" alt=""/></figure>
<p>Sunny Moneyは、忙しいママたちが1日わずか数分で金融リテラシーと自信を高められるアプリです。日常的な節約アドバイスと、貯蓄や投資のシンプルな入門コンテンツを組み合わせています。</p>
<p>短時間で学べるレッスン、実用的な計算ツール、デイリーチャレンジ、そしてAIアシスタントにより、経済的な前進が無理なく感じられる設計になっています。React NativeとExpoで構築されたSunny Moneyは、ママたちの限られた時間を尊重しながら、実用的で本当に役立つツールを提供します。</p>
<p><a href="https://devpost.com/software/sunnier">Devpostリンク</a></p>
<h2>VisualFaktoryのJosh</h2>
<p>投資家は、株式、金、投資信託、債券、不動産などを複数のプラットフォームで管理しています。管理は煩雑で、全体像を一目で把握するのは困難です。Joshは、すべてを一元管理できるアプリを求めていました。可能な限りリアルタイムの価格更新を取得し、非上場商品には償却やリマインダーのアラートを設定でき、さらにプレミアム機能としてリスク分析や分散状況（国別・セクター別エクスポージャーなど）を確認できるアプリです。</p>
<h3>受賞アプリ：Folio – ポートフォリオ全体を一目で把握</h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/0fb016bfdba53812b3050c374565da0255f939d3-3840x2160.png" alt=""/></figure>
<p>Folioは、分散した投資資産をひとつの洗練されたiOSダッシュボードにまとめます。株式、ETF、暗号資産、不動産、預貯金など、すべてを一か所で管理できるため、純資産全体やリスクエクスポージャーを一画面で把握できます。</p>
<p>ライブ価格、パフォーマンス分析、ウィジェット、アラートに加え、実際の保有資産を理解し、リバランスやポジション調整を支援するAIアシスタントも搭載しています。React NativeとSupabaseで構築されたFolioは、ポートフォリオ管理をシンプルかつ実践的なものに保ちます。</p>
<p><a href="https://devpost.com/software/folio-n7mugb">Devpostリンク</a></p>
<h2>まとめ</h2>
<p>7つのまったく異なるブリーフに対して、受賞アプリに共通していたものがあります。それは「フォーカス」です。</p>
<p>彼らは何でもやろうとはしませんでした。特定のオーディエンスと明確な課題を選び、その中心に据えてプロダクトを構築しました。バンライフ向けアプリは信頼と安全性を最優先にしました。リマインダーアプリはクロスプラットフォーム同期に徹底的にこだわりました。ファイナンス系アプリはユーザーの時間を尊重しました。AIコーチアプリはシンプルさに自ら制約を課しました。それぞれのチームは機能を追い求めるのではなく、意図的なトレードオフを選択しました。</p>
<p>これでコンテストは終了ですが、皆さんが引き続きアプリ開発を続け、そして何より実際にユーザーにダウンロードしてもらうことに取り組んでくれることを願っています。</p>
<p>Shipyardはいかがでしたか？楽しめましたか？改善してほしかった点はありますか？</p>
<p>ぜひご意見をお聞かせください。<a href="https://x.com/RevenueCat">Twitter</a>や<a href="https://www.linkedin.com/company/revenuecat/">LinkedIn</a>でお知らせいただくか、参加者の皆さんにお送りするアンケートにもご回答ください。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[クロスプラットフォームのサブスク管理：AndroidとiOSで権限を同期する方法]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/cross-platform-subscription</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/cross-platform-subscription</guid>
      <pubDate>Fri, 27 Feb 2026 21:58:49 GMT</pubDate>
      <dc:creator><![CDATA[Jaewoong Eum]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[本記事では、クロスプラットフォームのサブスクリプション状態の実装がなぜこれほど難しいのかを探り、Google Play BillingとStoreKitの根本的な非互換性を詳しく見ていきます。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/cc0f8ee170d8253e73b3cc31a9fd35a317ae9416-1600x850.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>サブスクリプションアプリが単一のプラットフォームだけで完結することはほとんどありません。ユーザーは朝の通勤中にiPhoneでサブスクに登録し、帰宅後にAndroidタブレットでアプリを開いて、当然のようにフルアクセスできることを期待します。この期待はユーザーの立場からすれば直感的です。サブスクリプションに支払ったのだから、どこでも使えるはずだ、というわけです。しかし、開発者の視点では、これを実現することはサブスクリプション基盤の中でも最も難しい問題のひとつです。Google Play BillingとAppleのStoreKitは完全に別個のシステムであり、レシート形式も、検証メカニズムも、通知システムも、そして購入情報の表現方法に関する前提も根本的に異なります。両者の間に組み込みの相互運用性は存在しません。</p>
<p>本記事では、なぜクロスプラットフォームのサブスクリプション状態の実装がこれほど難しいのかを掘り下げ、Google Play BillingとStoreKitの根本的な非互換性を検証し、ゼロからクロスプラットフォームのエンタイトルメント同期を構築するには何が必要かを見ていきます。そして、特に小規模チームやインディー開発者にとって、必要なエンジニアリング工数を大幅に削減できる自然な解決策として、<a href="https://www.revenuecat.com/docs/customers/identifying-customers">RevenueCatのアイデンティティシステム</a>がどのように機能するかを紹介します。</p>
<h2><strong>根本的な問題：1人のユーザー、2つのエコシステム</strong></h2>
<p>「Premium」サブスクリプションを提供するフィットネスアプリを考えてみましょう。あるユーザーがiPhoneのApp Store経由でサブスクに登録します。1週間後、そのユーザーはAndroidタブレットを購入し、あなたのアプリをダウンロードします。同じアカウントでログインし、当然のようにプレミアム機能が利用できることを期待します。では、実際には何が起きるのでしょうか？</p>
<p>クロスプラットフォームの基盤がなければ、Androidアプリはそのユーザーが有効なサブスクリプションを持っていることを認識できません。Google Play Billingは、Google Play経由で行われた購入しか把握していません。Appleのサーバー上にあるApp Storeのレシートは、Androidアプリからは見えないのです。その結果、ユーザーはすでに支払いをしているにもかかわらず、再度サブスク登録を求めるペイウォールを目にすることになります。</p>
<pre><code class="language-kotlin">\/\/ On the Android side, this returns nothing
val params = QueryPurchasesParams.newBuilder()
    .setProductType(BillingClient.ProductType.SUBS)
    .build()

billingClient.queryPurchasesAsync(params) { billingResult, purchases -&gt;
    \/\/ purchases is empty because the user subscribed through Apple
    \/\/ The Android app has no way to know about the iOS subscription
    if (purchases.isEmpty()) {
        showPaywall() \/\/ User sees this despite having an active subscription
    }
}</code></pre>
<p>これはバグではありません。想定どおりの挙動です。各課金システムは独立して動作しており、それらを橋渡しするには、どちらのプラットフォームも提供していない大規模なインフラが必要になります。</p>
<h2><strong>2つの課金システム、相互運用性はゼロ</strong></h2>
<p>なぜクロスプラットフォーム同期がこれほど難しいのかを理解するには、GoogleとAppleが購入情報をどれほど異なる方法で表現しているかを理解する必要があります。これは単なるAPIの細かな違いではありません。根本的に異なるアーキテクチャなのです。</p>
<h3><strong>レシート形式と検証</strong></h3>
<p>AppleとGoogleは、購入が実際に行われたことを証明するために、まったく異なる仕組みを採用しています。</p>
<table>
<thead><tr>
<th><p>項目</p></th>
<th><p>Google Play Billing</p></th>
<th><p>Apple StoreKit</p></th>
</tr></thead>
<tbody>
<tr>
<td><p><strong>購入証明</strong></p></td>
<td><p>購入トークン（不透明な文字列）</p></td>
<td><p>署名付きレシート（StoreKit 2のJWS）</p></td>
</tr>
<tr>
<td><p><strong>検証エンドポイント</strong></p></td>
<td><p><code>purchases.subscriptionsv2.get</code> REST API</p></td>
<td><p>App Store Server API (<code>/inApps/v1/subscriptions</code>)</p></td>
</tr>
<tr>
<td><p><strong>認証</strong></p></td>
<td><p>JSONキーを用いたGoogleサービスアカウント</p></td>
<td><p>App Store Connectの秘密鍵で署名したJWT</p></td>
</tr>
<tr>
<td><p><strong>レスポンス形式</strong></p></td>
<td><p><code>SubscriptionPurchaseV2</code> JSONオブジェクト</p></td>
<td><p><code>JWSTransactionDecodedPayload</code> （署名付きJSON）</p></td>
</tr>
<tr>
<td><p><strong>サブスクリプションID形式</strong></p></td>
<td><p><code>productId:basePlanId</code></p></td>
<td><p>シンプルな <code>productId</code> 文字列</p></td>
</tr>
<tr>
<td><p><strong>更新（リニューアル）管理</strong></p></td>
<td><p>サブスクリプションリソースの<code>expiryTime</code> フィールド</p></td>
<td><p>トランザクション情報内の <code>expiresDate</code></p></td>
</tr>
</tbody>
</table>
<p>Google Playは<strong>購入トークン</strong>モデルを採用しています。ユーザーがサブスクに登録すると、アプリは購入トークンを受け取ります。このトークンをGoogle Play Developer APIに送信すると、現在のサブスクリプション状態が返されます。このトークン自体は意味を持たない不透明な文字列です。</p>
<p>一方、Appleは<strong>署名付きトランザクション</strong>モデルを採用しています。StoreKit 2では、購入情報はJSON Web Signature（JWS）として提供され、サーバー側でAppleの公開鍵を用いて検証できます。各トランザクションは、暗号学的に署名された自己完結型の記録です。</p>
<p>これは、同じ概念を異なるAPIでラップしているだけではありません。信頼の所在に対する哲学そのものが異なります。Googleは「我々のサーバーに問い合わせれば状態を教える」と言い、Appleは「暗号署名された証明を渡すので、自分で検証せよ」と言っているのです。</p>
<h3><strong>リアルタイム通知</strong></h3>
<p>両プラットフォームとも、サブスクリプションイベントに関するサーバー間通知（server-to-server notifications）を提供しています。しかし、その通知システムは大きく異なります。</p>
<table>
<thead><tr>
<th><p>項目</p></th>
<th><p>Google Play RTDN</p></th>
<th><p>Apple Server Notifications V2</p></th>
</tr></thead>
<tbody>
<tr>
<td><p><strong>配信方式</strong></p></td>
<td><p>Google Cloud Pub/Sub</p></td>
<td><p>あなたのエンドポイントへのHTTPS POST</p></td>
</tr>
<tr>
<td><p><strong>通知フォーマット</strong></p></td>
<td><p>type enumを含む <code>DeveloperNotification</code></p></td>
<td><p><code>notificationType</code> を含む <code>signedPayload</code> (JWS)</p></td>
</tr>
<tr>
<td><p><strong>イベント種別</strong></p></td>
<td><p><code>SUBSCRIPTION_RENEWED</code>、<code>SUBSCRIPTION_CANCELED</code> など</p></td>
<td><p><code>DID_RENEW</code>、<code>DID_CHANGE_RENEWAL_STATUS</code> など</p></td>
</tr>
<tr>
<td><p><strong>ユーザー識別子</strong></p></td>
<td><p>通知内の <code>purchaseToken</code></p></td>
<td><p>署名ペイロード内の <code>originalTransactionId</code></p></td>
</tr>
<tr>
<td><p><strong>セットアップ</strong></p></td>
<td><p>Play ConsoleでPub/Subトピックを設定</p></td>
<td><p>App Store ConnectでURLを登録</p></td>
</tr>
</tbody>
</table>
<p>GoogleはCloud Pub/Subを通じて通知を配信するため、Pub/Subサブスクリプションと、それを処理するサービスをセットアップする必要があります。一方Appleは、設定したURLに対してHTTPS POSTリクエストを直接送信します。イベント名も異なり、ペイロード構造も異なり、各通知タイプに含まれる情報も異なります。</p>
<p>つまり、バックエンド側では、認証方法も、パースロジックも、状態遷移（ステートマシン）の解釈も異なる、2つの完全に別々の通知処理パイプラインが必要になるのです。</p>
<h3><strong>プロダクト設定</strong></h3>
<p>サブスクリプションプロダクトの定義方法も、プラットフォーム間で異なります。</p>
<p>Google Playは2022年に<strong>ベースプランとオファー</strong>を導入し、階層型のプロダクトモデルを採用しました。1つのサブスクリプションには1つ以上のベースプランが含まれ、それぞれに異なる価格フェーズを持つ複数のオファーを設定できます。単一のサブスクリプションプロダクトIDに、月額・年額のベースプラン、導入オファー、プロモーション価格などをすべて含めることができ、これらはPlay Console上で設定されます。</p>
<p>一方、Appleのプロダクトモデルはよりフラットです。App Store Connectにおける各プロダクトIDは、単一の期間を持つ1つのサブスクリプションを表します。月額と年額の両方を提供する場合は、2つの別々のプロダクトIDを作成し、それらを<strong>サブスクリプショングループ</strong>にまとめます。導入オファーやプロモーションオファーは、ネストされた構造ではなく、各プロダクト単位で設定されます。</p>
<p>この構造の違いにより、Google PlayのサブスクリプションプロダクトとAppleのサブスクリプションプロダクトの間には、1対1の対応関係は存在しません。そのため、バックエンド側では、プラットフォーム固有のプロダクト識別子を統一されたエンタイトルメント概念へ変換するマッピングレイヤーを維持する必要があります。</p>
<h2><strong>自前でクロスプラットフォーム同期を構築する</strong></h2>
<p>サードパーティのサービスを使わずにクロスプラットフォームのサブスクリプション同期を構築する場合、アーキテクチャは次のようになります。この作業量を理解しておくことは、最終的にマネージドなソリューションを選ぶ場合でも重要です。というのも、なぜこの問題が本質的に難しいのかが見えてくるからです。</p>
<h3><strong>ステップ1：統一されたユーザーID（ユーザー同一性）</strong></h3>
<p>最初に必要なのは、プラットフォームをまたいで機能するユーザーID（ユーザー同一性）システムです。各プラットフォームにはそれぞれ独自の「ユーザー」の概念がありますが、どちらももう片方の存在を認識しません。そこで、iOSとAndroidの両方が購入情報を紐づけられるサーバー側のユーザーアカウントが必要になります。</p>
<pre><code class="language-kotlin">\/\/ Android client: associate purchase with your user account
fun postPurchaseToBackend(purchase: Purchase, userId: String) {
    val request = PurchaseVerificationRequest(
        platform = &quot;android&quot;,
        purchaseToken = purchase.purchaseToken,
        productId = purchase.products.first(),
        userId = userId,
    )

    backendApi.verifyAndRecordPurchase(request)
}</code></pre>
<p>iOS側についても、Android側と大きく変わりません：</p>
<pre><code class="language-swift">\/\/ iOS client: associate purchase with your user account
func postPurchaseToBackend(transaction: Transaction, userId: String) async {
    let request = PurchaseVerificationRequest(
        platform: &quot;ios&quot;,
        transactionId: String(transaction.originalID),
        productId: transaction.productID,
        userId: userId
    )

    await backendAPI.verifyAndRecordPurchase(request)
}</code></pre>
<p>両方のクライアント（iOS/Android）は、同じ <code>userId</code> を付けて購入データをバックエンドに送信します。バックエンドは、各購入を適切なプラットフォーム（Apple/Google）のAPIで検証し、その結果得られたエンタイトルメント（権利）を、統一されたユーザーアカウントに紐付けて記録する必要があります。</p>
<h3><strong>ステップ2：2系統のレシート検証</strong></h3>
<p>バックエンドは、両プラットフォーム（iOS/Android）からの購入を検証できる必要があります。そのためには、まったく異なる2つの検証API（Apple用とGoogle用）に統合することになります。</p>
<pre><code class="language-kotlin">\/\/ Backend: platform-specific verification
class PurchaseVerifier(
    private val playDeveloperApi: AndroidPublisher,
    private val appStoreServerApi: AppStoreServerAPIClient,
) {
    suspend fun verify(request: PurchaseVerificationRequest): VerificationResult {
        return when (request.platform) {
            &quot;android&quot; -&gt; verifyGooglePurchase(request)
            &quot;ios&quot; -&gt; verifyApplePurchase(request)
            else -&gt; VerificationResult.InvalidPlatform
        }
    }

    private suspend fun verifyGooglePurchase(
        request: PurchaseVerificationRequest,
    ): VerificationResult {
        val subscription = playDeveloperApi
            .purchases()
            .subscriptionsv2()
            .get(packageName, request.purchaseToken)
            .execute()

        return if (subscription.subscriptionState == &quot;SUBSCRIPTION_STATE_ACTIVE&quot;) {
            VerificationResult.Valid(
                expiryTime = subscription.lineItems[0].expiryTime,
                productId = subscription.lineItems[0].productId,
                platform = &quot;android&quot;,
            )
        } else {
            VerificationResult.Expired
        }
    }

    private suspend fun verifyApplePurchase(
        request: PurchaseVerificationRequest,
    ): VerificationResult {
        \/\/ Uses Apple's App Store Server API
        val statusResponse = appStoreServerApi
            .getAllSubscriptionStatuses(request.transactionId)

        val activeSubscription = statusResponse.data
            .flatMap { it.lastTransactions }
            .find { it.status == Status.ACTIVE }

        return if (activeSubscription != null) {
            val transactionInfo = activeSubscription.signedTransactionInfo
            VerificationResult.Valid(
                expiryTime = transactionInfo.expiresDate,
                productId = transactionInfo.productId,
                platform = &quot;ios&quot;,
            )
        } else {
            VerificationResult.Expired
        }
    }
}</code></pre>
<p>各検証フローには、それぞれ認証設定、エラーハンドリング、レスポンス解析が必要です。Google 側ではサービスアカウントの認証情報が必要になります。Apple 側では App Store Connect の秘密鍵で署名した JWT が必要です。さらに、レスポンス形式には共通の構造が一切ありません。</p>
<h3><strong>ステップ3：統一されたエンタイトルメントストレージ</strong></h3>
<p>バックエンドには、プラットフォーム固有のプロダクトを<strong>プラットフォーム非依存のエンタイトルメント</strong>にマッピングするデータモデルが必要です。</p>
<pre><code class="language-kotlin">\/\/ Backend entitlement model
data class UserEntitlement(
    val userId: String,
    val entitlementId: String,         \/\/ e.g., &quot;premium&quot;
    val isActive: Boolean,
    val sourcePlatform: String,        \/\/ &quot;android&quot; or &quot;ios&quot;
    val platformProductId: String,     \/\/ Platform-specific product ID
    val platformPurchaseToken: String, \/\/ Platform-specific purchase proof
    val expiresAt: Instant?,
    val lastVerifiedAt: Instant,
)

\/\/ Product mapping configuration
val productToEntitlementMap = mapOf(
    \/\/ Google Play products
    &quot;premium_monthly:monthly-base&quot; to &quot;premium&quot;,
    &quot;premium_annual:annual-base&quot; to &quot;premium&quot;,
    \/\/ App Store products
    &quot;com.yourapp.premium.monthly&quot; to &quot;premium&quot;,
    &quot;com.yourapp.premium.annual&quot; to &quot;premium&quot;,
)</code></pre>
<p>いずれかのクライアントがエンタイトルメントを問い合わせた際、バックエンドは、そのエンタイトルメントがどのプラットフォームで発生したものであっても、ユーザーに有効なエンタイトルメントが存在するかどうかを確認します。</p>
<pre><code class="language-kotlin">\/\/ Backend endpoint
fun getEntitlements(userId: String): EntitlementResponse {
    val entitlements = entitlementRepository.findActiveByUserId(userId)

    return EntitlementResponse(
        entitlements = entitlements.map { entitlement -&gt;
            EntitlementInfo(
                id = entitlement.entitlementId,
                isActive = entitlement.isActive &amp;&amp;
                    (entitlement.expiresAt?.isAfter(Instant.now()) ?: true),
                expiresAt = entitlement.expiresAt,
                sourcePlatform = entitlement.sourcePlatform,
            )
        }
    )
}</code></pre>
<h3><strong>ステップ4：2系統の通知処理</strong></h3>
<p>エンタイトルメントをリアルタイムで同期し続けるためには、バックエンドが両プラットフォームからの通知を同時に処理できる必要があります。</p>
<pre><code class="language-kotlin">\/\/ Google Play RTDN handler
fun handleGoogleNotification(message: PubSubMessage) {
    val notification = parseDeveloperNotification(message)
    val purchaseToken = notification.subscriptionNotification.purchaseToken

    when (notification.subscriptionNotification.notificationType) {
        NotificationType.SUBSCRIPTION_RENEWED -&gt; refreshGoogleEntitlement(purchaseToken)
        NotificationType.SUBSCRIPTION_CANCELED -&gt; markGoogleEntitlementCanceled(purchaseToken)
        NotificationType.SUBSCRIPTION_EXPIRED -&gt; expireGoogleEntitlement(purchaseToken)
        NotificationType.SUBSCRIPTION_REVOKED -&gt; revokeGoogleEntitlement(purchaseToken)
        \/\/ ... handle all notification types
    }
}

\/\/ Apple Server Notification handler
fun handleAppleNotification(signedPayload: String) {
    val notification = verifyAndDecodeAppleNotification(signedPayload)
    val transactionInfo = notification.data.signedTransactionInfo

    when (notification.notificationType) {
        &quot;DID_RENEW&quot; -&gt; refreshAppleEntitlement(transactionInfo)
        &quot;DID_CHANGE_RENEWAL_STATUS&quot; -&gt; updateAppleRenewalStatus(transactionInfo)
        &quot;EXPIRED&quot; -&gt; expireAppleEntitlement(transactionInfo)
        &quot;REVOKE&quot; -&gt; revokeAppleEntitlement(transactionInfo)
        \/\/ ... handle all notification types
    }
}</code></pre>
<p>各通知ハンドラーは、イベント名も、ペイロード構造も、状態遷移（ステートマシン）の意味づけも異なります。グレース期間の扱いも異なります。返金フローも異なります。さらには「解約」という概念でさえ、両プラットフォーム間で微妙な違いがあります。</p>
<h3><strong>実際に必要となる工数の規模</strong></h3>
<p>クロスプラットフォームのサブスクリプション同期を構築するには、専用のインフラが必要になります。さらに、GoogleもAppleも課金システムを定期的にアップデートしています。Googleは2022年にbase planとofferを導入し、大幅なバックエンド変更が求められました。AppleはStoreKit 2をリリースし、まったく新しいトランザクションモデルを導入しました。こうした大きな変更があるたびに、インフラを適応させるためのエンジニアリング時間が必要になります。</p>
<p>専任のバックエンドエンジニアを抱える大規模チームであれば、これは対応可能かもしれません。しかし、両プラットフォーム向けにサブスクリプションアプリをリリースしようとしている小規模チームやインディー開発者にとっては、これはコアプロダクトとは直接関係のない数か月分の開発作業を意味します。</p>
<h2><strong>RevenueCatのアイデンティティシステム：自然な解決策</strong></h2>
<p>RevenueCatは、統一されたアイデンティティおよびエンタイトルメントシステムによって、クロスプラットフォーム問題を根本から解決します。前述のようなインフラを自前で構築する代わりに、RevenueCatがそれをサービスとして提供します。この仕組みを成立させている重要な設計判断が、<strong>app user ID</strong>という抽象化です。</p>
<h3><strong>アイデンティティシステムの仕組み</strong></h3>
<p>RevenueCat SDKを設定する際、独自のユーザーIDを指定することも、RevenueCatに匿名IDを生成させることもできます。</p>
<pre><code class="language-kotlin">\/\/ Android: Configure with your own user ID
Purchases.configure(
    PurchasesConfiguration.Builder(context, &quot;your_revenuecat_api_key&quot;)
        .appUserID(&quot;user_12345&quot;)
        .build()
)</code></pre>
<p>iOS版は以下のような感じになります：</p>
<pre><code class="language-swift">\/\/ iOS: Configure with the same user ID
Purchases.configure(
    with: .builder(withAPIKey: &quot;your_revenuecat_api_key&quot;)
        .with(appUserID: &quot;user_12345&quot;)
        .build()
)</code></pre>
<p>両プラットフォームで同じ <code>appUserID</code> を使用すると、RevenueCatのバックエンド上に単一のサブスクライバーレコードが作成されます。ユーザーがどちらのプラットフォームでサブスク登録しても、RevenueCatがレシートを検証し、エンタイトルメントを記録し、そのユーザーIDに紐づけます。もう一方のプラットフォームのSDKが customer info を問い合わせると、他プラットフォーム由来のサブスクリプションも含めた完全なエンタイトルメント状態が返されます。</p>
<h3><strong>匿名ユーザーから認証ユーザーへの移行フロー</strong></h3>
<p>RevenueCatは、ユーザーが最初は匿名で利用し、後からアカウントを作成するという一般的なシナリオにも対応しています。ユーザーがアプリを初めて開いた際、RevenueCatは <code>$RCAnonymousID:&lt;uuid&gt;</code> という形式の匿名IDを生成します。アカウント作成前にサブスク登録した場合、そのサブスクリプションはこの匿名IDに紐づけられます。</p>
<p>その後、ユーザーがアカウントを作成してログインすると、RevenueCatの <code>logIn</code> メソッドによって、匿名ユーザーに紐づいていたすべての購入が、認証済みユーザーに移行されます。</p>
<pre><code class="language-kotlin">Purchases.sharedInstance.logIn(
    newAppUserID = &quot;user_12345&quot;,
    callback = object : LogInCallback {
        override fun onReceived(customerInfo: CustomerInfo, created: Boolean) {
            \/\/ customerInfo now contains entitlements from:
            \/\/ 1. Any previous purchases made under the anonymous ID
            \/\/ 2. Any purchases previously associated with &quot;user_12345&quot;
            \/\/ 3. Purchases from ANY platform linked to this user

            val isPremium = customerInfo.entitlements[&quot;premium&quot;]?.isActive == true
        }

        override fun onError(error: PurchasesError) {
            \/\/ Handle error
        }
    }
)</code></pre>
<p><code>created</code> ブール値は、そのユーザーが新規ユーザーか既存ユーザーかを示します。既存ユーザーである場合、RevenueCatは購入履歴をマージします。これはクロスプラットフォームのシナリオにおいて非常に重要です。たとえば、最初にiOSでサブスク登録し、その後Androidアプリをインストールしたユーザーでも、同じユーザーIDでログインすれば、エンタイトルメントが自動的に引き継がれます。</p>
<h3><strong>CustomerInfo：ひとつのオブジェクトで、すべてのプラットフォームを</strong></h3>
<p><code>CustomerInfo</code> オブジェクトは、クロスプラットフォームのエンタイトルメント問題に対するRevenueCatの回答です。あらゆるプラットフォームのサブスクリプション状態を集約し、単一の、簡単に問い合わせ可能なオブジェクトとして提供します。</p>
<pre><code class="language-kotlin">Purchases.sharedInstance.getCustomerInfoWith { customerInfo -&gt;
    val premiumEntitlement = customerInfo.entitlements[&quot;premium&quot;]

    if (premiumEntitlement?.isActive == true) {
        \/\/ User has premium access, regardless of which platform they subscribed on
        val store = premiumEntitlement.store
        \/\/ Could be Store.APP_STORE, Store.PLAY_STORE, Store.AMAZON, etc.

        val expirationDate = premiumEntitlement.expirationDate
        val willRenew = premiumEntitlement.willRenew

        showPremiumContent()
    } else {
        showPaywall()
    }
}</code></pre>
<p>各エンタイトルメントの <code>store</code> プロパティは、そのサブスクリプションがどのプラットフォーム由来かを示します。しかし、アクセスを付与する際にそれを確認する必要はありません。重要なのは <code>isActive</code> プロパティだけであり、これはすべてのプラットフォームで共通して機能します。</p>
<p>これが重要なポイントです。RevenueCatは、クロスプラットフォームのインフラ問題を、単一のプロパティチェックに変換します。AndroidアプリはAppleのレシート検証方法を知る必要がありません。iOSアプリもGoogle Playのpurchase tokenについて理解する必要はありません。これらはすべてRevenueCatのバックエンドが処理し、 <code>CustomerInfo</code> を通じて統一された状態を提供します。</p>
<h3><strong>裏側で何が起きているのか</strong></h3>
<p>ユーザーがiOSでサブスク登録し、その後Androidアプリを開いた場合、次のような流れになります。</p>
<ol>
<li>iOS SDKがApp StoreのレシートをRevenueCatのバックエンドに送信します。</li>
<li>RevenueCatがAppleのサーバーでレシートを検証し、ユーザーのapp user IDに対してエンタイトルメントを記録します。</li>
<li>更新、解約、請求エラーなどを追跡するために、RevenueCatがApple Server Notificationsに登録します。</li>
<li>Androidアプリが起動し、<code>getCustomerInfo</code> を呼び出すと、SDKは同じapp user IDをRevenueCatのバックエンドに送信します。</li>
<li>RevenueCatは、iOS由来のサブスクリプションを含む完全なエンタイトルメント状態を返します。</li>
<li>Androidアプリはプレミアムエンタイトルメントの <code>isActive == true</code> を確認し、アクセスを付与します。</li>
</ol>
<p>すべての更新イベント、グレース期間、解約、期限切れはRevenueCat側でサーバー処理されます。両プラットフォームは、プラットフォーム固有のコードを書くことなく、常に最新のサブスクリプション状態を取得できます。</p>
<h3><strong>サブスクリプション管理の扱い</strong></h3>
<p>クロスプラットフォームのサブスクリプションで実務的に重要なのが、管理URLの振り分けです。iOSで登録したユーザーは、Google PlayではなくApp Store経由でサブスクリプションを管理する必要があります。RevenueCatはこれを <code>managementURL</code> プロパティで処理します。</p>
<pre><code class="language-kotlin">Purchases.sharedInstance.getCustomerInfoWith { customerInfo -&gt;
    val managementUrl = customerInfo.managementURL

    \/\/ This URL points to the correct store based on where the user subscribed
    \/\/ - App Store subscription settings for iOS purchases
    \/\/ - Google Play subscription settings for Android purchases

    showManageSubscriptionButton(managementUrl)
}</code></pre>
<p>これにより、ユーザーがGoogle Playからサブスクリプションを解約しようとしても見つからない、なぜなら実際の契約はApple側にある、といった混乱した状況を防ぐことができます。</p>
<h2><strong>開発スピードへの影響</strong></h2>
<p>クロスプラットフォーム同期を自前で構築する場合と、RevenueCatを利用する場合とでは、実装コストに大きな差があります。AndroidとiOSの両方でサブスクリプションアプリを提供するチームを想定して、両者を比較してみましょう。</p>
<h3><strong>RevenueCatを使わない場合</strong></h3>
<p>2つのレシート検証統合を含むバックエンドサーバー、2系統の通知処理パイプライン、ユーザーアイデンティティシステム、エンタイトルメントデータベース、そして両プラットフォームからバックエンドと通信するためのクライアント側コードを構築・維持する必要があります。初期開発だけで10〜18週間を要し、さらに両プラットフォームの進化に合わせた継続的なメンテナンスも必要になります。</p>
<h3><strong>RevenueCatを使う場合</strong></h3>
<p>実装は、各プラットフォームでSDKにapp user IDを設定し、 <code>CustomerInfo</code> を確認してアクティブなエンタイトルメントをチェックし、ペイウォールを表示するだけに簡略化されます。バックエンドのインフラはすべてRevenueCatが処理します。</p>
<pre><code class="language-kotlin">\/\/ The entire Android-side implementation for cross-platform entitlements
class SubscriptionManager(private val context: Context) {

    fun initialize(userId: String) {
        Purchases.configure(
            PurchasesConfiguration.Builder(context, &quot;your_api_key&quot;)
                .appUserID(userId)
                .build()
        )
    }

    fun checkAccess(onResult: (Boolean) -&gt; Unit) {
        Purchases.sharedInstance.getCustomerInfoWith { customerInfo -&gt;
            val isPremium = customerInfo.entitlements[&quot;premium&quot;]?.isActive == true
            onResult(isPremium)
        }
    }
}</code></pre>
<p>これが、Androidでクロスプラットフォームのサブスクリプションをサポートするために必要なコードのすべてです。iOS側のコードも同様に非常に簡潔です。バックエンドサーバーも、レシート検証も、通知処理も、エンタイトルメントデータベースも必要ありません。それらはすべてRevenueCatが管理します。</p>
<p>インディー開発者や小規模チームにとって、この違いは単なる時間短縮の問題ではありません。実現可能性そのものに関わる問題です。クロスプラットフォームのサブスクリプション基盤をゼロから構築するには、バックエンドの専門知識、サーバーホスティング、監視体制、そして継続的なメンテナンスが必要になります。多くの小規模チームにとって、こうした投資は現実的ではありません。その結果、クロスプラットフォーム対応自体を諦めるか、プラットフォームAPIの変更で簡単に壊れてしまう脆弱な仕組みを構築することになります。RevenueCatは、チームの規模を問わずクロスプラットフォームのサブスクリプションを実現可能にし、開発者が限られた時間を自社アプリを差別化する機能の開発に集中できるようにします。</p>
<h2><strong>結論</strong></h2>
<p>本記事では、クロスプラットフォームのサブスクリプション状態の管理が、なぜモバイルマネタイズにおいて最も難しい問題のひとつなのかを見てきました。Google Play BillingとAppleのStoreKitは、レシート形式、検証API、通知メカニズム、プロダクト構造に至るまで根本的に異なるシステムです。これらを橋渡しするには、統一されたアイデンティティシステム、二重のレシート検証、プラットフォームに依存しないエンタイトルメント保存、そして2系統の通知処理パイプラインが必要になります。</p>
<p>このインフラをゼロから構築するには数か月を要し、さらに両プラットフォームの進化に合わせた継続的なメンテナンスが求められます。大規模チームにとっては大きな投資ではあるものの対応可能な範囲かもしれません。しかし小規模チームやインディー開発者にとっては、コアプロダクト以上のエンジニアリング時間を消費しかねません。</p>
<p>RevenueCatのアイデンティティおよびエンタイトルメントシステムは、単一の <code>CustomerInfo</code> オブジェクトの背後にプラットフォーム差異を抽象化することで、この問題に対する自然な解決策を提供します。プラットフォーム間で共有されるapp user IDと、RevenueCatによるサーバーサイドのレシート検証および通知処理を組み合わせることで、数か月規模のインフラ構築プロジェクトは、数行のSDK設定に置き換わります。サブスクリプションがApp Store、Google Play、Amazon、あるいはWebのいずれで開始されたものであっても、アプリ側では <code>isActive</code> を確認してアクセスを付与するだけで済みます。</p>
<p>複数プラットフォームにまたがってユーザーに提供するサブスクリプションアプリを構築するチームにとって、この問題のスコープを理解することは、内製か外部サービス利用かという判断を行う上で重要です。マネージドソリューションを利用することで節約できた時間は、アプリの改善、ペイウォールの最適化、そしてプロダクトを真に差別化する機能の開発に振り向けることができます。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[ハードウェア連動型サブスクリプションビジネスの構築]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/mark-michael-skylight-sub-club-podcast-2026</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/mark-michael-skylight-sub-club-podcast-2026</guid>
      <pubDate>Fri, 27 Feb 2026 20:50:30 GMT</pubDate>
      <dc:creator><![CDATA[David Barnard]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[Podcastでは、ハードウェア連動型サブスクリプションの急成長について、なぜ最適化をやめてより良いプロダクトを構築するまで何もうまくいかなかったのか、そしてデータ上はさらに高い価格を設定できたにもかかわらず、なぜ79ドルへと価格を引き上げたのかについて、MichaelとMarkと話しています。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/6dd7180641ac2bb387c49f61b11fa9770eb82487-1600x840.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>ハードウェア単体では、企業価値は構築できません。そして、ハードウェアの上にサブスクリプションを重ねるモデルも、そのプロダクトが日常生活の一部にならなければ機能しません。</p>
<p>今回のSub Clubのエピソードでは、SkylightのCEOとCPOが、どのようにして高いサブスクリプションアタッチ率を持つ収益性の高いハードウェアビジネスを構築したのかを語ります。また、日常的な利用、感情に基づく価格設定、プロダクトの成熟度、小売流通について彼らが学んだ厳しい教訓についても共有しています。</p>
<p><a href="https://www.youtube.com/watch?v=AilakPuHdf4">Watch on YouTube</a></p>
<p>ハードウェア連動型サブスクリプションビジネスを構築しているすべての人に向けた、5つの重要なポイントを紹介します。</p>
<h2>ハードウェア連動型サブスクリプションは、日常的な利用があってこそ機能する</h2>
<p>ハードウェアデバイスはサブスクリプションを正当化できます——ただし、それが毎日使われている場合に限ります。</p>
<p>デバイスが使われずに放置されていると、継続課金はすぐに「なくてもいいもの」に感じられます。顧客は、自分が何に対して支払っているのかを疑い始めます。しかし、プロダクトが日々の習慣に組み込まれ——スケジュールを整理し、タスクを可視化し、家族間のコミュニケーションの中心になるようになれば——サブスクリプションはその価値の自然な延長として受け入れられます。</p>
<p>日々の接触頻度が、サブスクリプションのレバレッジを生み出します。</p>
<p>Skylightにとっての転機は、Calendarプロダクトが「家庭の鼓動（heartbeat of the home）」になったときでした。家族が毎日それに頼るようになると、サブスクリプションは単なる機能のアップセルではなく、より深い価値を解放する手段へと変わりました。</p>
<p>習慣的な利用がなければ、サブスクリプションは伸び悩みます。習慣があれば、複利のように積み上がります。</p>
<h2>構築すべきときに、最適化ばかりしない</h2>
<p>A/Bテストやファネル最適化は、着実な改善をもたらします。しかし、ときに最大の成長レバーはコンバージョンではなく、プロダクトそのものです。</p>
<p>限られたリソースの中で、Skylightは慎重な優先順位付けを迫られました。無数の小さな実験にリソースを分散させるのではなく、体験全体を強化する、本質的に価値のある機能を構築することに集中しました。</p>
<p>最適化は重要です。しかし、段階的ではなく飛躍的な成長は、多くの場合、プロダクトを意味のあるレベルで向上させるものをリリースすることから生まれます。</p>
<p>リソースが制約されているとき、優先順位付けそのものが戦略になります。</p>
<h2>データだけでなく、顧客の感情に基づいて価格を決める</h2>
<p>Skylightがサブスクリプション価格を見直した際、テストでは年間99ドルが収益最大化につながるという結果が出ました。</p>
<p>数字上では、ARPUを最も押し上げる価格でした。</p>
<p>しかし、定性調査は異なる示唆を与えました。79ドルは「妥当」と感じられた一方で、99ドルはチームの言葉を借りれば「嫌悪感を抱かれる領域（disgust territory）」に近づいていたのです。その感情的な反応は重要でした。</p>
<p>長期的なブランド価値を重視する企業にとって、短期的な収益最適化のために顧客の反感を買うリスクを取る価値はありませんでした。彼らは79ドルを選び、1ドルでも多く回収することよりも、好意や信頼を優先しました。</p>
<p>価格設定は単なる計算ではありません。それは感情的なポジショニングです。</p>
<p>スプレッドシートは、何が収益を最大化するかを教えてくれます。しかし、ロイヤルティを維持できるかどうかを教えてくれるのは、顧客との対話だけです。</p>
<h2>マーケティングを拡大する前に、優れたプロダクトを作る</h2>
<p>弱いプロダクトを、マーケティングで補うことはできません。</p>
<p>2021〜22年にかけて、SkylightはCalendarプロダクトを積極的にスケールさせようとしました。広告投資を増やし、ユーザー獲得を加速させました。しかし、成長は伸び悩み、数字は合いませんでした。</p>
<p>問題は広告ではなく、プロダクトそのものでした。</p>
<p>チームが体験をNet Promoter Score（NPS）40以上にまで高めるまでは、マーケティング費用は誤ったネガティブシグナルを生み、無駄な支出につながっていました。プロダクトが本当にユーザーに響くようになって初めて、スケールは現実的になりました。</p>
<p>プロダクトマーケットフィットが確立していない状態でマーケティングを拡大すると、摩擦を増幅させるだけです。</p>
<p>まずはプロダクトを正しく作ること。その後に成長エンジンを回すべきです。</p>
<h2>小売パートナーシップは究極のインフルエンサー</h2>
<p>ハードウェアにおいて、流通は影響力そのものです。</p>
<p>CostcoやBest Buyのような企業との小売パートナーシップは、有料広告では再現できない「品質の証明」を与えてくれます。信頼されている棚に並ぶこと自体が、大規模に顧客へ信頼性を示すシグナルになります。</p>
<p>D2C（直販）チャネルは高いサブスクリプションアタッチ率を生みやすい一方で、マルチチャネルでの流通はリーチを拡大し、ブランドの正当性を強化します。</p>
<p>ハードウェアはコピーできます。しかし、流通は簡単には真似できません。</p>
<p>Skylightにとって、小売は単なる販売チャネルではなく、成長エンジンであり、ポジショニング上の優位性でもありました。</p>
<h2>成長・利益・長期的な信頼のバランスを取る</h2>
<p>この5つの教訓を通して浮かび上がるのは、より深いテーマです。それは、成長と利益はしばしば異なる方向に引っ張り合うということです。</p>
<ul>
<li>サブスクリプションを摩擦なく導入すれば、利益率は下がる可能性があります。
</li>
<li>価格を引き上げれば、ARPUは向上しますが、長期的な信頼を損なうかもしれません。
</li>
<li>ハードウェア価格を下げれば、成長は加速しますが、収益性は圧迫されます。
</li>
<li>最適化に過度に集中すると、持続的な価値の構築から目がそれることもあります。
</li>
</ul>
<p>すべての意思決定にはトレードオフが伴います。</p>
<p>Skylightのアプローチが示しているのは、ハードウェア連動型サブスクリプションビジネスをスケールさせるとは、あらゆる指標を同時に最大化することではないということです。重要なのは、どのレバーが最も意味を持つのか、そしてそれをいつ引くべきかを見極めることです。</p>
<p>ハードウェア連動型サブスクリプションとは、単にデバイスに継続収益を重ねることではありません。日々の生活にとって欠かせない存在になること、感情的な知性を持って価格を設定すること、そしてスケールに値する強いプロダクトを構築することなのです。</p>
<p>🎧 これらの教訓の背景にある詳細な対話や実験については、<a href="https://www.youtube.com/watch?v=AilakPuHdf4">Sub Clubのフルエピソードをぜひお聴きください</a>。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[RevenueCat Paywallとカスタムペイウォールを併用する方法]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/running-custom-paywalls-alongside-revenuecat-paywalls</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/running-custom-paywalls-alongside-revenuecat-paywalls</guid>
      <pubDate>Fri, 27 Feb 2026 20:30:44 GMT</pubDate>
      <dc:creator><![CDATA[Perttu Lähteenlahti]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[カスタム実装のペイウォールとRevenueCat Paywallを組み合わせて、柔軟な実験（テスト）、ターゲット別オファー、複雑なユーザージャーニーに対応する方法。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/c0a5f00b18ece5b6fccdb14b9f6c9f2bdb0f9583-1600x850.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>RevenueCatのPaywallは、完全なネイティブビューとしてレンダリングされる高度にカスタマイズ可能なペイウォールを提供します。しかし、エンタイトルメントやオファー、パッケージの管理にはRevenueCatを活用しつつ、独自のカスタムペイウォールを実装したいケースもあるでしょう。本記事では、RevenueCatのPaywallとカスタムペイウォールを効果的に併用する方法について解説します。</p>
<h2>なぜ複数のペイウォールを運用するのか？</h2>
<p>なぜ複数のペイウォールを同時に管理する必要があるのか、疑問に思うかもしれません。以下は、このアプローチが特に有効なケースです。</p>
<ul>
<li><strong>移行期間</strong>：これまで独自のカスタムペイウォールを構築してきたが、段階的にRevenueCatのペイウォールへ移行したい場合。</li>
<li><strong>A/Bテスト</strong>：既存のハードコードされたペイウォールと、RevenueCatで新たに構築したペイウォールを比較テストしたい場合。</li>
<li><strong>ターゲット別オファー</strong>：特定のユーザーセグメント向けに、独自の価格設定やプロモーションオファーを提示する必要があり、高度にカスタマイズされた表示が求められる場合。</li>
<li><strong>高度なロジック</strong>：複雑なオンボーディングフローや特定のユーザージャーニーに対応する必要がある場合。</li>
</ul>
<p>アプリ側でどのペイウォールUIを表示するかを決定しつつ、すべての購入処理は引き続きRevenueCat SDKを通して行います。これにより、ロジックの重複や価格の不一致、エンタイトルメント関連のバグを防ぎながら、必要に応じて表示部分の完全なコントロールを維持できます。</p>
<h3>エンドツーエンドのフロー例</h3>
<p>全体像として、2種類のペイウォールタイプを持つアプリは次のように動作します。</p>
<ol>
<li><strong>ユーザーがペイウォールの分岐ポイントに到達する</strong></li>
</ol>
<ul>
<li>例：オンボーディングの終了、機能のゲート、プロモーションの入口など</li>
</ul>
<ol>
<li><strong>アプリが特定の Placement に対して Offerings をリクエストする</strong></li>
</ol>
<ul>
<li>Placement は、ユーザージャーニーのどこでペイウォールを表示するかを表します</li>
</ul>
<ol>
<li><strong>RevenueCat が適切な Offering を返す</strong></li>
</ol>
<ul>
<li>返される Offering は、ターゲティングルールに応じてユーザーごとに異なる場合があります</li>
</ul>
<ol>
<li><strong>アプリが Offering のメタデータを確認する</strong></li>
</ol>
<ul>
<li>メタデータによって、どのペイウォールを表示すべきかが決まります</li>
</ul>
<ol>
<li><strong>アプリが表示するペイウォール UI を選択する</strong> </li>
</ol>
<ul>
<li>RevenueCat のペイウォール UI</li>
<li>または、完全にカスタム実装したペイウォール UI</li>
</ul>
<ol>
<li><strong>ユーザーがプロダクトを選択する</strong></li>
</ol>
<ul>
<li>プロダクト情報と価格データは常に RevenueCat から取得します</li>
</ul>
<ol>
<li><strong>RevenueCat SDK 経由で購入を開始する</strong></li>
</ol>
<ul>
<li>ペイウォール UI がどちらでも、購入フローは同一です</li>
</ul>
<ol>
<li><strong>RevenueCat がエンタイトルメントを更新する</strong></li>
</ol>
<ul>
<li>アプリが CustomerInfo に基づいてコンテンツを解放／制限する</li>
</ul>
<p>この仕組みにより、表示は柔軟にしつつ、サブスクリプションシステムは一元化して整合性を保つことができます。さらに RevenueCat の Experiment 機能を使えば、異なる Placement やペイウォール間でコンバージョン成果をテスト・比較することも可能です。</p>
<h2>RevenueCat Paywallの理解</h2>
<p>RevenueCatのペイウォールは、ユーザーにプロダクトを表示するプロセスを簡素化するよう設計されています。<a href="https://www.revenuecat.com/docs/tools/paywalls">RevenueCat Paywallsのドキュメント</a>にある通り、RevenueCatダッシュボード上で直接、さまざまなペイウォールデザインを作成・管理・テストすることが可能です。プロダクト情報の取得も自動で処理され、ユーザーフレンドリーな形で表示されます。しかも、ペイウォールを変更するたびにアプリの新しいリリースをストアに提出する必要はありません。</p>
<p>ほとんどの新規アプリにとって、RevenueCatでペイウォールを実装するのが最適な選択です。ストアにアップデートを提出することなく、ペイウォールを継続的に改善・更新できるからです。</p>
<h2>カスタム実装のペイウォールを実装する</h2>
<p>前述のとおり、RevenueCatのPaywallだけでは要件を満たせないケースもあります。たとえば、アプリ内の重要なデザイン要素をペイウォールにも表示したい場合です。ゲーミフィケーションされたアプリであれば、途切れてしまった連続記録（broken streak）の可視化をペイウォール上に出して、「サブスクに登録すればこの途切れた記録を修復できる」ことをユーザーに伝えたい、といったケースが考えられます。</p>
<p>カスタム実装のペイウォールを採用する場合、UI/UXは基本的に自分たちでコントロールすることになります。一方で、バックエンド側の処理（プロダクト情報の取得や購入処理）については、引き続きRevenueCat SDKに依存します。</p>
<h3>ステップ1：プロダクト情報を取得する</h3>
<p>カスタム実装のペイウォールを作る最初のステップは、RevenueCatからプロダクト情報を取得することです。これは、ユーザーに正しいサブスクリプションの選択肢、価格、導入オファー（初回オファー）を表示するために不可欠です。詳細な手順は、<a href="https://www.revenuecat.com/docs/getting-started/displaying-products">Displaying Products のドキュメント</a>を参照してください。ctions.</p>
<p>Swift では通常、 <code>Purchases.shared.getOfferings()</code> メソッドを使って設定済みの Offerings を取得します。同様に Kotlin では、<code>Purchases.sharedInstance.getOfferingsWith()</code> を使用します。

これにより Offering オブジェクトが取得でき、必要なプロダクト詳細がすべて含まれています。</p>
<pre><code class="language-swift">        Purchases.shared.getOfferings { (offerings, error) in
            if let packages = offerings?.current?.availablePackages {
                self.display(packages)
            }
        }</code></pre>
<pre><code class="language-kotlin">Purchases.sharedInstance.getOfferingsWith({ error -&gt;
  \/\/ An error occurred
}) { offerings -&gt;
  offerings.current?.availablePackages?.takeUnless { it.isNullOrEmpty() }?.let {
    \/\/ Display packages for sale
  }
}</code></pre>
<h3>ステップ2：購入処理を実行する</h3>
<p>ユーザーがカスタム実装のペイウォール上でプロダクトを選択したら、RevenueCatのSDKを使って購入を開始します。この手順については、<a href="https://www.revenuecat.com/docs/getting-started/making-purchases">Making Purchases のドキュメント</a>で詳しく解説されています。</p>
<p>iOSでは <code>Purchases.shared.purchase(package:)</code>を使用し、Androidでは<code>Purchases.sharedInstance.purchaseWith()</code>を使用します。購入完了時の処理や、発生し得るエラーのハンドリングを忘れずに実装してください。</p>
<pre><code class="language-swift">Purchases.shared.purchase(package: package) { (transaction, customerInfo, error, userCancelled) in
  if customerInfo.entitlements[&quot;your_entitlement_id&quot;]?.isActive == true {
    \/\/ Unlock &quot;pro&quot; content              
  }
}</code></pre>
<pre><code class="language-kotlin">Purchases.sharedInstance.purchaseWith(
  PurchaseParams.Builder(this, aPackage).build(),
  onError = { error, userCancelled -&gt; \/* No purchase *\/ },
  onSuccess = { storeTransaction, customerInfo -&gt;
    if (customerInfo.entitlements[&quot;my_entitlement_identifier&quot;]?.isActive == true) {
      \/\/ Unlock &quot;pro&quot; content
    }
  }
)</code></pre>
<h3>ステップ3：Entitlement（権限）の管理</h3>
<p>RevenueCatのペイウォールを使用する場合でも、カスタム実装のペイウォールを使用する場合でも、entitlement（権限）の管理はRevenueCatが処理します。購入が成功すると、RevenueCatはユーザーの CustomerInfoを更新します。これを利用して、プレミアム機能へのアクセスを付与または制限できます。Swiftでは、 <code>Purchases.shared.customerInfo()</code>を使用して CustomerInfo を取得できます。</p>
<pre><code class="language-swift">Purchases.shared.getCustomerInfo { (customerInfo, error) in
    \/\/ access latest customerInfo
}</code></pre>
<p>Kotlinで</p>
<pre><code class="language-kotlin">Purchases.sharedInstance.getCustomerInfoWith(
    onError = { error -&gt; \/* Optional error handling *\/ },
    onSuccess = { customerInfo -&gt; \/* Access latest customerInfo *\/ },
</code></pre>
<h2>ペイウォールの条件付き表示ロジック</h2>
<p>異なるペイウォールやOfferingを表示するロジックは、<strong>Placement</strong> または <strong>Offering metadata</strong> を使って制御できます。Placement を使うと、各Offeringをアプリ内のどこで表示するかを定義できます。一方、Offering metadata を使うと、Offeringに追加情報を付与でき、それをアプリ側で参照することで「カスタム実装のペイウォールを表示するのか」「RevenueCatのペイウォールを表示するのか」を切り替えることができます。</p>
<h3><strong>Placementによるターゲティング</strong></h3>
<p>Targeting by Placement を使うことで、アプリ内のペイウォール表示位置ごとに異なるOfferingを配信できます。たとえば、以下のような場所ごとに異なるペイウォールを表示できます。</p>
<ul>
<li>オンボーディング終了時（例：<code>onboarding_end</code>）</li>
<li>ユーザーが有料機能を使おうとしたとき（例：<code>feature_gate</code>）</li>
<li>セール実施中（例：<code>sale_offer</code>）</li>
</ul>
<p>Placementを設計する際の基本は、理想的なカスタマージャーニーをどう補完するかを理解することです。たとえばセールを実施している場合、初回利用ユーザーと既存ユーザーでは、表示すべきオファーやコピーが異なる可能性があります。そのような場合は <code>sale_offer</code> というPlacementを定義します。</p>
<p>アプリがPlacementを指定してOfferingsを取得すると、RevenueCatはそのPlacementとユーザーに応じたOfferingを返します。これにより、カスタマージャーニーに応じたユニークなペイウォールを表示できます。Swiftでは、次のように実装できます。</p>
<pre><code class="language-swift">Purchases.shared.getOfferings { offerings, error in
    if let offering = offerings?.currentOffering(forPlacement: &quot;your_placement_identifier&quot;) {
        \/\/ Show paywall
    } else {
        \/\/ Do nothing or continue on to next view
    }
}</code></pre>
<p>同様にKotlinでは:</p>
<pre><code class="language-kotlin">Purchases.sharedInstance.getOfferingsWith({ error -&gt;
    \/\/ An error occurred
}) { offerings -&gt;
    offerings.getCurrentOfferingForPlacement(&quot;your-placement-identifier&quot;)?.let {
        \/\/ show paywall
    } ?: run {
        \/\/ Do nothing or continue on to next view
    }
}</code></pre>
<h3>Offering metadataを使ったターゲティング</h3>
<p>異なる種類のペイウォールを運用し、カスタム実装のペイウォールに表示する内容を柔軟に制御するための鍵となるのが <strong>Offering metadata</strong> です。RevenueCatダッシュボードでは、対象のOfferingに移動し、「<strong>Edit</strong>」または「<strong>Configure metadata</strong>」（まだ設定していない場合）をクリックすることで、<strong>Metadata</strong>フィールドに有効なJSONを追加できます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/152ac0eb7529039ea702cf3a925cbb651a1c67b4-1600x931.png" alt=""/></figure>
<p>ダッシュボードで設定するMetadataは、たとえば次のような形式になります。</p>
<pre><code class="language-javascript">{
  &quot;custom_paywall&quot;: true,
}</code></pre>
<p>このmetadataは、SDKを呼び出して利用可能なOfferingsを取得する際に、Offeringデータに紐づけられます。そのため、このmetadataを使って、アプリ内でのペイウォール表示方法を動的に変更できます。</p>
<h3>SDKでOffering metadataを使用する</h3>
<p>Swiftでは、RevenueCat SDKの offerings メソッドを使って取得した Offering オブジェクトから、metadata に直接アクセスできます。</p>
<pre><code class="language-swift">do {
    let offerings = try await Purchases.shared.offerings()

    if let offering = offerings.current {
        let useCustomPaywall = offering.metadata[&quot;custom_paywall&quot;] as? Bool

        if useCustomPaywall == true {
            \/\/ Show custom paywall UI
        } else {
            \/\/ Show RevenueCat Paywalls UI
        }
    }
} catch {
    \/\/ An error occurred
}</code></pre>
<p>そしてKotlinでは同じ方法で:</p>
<pre><code class="language-kotlin">Purchases.sharedInstance.getOfferingsWith({ error -&gt;
    \/\/ An error occurred
}) { offerings -&gt;
    offerings.current?.let { offering -&gt;
        val useCustomPaywall = offering.metadata[&quot;custom_paywall&quot;] as? Boolean

        if (useCustomPaywall == true) {
            \/\/ Show custom built paywall UI
        } else {
            \/\/ Show RevenueCat Paywalls UI
        }
    }</code></pre>
<p>
metadataの値は本質的にオプションです。そのため、ダッシュボードで値が定義されていない場合でも、アプリやペイウォールが正常に動作するように実装する必要があります。</p>
<h3>条件分岐ロジックの例</h3>
<p>最後に残っているステップは、カスタム実装のペイウォールを表示するか、RevenueCat ペイウォールを表示するかを判定するロジックを適用することです。</p>
<pre><code class="language-swift">func shouldShowCustomPaywall(offering: Offering) -&gt; Bool {
    offering.getMetadataValue(for: &quot;custom_paywall&quot;, default: false)
}

func showPaywall(for offering: Offering) {
    if shouldShowCustomPaywall(offering: offering) {
        \/\/ Show your custom paywall UI
        displayCustomPaywall(offering: offering)
    } else {
        \/\/ Show RevenueCat's default paywall or a paywall built with RevenueCat's templates
        displayRevenueCatPaywall(offering: offering)
    }
}</code></pre>
<p>そしてKotlinでは:</p>
<pre><code class="language-kotlin">
fun shouldShowCustomPaywall(offering: Offering): Boolean {
    return offering.metadata[&quot;custom_paywall&quot;] as? Boolean ?: false
}

fun showPaywall(offering: Offering) {
    if (shouldShowCustomPaywall(offering)) {
        \/\/ Show your custom paywall UI
        displayCustomPaywall(offering)
    } else {
        \/\/ Show RevenueCat's default paywall or a paywall built with RevenueCat's templates
        displayRevenueCatPaywall(offering)
    }
}</code></pre>
<h2>まとめ</h2>
<p>独自に実装したカスタムペイウォールを、RevenueCatのペイウォールと併用することで、実験やターゲット別オファーにおける柔軟性を確保できます。プロダクト情報の取得や購入管理はRevenueCatに任せつつ、UI部分は自社のエンジニアリングで最適化することで、iOSおよびAndroidユーザーに対して高度に最適化された、魅力的なサブスクリプション体験を構築できます。このハイブリッドアプローチにより、フロントエンドの表現は自分たちでコントロールしながら、サブスクリプション基盤については堅牢で実績のあるバックエンドに依存することが可能になります。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[R.I.P. トグル型ペイウォール：ほとんど知らないまま、さよなら]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/r-i-p-toggle-paywall-we-hardly-knew-ye</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/r-i-p-toggle-paywall-we-hardly-knew-ye</guid>
      <pubDate>Fri, 27 Feb 2026 12:07:36 GMT</pubDate>
      <dc:creator><![CDATA[Rik Haandrikman]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[Appleは現在、ペイウォール上で無料トライアルのトグルを使用しているアプリをリジェクトしています。本記事では、トグル型ペイウォールの背景、なぜ排除されつつあるのか、そして代わりにどのようなペイウォールを構築すべきかを解説します。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/6a6606cbd0218f2ff8688c397e629f1c0c115fb5-1680x931.jpg" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>それは、いくつかのささやきから始まり、やがて数本のツイートへと広がりました。そして今では、もはや無視できない本格的なトレンドになっています。ここ数週間で、複数の業界関係者から同じような問い合わせが寄せられました。「Appleはトグル型ペイウォールを潰そうとしているのか？」という質問です。</p>
<p>短い答えは、イエス。どうやらそのようです。</p>
<p>次から次へと開発者が、App Reviewから同じリジェクト通知を受け取っています。そして理由はいつも同じです。無料トライアルをオン／オフできるトグルを含むペイウォールデザインについてです。もしあなたがiOSでこのパターンを使っているなら、注意が必要です。これは演習ではありません。</p>
<h2>トグル型ペイウォールとは？</h2>
<p>ご存じない方のために説明すると、「トグル型ペイウォール」とは、ユーザーにサブスクリプションオファーを提示し、無料トライアルを追加するか外すかを切り替えられるトグルスイッチを設けたペイウォールデザインのことです。多くの実装では、トグルはデフォルトでオフになっています。つまり、ユーザーは最初にトライアルなしのプランを目にします。スイッチをオンにすると、トライアル期間付きの別プラン（通常は年額ではなく週額プラン）に切り替わります。</p>
<p>この仕組みを広めたのは、2024年半ばの<a href="https://x.com/adamlyttleapps">Adam Lyttle</a>です。彼はこのデザインを導入することで、<a href="https://www.youtube.com/watch?v=5w3k1Z6ZQzQ">週次のアプリ収益が約2,500ドルから5,300ドル超へと倍増</a>したことを公開しました。その数字は衝撃的でした。初回オファーのコンバージョン率は63％に達し、サブスクリプションの継続率は68％に上りました。</p>
<p>これはまさに行動心理学の教科書のような設計でした。トグルは「オフ」がデフォルトで、見た目に安く感じられる年額プランがあらかじめ選択されています。無料トライアルを利用したいユーザーは、自分でスイッチをオンにする必要があり、その結果、より高額な週額プランへと切り替わります。多くのユーザーは年額の低い価格を見て、そのままトグルを操作せずに「続ける」をタップし、トライアルをスキップして前払いで支払いました。その結果はどうだったか？即時収益の大幅な増加と、ユーザーあたり平均収益（ARPU）の向上です。</p>
<p>その効果はあまりに強力で、瞬く間に広がりました。数か月のうちに、App Storeのさまざまなアプリでトグル型ペイウォールのバリエーションが見られるようになりました。マネタイズを強化したい開発者にとっての定番戦略となったのです。私たち自身の<a href="https://www.revenuecat.com/blog/growth/paywall-redesigns-case-studies/">ペイウォール再設計の事例</a>でも取り上げ、あるアプリではARPUが17％向上し、別のアプリでは実装後に収益が64％増加しました。</p>
<p>しかし、少し効果がありすぎると感じられるパターンには、いつか必ず起こることがあります。最終的に、プラットフォーム側が気づくのです。</p>
<h2>リジェクトの波</h2>
<p>2026年1月中旬から、リジェクト通知が次々と届き始めました。<a href="https://x.com/alpennec/status/2012188049728520514">Axel Le Pennec</a>はそのひとりで、Appleからのリジェクト通知のスクリーンショットを添えて「My app got rejected for that（これでリジェクトされた）」と、どこか諦めたようなコメントを投稿しました。そしてその翌日、このパターンを広めた当の本人であるAdam Lyttleが、その投稿を引用リツイートし、たった3語の追悼メッセージを残しました。「<a href="https://x.com/adamlyttleapps/status/2012661782771622234">RIP paywall toggle（安らかに、トグル型ペイウォール）</a>」</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/2935cf92680616e6363bea3a9545dfa1ea4e1d87-2376x2376.png" alt=""/></figure>
<p>それ以降も、報告は止まりませんでした。<a href="https://x.com/Aivars_Meijers/status/2017228629076537604">Aivars Meijers</a>、<a href="https://x.com/seraleev/status/2017597018948895034">Sergey</a>、<a href="https://x.com/ingoa_dev/status/2018612339294257228">Ingo</a> <a href="https://x.com/FancyWoodPigeon/status/2019145526894026914">など</a>、多くの開発者が同様のリジェクト体験を共有しています。この件に関する<a href="https://www.reddit.com/r/AppStoreOptimization/comments/1qeavxq/anyone_else_having_apple_reject_their_app_because/">Redditスレッド</a>では、同じ経験をしたと認める開発者が何十人も集まっています。これは単発の出来事ではありません。明確なパターンです。</p>
<p>Appleからのリジェクト通知は、容赦ないほど明確です。</p>
<p><strong>Guideline 3.1.2 – Business – Payments – Subscriptions</strong></p>
<p>購入画面に、サブスクリプション購入に無料トライアルを追加または削除するためのトグルが含まれています。このデザインは混乱を招く可能性があり、ユーザーが無料トライアル期間終了後に課金が開始される自動更新サブスクリプションに同意していることを理解できなくなるおそれがあります。</p>
<p><strong>Next Steps</strong>：サブスクリプション購入画面から、無料トライアルを追加または削除するトグルを削除してください。ユーザーには、無料トライアルが含まれているかどうかを明確に示した、分かりやすいサブスクリプションオファーを提示する必要があります。</p>
<p>ここに曖昧さはありません。</p>
<h2>なぜ今なのか？</h2>
<p>では、なぜこのパターンが1年以上広く使われてきたにもかかわらず、Appleは今になって取り締まりを強化しているのでしょうか。</p>
<p>正直なところ、私たちも100％確信しているわけではありません。Appleが明確なポリシー更新や公式ブログ投稿を出したわけでもありません。ただ、いくつかの点をつなぎ合わせることはできます。</p>
<p>まず第一に、Appleはここしばらく、サブスクリプションの慣行を是正する広範な取り組みを進めてきました。<a href="https://developer.apple.com/app-store/review/guidelines/#subscriptions">サブスクリプションに関するガイドライン</a>（3.1.2）は常に透明性を重視していますし、詐欺防止に関する規定（3.1.2(a)）では、「虚偽の前提でユーザーをサブスクリプション購入へと誘導する」アプリを明確に問題視しています。デフォルトでオフになっているトグルは、見方によってはこのカテゴリに含まれる可能性があります。隠れたトグルを操作しなければ利用できない無料トライアルは、Appleの視点からすれば、多くのユーザーが目にすることのないトライアルです。それでは、トライアルを提供する本来の目的が損なわれます。</p>
<p>第二に、このパターンは広まりすぎました。少数のインディーアプリが巧妙なデザインを使っているうちは、目立ちません。しかし、ストア全体で何千ものアプリが同じ仕組みを採用し、さらにそれを解説するYouTube動画が何万回も再生されるようになれば、当然注目されます。AppleのApp Reviewチームがこのトレンドを把握していることは明らかで、そして一線を越えたと判断したのでしょう。</p>
<p>第三に、そしておそらく最も重要なのは、ユーザーが混乱していたという点です。トグルの本質は、多くのユーザーがトグルを操作<em>しない</em>ことにありました。それは透明性ではなく、曖昧化です。Appleのポリシーにどう思うかは別として、ユーザーが何に同意しているのかを正しく理解できるようにすることに正当な関心を持つのは当然のことです。</p>
<h2>どんでん返し：死んだのはiOSだけ</h2>
<p>さて、トグル型ペイウォールは終わった。献杯しよう。私たちはほとんど知らないままだった。</p>
<p>……ただし、終わったのは<em>iOSだけ</em>です。ここは重要なポイントです。</p>
<p>現時点で、<strong>Googleがこのデザインに問題を示しているという兆候はありません</strong>。Webベースのペイウォールについても同様です。マルチプラットフォームでアプリを展開しているなら、トグルはAndroidやWebでは依然として有効で、高い成果を出せる戦略である可能性があります。</p>
<p>だからこそ、柔軟でリモート設定可能なペイウォール環境が重要になります。<a href="https://www.revenuecat.com">RevenueCat</a>のようなツールを使えば、<a href="https://www.revenuecat.com/docs/tools/targeting">Targeting</a>機能によって、iOSには準拠済みのトグルなしペイウォールを表示し、Google PlayやWebには従来の高ARPUなトグル型デザインを表示するといった出し分けが可能です。すべてを一括で捨てる必要はありません。重要なのは、正しいプラットフォームに正しいペイウォールを表示することです。</p>
<h2>代わりに何をテストすべきか</h2>
<p>では、iOS開発者はどうすればいいのでしょうか？――設計を見直すことです。幸いなことに、コンバージョン率が高く、かつ完全にガイドラインに準拠したペイウォールデザインは数多く存在します。中には、これまでのトグル型よりも高い成果を出せる可能性のあるものもあります。</p>
<p>まずテストをおすすめしたいのは、次のパターンです。</p>
<h3>1. 「正直な」タイムライン型ペイウォール</h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/d8892bfec56bcb4bbff626966fe82d57939c6f19-462x1000.jpg" alt=""/><figcaption>有名な「Blinkist型ペイウォール」</figcaption></figure>
<p>有名な「Blinkist型ペイウォール」です。Blinkistが広めたこのデザインは、「無料トライアルを開始」をタップした後に何が起こるのかを、明確なステップ形式のタイムラインで示します。たとえば、<strong>今日：フルアクセス → 5日目：リマインダー → 7日目：課金開始</strong>、といった具合です。Blinkistは、このパターンを導入したことでコンバージョン率が23％向上し、クレームが55％減少したと報告しています。これは強い信頼を構築する設計であり、多くの場合、トリックよりも信頼のほうが高いコンバージョンを生みます。</p>
<h3>2. マルチパッケージセレクター</h3>
<p>トライアルをオン／オフするトグルの代わりに、週額・月額・年額といった複数のサブスクリプションパッケージを横並びで提示します。トライアル付きのプランにはバッジを付けます。ユーザーは自分が望むパッケージを選択するだけで、トグルは不要です。トライアルは独立した仕組みではなく、プラン自体に組み込まれています。これは典型的な価格アンカリングを活用する方法で、（トライアル付きの）年額プランを最も魅力的な選択肢に見せることができます。</p>
<h3>3. バリューファースト型ペイウォール</h3>
<p>このアプローチでは、価値提案を最前面に出します。価格を表示する前に、強いビジュアル、ベネフィット重視のコピー、ソーシャルプルーフ、App Storeの評価などを提示します。ユーザーが価値に本当に納得すれば、支払いに対する心理的ハードルは大きく下がります。会話の焦点を「いくらかかるのか？」から「何が得られるのか？」へと移すのです。</p>
<h3>4. 条件付き表示によるパーソナライズド・ペイウォール</h3>
<p>より高度なアプローチです。ユーザー属性に基づいて条件分岐を行い、異なるペイウォールコンテンツを表示します。たとえば、初回オファーの対象かどうかによって出し分けます。対象ユーザーにはトライアル訴求を目立たせ、対象外のユーザーには直接購入フローを表示します。トグルは不要で、体験はユーザーごとに最適化されます。RevenueCatでは、<a href="https://www.revenuecat.com/paywalls/">Paywall Builder</a>内の<a href="https://www.revenuecat.com/docs/tools/targeting">Targeting</a>と条件付き表示機能によってこれをサポートしています。</p>
<h3>5. エグジットオファー</h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c22d9c0a9a29511247ced169a9491e50ad064c44-462x1000.jpg" alt=""/><figcaption>Duolingoは「Web購入ファースト」のペイウォールデザインを実験しています。</figcaption></figure>
<p>Duolingoは「Web購入ファースト」のペイウォール設計を実験しています。離脱しようとしているユーザーに、もう一度コンバージョンのチャンスを与えられるとしたら？それがエグジットオファーの考え方です。ユーザーがペイウォールを閉じようとしたとき、ただ画面を閉じるのではなく、別の、しばしばより魅力的なオファーを提示します。たとえば、より低い価格、より長いトライアル、年額を拒否した後に月額プランを提示するなどです。</p>
<p>この機能は最近Paywall Builderに追加されました。すべてリモートで設定でき、コード変更は不要です。本来なら失われていた意図を回収する優れた方法です。ただし注意が必要です。Appleは即時の離脱阻止オファーにも厳しくなりつつあるため、ユーザーを閉じ込めているように感じさせない設計になっているか、慎重にテストしてください。</p>
<h3>6. Web購入ボタン</h3>
<p>少し変化球です。米国のiOSユーザーを完全にWebチェックアウトへ誘導する方法です。Appleの30％手数料を回避でき、購入フローを完全にコントロールできます。そして、Web購入にはApp Storeガイドラインが適用されないため、トグルを含め、好きなペイウォールデザインを採用できます。もちろん、アプリ内画面には引き続きアプリ内課金も含める必要があります。ただし、Webでは割引を提供する（あるいはアプリ内価格を引き上げる）ことで、Webオプションへと誘導することが可能です。私たちはテストを容易にする<a href="https://www.revenuecat.com/blog/growth/meet-the-web-paywall-button/">Web Checkout Button</a>コンポーネントを提供しています。結果は……なかなか<a href="https://www.revenuecat.com/blog/growth/meet-the-web-paywall-button/">興味深い</a>ものになっています。</p>
<table>
<thead><tr>
<th><p><strong>代替案</strong></p></th>
<th><p><strong>主なメリット</strong></p></th>
<th><p><strong>コンプライアンスリスク</strong></p></th>
</tr></thead>
<tbody>
<tr>
<td><p>タイムライン型 / 「正直な」ペイウォール</p></td>
<td><p>信頼を構築し、返金を減らし、実証済みのコンバージョン向上</p></td>
<td><p>なし</p></td>
</tr>
<tr>
<td><p>マルチパッケージセレクター</p></td>
<td><p>明確で価格アンカリングを活用、トグル不要</p></td>
<td><p>なし</p></td>
</tr>
<tr>
<td><p>バリューファースト型ペイウォール</p></td>
<td><p>価格から価値へと焦点を移す</p></td>
<td><p>なし</p></td>
</tr>
<tr>
<td><p>パーソナライズド / 条件付きペイウォール</p></td>
<td><p>ユーザーセグメントごとに最適化された体験</p></td>
<td><p>なし</p></td>
</tr>
<tr>
<td><p>エグジットオファー</p></td>
<td><p>離脱しようとするユーザーに再コンバージョンの機会</p></td>
<td><p>低（過度に攻撃的でなければ）</p></td>
</tr>
<tr>
<td><p>Web購入ボタン</p></td>
<td><p>デザインの自由度が高く、30％手数料を回避</p></td>
<td><p>なし（Web側のルールが適用）</p></td>
</tr>
</tbody>
</table>
<p>重要なのは、今すぐ実験を始めることです。次のアプリアップデートがリジェクトされるのを待つ必要はありません。これらの代替案を積極的にテストし、iOS向けペイウォールの新たな勝ちパターンを見つけましょう。</p>
<h2>もうひとつ付け加えると</h2>
<p>少し気持ちが軽くなるかもしれない興味深いデータがあります。Fitsの創業者であるLudwig Henneは、Adam Lyttle型のトグルペイウォールと、Blinkist型の「正直な」ペイウォールを比較するA/Bテストを実施しました。結果は、トグル型がARPUで勝利（+19％）しました。しかし、トグルという仕組みそのものを切り分けて分析したところ、<strong>主な要因はトグル自体ではない</strong>ことが分かりました。本当のコンバージョン向上要因は、ビジュアルヒエラルキーにありました。年額価格の正規化表示、「Most Popular」バッジ、そして年額プランを大きく見せるUI設計です。</p>
<p>言い換えれば、トグルを削除しても、ペイウォールを効果的にしていた他のデザイン要素を維持すれば、収益向上の大部分は保てる可能性があります。トグルは主役のように見えていましたが、実際に重い仕事をしていたのは脇役たちだったのです。</p>
<h2>ひとつの時代の終わり</h2>
<p>iOSにおけるトグル型ペイウォールの終焉は、ひとつの時代の終わりを意味します。刺激的な時代で、多くの開発者に大きな収益をもたらしました。しかし、App StoreはAppleの家であり、ルールを決めるのは彼らです。</p>
<p>最終的には、これはユーザーにとって良いことなのかもしれません。そしてユーザーにとって良いことは、長期的にはエコシステム全体にとっても良いことです。私たちに、より創造的で、より透明性があり、製品の本当の価値を伝えることに集中する姿勢を求めるからです。優れたペイウォールとは、ユーザーをだまして登録させるものではなく、ユーザー自身が登録したくなるものです。</p>
<p>さあ、トグル型ペイウォールに献杯を。そして、テストに戻りましょう。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[RevenueCat React Native SDK が React Native Web をサポート開始]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/revenuecat-react-native-sdk-adds-react-native-web-support</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/revenuecat-react-native-sdk-adds-react-native-web-support</guid>
      <pubDate>Fri, 27 Feb 2026 11:22:58 GMT</pubDate>
      <dc:creator><![CDATA[Perttu Lähteenlahti]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[react-native-purchases が Web に対応、単一コードベースで3プラットフォームのサブスクリプション管理が可能に]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/abe06893430aedfcb37c07929c749c1fc98ab477-1600x850.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>r<a href="https://github.com/RevenueCat/react-native-purchases/releases/tag/9.7.6">eact-native-purchases のバージョン 9.7.6</a> 以降、React Native で開発しているチームは、同じ SDK と同じ RevenueCat のエンタイトルメントシステムを使って、iOS・Android・Web のサブスクリプションを一元管理できるようになりました。すでにモバイルでアプリを展開していて Web へ拡張する場合でも、最初から共通コードベースで開発する場合でも、アーキテクチャを再設計することなく、すべてのプラットフォームでサブスクリプションをサポートできます。</p>
<p>Expo または React Native プロジェクトに react-native-purchases を追加するだけで、単一のコードベースから、3つのプラットフォームにわたる高度なサブスクリプション管理、アプリ内課金、エンタイトルメント管理を実現できます。</p>
<h2><strong>なぜこれを開発したのか</strong></h2>
<p>より多くの React Native アプリがモバイルの枠を超えて展開する中で、Web は単なるマーケティングの場ではなく、プロダクトの一部になっています。チームは、ユーザーがブラウザ上でサインアップやアップグレード、サブスクリプション管理を行いながら、iOS や Android アプリ内でも同じアクセス権を利用できることを求めています。これまでは、そのために Web 用の別個の課金システムを維持し、カスタムロジックで全体をつなぎ合わせる必要がありました。</p>
<p>React Native Web サポートは、その分断を解消します。Web での購入はネイティブ購入と同じ RevenueCat のバックエンドに流れるため、複数のデータソースを突き合わせる必要はありません。単一のエンタイトルメントシステムに依存することができます。</p>
<h2><strong>Webでの課金の仕組み</strong></h2>
<p>iOS と Android では、RevenueCat は App Store と Google Play に直接統合されています。一方、Web では購入は <a href="https://www.revenuecat.com/docs/web/web-billing/overview">RevenueCat Web Billing</a> を通じて処理され、Stripe または Paddle が決済プロセッサーとして利用されます。Web Billing はネイティブのアプリ内課金とは別の仕組みですが、同じエンタイトルメントシステムに接続されているため、共通の appUserID を使ってプラットフォーム間でアクセス権を付与できます。</p>
<p>アプリ側から見ると、ユーザーがどこでサブスクリプションを開始したかに関わらず、サブスクリプション状態は一貫しています。ユーザーが Web で登録した場合でも、特別なプラットフォーム別ロジックを書くことなく、すぐにモバイルでプレミアム機能へアクセスできます。</p>
<h2><strong>React Native Web の始め方</strong></h2>
<p>React Native Web サポートを有効にするには、まず各プラットフォームに対応する適切な API キーを使って RevenueCat を設定します。アプリが Web 上で動作する場合は Web Billing 用の公開 API キーで SDK を初期化し、iOS と Android では引き続きそれぞれのネイティブ用キーを使用します。</p>
<p>実際の設定は、次のようになります。</p>
<pre><code class="language-javascript">import { Platform } from 'react-native';
import Purchases from 'react-native-purchases';

if (Platform.OS === 'web') {
  Purchases.configure({ apiKey: '&lt;public_web_billing_api_key&gt;' });
} else if (Platform.OS === 'ios') {
  Purchases.configure({ apiKey: '&lt;public_apple_api_key&gt;' });
} else if (Platform.OS === 'android') {
  Purchases.configure({ apiKey: '&lt;public_google_api_key&gt;' });
}</code></pre>
<p>設定が完了すれば、エンタイトルメントの確認はすべてのプラットフォームで同じ方法で行えます。サブスクリプションがどのプラットフォームで購入されたかによって、アプリのロジックを分岐させる必要はありません。</p>
<pre><code class="language-javascript">import Purchases from 'react-native-purchases'
\/\/ all of the following methods work on iOS, Android, and Web

\/\/ Check offerings
try {
  const offerings = await Purchases.getOfferings();
  if (offerings.current !== null &amp;&amp; offerings.current.availablePackages.length !== 0) {
    \/\/ Display packages for sale
  }
} catch (e) {
 
}

\/\/ Check entitlements
const customerInfo = await Purchases.getCustomerInfo();
if(typeof customerInfo.entitlements.active[&lt;my_entitlement_identifier&gt;] !== &quot;undefined&quot;) {
  \/\/ Grant user &quot;pro&quot; access
}

\/\/ Purchase a package
try {
  const { customerInfo } = await Purchases.purchasePackage(package);
  if (
    typeof customerInfo.entitlements.active[&quot;my_entitlement_identifier&quot;] !==
    &quot;undefined&quot;
  ) {
    \/\/ Unlock that great &quot;pro&quot; content
  }
} catch (e) {
  if (!e.userCancelled) {
    showError(e);
}
</code></pre>
<p>Web 購入を有効にするには、RevenueCat ダッシュボードで <strong>Web Billing 用のアプリ</strong>を作成し、Web 向けにプロダクトを設定する必要があります。これらは iOS や Android のプロダクトと並んで管理されますが、ネイティブストアではなく Web Billing を通じて課金されます。</p>
<h2><strong>Expo を利用する場合</strong></h2>
<p>Expo で開発している場合、React Native Web サポートは開発体験も向上させます。カスタムの開発用クライアントをすぐに作成しなくても、Web 上でサブスクリプション UI をプレビューし、エンタイトルメントロジックをテストし、統合フローを検証できます。これにより、初期段階での反復開発がしやすくなり、設定がエンドツーエンドで正しく動作しているかを確認しやすくなります。</p>
<p>iOS と Android で実際のアプリ内課金を完全にテストするには、引き続き Expo の開発ビルドが必要です。Web サポートはその要件を置き換えるものではありませんが、初期開発段階における多くの摩擦を取り除きます。</p>
<h2><strong>現在の制限事項</strong></h2>
<p>Web 課金はネイティブのアプリストアとは仕組みが異なるため、いくつか注意すべき制限があります。Web での購入には RevenueCat Web Billing が必要であり、iOS や Android のネイティブアプリ内課金を処理することはできません。また、ネイティブストアの API に依存する一部の操作（ <code>getProducts</code>、 <code>purchaseProduct</code>、 <code>restorePurchases</code>など）は Web 環境ではサポートされていません。Expo Go や同様のサンドボックス環境でも、購入処理はサポートされていません。</p>
<pre><code class="language-javascript">\/\/ this will not work on web, but works on iOS and Android:
try {
  const restore = await Purchases.restorePurchases();
  \/\/ ... check restored purchaserInfo to see if entitlement is now active
} catch (e) {

}</code></pre>
<p>ユーザーは、RevenueCat がホストするカスタマーポータルを通じて Web サブスクリプションを管理できます。これにより、ネイティブアプリストア外でも、サブスクリプションの更新や解約を一貫した方法で行うことができます。</p>
<h2><strong>今後について</strong></h2>
<p>サブスクリプションアプリがモバイルとWebの両方にまたがるケースが増える中、私たちはクロスプラットフォームでのサブスクリプション管理を、よりシンプルで信頼性の高いものにするための投資を続けています。React Native Web サポートはその基盤となる取り組みであり、チームが本番環境でさらに活用していく中で、体験を継続的に改善していきます。</p>
<p>すでにモバイルで React Native と RevenueCat を利用している場合、Web サポートの追加は自然な次のステップです。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[2026年、サブスクアプリはなぜハイブリッドマネタイズが標準になるのか]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/ai-hybrid-monetization</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/ai-hybrid-monetization</guid>
      <pubDate>Fri, 27 Feb 2026 10:00:43 GMT</pubDate>
      <dc:creator><![CDATA[Thomas Petit]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[AI時代において、サブスクリプション単一型のマネタイズモデルは限界を迎えつつある]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/90d976d914cc83966c3b39dc2b248441c776aef9-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>年の初めになると、予測記事があふれます。2022年1月、このブログで私はサブスクリプションアプリにおける<a href="https://www.revenuecat.com/blog/growth/mobile-subscription-predictions-for-2022">ハイブリッド・マネタイズの台頭</a>について言及しました。その後も <a href="https://techcrunch.com/2022/12/10/hybrid-pricing-can-help-app-developers-better-monetize-their-apps/">TechCrunch</a> や対面イベントなどで、この予測について何度も話してきました。</p>
<p>当時は、まだ大きな流れにはなりませんでした。プレッシャーが十分に強くなかったのです。しかし数年が経ち、AI が静かに「利用量」を収益の重荷へと変えてしまいました。2025年にはハイブリッド・マネタイズが広がりつつある兆しが見えましたが、2026年にそれを無視することは、サブスクリプションアプリにとって致命的になりかねません。<strong>2026年は、ハイブリッド・マネタイズが本格的に離陸する年</strong>なのです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/aa728a2e09c38e9bebdd86ab316bd0c16cfbea57-500x544.png" alt=""/></figure>
<p>
ちなみに、2022年のそのブログ記事では、ストア外決済の選択肢についても触れていました。そして今、2026年。<a href="https://www.reuters.com/sustainability/boards-policy-regulation/us-appeals-court-partly-reverses-sanctions-against-apple-epic-games-antitrust-2025-12-11/">App Store の規約変更</a>を受け、新たな不確実性に直面しています……。</p>
<p>サブスクリプションアプリにとって、成長モデルをハイブリッド・マネタイズへ移行することが何を意味するのかに入る前に、まずは「なぜ今なのか」を見ていきましょう。（ネタバレすると、またしても AI です。）</p>
<h2><strong>AI以前：限界費用が見えなかったからこそ、サブスクリプションは勝てた</strong></h2>
<p>この10年の大半において、サブスクリプションアプリには隠れた優位性がありました。ユーザーが1人でも100万人でも、変動費はほぼゼロだったのです。開発やデザインのコストを除けば、追加のユーザーを提供するコストは実質的に無料でした。</p>
<p>この前提が、価格エコシステム全体の進化を形作りました。</p>
<ul>
<li>フラットな価格設定は公平に感じられた</li>
<li>ヘビーユーザーはリスクではなく、むしろプラス要因だった</li>
<li>マネタイズはコスト抑制ではなく、コンバージョンとリテンションに集中していた</li>
</ul>
<p>ユーザーが増えることや、<em>アクティブ</em>ユーザーが増えることが「悪いこと」になる時代など想像できませんでした。だからこそ、ゲーム以外の分野では「食べ放題型」サブスクリプションが当たり前になったのです。このモデルが機能していたのは、経済構造に余裕があったからです。</p>
<p>しかし、AIはその余裕を壊しました。2026年は、この変化を無視できなくなる年です。AIが新しいからではありません。その経済構造が、成熟したサブスクリプション市場と正面から衝突し始めているからです。</p>
<h3><strong>広がる亀裂</strong></h3>
<p>最近、サブスクリプション型アプリはApp Storeで「勝っている」ように見えます。<a href="https://www.revenuecat.com/blog/growth/consumer-apps-revenue-surpass-gaming-2025/">ゲーム分野が横ばい</a>の中、非ゲーム分野のApp Store収益はそれを上回り、創業者や人材、資本、ツールなどを引き寄せています（皮肉なことに、<a href="https://www.pocketgamer.biz/i-dont-see-app-studios-getting-into-games-i-just-see-game-studios-getting-into-apps/">その多くはゲーム業界出身です</a>）。しかし、状況は確実に厳しくなっています。</p>
<p>「食べ放題型」サブスクリプションモデルの亀裂は何年も前から見えていましたが、今やアプリの収益性にとって深刻な課題となりつつあります。</p>
<ul>
<li>ARPUの頭打ち</li>
<li>プレミアム機能への転換率は一桁台前半にとどまる</li>
<li>チャーンの上昇</li>
<li>最適化による限界リターンの低下</li>
<li>サブスクリプション疲れへの懸念の拡大</li>
</ul>
<h2><strong>なぜ今なのか？ハイブリッド化を加速させる3つの構造要因</strong></h2>
<p>2022年にハイブリッド・マネタイズの台頭を予測したのは、少し早すぎました。2026年が違うのは、<strong>複数のプレッシャーが同時に重なっている点</strong>です。</p>
<p>いまやハイブリッド・マネタイズへの移行は「あれば良い」ものではなく、「必要不可欠」なものになりつつあります。その背景には、いくつかの要因があります。</p>
<h3><strong>1. AIが競争密度を一気に高めた</strong></h3>
<p>AI支援による開発の普及で、<a href="https://x.com/HHaandr/status/2009253433073611226?s=20">新規アプリの数は爆発的に増えました</a>。いわゆる“バイブコーディング”によって、アプリのリリースや改善のコストは大きく下がっています。より多くのチームが、より速く開発し、実証済みのマネタイズパターンを模倣し、同じカテゴリで競争しています。</p>
<p>その結果は明白です。アプリは増え、ファネルは似通い、マネタイズのミスを許す余地はますます小さくなっています。</p>
<h3><strong>2. 最適化はもはや持続的な優位ではない</strong></h3>
<p>かつては、ペイウォールのデザインや価格テスト、オンボーディングフローが明確な差別化要因でした。いまやそれらは“やっていて当然”の前提条件です。現在、ペイウォール最適化の限界リターンは低下しています。もはや競争優位ではなく、ベースライン要件と考えるべきです。</p>
<p>コンサル初年度に適用しやすいペイウォールレイアウトを販売して<a href="https://www.inc.com/annabel-burba/this-26-year-old-founder-built-a-1-million-business-and-its-all-thanks-to-x/91277926">Vahe Bagdasaryen は、100万ドルを稼ぎました</a>。素晴らしいことですが、いまでは誰もが同じレイアウトを使っています（だからこそ、<a href="https://www.revenuecat.com/blog/growth/web-to-app-funnel-examples/#h-2-blinkist-content-led-funnel">Blinkist</a>風ペイウォールにも限界があるのです）。これらの手法は習得すべき必須スキルですが、すぐにコモディティ化します。改善の幅は縮小する一方で、同じ場所で注目を奪い合う新規アプリが増え、コストは上昇し続けています。</p>
<h3><strong>3. ユーザー獲得はますます難しくなっている</strong></h3>
<p>供給は増えましたが、ユーザーの可処分注意は増えていません。アプリは増えても、TikTokのフィードやApp Storeで見られる“目”の数は変わらないのです。<a href="https://www.revenuecat.com/blog/growth/web-to-app-paid-user-acquisition/">ユーザー獲得（UA）</a>コストは上昇し続ける一方で、多くの非ゲームカテゴリではコンバージョン率やARPUは頭打ちになっています。広告入札はますます勝ちにくくなり、大手がASOの主要枠を占有し、競争は激化するばかりです。UAインフレを相殺するには、毎年20〜25％のARPU向上が必要になります。しかしそれはあくまで“追いつく”ための数字にすぎません。それを超えて初めて、真の成長と言えるのです。</p>
<h2><strong>なぜ今なのか？AIの変動費がハイブリッド化を加速させる</strong></h2>
<p>長らく、ほとんどのサブスクリプション型ビジネスは変動費が実質ゼロでした。しかし、AI機能の導入によってその前提は崩れました。これは構造的な断絶です。コアバリューの一部としてAIを活用するアプリは、ユーザーを獲得するたびに実際にコストを支払うモデルへと変わっています。</p>
<p>最もアクティブなヘビーユーザーが、支払額以上のコストを発生させている場合、あるいは無料ユーザーであってもコストを生んでいる場合、そのビジネスモデルは書き直さなければなりません。</p>
<p>もともとはSaaS向けに書かれたものですが、Anh Tho Chuong の記事「<a href="https://www.elenaverna.com/p/so-you-want-to-price-your-ai-features">So you want to price your AI features</a>」は、あらゆるAIアプリに当てはまります。</p>
<p>「LLM APIに触れた瞬間、ソフトウェアの“限界費用ゼロ時代”は終わります。AIには実際のCOGS（売上原価）があり、私たちはそれに向き合うことを学ばなければなりません。」 — <a href="https://www.linkedin.com/in/anhthochuong/">Anh Tho Chuong</a>（Lago CEO &amp; Co-founder）</p>
<p>変動費が高いということは、少数のアウトライヤー（極端なヘビーユーザー）だけで会社が破綻しかねないということです。そしてそれは、従来の「食べ放題型」サブスクリプションモデルそのものを脅かします。</p>
<ul>
<li>これまで最良の資産だったヘビーユーザーが、負債になり得る</li>
<li>無料ユーザーは、これまで評価・バイラル・後発コンバージョンといった間接的価値を無料で生んでいたが、いまや負のユニットエコノミクスを抱える可能性がある</li>
<li>無料トライアルは、まったく異なる設計思想で考える必要がある</li>
<li>ARPUの平均値は、壊滅的なテールリスクを覆い隠す</li>
</ul>
<p>これは、AIアプリにおいてサブスクリプションを中核にすべきでないという意味ではありません。しかし、その上に別のレイヤーを重ね、コスト構造に合わせて調整する必要があります。私は、Anh Tho の予測と同様に、ハイブリッド価格モデルがより一般化すると考えています。定期収益を安定させつつ、LTVを高める方向です。</p>
<p>ここまで述べたAIの変動費と、前述のプレッシャーを組み合わせると、次のような構図になります。</p>
<p><strong>アプリ競争の激化 + 類似したマネタイズ／獲得プレイブック + 変動費の上昇 = サブスクリプションモデルの強制的進化</strong></p>
<p>では、実際にそのモデルはどのような形になるのでしょうか。</p>
<ul>
<li><strong>アクセスは予測可能：</strong>サブスクリプションが引き続き、収益・期待値・リテンションの基盤となる</li>
<li><strong>利用は制限される：</strong>利用量の多い行動は上限設定・従量課金・別枠マネタイズの対象となる</li>
<li><strong>ヘビーユーザーは自発的に高額プランへ移行：</strong>他のユーザーに補助されるのではなく、自ら生むコストを自ら負担する</li>
</ul>
<p>行動に移すための参考として、2つのリソースを紹介します。</p>
<ul>
<li><strong>基礎を学ぶ：</strong>最近の記事では、<a href="https://www.revenuecat.com/blog/growth/hybrid-monetization-techniques/">サブスクリプションアプリがハイブリッド・マネタイズによってどのように収益を拡大できるか</a>、</li>
<li><strong>具体例を深掘りする：</strong>Alice Muir Kocourková は、<a href="https://www.revenuecat.com/blog/growth/ai-subscription-app-pricing/">AIがアプリの価格モデルをどのように変えたか、そしてAIアプリが主要機能をどう価格設定しているか</a>を詳しく解説しています。</li>
</ul>
<h2><strong>ハイブリッド・マネタイズは自然な進化である</strong></h2>
<p>ここまで述べてきたものの、私は依然としてサブスクリプションは強力なモデルだと考えています。ただし、それはこの10年間、マネタイズ・リテンション・獲得を支配してきたような、静的な「食べ放題型」の形ではありません。</p>
<p>これらすべての要因が、モデル成熟の次の段階へと押し進めています。<strong>重要なのはサブスクリプションを捨てることではなく、より賢く設計し、その上にレイヤーを重ねていくことです。</strong></p>
<p>AIアプリには、ほとんど選択肢がありません。ヘビーユーザーの利用量に応じたコストを、より適切に価格へ反映させる必要があります。しかしこれはAIアプリだけの話ではありません。重いAI機能を持たないアプリであっても、すでにこれらのダイナミクスによって形作られた市場で競争しています。たとえ変動費の問題がなくても、<strong>成長とはビジネスモデル同士の競争</strong>なのです。</p>
<h2><strong>いまサブスクリプションアプリを構築しているなら、何をすべきか</strong></h2>
<p>このブログは戦術的なチェックリストではありませんが、私の観察から導かれる無視できない方向性はいくつかあります。</p>
<ul>
<li><strong>もしあなたのアプリにAI機能があるなら：</strong>いずれ「アクセス」と「利用量」を分離する必要があります。早い段階でこれを無視すればするほど、後での修正はより痛みを伴うものになりますし、競争に飲み込まれるリスクも高まります。</li>
<li><strong>もしあなたのアプリが（まだ）AIを使っていないなら：</strong>安心してはいけません。自分はプレッシャーと無縁だと思わないことです。あなたもすでにAI経済によって形作られたエコシステムで競争しています。価格の変化、模倣のスピード加速、そしてマネタイズ手法の寿命短縮を前提に考えるべきです。</li>
<li><strong>もしあなたがアーリーステージなら：</strong>「食べ放題型サブスクリプション」をデフォルトにするのは、もはや安全な選択肢ではありません。利用パターンが見えてきたときに進化できる価格設計を考えるべきです。ただし、ハイブリッドモデルには複雑性が増すという側面もあることを理解しておく必要があります。</li>
</ul>
<p>最終的に、最も賢明なのは自分の収益構造を常に注視することです。AI由来の変動費がある場合は、外れ値やヘビーユーザーに注意を払いましょう。そして、これから訪れる変化に対して、自分の価格モデルをどう守るかを考え始めることです。</p>
<h2><strong>結論</strong></h2>
<p>サブスクリプションが失敗しているわけではありません。もともと想定されていなかった役割を求められているのです。</p>
<p>AIによって利用は高コスト化しました。ハイブリッド・マネタイズは、予測可能な収益を維持しながら、価格を実際のコストと価値に整合させることで、サブスクリプションアプリが適応する方法です。2026年は、ハイブリッド・マネタイズが実験段階を終え、現代のサブスクリプションビジネスのデフォルト形態になる年です。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[スピードと明確さを失わずに、ElevenLabsはいかにコンシューマー向けAIアプリを成長させているか]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/jack-tanmay-elevenlabs-sub-club-podcast-2026</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/jack-tanmay-elevenlabs-sub-club-podcast-2026</guid>
      <pubDate>Fri, 27 Feb 2026 05:35:20 GMT</pubDate>
      <dc:creator><![CDATA[David Barnard]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[Podcastの内容：アーンドメディアがどのように広告パフォーマンスを押し上げるのか、ツイートにしやすい機能の作り方、そしてオンボーディングクイズを最適化するよりも思い切って削除するほうが成果につながる可能性がある理由。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/e56c16f5c803dd4b901b9f6d05718a6126ff3093-1600x840.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>ElevenLabs は、音声AIの限界を押し広げている企業としてよく知られています。しかし同じくらい興味深いのは、その強力なテクノロジーを実際にスケールするコンシューマー向けプロダクトへとどう転換しているかという点です。</p>
<p>今回の <strong>Sub Club</strong> エピソードでは、ホストの <strong>David Barnard</strong> が、<strong>Tanmay Jain</strong>（ElevenLabs モバイルグロースリード）と <strong>Jack McDermott</strong>（ElevenReader モバイルグロースリード）を迎え、急速に進化するテック分野の中で ElevenLabs がどのようにモバイルグロース、価格設計、ローンチ戦略、そしてチーム体制に取り組んでいるのかを掘り下げています。</p>
<p>浮かび上がってくるのは、AIモデルや技術的ブレークスルーの話ではありません。<strong>明確さ、スピード、そしてそれを可能にする仕組み</strong>――そしてそれらを実現するための意思決定の話です。</p>
<p>以下は、この対話から得られた特に重要な学びです。</p>
<p><a href="https://www.youtube.com/watch?v=3r8pr9w_lDQ">Watch on YouTube</a></p>
<h2><strong>価格はAIの仕組みではなく、ユーザーの思考に合わせるべき</strong></h2>
<p>Tanmay と Jack が共有した大きな成果のひとつは、<strong>価格設計をシンプル</strong>にしたことでした。</p>
<p>ElevenReader では、社内では理解しやすいものの消費者には分かりづらい「トークン」や「クレジット」といった概念をやめ、その代わりに<strong>「リスニング時間」</strong>を販売する形に変更しました。その結果、価値の伝わり方が明確になり、コンバージョンも大きく改善しました。</p>
<p>ここから得られる教訓はシンプルですが、見落とされがちです。AIの複雑さを抽象化することは「単純化しすぎる」ことではありません。それは優れたプロダクト設計です。</p>
<p>価格を理解するためだけにユーザーが新しい思考モデルを学ばなければならないのであれば、その時点で摩擦はすでに高すぎるのです。</p>
<h2><strong>小さく自律したポッドが、スピードを競争優位に変える</strong></h2>
<p>ElevenLabs は、大きな中央集権型の組織として運営されているわけではありません。むしろ、ひとつの会社の中に <strong>10〜12 の小さなスタートアップ</strong>が存在しているような形で機能しています。</p>
<p>これらの小さく自律したポッドは、プロダクトの意思決定から実験、価格設計、ペイウォールに至るまで、全面的なオーナーシップを持っています。この構造によって、チームは素早くリリースし、徹底的に改善を重ね、社内プロセスではなく実際の成果に対して責任を持ち続けることができます。</p>
<p>変化の激しいAI市場において、これは単なる組織の好みではありません。明確な競争優位なのです。</p>
<h2><strong>アーンドメディアは積み上がり、広告成長も強化する</strong></h2>
<p>Jack は、ElevenLabs がローンチを単発のイベントではなく、<strong>積み上がっていく資産</strong>として捉えていることを説明しています。</p>
<p>成功したローンチはアーンドメディアを生み出し、ブランド検索を増やし、信頼を高め、広告による獲得コストを引き下げます。時間が経つにつれて、ストーリー、ブランド、パフォーマンスマーケティングが互いに強化し合うフライホイールが形成されます。</p>
<p>成長は<em>「広告かオーガニックか」</em>という二択ではありません。
重要なのは、その両者の相互作用です。</p>
<h2><strong>機能ではなく、まずはツイートスレッドからローンチを始める</strong></h2>
<p>ローンチ用のアセットやランディングページ、広告クリエイティブを作る前に、ElevenLabs はまずひとつのテストから始めます。</p>
<p>この機能の価値を、<strong>ツイートスレッド</strong>で明確に説明できるか？</p>
<p>答えがノーであれば、それは危険信号です。先にナラティブを書くことで、価値が明確になり、見た目は派手でもユーザーに響かない機能をリリースしてしまうのを防げます。</p>
<p>実際には、そのツイートスレッドが最初のプロダクト仕様書になります。</p>
<h2><strong>コンシューマーアプリは、プラットフォーム企業にとっての戦略的優位</strong></h2>
<p>ElevenLabs は、自社のコンシューマーアプリをプラットフォームや API ビジネスと競合する存在とは見なしていません。むしろ、それらは<strong>戦力の増幅装置</strong>と捉えています。</p>
<p>自らが「最高の顧客」になることで、チームはダッシュボードや API ログだけでは見えにくい UX の摩擦、パフォーマンス上の制約、そして感情的なユースケースを発見できます。そうした洞察はコアプロダクトへと還元され、結果としてプラットフォーム全体をより強くします。</p>
<p>モバイルは単なるディストリビューションチャネルではありません。学びの場でもあるのです。</p>
<h2><strong>結論：重要なのはハイプではなく、明確さ・スピード・仕組み</strong></h2>
<p>このエピソードから得られる本質的な学びは、AIそのものについてではありません。</p>
<p>重要なのは、価格設計、チーム体制、ローンチ戦略、フィードバックループといった「仕組み」を構築することです。それによって、優れたプロダクトを信頼や使いやすさを損なうことなく、スピーディーに前進させることが可能になります。</p>
<p>変化の速い市場で取り組む創業者やグロースリード、プロダクトチームにとって、ElevenLabs はスピードを落とさずに思慮深くスケールする方法を示す明確な事例と言えるでしょう。</p>
<p>🎧 Tanmay Jain と Jack McDermott が、ElevenLabs のコンシューマー向け成長戦略の裏側にある実験、意思決定、そしてトレードオフについて語る S<a href="https://www.youtube.com/watch?v=3r8pr9w_lDQ">ub Club のフルエピソードもぜひお聴きください</a>。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Google Play Billing のエッジケースへの対応]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/google-play-edge-cases</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/google-play-edge-cases</guid>
      <pubDate>Fri, 27 Feb 2026 04:39:01 GMT</pubDate>
      <dc:creator><![CDATA[Jaewoong Eum]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[Google Play Billing における一般的なエッジケース（保留中の購入、ITEM_ALREADY_OWNED エラー、複数量の消費型アイテム、サブスクリプションのダウングレード、ネットワーク障害など）を正しく扱う方法を解説します。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/cc45f918b8837e064abe4b78bb6bfe48df840821-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>Google Play Billing は、Android におけるアプリ内購入やサブスクリプションを処理するための包括的な API を提供しています。ほとんどの開発者は、標準的な購入フローには慣れているでしょう。すなわち、課金フローを起動し、結果を受け取り、購入を承認し、エンタイトルメントを付与するという流れです。しかし、本番環境の課金システムでは、チュートリアルやサンプルコードでは十分に扱われない、より幅広いシナリオに対応する必要があります。保留中の購入（Pending purchases）、複数量の消耗型アイテム、日割り計算を伴うサブスクリプションのダウングレード、そして <code>ITEM_ALREADY_OWNED</code> レスポンスは、いずれも実際の環境で発生するケースであり、これらを誤って処理すると、収益の損失、ユーザーの混乱、購入失敗につながる可能性があります。</p>
<p>本記事では、Google Play Billing における代表的なエッジケースを取り上げ、それぞれが発生する理由を理解し、Play Billing Library を使って正しく処理する方法を確認します。また、RevenueCat がこれらのシナリオをどのように簡素化し、課金インフラではなくプロダクト開発に集中できるようにするのかも見ていきます。</p>
<h2><strong>根本的な問題：ハッピーパスだけでは不十分</strong></h2>
<p>多くの課金実装は、Android の公式ドキュメントにあるサンプルコードから始まります。</p>
<pre><code class="language-kotlin">\/\/ The happy path
billingClient.launchBillingFlow(activity, params)

\/\/ In PurchasesUpdatedListener
override fun onPurchasesUpdated(
    billingResult: BillingResult,
    purchases: List&lt;Purchase&gt;?
) {
    if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
        purchases?.forEach { purchase -&gt;
            if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) {
                acknowledgePurchase(purchase)
                grantEntitlement(purchase)
            }
        }
    }
}</code></pre>
<p>これは、成功した即時購入を処理するケースを想定しています。しかし、ユーザーがコンビニで支払いを行い、支払いが48時間遅れる場合はどうでしょうか？ 以前の承認処理が静かに失敗しており、ユーザーがすでにその商品を所有している場合はどうでしょうか？ サブスクリプションのダウングレードが即時ではなく、次回の更新時に反映される場合はどうでしょうか？ これらの各シナリオには個別の対応が必要であり、無視するとサポート問い合わせの増加、返金リクエスト、そしてサブスクライバーの離脱につながります。</p>
<h2><strong>保留中の購入（Pending purchases）：支払いが即時ではない場合</strong></h2>
<p>すべての購入が即座に完了するわけではありません。コンビニでの現金支払い、銀行振込、一部のキャリア決済など、特定の支払い方法では非同期処理が必要になります。ユーザーがこれらの方法で購入を開始すると、Google Play は <code>PURCHASED</code> 状態ではなく、<code>PENDING</code> 状態の購入として返します。</p>
<h3><strong>なぜ保留中の購入が発生するのか</strong></h3>
<p>保留中の購入は、クレジットカードの普及率が低い市場で一般的です。</p>
<table>
<thead><tr>
<th><p>支払い方法</p></th>
<th><p>一般的な地域</p></th>
<th><p>通常の処理時間</p></th>
</tr></thead>
<tbody>
<tr>
<td><p>現金支払い（コンビニ）</p></td>
<td><p>日本、メキシコ、インドネシア</p></td>
<td><p>24〜48時間</p></td>
</tr>
<tr>
<td><p>銀行振込</p></td>
<td><p>ドイツ、オランダ、ブラジル</p></td>
<td><p>1〜3営業日</p></td>
</tr>
<tr>
<td><p>キャリア決済（一部のキャリア）</p></td>
<td><p>各国</p></td>
<td><p>数分〜数時間</p></td>
</tr>
</tbody>
</table>
<p>アプリをグローバルに展開している場合、保留中の購入に遭遇するのは避けられません。この状態を無視すると、これらの地域のユーザーはそもそも商品を購入できなくなるか、あるいは購入が「消えた」ように見える混乱した挙動に直面することになります。</p>
<h3><strong>保留状態の検出と処理</strong></h3>
<p><code>PurchasesUpdatedListener</code> は、完了した購入と同様に、保留中の購入も受け取ります。重要な違いは、 <code>purchaseState</code> フィールドにあります。</p>
<pre><code class="language-kotlin">override fun onPurchasesUpdated(
    billingResult: BillingResult,
    purchases: List&lt;Purchase&gt;?
) {
    if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
        purchases?.forEach { purchase -&gt;
            when (purchase.purchaseState) {
                Purchase.PurchaseState.PURCHASED -&gt; {
                    \/\/ Payment complete, grant access
                    processPurchase(purchase)
                }
                Purchase.PurchaseState.PENDING -&gt; {
                    \/\/ Payment not yet complete
                    handlePendingPurchase(purchase)
                }
                Purchase.PurchaseState.UNSPECIFIED_STATE -&gt; {
                    \/\/ Unknown state, query backend for clarification
                    queryBackendForState(purchase)
                }
            }
        }
    }
}</code></pre>
<p>重要なルールは次のとおりです。保留中の購入に対してエンタイトルメントを付与してはいけません。ユーザーはまだ支払いを完了していません。代わりに、保留中の購入を記録し、そのステータスを明確にユーザーへ伝える必要があります。</p>
<pre><code class="language-kotlin">fun handlePendingPurchase(purchase: Purchase) {
    \/\/ Store the pending purchase token for later verification
    purchaseRepository.savePendingPurchase(
        purchaseToken = purchase.purchaseToken,
        productId = purchase.products.first(),
        orderId = purchase.orderId,
        purchaseTime = purchase.purchaseTime,
    )

    \/\/ Show clear UI to the user
    showPendingUI(
        message = &quot;Your purchase is being processed. &quot; +
            &quot;You'll get access once payment is confirmed.&quot;,
    )
}</code></pre>
<h3><strong>保留中の購入の完了</strong></h3>
<p>支払いが最終的に確認されると、アプリは <code>onPurchasesUpdated</code> または <code>queryPurchasesAsync</code> を通じて更新された購入情報を受け取ります。<code>purchaseState</code> は <code>PURCHASED</code> になり、承認処理およびエンタイトルメントの付与を進めることができます。</p>
<p>ただし、注意点があります。支払いが完了した時点で、ユーザーがアプリを開いていない可能性があります。このケースには、Real-Time Developer Notifications（RTDN）を通じてバックエンドで対応すべきです。以前は保留中だったトークンに対して <code>ONE_TIME_PRODUCT_PURCHASED</code> または <code>SUBSCRIPTION_PURCHASED</code> の通知を受け取った場合、バックエンドでエンタイトルメントを更新し、ユーザーに通知する必要があります。</p>
<pre><code class="language-kotlin">\/\/ Backend notification handler
fun handlePurchaseNotification(notification: DeveloperNotification) {
    val purchaseToken = notification.oneTimeProductNotification?.purchaseToken
        ?: notification.subscriptionNotification?.purchaseToken
        ?: return

    val pendingPurchase = purchaseRepository.findPendingPurchase(purchaseToken)
    if (pendingPurchase != null) {
        \/\/ Previously pending purchase is now complete
        val purchaseDetails = playDeveloperApi
            .purchases()
            .products()
            .get(packageName, pendingPurchase.productId, purchaseToken)
            .execute()

        if (purchaseDetails.purchaseState == 0) { \/\/ 0 = Purchased
            entitlementRepository.grantEntitlement(
                userId = pendingPurchase.userId,
                productId = pendingPurchase.productId,
            )
            purchaseRepository.markCompleted(purchaseToken)

            \/\/ Notify user that their purchase is ready
            notificationService.sendPushNotification(
                userId = pendingPurchase.userId,
                title = &quot;Purchase Complete&quot;,
                body = &quot;Your purchase has been confirmed. Enjoy your content!&quot;,
            )
        }
    }
}</code></pre>
<h3><strong>BillingClient で保留中の購入を有効にする</strong></h3>
<p>保留中の購入をサポートするには、 <code>BillingClient</code> を構築する際に明示的に有効化する必要があります。これを行わない場合、遅延支払い方法による購入は完全に失敗します。</p>
<pre><code class="language-kotlin">val billingClient = BillingClient.newBuilder(context)
    .setListener(purchasesUpdatedListener)
    .enablePendingPurchases(
        PendingPurchasesParams.newBuilder()
            .enableOneTimeProducts()
            .enablePrepaidPlans()
            .build()
    )
    .build()</code></pre>
<p>Play Billing Library 7 以降では、 <code>enablePendingPurchases()</code> の呼び出しが必須となっています。これを行わない場合、 <code>BillingClient</code> の初期化は失敗します。</p>
<h2><code><strong>ITEM_ALREADY_OWNED</strong></code><strong> レスポンス：よくある混乱の原因</strong></h2>
<p>最も頻繁に遭遇するエッジケースの一つが <code>BillingResponseCode.ITEM_ALREADY_OWNED</code> です。このレスポンスは、ユーザーがすでに所有している非消耗型商品やサブスクリプションを再度購入しようとした場合に発生します。一見すると分かりやすい挙動に思えますが、実際にこれが発生するシナリオは意外なものが少なくありません。</p>
<h3><strong>なぜ </strong><code><strong>ITEM_ALREADY_OWNED</strong></code><strong> が発生するのか</strong></h3>
<p>最も一般的な原因は、ユーザーが意図的に同じ商品を二重購入しようとしていることではありません。問題は、以前の購入が正しく承認（acknowledge）されなかったことにあります。Google Play では購入の承認が必須であるため、未承認の購入は宙ぶらりんの状態に置かれます。つまり、ユーザーはすでに課金されているものの、購入がアプリ側で確認されていない状態です。このまま同じ商品を再度購入しようとすると、未承認の購入が残っているため、Google Play は <code>ITEM_ALREADY_OWNED</code> を返します。</p>
<p>この状況は、想像以上によく発生します。</p>
<ul>
<li>アプリが購入受信後、承認前にクラッシュした</li>
<li>ネットワークエラーにより承認呼び出しが完了しなかった</li>
<li>購入フロー中にユーザーがアプリを強制終了した</li>
<li>承認 API 呼び出しがエラーを返し、再試行されなかった</li>
</ul>
<h3><code><strong>ITEM_ALREADY_OWNED</strong></code><strong> を正しく処理する</strong></h3>
<p><code>ITEM_ALREADY_OWNED</code> に対する正しい対応は、エラーメッセージを表示することではありません。代わりに、既存の購入をクエリし、未承認の購入があればそれを処理するべきです。</p>
<pre><code class="language-kotlin">override fun onPurchasesUpdated(
    billingResult: BillingResult,
    purchases: List&lt;Purchase&gt;?
) {
    when (billingResult.responseCode) {
        BillingClient.BillingResponseCode.OK -&gt; {
            purchases?.forEach { processPurchase(it) }
        }
        BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED -&gt; {
            \/\/ Query existing purchases and process any unacknowledged ones
            recoverUnacknowledgedPurchases()
        }
        BillingClient.BillingResponseCode.USER_CANCELED -&gt; {
            \/\/ User backed out, no action needed
        }
        else -&gt; {
            handleBillingError(billingResult)
        }
    }
}

private fun recoverUnacknowledgedPurchases() {
    val params = QueryPurchasesParams.newBuilder()
        .setProductType(BillingClient.ProductType.INAPP)
        .build()

    billingClient.queryPurchasesAsync(params) { billingResult, purchases -&gt;
        if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
            purchases.forEach { purchase -&gt;
                if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED &amp;&amp;
                    !purchase.isAcknowledged
                ) {
                    \/\/ Found the unacknowledged purchase, process it
                    processPurchase(purchase)
                }
            }
        }
    }
}</code></pre>
<p>このパターンにより、フラストレーションを招くエラーを、シームレスな復旧処理へと変えることができます。以前の購入が承認に失敗していたことを、ユーザーが知る必要はありません。ユーザーの視点では、「購入」をタップすれば商品が手に入るだけです。</p>
<h3><code><strong>ITEM_ALREADY_OWNED</strong></code><strong> を事前に防ぐ</strong></h3>
<p>最善のアプローチは、アプリ起動時に未承認の購入を処理することで、この状況を未然に防ぐことです。</p>
<pre><code class="language-kotlin">fun processUnacknowledgedPurchasesOnStartup() {
    val inAppParams = QueryPurchasesParams.newBuilder()
        .setProductType(BillingClient.ProductType.INAPP)
        .build()

    val subsParams = QueryPurchasesParams.newBuilder()
        .setProductType(BillingClient.ProductType.SUBS)
        .build()

    billingClient.queryPurchasesAsync(inAppParams) { result, purchases -&gt;
        if (result.responseCode == BillingClient.BillingResponseCode.OK) {
            purchases.filter {
                it.purchaseState == Purchase.PurchaseState.PURCHASED &amp;&amp;
                    !it.isAcknowledged
            }.forEach { processPurchase(it) }
        }
    }

    billingClient.queryPurchasesAsync(subsParams) { result, purchases -&gt;
        if (result.responseCode == BillingClient.BillingResponseCode.OK) {
            purchases.filter {
                it.purchaseState == Purchase.PurchaseState.PURCHASED &amp;&amp;
                    !it.isAcknowledged
            }.forEach { processPurchase(it) }
        }
    }</code></pre>
<p>このメソッドは、 <code>BillingClient</code> が正常に接続されたタイミングで呼び出してください。これにより、取りこぼされていた購入がユーザーに問題が発生する前に回復されます。</p>
<h2><strong>消耗型購入： </strong><code><strong>acknowledge</strong></code><strong> と </strong><code><strong>consume</strong></code> の違い</h2>
<p>ゲーム内通貨、追加ライフ、トークンパックのような消耗型商品では、承認（acknowledgment）と消費（consumption）の違いがバグの一般的な原因になります。どちらも消耗型商品には必要ですが、目的もタイミング要件も異なります。</p>
<h3><strong>承認と消費のフロー</strong></h3>
<p><strong>承認（Acknowledgment）</strong>は、購入されたコンテンツを配信済みであることを Google Play に通知するものです。購入から3日以内に行う必要があり、期限を過ぎると自動的に返金されます。</p>
<p><strong>消費（Consumption）</strong>は、その購入をリセットし、ユーザーが同じ商品を再度購入できるようにする処理です。商品を消費しない場合、ユーザーは再購入できず、再購入を試みると <code>ITEM_ALREADY_OWNED</code> が返されます。</p>
<p>消耗型商品の場合は、購入を消費するべきです。消費処理は暗黙的に承認も行います。</p>
<pre><code class="language-kotlin">fun processConsumablePurchase(purchase: Purchase) {
    \/\/ Verify with backend first
    verifyPurchaseWithBackend(purchase) { isValid -&gt;
        if (isValid) {
            \/\/ Grant the consumable content
            grantConsumableContent(purchase)

            \/\/ Consume the purchase (this also acknowledges it)
            val consumeParams = ConsumeParams.newBuilder()
                .setPurchaseToken(purchase.purchaseToken)
                .build()

            billingClient.consumeAsync(consumeParams) { billingResult, _ -&gt;
                if (billingResult.responseCode != BillingClient.BillingResponseCode.OK) {
                    \/\/ Retry consumption, the user cannot rebuy until consumed
                    scheduleConsumptionRetry(purchase.purchaseToken)
                }
            }
        }
    }
}</code></pre>
<h3><strong>複数量購入のエッジケース</strong></h3>
<p>Google Play は、消耗型商品の複数量購入をサポートしています。ユーザーは、1回のトランザクションで同じ消耗型商品を複数個購入できます。数量は <code>Purchase</code> オブジェクト内で取得できます。</p>
<pre><code class="language-kotlin">fun processConsumablePurchase(purchase: Purchase) {
    val quantity = purchase.quantity  \/\/ Could be &gt; 1

    verifyPurchaseWithBackend(purchase) { isValid -&gt;
        if (isValid) {
            \/\/ Grant the correct quantity
            grantConsumableContent(purchase.products.first(), quantity)

            val consumeParams = ConsumeParams.newBuilder()
                .setPurchaseToken(purchase.purchaseToken)
                .build()

            billingClient.consumeAsync(consumeParams) { billingResult, _ -&gt;
                if (billingResult.responseCode != BillingClient.BillingResponseCode.OK) {
                    scheduleConsumptionRetry(purchase.purchaseToken)
                }
            }
        }
    }
}</code></pre>
<p><code>quantity</code> フィールドを無視して常に1ユニットしか付与しない場合、複数個を購入したユーザーは支払った分より少ないアイテムしか受け取れません。これはサポート問い合わせや返金リクエストの原因になります。</p>
<p>複数量購入を有効にするには、Google Play Console で該当商品に対して「Allow multi-quantity purchases（複数量購入を許可）」を有効にする必要があります。さらに、 <code>BillingFlowParams</code> ではユーザーが選択できる最大数量を指定できます。</p>
<pre><code class="language-kotlin">val billingFlowParams = BillingFlowParams.newBuilder()
    .setProductDetailsParamsList(
        listOf(
            BillingFlowParams.ProductDetailsParams.newBuilder()
                .setProductDetails(productDetails)
                .build()
        )
    )
    .build()</code></pre>
<h3><strong>消費処理（consume）の再試行問題</strong></h3>
<p>たとえばネットワークエラーなどで <code>consumeAsync</code> の呼び出しが失敗すると、ユーザーはコンテンツを受け取っているのに、購入が消費されていない状態になります。これは次のような問題につながります。</p>
<ol>
<li>ユーザーが同じ消耗型商品を再度購入できない</li>
<li>承認されないまま3日が経過すると購入が返金される可能性がある（消費処理は暗黙的に承認も行いますが）</li>
</ol>
<p>そのため、消費処理に失敗した場合に備えて、再試行メカニズムを実装するべきです。</p>
<pre><code class="language-kotlin">class ConsumptionRetryManager(
    private val billingClient: BillingClient,
    private val purchaseRepository: PurchaseRepository,
) {
    fun scheduleConsumptionRetry(purchaseToken: String) {
        purchaseRepository.markPendingConsumption(purchaseToken)
    }

    fun retryPendingConsumptions() {
        val pendingTokens = purchaseRepository.getPendingConsumptionTokens()

        pendingTokens.forEach { token -&gt;
            val consumeParams = ConsumeParams.newBuilder()
                .setPurchaseToken(token)
                .build()

            billingClient.consumeAsync(consumeParams) { billingResult, _ -&gt;
                if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
                    purchaseRepository.clearPendingConsumption(token)
                }
                \/\/ If still failing, it will be retried next time
            }
        }
    }
}</code></pre>
<p><code>BillingClient</code> が接続されるたびに、未承認購入のリカバリーロジックとあわせて <code>retryPendingConsumptions()</code> を呼び出してください。</p>
<h2><strong>サブスクリプションのダウングレードと </strong><strong><strong>proration</strong></strong><strong>（</strong><strong><strong>日割り計算</strong></strong><strong>）モード</strong></h2>
<p>ユーザーがサブスクリプションプランを変更する際の課金挙動は、アップグレードかダウングレードか、そしてどの proration モードを指定しているかによって異なります。特にダウングレードは、多くの開発者にとって予想外の挙動を示します。</p>
<h3><strong>デフォルトのダウングレード挙動</strong></h3>
<p>ユーザーがサブスクリプションをダウングレード（より安価なプランへ変更）した場合、デフォルトの挙動は <code>DEFERRED</code> です。つまり、ダウングレードは即時ではなく、<strong>次回の更新日</strong>に適用されます。現在の請求期間が終了するまでは、ユーザーは引き続き上位プランの機能を利用できます。</p>
<pre><code class="language-kotlin">fun launchDowngrade(
    activity: Activity,
    newProductDetails: ProductDetails,
    newOfferToken: String,
    currentPurchaseToken: String,
) {
    val billingFlowParams = BillingFlowParams.newBuilder()
        .setProductDetailsParamsList(
            listOf(
                BillingFlowParams.ProductDetailsParams.newBuilder()
                    .setProductDetails(newProductDetails)
                    .setOfferToken(newOfferToken)
                    .build()
            )
        )
        .setSubscriptionUpdateParams(
            BillingFlowParams.SubscriptionUpdateParams.newBuilder()
                .setOldPurchaseToken(currentPurchaseToken)
                .setSubscriptionReplacementMode(
                    BillingFlowParams.SubscriptionUpdateParams
                        .ReplacementMode.DEFERRED
                )
                .build()
        )
        .build()

    billingClient.launchBillingFlow(activity, billingFlowParams)
}</code></pre>
<h3><strong>リプレースメントモードの理解</strong></h3>
<p>各リプレースメントモードは、課金、アクセス権、そしてユーザー体験にそれぞれ異なる影響を与えます。</p>
<table>
<thead><tr>
<th><p>モード</p></th>
<th><p>変更が適用されるタイミング</p></th>
<th><p>課金への影響</p></th>
<th><p>最適な用途</p></th>
</tr></thead>
<tbody>
<tr>
<td><p><code>IMMEDIATE_WITH_TIME_PRORATION</code></p></td>
<td><p>即時</p></td>
<td><p>残り期間分が新しいプランにクレジットされる</p></td>
<td><p>ユーザーが即時にアクセスできるアップグレード</p></td>
</tr>
<tr>
<td><p><code>IMMEDIATE_AND_CHARGE_PRORATED_PRICE</code></p></td>
<td><p>即時</p></td>
<td><p>残り期間分に対して日割り請求</p></td>
<td><p>公平な課金を伴うアップグレード</p></td>
</tr>
<tr>
<td><p><code>IMMEDIATE_AND_CHARGE_FULL_PRICE</code></p></td>
<td><p>即時</p></td>
<td><p>新しいプランの全額が請求され、新しい請求期間が開始</p></td>
<td><p>プレミアムへのアップグレード</p></td>
</tr>
<tr>
<td><p><code>DEFERRED</code></p></td>
<td><p>次回更新時</p></td>
<td><p>即時の請求なし</p></td>
<td><p>ダウングレード</p></td>
</tr>
<tr>
<td><p><code>IMMEDIATE_WITHOUT_PRORATION</code></p></td>
<td><p>即時</p></td>
<td><p>次回更新まで追加請求なし</p></td>
<td><p>同価格帯プラン間の移動や上位プランのトライアル</p></td>
</tr>
</tbody>
</table>
<h3><strong>遅延ダウングレード（Deferred）の落とし穴</strong></h3>
<p>遅延ダウングレードで最もよくある誤りは、購入フロー完了直後にサブスクリプション状態を確認し、新しいプランが反映されていることを期待してしまうことです。 <code>DEFERRED</code> モードでは、次回の更新日まで元のサブスクリプションが元のプロダクト ID のまま有効です。新しいサブスクリプションが表示されるのは更新後になります。</p>
<p>つまり、エンタイトルメントのチェックでは、この移行期間を考慮する必要があります。</p>
<pre><code class="language-kotlin">fun handleDowngradeResult(purchase: Purchase) {
    \/\/ After a deferred downgrade, the purchase still reflects
    \/\/ the OLD subscription until the next renewal
    val currentProductId = purchase.products.first()

    \/\/ Query the subscription status from your backend to check
    \/\/ if a deferred downgrade is pending
    checkBackendForPendingDowngrade(purchase.purchaseToken) { pendingDowngrade -&gt;
        if (pendingDowngrade != null) {
            \/\/ Show UI indicating the downgrade is scheduled
            showDowngradeScheduledUI(
                currentPlan = currentProductId,
                futurePlan = pendingDowngrade.newProductId,
                effectiveDate = pendingDowngrade.effectiveDate,
            )
        } else {
            \/\/ Normal subscription state
            showSubscriptionUI(currentProductId)
        }
    }
}</code></pre>
<h3><strong>プラン変更時の linkedPurchaseToken</strong></h3>
<p>サブスクリプションのリプレースメント（アップグレードまたはダウングレード）が処理されると、新しい購入トークンが生成されます。この新しい購入には、以前のサブスクリプションを参照する <code>linkedPurchaseToken</code> フィールドが含まれます。重複したエンタイトルメントを作成しないよう、バックエンドでこれを正しく処理する必要があります。</p>
<pre><code class="language-kotlin">\/\/ Backend handler for subscription replacement
fun handleSubscriptionReplacement(newPurchaseToken: String) {
    val subscription = playDeveloperApi
        .purchases()
        .subscriptionsv2()
        .get(packageName, newPurchaseToken)
        .execute()

    val linkedToken = subscription.linkedPurchaseToken

    if (linkedToken != null) {
        \/\/ This is a plan change, not a new purchase
        val userId = userRepository.findByPurchaseToken(linkedToken)

        \/\/ Update to new token
        userRepository.updatePurchaseToken(userId, newPurchaseToken)

        \/\/ Invalidate old token to prevent double-counting
        subscriptionRepository.invalidate(linkedToken)
    }

    \/\/ Acknowledge the new purchase
    acknowledgePurchase(newPurchaseToken)
}</code></pre>
<p>リプレースメント処理時に古い購入トークンを無効化しないことは、よくあるバグの一つであり、サブスクライバー数の水増しや誤った収益レポートにつながります。</p>
<h2><strong>ネットワーク障害と再試行戦略</strong></h2>
<p>課金処理はネットワークに依存しており、ネットワーク障害や遅延は避けられません。失敗する可能性がある重要な処理には、購入フローそのもの、承認（acknowledgment）、消費（consumption）、購入検証が含まれます。</p>
<h3><strong>承認の猶予期間</strong></h3>
<p>Google Play では、購入を承認するために3日間の猶予が与えられています。この期間内に承認しない場合、購入は自動的に返金されます。これはユーザー保護のための仕組みですが、その分、承認ロジックは一時的な障害に対して耐性を持つ必要があります。</p>
<pre><code class="language-kotlin">class AcknowledgmentManager(
    private val billingClient: BillingClient,
    private val purchaseRepository: PurchaseRepository,
) {
    fun acknowledgePurchaseWithRetry(purchase: Purchase) {
        if (purchase.isAcknowledged) return

        val params = AcknowledgePurchaseParams.newBuilder()
            .setPurchaseToken(purchase.purchaseToken)
            .build()

        billingClient.acknowledgePurchase(params) { billingResult -&gt;
            when (billingResult.responseCode) {
                BillingClient.BillingResponseCode.OK -&gt; {
                    purchaseRepository.markAcknowledged(purchase.purchaseToken)
                }
                BillingClient.BillingResponseCode.SERVICE_UNAVAILABLE,
                BillingClient.BillingResponseCode.SERVICE_DISCONNECTED,
                BillingClient.BillingResponseCode.ERROR -&gt; {
                    \/\/ Transient failure, schedule retry
                    purchaseRepository.markPendingAcknowledgment(
                        purchase.purchaseToken
                    )
                }
                else -&gt; {
                    \/\/ Non-retryable error, log for investigation
                    logAcknowledgmentFailure(purchase, billingResult)
                }
            }
        }
    }

    fun retryPendingAcknowledgments() {
        val pendingTokens = purchaseRepository.getPendingAcknowledgmentTokens()

        val inAppParams = QueryPurchasesParams.newBuilder()
            .setProductType(BillingClient.ProductType.INAPP)
            .build()

        billingClient.queryPurchasesAsync(inAppParams) { result, purchases -&gt;
            if (result.responseCode == BillingClient.BillingResponseCode.OK) {
                purchases
                    .filter { it.purchaseToken in pendingTokens }
                    .filter { !it.isAcknowledged }
                    .forEach { acknowledgePurchaseWithRetry(it) }
            }
        }
    }
}</code></pre>
<h3><strong>BillingClient の切断</strong></h3>
<p>The <code>BillingClient</code> はいつでも切断される可能性があり、切断された状態で実行された操作は失敗します。そのため、指数バックオフを用いた再接続ロジックを実装する必要があります。</p>
<pre><code class="language-kotlin">class BillingClientManager(
    private val context: Context,
    private val listener: PurchasesUpdatedListener,
) {
    private var billingClient: BillingClient? = null
    private var retryCount = 0

    fun connect(onConnected: () -&gt; Unit) {
        billingClient = BillingClient.newBuilder(context)
            .setListener(listener)
            .enablePendingPurchases(
                PendingPurchasesParams.newBuilder()
                    .enableOneTimeProducts()
                    .build()
            )
            .build()

        billingClient?.startConnection(object : BillingClientStateListener {
            override fun onBillingSetupFinished(billingResult: BillingResult) {
                if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
                    retryCount = 0
                    onConnected()
                } else {
                    retryConnection(onConnected)
                }
            }

            override fun onBillingServiceDisconnected() {
                retryConnection(onConnected)
            }
        })
    }

    private fun retryConnection(onConnected: () -&gt; Unit) {
        if (retryCount &lt; MAX_RETRY_COUNT) {
            retryCount++
            val delayMs = (1000L * (1 shl retryCount)).coerceAtMost(MAX_RETRY_DELAY_MS)
            handler.postDelayed({ connect(onConnected) }, delayMs)
        }
    }

    companion object {
        private const val MAX_RETRY_COUNT = 5
        private const val MAX_RETRY_DELAY_MS = 30_000L
    }
}</code></pre>
<h2><strong>RevenueCat がこれらのエッジケースをどう扱うか</strong></h2>
<p>これまでに説明した各エッジケースには、慎重な実装、再試行ロジック、そしてバックエンド基盤が必要です。ここで RevenueCat は、複雑さを抽象化し、これらのシナリオを自動的に処理することで大きな価値を提供します。</p>
<h3><strong>保留中の購入（Pending purchases）</strong></h3>
<p>RevenueCat は保留中の購入状態を内部で追跡し、支払いが確定したタイミングで <code>CustomerInfo</code> を更新します。アプリ側はエンタイトルメントを確認するだけで済みます。</p>
<pre><code class="language-kotlin">Purchases.sharedInstance.getCustomerInfoWith { customerInfo -&gt;
    val isPremium = customerInfo.entitlements[&quot;premium&quot;]?.isActive == true

    if (isPremium) {
        showPremiumContent()
    } else {
        showSubscriptionOptions()
    }
}</code></pre>
<p>RevenueCat のバックエンドは、Google Play からの RTDN 通知を処理します。そのため、保留中の購入が完了すると、エンタイトルメントは RevenueCat のサーバー側で更新されます。次にアプリが <code>CustomerInfo</code> を取得したときには、そのエンタイトルメントは有効になっています。こちら側で独自の通知処理や購入トークンの追跡を行う必要はありません。特に個人開発の場合、こうしたバックエンド基盤を一式構築するのは非常に大きなリソースが必要になります。</p>
<h3><strong>承認と消費</strong></h3>
<p>RevenueCat は承認（acknowledgment）と消費（consumption）を自動で処理します。SDK が購入を受け取ると、その購入は RevenueCat のバックエンドで検証され、RevenueCat があなたに代わって Google Play に対して承認を行います。消耗型商品については、検証後に RevenueCat が消費処理を行います。 <code>acknowledgePurchase</code> や <code>consumeAsync</code> を自分で呼び出す必要はありません。</p>
<p>これにより、承認失敗、消費処理の呼び忘れ、そして <code>ITEM_ALREADY_OWNED</code> 問題に関連する一連のバグをすべて排除できます。</p>
<h3><strong>サブスクリプションプランの変更</strong></h3>
<p>RevenueCat は、<code>purchaseWith</code> を通じてサブスクリプションのアップグレードおよびダウングレードのためのシンプルな API を提供しています。</p>
<pre><code class="language-kotlin">Purchases.sharedInstance.purchaseWith(
    PurchaseParams.Builder(activity, newPackage)
        .oldProductId(currentProductId)
        .googleReplacementMode(GoogleReplacementMode.DEFERRED)
        .build(),
    onSuccess = { transaction, customerInfo -&gt;
        \/\/ CustomerInfo reflects the new subscription state
        updateUI(customerInfo)
    },
    onError = { error, userCancelled -&gt;
        if (!userCancelled) {
            showError(error)
        }
    }
)</code></pre>
<p>RevenueCat は、linked purchase token の処理、エンタイトルメントの移行、そして遅延ダウングレードの追跡をバックエンドで処理します。アプリ側では、現在のエンタイトルメント状態を <code>CustomerInfo</code> で確認するだけで済みます。</p>
<h3><strong>ネットワーク耐性</strong></h3>
<p>RevenueCat の SDK には、すべてのネットワーク操作に対する組み込みの再試行ロジックが含まれており、 <code>CustomerInfo</code> をローカルにキャッシュしてオフラインでも参照できるようにしています。また、接続が回復した際にはバックエンドと自動的に同期されます。これにより、デバイスがオフラインの状態でもアプリはエンタイトルメントを確認できます。</p>
<pre><code class="language-kotlin">\/\/ This works offline using cached CustomerInfo
Purchases.sharedInstance.getCustomerInfoWith { customerInfo -&gt;
    val isPremium = customerInfo.entitlements[&quot;premium&quot;]?.isActive == true
    updateUI(isPremium)
}</code></pre>
<p>SDK は古いデータと最新データを区別し、失敗した操作を指数バックオフで再試行し、最終的にエンタイトルメントがサーバー側の状態と整合することを保証します。</p>
<h2>まとめ</h2>
<p>本記事では、サンプルレベルの課金実装と本番運用レベルの実装を分ける、さまざまなエッジケースについて見てきました。</p>
<p>これらの各シナリオには、Play Billing Library を直接使って解決するための明確な方法があります。しかし、それらをすべて実装するための累積的な工数は決して小さくありません。クライアント側の処理、バックエンドでの RTDN 処理、再試行メカニズム、そして各状態をまたいだ慎重なステート管理が必要になります。こうしたインフラを自前で構築・維持せずにサブスクリプション機能を提供したいチームにとって、RevenueCat はこれらのエッジケースを自動的に処理し、複雑な管理を行う代わりに単一の <code>CustomerInfo</code> オブジェクトを確認するだけで済むようにしてくれます。</p>
<p>課金インフラを自前で構築する場合でも、RevenueCat を利用する場合でも、これらのエッジケースを理解することは不可欠です。テスト環境では動く課金システムと、多様な市場や支払い方法にまたがる数百万のユーザーに対して安定して動作する課金システムとの違いは、まさにここにあります。</p>
<p>それでは、Happy coding！</p>
<p>— Jaewoong</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[RevenueCat ペイウォールの変更履歴]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/paywalls-changelog-2</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/paywalls-changelog-2</guid>
      <pubDate>Thu, 26 Feb 2026 09:43:29 GMT</pubDate>
      <dc:creator><![CDATA[Francie Fernandes]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[RevenueCat Paywalls の最新アップデートをチェック]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/782aae8ab096d2477bc08acb2f423f2341bcbc33-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p><a href="https://www.revenuecat.com/feature/paywalls/">RevenueCat Paywalls</a> は、アプリのアップデートやコード変更を行うことなく、RevenueCat のダッシュボード上からリアルタイムで<a href="https://www.revenuecat.com/blog/growth/paywalls-study-guide/">ペイウォールを</a>最適化・構築できるネイティブのペイウォールビルダーです。2025年夏、私たちは RevenueCat Paywalls をゼロから再構築しました。かつてはシンプルなテンプレート中心のツールでしたが、<strong>現在では完全に柔軟なコンポーネントベースのエディター</strong>へと進化し、フルカスタムのレイアウト設計、あらゆる文字列のローカライズ、そしてセグメントごとの体験の最適化が可能になっています。</p>
<p>しかし、私たちはそこで止まりません。2025年11月以降、特に勢いよくアップデートをリリースし続けています。最も要望が多く、最もインパクトの大きい機能改善を次々と提供し、「あらゆるアプリにとって最高のペイウォールビルダー」にすることを明確な目標としています。</p>
<p>本記事は、RevenueCat Paywalls に関するあらゆるアップデートをまとめるリビング・チェンジログとして更新していきます。ぜひブックマークして、最新情報を随時チェックしてください。</p>
<aside class="tip"><strong>RevenueCat のプロダクトアップデートを見逃さない</strong><p>RevenueCat 本体およびすべての機能に関する最新アップデートは、<a href="https://www.revenuecat.com/changelog">こちらのメインチェンジログ</a>でご確認いただけます。</p></aside>
<h2>新しい Paywalls エディターレイアウト</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a6215a88c538621880b6e67affb488d9cbcc476d-1200x630.png" alt=""/></figure>
<p>Paywalls エディターを刷新し、従来のデュアルパネルインターフェースに代わって、サイドバー型レイアウトを採用しました。コンポーネント、レイヤー、ブランディング、メディア、ローカライズといった主要エリアは、分かりやすくラベル付けされたタブに整理され、より直感的に操作でき、学習もしやすくなっています。</p>
<p>新しいレイアウトではキャンバスを中央に据えつつ、今後 Paywalls を拡張していくための余地も確保しています。機能が増えてもエディターが煩雑になることはなく、より複雑なペイウォールを作成している場合でも整理された状態を保てます。</p>
<p><a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls#using-the-editor">新しいエディターを見る ↗</a></p>
<h2>より素早く編集できるキーボードショートカット</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/2088b6cf5731bc57d21f45a5664492d133fa8b3f-1200x630.png" alt=""/></figure>
<p>すばやく反復作業を行っていると、小さな操作の積み重ねが大きな差になります。Paywalls エディターでは、コンポーネントの移動、複製、選択、削除といった一般的な操作に、Figma スタイルのキーボードショートカットをサポートするようになりました。</p>
<p>ショートカットを簡単に見つけられるよう、エディター内にヘルプアイコンを追加し、対応しているコマンドの一覧を確認できるようにしています。いつでも開いて確認できるため、使いながら自然にショートカットを覚え、UI ではなくレイアウトそのものに集中できます。</p>
<p><a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls">すべてのショートカットを見る ↗</a></p>
<h2>ペイウォール間でのコンポーネントのコピー＆ペースト</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c0a13564d937a3769d610d08d073d3922ecafd53-1200x630.png" alt=""/></figure>
<p>単一のペイウォール内だけでなく、異なるペイウォール間でもコンポーネントをコピー＆ペーストできるようになりました。これにより、ヒーローセクション、ベネフィットリスト、価格ブロックなど、すでに成果の出ているレイアウトを簡単に再利用できます。</p>
<p>別のペイウォールにコンポーネントを貼り付けると、その構造、スタイル、バインディングも一緒に引き継がれます。複数のキャンペーンや実験を運用しているチームにとって、繰り返し作業を減らし、バリエーション間でデザインの一貫性を保つのに役立ちます。</p>
<h2>専用の Branding タブ</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/df2188680237a3f603381aef9b2e0ebcdc33434b-1200x630.png" alt=""/></figure>
<p>ビジュアルシステムを一元管理できるよう、Paywalls エディターに新しい Branding タブを追加しました。保存したカラー、グラデーション、カスタムフォントを一か所で管理し、プロジェクト内のすべてのペイウォールで再利用できます。</p>
<p>編集中は、ブランディングアセットがカラーやタイポグラフィのピッカーに直接表示されるため、ブランドに沿ったデザインを維持しやすく、場当たり的な値の使用を防げます。また、スタイルを一度標準化すれば、チーム全体が安心してその上に構築できるため、コラボレーションもよりスムーズになります。</p>
<h2>新しいメディアギャラリー</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/0191653b17a3421f76a27f6d66a11afe205871c5-1200x630.png" alt=""/></figure>
<p>新しいメディアギャラリーにより、ペイウォール間での画像管理がよりスムーズになりました。アップロード済みのアセットを一か所で確認でき、一覧でプレビューし、不要になったファイルを整理できます。</p>
<p>画像のアップロードは、ギャラリーにドラッグ＆ドロップするだけです。ペイウォール編集中も、同じファイルを再度アップロードすることなく、既存のアセットを再利用できます。アートワークやキャンペーン用ビジュアルを複数のペイウォールで共有しているチームにとって、特に便利な機能です。</p>
<h2>期限切れアラートでより安全なローカライズ</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/891b9e40b3dc81167ae4b440d0baaa8de067688d-1200x630.png" alt=""/></figure>
<p>ローカライズの状況が、より分かりやすくなりました。デフォルト言語のテキストを更新すると、エディターが自動的にどの翻訳が最新でないかを検出します。</p>
<p>サイドバーには警告バッジが表示され、影響を受けているロケールやフィールドの一覧が明確に示されます。そこからワンクリックで翻訳を更新することも、意図的な変更であれば警告を解除することもできます。これにより、気づかないうちにコピーがずれていくことを防ぎ、コンテンツが進化してもグローバルなペイウォールの整合性を保てます。</p>
<p><a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/localization">ローカライズの詳細を見る ↗</a></p>
<h2>ペイウォール閉鎖時のエグジットオファー</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/cf82e81463a97d1c2c6aeb8b74fdf884e0938edf-1200x630.png" alt=""/></figure>
<p>ユーザーが購入せずにペイウォールを閉じた場合に表示されるエグジットオファーを設定できるようになりました。フローをそのまま終了させる代わりに、別のオファーを提示する2つ目のペイウォールを表示できます。</p>
<p>たとえば、異なる請求オプションの提示、より低価格の提案、あるいは離脱前の最後のリマインダーとして活用できます。エグジットオファーは iOS、Android、ハイブリッド SDK すべてで利用でき、既存のペイウォールや実験ともスムーズに連携します。</p>
<p><a href="https://www.revenuecat.com/docs/tools/paywalls/displaying-paywalls#exit-offers">エグジットオファーを設定する ↗</a></p>
<h2>ペイウォールドラフトの自動保存</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/8021da5340cccc739ad8eb8771856adf221f4238-1200x630.png" alt=""/></figure>
<p>Paywalls エディターでは、編集中のドラフトが自動保存されるようになりました。変更内容はバックグラウンドで継続的に保存されるため、ページを離れたりリロードしたりしても、作業内容を失うリスクが軽減されます。</p>
<p>また、ドラフトがより頻繁に保存されることで、バリデーションの問題も早い段階で検出されます。公開の挙動自体はこれまでと変わりません。公開を選択するまで内容が反映されることはありませんが、特に長時間のデザイン作業において、より安心してスムーズに編集できるようになります。</p>
<h2>Figma デザインをそのまま Paywalls にエクスポート</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/cd6d04c0e555d4f7ecd69f806199fbc82b45c19b-1920x1080.png" alt=""/></figure>
<p>デザインの引き継ぎが「最初からやり直し」を意味する必要はありません。そして今、それはもう必要ありません。</p>
<p>Figma のモックアップを直接 Paywall エディターにエクスポートできます。レイアウトはネイティブの Paywalls コンポーネントとして取り込まれるため、すぐに次の作業が可能です。</p>
<ul>
<li>構造を変えずにコピーを編集</li>
<li>プロダクトやパッケージを差し替え</li>
<li>テキストをローカライズ</li>
<li>実験を追加</li>
<li>特定のオーディエンスをターゲティング</li>
</ul>
<p>実務上の最大のメリットはスピードです。デザイナーは Figma に留まり、ペイウォールテストを実装するチームは、最終モックからライブのバリエーションまで、レイアウトを手作業で再現することなく進められます。</p>
<p><a href="https://e.customeriomail.com/e/c/eyJlIjoxNzQzMDMsImVtYWlsX2lkIjoiZXhhbXBsZSIsImhyZWYiOiJodHRwczovL3d3dy5yZXZlbnVlY2F0LmNvbS9ibG9nL2VuZ2luZWVyaW5nL3JldmVudWVjYXQtZmlnbWEtcGx1Z2luLz91dG1fY2FtcGFpZ249Tm92ZW1iZXIrTmV3c2xldHRlclx1MDAyNnV0bV9jb250ZW50PU5vdmVtYmVyK05ld3NsZXR0ZXJcdTAwMjZ1dG1fbWVkaXVtPWVtYWlsX2FjdGlvblx1MDAyNnV0bV9zb3VyY2U9Y3VzdG9tZXIuaW8iLCJ0IjoxNzY0Njk3MDQ3fQ/b7d9d39cf861b68d6a988cd66fe5fd508b68ba0a2a9bb287d78acde049e07132">Figma デザインをインポート↗</a></p>
<h2>Paywalls エディターのキーボードショートカット</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/f04231995201401bf401d274221ff2a029afdd46-1200x630.png" alt=""/></figure>
<p>すばやく反復作業を行っていると、小さなクリックの積み重ねが大きな差になります。</p>
<p>Paywalls エディターでは、コンポーネントの追加、セクションの複製、変更の取り消し・やり直し、ブロックの削除など、よく使う操作に対応したキーボードショートカットをサポートしています。作業の流れを止めることなく、スピーディーな反復を本当に快適に行えます。</p>
<p><a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls">すべてのショートカットを見る ↗</a></p>
<h2>より多くのデバイスでペイウォールをプレビュー</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/73774dc674cfd69109bc999431cdd9f9edde21d5-1200x630.png" alt=""/></figure>
<p>ある画面では完璧に見えるペイウォールも、別の画面では不自然に見えることがあります。以前は公開後に気づくこともありましたが、現在はより幅広い iOS および Android のスマートフォンやタブレットでプレビューできるようになりました。キャンバスは実際の画面サイズに合わせて更新されるため、数秒でデバイスを切り替えながら次の点を確認できます。</p>
<ul>
<li>余白の問題を早期に発見</li>
<li>フォントサイズの確認</li>
<li>画像のトリミングや配置のチェック</li>
<li>スクロール挙動の確認</li>
<li>CTA が意図した位置に表示されているかの確認</li>
</ul>
<p>シンプルな改善ですが、公開直前の修正を大幅に減らすことができます。</p>
<h2>ペイウォールテンプレートのフィルター機能</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a8c1da6bc93651b5b52b0e123818bf68e20b64b8-1200x630.png" alt=""/></figure>
<p>テンプレートは、目的のものをすばやく見つけられてこそ役立ちます。</p>
<p>テンプレートギャラリーでは、購入方法、ティア、パッケージでフィルタリングできるようになりました。トライアル優先レイアウト、価格グリッド、プロモーション向けデザインなど、最初から求めるパターンが明確な場合に特に便利です。検索にかける時間を減らし、リリースにより多くの時間を使えます。</p>
<p><a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls">テンプレートから始める ↗</a></p>
<aside class="tip"><strong>インスピレーションに行き詰まっていますか？</strong><p><a href="https://www.paywalls.com/">paywalls.com</a> は、実在するアプリのペイウォールを集めた決定版リソースです。業界、コンポーネント、ダウンロード数でフィルターして、事例やインスピレーションを見つけることができます。</p></aside>
<h2>ペイウォール用カウントダウンコンポーネント</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/611232680b0a20140b41cdeec91227cd564cff35-1200x630.png" alt=""/></figure>
<p>プロモーションは効果的なペイウォール施策になり得ますが、緊急性が明確かつ本物である場合にこそ最大の効果を発揮します。そのため、任意のペイウォールにカウントダウンタイマーを追加できるようになりました。終了日時を一度設定するだけで、タイマーは自動で更新されます。追加のコードも、手動での更新も必要ありません。</p>
<p><a href="https://www.revenuecat.com/blog/growth/promotional-offers-sales-app/">ブラックフライデー、ローンチプロモーション、期間限定割引</a>など、タイミングが意思決定を後押しするキャンペーンに最適です。</p>
<p><a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/components#countdown">カウントダウンを追加 ↗</a></p>
<h2>プロジェクトレベルのブランドカラー設定</h2>
<p>ブランドカラーをプロジェクト設定で定義できるようになりました。設定したカラーは Paywalls エディター内で利用でき（今後は他の場所でも利用可能になる予定です）、プロジェクト全体で一貫したデザインを保てます。</p>
<h2>Paywalls エディターで実際の価格を表示</h2>
<p>これまでは、ダッシュボードエディター上で表示される商品価格はプレースホルダー値でした。今回のアップデートにより、エディター内で実際の価格が表示されるようになりました。これにより、作業中でもより現実に近い状態のペイウォールを確認できます。（※表示には、その商品で少なくとも1回のテスト購入が行われている必要があります。）</p>
<h2>AI を使ってペイウォールを作成</h2>
<p>アプリストアページのデータをもとに、人工知能を使ってペイウォールを作成できるようになりました。インスピレーションを得たり、調整やテストの出発点となるしっかりしたたたき台を作るのに最適な方法です。</p>
<h2>Paywalls での動画対応</h2>
<p>Paywalls では、画像と同様に、動画を独立したコンポーネントとして追加できるようになりました。</p>
<h2>動画背景</h2>
<p>ルートのペイウォール、フッター、または任意の親コンポーネント（スタック、パッケージなど）に、動画を背景として設定できるようになりました。</p>
<h2>購入意図のインターセプト</h2>
<p>ネイティブの iOS および Android SDK では、購入意図（購入 CTA のタップ）をインターセプトし、購入フローに進む前にカスタム UI を表示できるようになりました。アプリで想定されるユースケースとしては、年齢確認／保護者同意のために購入前に年齢確認用の UI を表示することや、追加開示として国別の規約や法的文言などの情報を提示し、ユーザーに確認してもらったうえで先に進んでもらうことなどがあります。</p>
<h2>すべてのプランを表示（シート）</h2>
<p>ボタンの遷移先として、追加コンテンツを表示できるシートを選択できるようになりました。遷移先にシートを指定すると、Components パネル内のボタンの中に新しい Sheet コンポーネントが表示されます。シート、またはその中のいずれかのコンポーネントを選択すると、ペイウォールのプレビュー上にシートが表示されます。シートには、他のスタックと同様にコンポーネントを追加できます。</p>
<p>シートには独自のパッケージや購入ボタンを設定できるため、シート内に表示されたオプションからユーザーが直接購入することも可能です。</p>
<p><a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/components#navigate-to-sheet">ドキュメントで詳しく見る ↗</a></p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[ほとんどのアクティベーション指標が「継続」を予測できない理由（本当に使うべきものとは）]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/activation-metrics</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/activation-metrics</guid>
      <pubDate>Thu, 26 Feb 2026 02:00:13 GMT</pubDate>
      <dc:creator><![CDATA[Daphne Tideman]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[サブスクリプションアプリにおけるリテンションと収益を予測するためのフレームワーク]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/67ab70506cebb12a1216214a8069fd555da11dea-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>アクティベーション指標について調べ始めると、提案は山ほど見つかります。</p>
<ul>
<li>サインアップ数</li>
<li>トライアル完了数</li>
<li>セッション時間</li>
<li>オンボーディング完了率</li>
</ul>
<p>一見すると、どれも注視すべきもっともらしい指標に思えます。</p>
<p>問題は何か？ その多くが「質」ではなく「量」にフォーカスしていることです。これらは、何人があるステップを通過したかは教えてくれますが、その人たちが意味のあるユーザーになったのか、課金ユーザーになったのか、あるいは実際に継続したのかまでは教えてくれません。</p>
<p>要するに、誰かがリテンションやマネタイズにつながる形で本当にアクティベートしたのかどうかは示していないのです。</p>
<p>アクティベーションはサインアップと同じではありませんし、オンボーディング完了とも同じではありません。つまり、多くの「アクティベーション指標」は、あなたを誤った方向へ導く可能性があるのです。</p>
<h2>間違った指標にフォーカスすると何が起きるか</h2>
<h3>ケース1：オンボーディングは好調だが、アクティベーションが起きていない</h3>
<p>これはグロース監査やクライアントワークで本当によく目にします。ある事例では、オンボーディング完了率は非常に高く、iOS と Android の両方で 90％を超えていました。チームは、アクティベーションは順調だと自信を持っていました。</p>
<p>しかし、詳しく分析してみると、そのユーザーの大半は2日目までに離脱していました。</p>
<p>オンボーディングのフロー自体は簡単で、短く、分かりやすいものでした。それでも、ユーザーはプロダクトの本当に重要な部分に関与しておらず、実際の価値を体験していなかったのです。オンボーディング完了率は良好に見えても、アクティベーションの問題は解決していませんでした。</p>
<h3>ケース2：機能利用は好調に見えるが、一部のセグメントだけ</h3>
<p>別の事例では、アクティベーション指標は一見すると強く見えました。</p>
<ul>
<li>高いエンゲージメント</li>
<li>健全な機能利用</li>
</ul>
<p>しかし、無料ユーザーと有料ユーザーを分けて分析すると、状況はまったく異なりました。ほぼすべての指標を押し上げていたのは無料ユーザーでした。彼らはアクティブで、エンゲージメントも高く、数も多い。しかし、コンバージョンも更新もせず、収益にも貢献していなかったのです。</p>
<p>有料ユーザーのコホートだけを切り出してみると、本当に重要なユーザーにおけるアクティベーションの質は、トップラインの数値が示すよりもはるかに低いことが明らかになりました。</p>
<p><strong>これら2つのケースは、アクティベーション指標を誤って解釈するリスクを浮き彫りにしています。間違った指標にフォーカスすること、あるいは意味のあるセグメンテーションを行わないことが、その原因です。</strong></p>
<h3>正しい指標にたどり着くには</h3>
<p>ここでは次の点を見ていきます。</p>
<ul>
<li>サブスクリプションアプリにとって本当に重要なアクティベーション指標は何か</li>
<li>有用に見えてもリテンションや収益を予測しない指標をどう避けるか</li>
<li>他社を真似するのではなく、自社独自のアクティベーション指標をどう定義するか</li>
<li>選んだ指標が本物なのか、単なるバニティ指標なのかをどう検証するか</li>
</ul>
<p>「これさえ見ればいい」という魔法のアクティベーション指標を提示できれば簡単ですが、すべてのアプリやユースケースに共通する単一の答えはありません。それぞれに少しずつ異なるアプローチが必要です。ここで提供できる最善のものは、「本当に意味のある指標」と「見た目が良いだけの指標」を見分けるためのフレームワークです。</p>
<p>なぜなら、ここに一つの真実があるからです。<strong>リテンションは、アクティベーションなしには起こりません</strong>。</p>
<p>多くのアプリは「リテンションの問題」や「マネタイズの問題」があると考えます。しかし一歩引いて見ると、ユーザーが意味のある価値を体験したり、習慣を形成したりする前に離脱していることが原因である場合が少なくありません。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/fb602cc23f58edc1e69a530ef663f40a529b9759-1392x937.png" alt=""/><figcaption>クレジット：図は Thorsten Strauss（Hello Growth）と共同で作成</figcaption></figure>
<p><a href="https://www.revenuecat.com/blog/growth/okrs-kpis-subscription-apps/">重視すべき指標</a>は、問題が<strong>アクティベーション</strong>にあるのか、それとも<strong>リテンション</strong>にあるのかによって異なります。</p>
<p>本当に問うべきなのはこうです。ユーザーが定着しないのは、プロダクトが有用ではないからなのか。それとも、そもそも<strong>本当の意味でアクティベート</strong>していないからなのか。</p>
<p>まさにその点を明らかにするために、適切なアクティベーション指標が役立つのです。</p>
<h2>サブスクリプションアプリにおけるアクティベーションの本当の意味</h2>
<p>正しいアクティベーション指標を定義する前に、まず「アクティベーションとは何か」を明確にする必要があります。ここが曖昧になりやすいポイントだからです。</p>
<p>私は、アクティベーションを獲得（acquisition）と混同したり、一般的なエンゲージメント指標をアクティベーションと呼んだり、あるいは「ユーザーが完了したステップ」として単純に扱ってしまうチームをよく目にします。本来見るべきなのは、そのステップがユーザーを長期的なサブスクライバーへと実際に近づけているかどうかです。</p>
<p>しかし、ここで用語の議論に迷い込むつもりはありません。シンプルにいきましょう。</p>
<p><strong>アクティベーションとは、ユーザーがジャーニーの十分に早い段階で意味のある価値に到達</strong>し、その結果として次の可能性が高まる状態を指します。</p>
<ul>
<li><strong>Convert</strong>：トライアルやフリーミアム経路にいる場合、課金に転換する</li>
<li><strong>Stay：</strong>初回更新まで継続利用</li>
<li><strong>Retain：</strong>初期期間を超えて継続する</li>
</ul>
<p>これは、オンボーディングを完了したかどうかや、チェックリストを消化したかどうかの話ではありません。重要なのは、<strong>初期の行動が「生存」と「長期的価値」を予測するかどうか</strong>です。</p>
<p>別の言い方をすれば、</p>
<ul>
<li>アクティベーションとは「ステップをこなしたか？」ではありません。</li>
<li>アクティベーションとは「そのステップによって、価値を得る確率、そしてその結果として継続し課金する確率が実質的に高まったか？」ということです。</li>
</ul>
<p>これは、特定の行動を行ったユーザーと行っていないユーザーの<a href="https://www.revenuecat.com/docs/dashboard-and-metrics/charts/subscription-retention-chart">リテンションカーブ</a>を比較することで検証できます。</p>
<p>ただし注意点があります。<strong>ほとんどの行動は「何もしない」場合よりは良く見えてしまいます。そのため、本当に長期的なリテンションやマネタイズを予測する行動に焦点を当てる必要があります</strong>。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/fdee9bbb3503c5ef18133c15d7d328cf8568d526-1037x679.png" alt=""/><figcaption>アプリ内の2つの異なる行動における仮想的なリテンションカーブ</figcaption></figure>
<p>本当に問うべきなのは、その特定の行動がリテンションや高価値ユーザーを本当に予測しているかどうかです。目的は単にアクティビティを追跡することではなく、長期的なサブスクライバーと相関する行動と、より早いチャーンや低価値な利用を示す行動（あるいは非行動）を見極めることです。</p>
<h2>アクティベーションの2つのレイヤー：ファーストバリューとコアバリュー</h2>
<p>サブスクリプションアプリにおけるアクティベーションを考えるとき、それを<strong>単一の瞬間として捉えないことが重要</strong>です。もちろん最初のセッションは重要ですが、<a href="https://www.revenuecat.com/state-of-subscription-apps-2025/">State of Subscription App Report 2025</a> によると、フリーミアム型アプリとハードペイウォール型アプリの両方において、トライアルの開始が最も多いのは Day 0（初日）です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/2726de10d5ab0b906a4a1c2c1acc90715ec54a21-968x584.png" alt=""/><figcaption>SOSA 2025：フリーミアム型アプリとハードペイウォール型アプリにおけるトライアル開始日</figcaption></figure>
<p>とはいえ、アクティベーションは習慣形成における一つの瞬間にすぎません。サブスクリプションアプリにおいて、それが単一のステップで完結することはほとんどありません。</p>
<p><a href="https://www.amazon.co.uk/Product-Led-Growth-Build-Product-Itself/dp/1798434520/ref=sr_1_1?crid=Q8V1XUD5QPOT&amp;dib=eyJ2IjoiMSJ9.Mbt5BN7n7BQh1-Fe2D0VN3kIIZWPGxqbXmclaMwE94HT1uNoJ2Sp7YqsjjL60oDDIKeii1amIMI2hJbDchWqj-L_8FIZ8W7G52DNVhST1gw.g0bP6T5tHrBOxRypO83N7sPdQ_fnYYL_s1UlXmUPaUg&amp;dib_tag=se&amp;keywords=product+led+growth+by+wes+bush&amp;qid=1767868524&amp;sprefix=product+led+gowth+by+wes+bush%2Caps%2C78&amp;sr=8-1">Wes Bush の『Product-Led Growth』</a>では、これを3つの瞬間に分けて説明しています。</p>
<ol>
<li><strong>Moment of value perception：</strong>ユーザーが価値を理解する瞬間（例：サンプルやビジュアルを見ることで価値を認識する）</li>
<li><strong>Moment of value experience：</strong>ユーザーが自ら価値を体験する瞬間（例：アプリの主要機能を初めて使う）</li>
<li><strong>Moment of value adoption：</strong>ユーザーが意味のある形でアプリを使い始める瞬間（例：習慣を形成し始める）</li>
</ol>
<p>アプリに関してよく語られる「Time to First Value（TTFV）」という概念は、通常この最初の2つの瞬間を指します。コアバリューは、行動が繰り返され始めて初めて現れるものです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/831c20c3d8a779443c7c1958cfb9420ee945beab-922x679.png" alt=""/><figcaption>クレジット：Wes Bush 著『Product-Led Growth』のオリジナル図をもとに一部調整した図</figcaption></figure>
<p>それでは、この二つの部分についてさらに深く掘り下げてみましょう。</p>
<h3>1. Time to first value（TTFV）：価値の認識と体験の瞬間</h3>
<p>TTFVとは、ユーザーが価値を「認識し、体験する」までの時間を指します。多くの場合その価値は小さなものですが、それでも重要です。なぜなら：</p>
<ul>
<li>最も急激な離脱は、まさに最初の段階で起きるからです。</li>
<li>多くのユーザーは、非常に早い段階で「続けるか、やめるか」を判断します。</li>
</ul>
<p><strong>ユーザーが早期に価値を感じられなければ、その後どれだけプロダクトが優れていても、意味のあるアクティベーションに到達しない可能性があります。</strong></p>
<p>この最初の価値の瞬間は、「進歩」を感じられるものであるべきで、単なる手間や摩擦であってはいけません。<a href="https://www.revenuecat.com/blog/growth/web-to-app-funnel-examples/#h-4-ynab-workshop-funnel">長いオンボーディングフロー</a>は流行しているかもしれませんが、時間を埋めるためだけに使うべきではありません。多くの場合、アクティベーションの改善にはつながりません。</p>
<h3>2. Time to core value（習慣化または継続利用までの時間）：価値の定着の瞬間</h3>
<p>コアバリューに到達するまでには、通常もう少し時間がかかります。ここでユーザーは「試してみる」段階から、「リテンションを予測できる使い方をする」段階へと移行します。</p>
<p>これは特に次のようなプロダクトで重要です。</p>
<ul>
<li>習慣形成型プロダクト</li>
<li>ウェルネス系やトラッキングアプリ</li>
<li>金融・家計管理ツール</li>
<li>より複雑なワークフローを持つアプリ（例：B2Bアプリ）</li>
</ul>
<p>たとえば語学学習アプリであれば、1回のレッスン完了がファーストバリューを示すかもしれません。しかし、複数日にわたっていくつかのレッスンを完了し、ルーティンが形成され始めたときに、コアバリューが現れます。新しい言語で30語を覚えた瞬間や、5つの完全な文章を作れるようになった瞬間で測定できるかもしれません。</p>
<p>多くのチームは、最初のセッションの最適化にとどまり、その後に重要となる行動にユーザーが到達しているかどうかを確認していません。私が関わったあるアプリでは、プッシュ通知や2回目・3回目のセッションを含め、実験を初回セッション以降まで拡張することで、7日目リテンションを成功指標としていました。最初の1週間でユーザーを十分に呼び戻し、定着させるために何が必要かを特定するためです。</p>
<p>アクティベーションを定義するときは、「1日目に何が起きるか？」だけを問わないでください。</p>
<p><strong>「ユーザーが定着ユーザーのように振る舞う前に、何が起きている必要があるのか？」</strong>も問うべきです。</p>
<p>重要なのは、どちらのレイヤーも必要だということです。ただし、それぞれ異なる役割を持っています。</p>
<ol>
<li>ファーストバリューは初期離脱を防ぐのに役立ちます。</li>
<li>コアバリューは、ユーザーが継続し、最終的に定着するかどうかを予測します。</li>
</ol>
<h2>アクティベーションで本当に重要な指標</h2>
<p>ここまででアクティベーションを定義しました。次の問いは、「本当に重要な指標は何か？」です。</p>
<p>答えは、あなたのアプリ次第です（分かってはいるけれど、少しもどかしい答えですよね）。しかし、ここまでの考え方を整理し、データを分析していれば、すでに次のことは見えているはずです。</p>
<ul>
<li>どの行動がリテンションを予測するのか</li>
<li>どの機能が意味のある価値を提供しているのか</li>
<li>あなたのアプリにおけるファーストバリューとコアバリューの瞬間がどこにあるのか</li>
</ul>
<p>その上で最も重要になるのは、ユーザーがそれらの価値の瞬間に到達しているかどうか、そしてそれがリテンションやコンバージョンにつながっているかを示す指標です。単にステップを消化しているか、ボリュームを生み出しているかではありません。</p>
<p>サブスクリプションアプリにおいてノイズとシグナルを見分けやすくするために、ここでは「重要な指標」「参考になる指標」「注意を逸らす指標」の例を挙げていきます。</p>
<h3>重要な指標</h3>
<p>これらの指標は、実際のアクティベーションの質を最もよく反映する可能性が高いものです。</p>
<h4>1. ファーストバリューに到達したユーザーの割合</h4>
<p>この指標は、最初の小さな「アハッ！」の瞬間、すなわちファーストバリューに到達したユーザーがどれくらいいるかを示します。</p>
<p>この初期ステップ（知覚された価値）をアプリで測定するのは簡単ではありませんが、次のような行動を追跡することで把握できます。</p>
<ul>
<li>意味のある初期設定ステップを完了したか</li>
<li>パーソナライズされたインサイトを閲覧したか</li>
<li>最初のセッションから24時間以内に再訪したか</li>
</ul>
<p><strong>なぜ重要か：</strong>ユーザーが価値に到達する前に離脱していないかを示すからです。</p>
<p>すべてのユーザーに即座に到達させることが目的ではありません。重要なのは、十分な数のユーザーが早期に価値を体験し、アクティベーション前にチャーンしてしまうのを防ぐことです。</p>
<p><strong>もしファーストバリューに到達しているユーザーが十分でないなら、それはリテンションの問題ではなく、アクティベーションの問題です。</strong></p>
<h4>2. コアバリューに到達したユーザーの割合</h4>
<p>これはより深いシグナルであり、ジャーニーの次の段階です。<strong>ユーザーがリテンションを支えるパターンや習慣を形成しているかどうかを示します。</strong></p>
<p>この指標は、最初のセッションで起きることよりも、長期的な成功をはるかに強く予測することが多いものです。コアバリューは通常すぐには現れません。ユーザーがプロダクトと繰り返し関わる中で、徐々に形成されます。</p>
<h4>3. Time to First Value（慎重に活用する）</h4>
<p>Time to First Value は有用ですが、それ自体を目標にすべきではなく、あくまで診断用の指標として使うべきです。</p>
<p>ファーストバリューに関しては、一般的に速い方が望ましいですが、それは本当に意味のある価値が提供されている場合に限ります。<strong>表面的な価値を素早く与えるよりも、意味のある価値を少し時間をかけて提供する方がよい場合もあります。</strong></p>
<p>コアバリューに関しては、タイミングは行動との関係で意味を持ちます。たとえば、1週目にコアバリューへ到達したユーザーと2週目に到達したユーザーでリテンションが大きく異なるのであれば、そのタイミング自体が重要なシグナルになります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c8dc37080fc736976544c20c1986fb039065eaf3-1037x679.png" alt=""/><figcaption>行動のタイミングがアクティベーション、ひいてはリテンションにどのように影響するか</figcaption></figure>
<p>ここでの示唆は「短いほど常に良い」ということではありません。重要なのは、タイミングがアクティベーションの質について何かを教えてくれる、という点です。</p>
<h4>4. ファネルにおけるアクティベーションの現れ方</h4>
<p>ファーストバリューやコアバリューに到達しているユーザーの割合が分かったら、次に見るべきは、それが実際に収益へとつながっているかどうかです。以下のような<a href="https://www.revenuecat.com/docs/dashboard-and-metrics/overview">一般的なサブスクリプション指標</a>が、その判断材料になります。</p>
<ul>
<li>トライアル開始率：トライアルを提供している場合</li>
<li><a href="https://www.revenuecat.com/glossary/#trial-conversion-rate">トライアルから課金への転換率</a>：トライアルを提供している場合</li>
<li>ダウンロードから課金への転換率</li>
</ul>
<p>重要なのは、<strong>これらの指標を単独で見ない</strong>ことです。</p>
<p>たとえば、トライアル開始率が高く、<a href="https://www.revenuecat.com/blog/growth/how-to-increase-trial-conversion-rates-without-adding-new-features/">トライアルから課金への転換率が低い場合</a>があります。しかし、それが必ずしもトライアル自体の問題とは限りません。多くの場合、ユーザーはまだ十分に価値を体験していない段階でトライアルを開始し、「念のため」にすぐ解約してしまうのです。</p>
<p>取るべき対応は、次のようなものかもしれません。</p>
<ul>
<li>トライアル開始までの導線を意図的に遅らせる</li>
<li>まず価値提供を改善する</li>
<li>トライアル数の減少を受け入れ、その代わりに質の高いユーザーを獲得する</li>
</ul>
<p>繰り返しになりますが、アクティベーション指標において<strong>重要なのはボリュームではなく質です。それがリテンションを左右します</strong>。</p>
<h3>参考にはなるが（成功KPIにすべきではない）指標</h3>
<p>アクティベーションを理解するうえで役立つ指標はありますが、それを成功の証明として扱うべきではありません。</p>
<h4>1. オンボーディング完了率</h4>
<p>オンボーディング完了率は、最も過剰に使われているアクティベーション指標の一つです。完了率が高いからといって、アクティベーションがうまく機能しているとは限りません。</p>
<p>場合によっては、適度な<strong>ポジティブなフリクションを加えることで</strong>、ユーザー理解を深め、体験をパーソナライズし、コミットメントを求める前に信頼を築くことができ、<strong>結果としてアクティベーションの質が向上する</strong>こともあります。</p>
<p>「どうすればオンボーディング完了率を上げられるか？」と問う代わりに、次のように問いましょう。</p>
<ul>
<li>オンボーディングを完了したユーザーは、より高くリテンションしているか？</li>
<li>私たちは適切なユーザーの前進を支援できているか？</li>
<li>価値の高いユーザーを早期に失っていないか、あるいは意図の低いユーザーを適切にふるいにかけられているか？</li>
</ul>
<p><strong>完了はシグナルであって、目標ではありません。</strong></p>
<h4>2. 機能利用率（適切なセグメンテーションとともに）</h4>
<p>機能利用率は有益な示唆を与えてくれますが、正しい視点で見た場合に限ります。</p>
<p>平均的な利用率はしばしば本質を隠します。ある機能は全体ではあまり使われていないように見えても、高<a href="https://www.revenuecat.com/glossary/#lifetime-value-ltv">LTV</a>ユーザーや有料ユーザーには頻繁に使われているかもしれません。一方で、リテンションに貢献しないまま複雑さだけを増やしている機能もあります。</p>
<p>機能利用率は、次の点を理解するのに最も役立ちます。</p>
<ul>
<li>どの機能がリテンションを支えているのか</li>
<li>無料ユーザーがプレミアム機能の価値を理解しているかどうか</li>
<li>どの機能がアクティベーションを助けるのではなく、ノイズを増やしているのか</li>
</ul>
<p>私が関わったあるアプリでは、無料ユーザーのうちメインのプレミアム機能を試した人はごくわずかでした（無料ユーザーにも制限付きで提供されていました）。その結果、彼らは適切にアクティベートされず、課金する可能性も低い状態でした。つまり、価値を理解していなかったのです。</p>
<p>機能利用率はノイズの特定にも役立ちます。もしある機能を使っているユーザーが全体の2％しかおらず、しかもそのユーザーが最も価値の高い層でないのであれば、それはアクティベーションに貢献しているのではなく、単に複雑さを増しているだけではないかと問い直すべきです。</p>
<p>この点については、Netflixが採用している採用基準についての<a href="https://www.lennysnewsletter.com/p/gibson-biddle-on-the-the-dhm-product">素晴らしいポッドキャスト</a>もぜひチェックしてみてください。</p>
<h3>注意を逸らす指標</h3>
<p>これらの指標は最適化しやすく、しばしば<a href="https://www.revenuecat.com/blog/growth/build-app-growth-team/">グロースチーム</a>を誤った方向へ導きます。</p>
<h4>1. 総サインアップ数</h4>
<p>サインアップ数が増えたからといって、成長が改善しているとは限りません。サインアップはファネルにボリュームを流し込むために必要ですが、量だけを最適化すると次のような問題が生じます。</p>
<ul>
<li>質の低いユーザーを集めてしまう</li>
<li>アクティベーションの問題を覆い隠してしまう</li>
<li>獲得チームに誤ったインセンティブを与えてしまう</li>
</ul>
<p>場合によっては、サインアップ数を減らしてでも、より質の高いトラフィックを獲得する方が正しい選択です。アクティベートし、リテンションする可能性が高いユーザーを集めることが重要です。</p>
<h4>2. トライアル開始数</h4>
<p>トライアル開始率が高いからといって、課金ユーザーが増えるとは限りません。場合によっては、ユーザーが十分に価値を体験する前にトライアルを開始してしまい、その結果：</p>
<ul>
<li>トライアルから課金への転換率が低下する</li>
<li>初回更新率が悪化する</li>
<li>全体のリテンションが弱くなる</li>
</ul>
<p>といった事態につながります。</p>
<h4>3. セッション時間</h4>
<p>セッション時間が長いことは、動画プラットフォームやゲームのようなアプリではエンゲージメントを示すことがあります。しかし一方で、それは混乱や、コンテンツを見つけにくいことのサインである場合もあります。</p>
<p>多くのサブスクリプションアプリにおいては、単純な滞在時間よりも、効率的に価値を届けられているかの方が重要です。総分数よりもコンテキストの方がはるかに重要です。</p>
<h4>4. 質の視点を伴わないDAU（デイリーアクティブユーザー）やMAU（マンスリーアクティブユーザー）</h4>
<p>DAUやMAUが意味を持つのは、「アクティブ」が<em>意味のある</em>利用を反映しており、その頻度がプロダクト本来の利用リズムと一致している場合に限ります。</p>
<p>よく推奨されるのは、アプリのスティッキネスを測る stickiness ratio を見ることです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/9eea2aa42d96340992ddde4c807f30b70ffee65e-685x254.png" alt=""/></figure>
<p>しかし、この一般的なアプリのスティッキネス指標には2つの問題があります。</p>
<ol>
<li>あなたのアプリにとって理想的な利用頻度が、必ずしも「毎日」であるとは限らないこと。</li>
<li>「アクティブユーザー」が単に「アプリを開いた」ことを意味している場合が多く、それは「価値を体験した」ことと同義ではないこと。</li>
</ol>
<p>これらの要素を調整すれば、スティッキネス指標は依然として有用です。ただし、より良い方法は、自社プロダクトにとって理想的な利用頻度を定義し、それをより長い期間で比較することで、何がリテンションを生み出しているのかを特定することです。</p>
<p>たとえば、私が関わったワークショップや瞑想コンテンツを提供するウェルネスアプリでは、「週に1回アプリを使う」ことよりも、「14日間で少なくとも2つのコンテンツを消費する」ことの方が、リテンションをより強く予測していました。</p>
<h2>アクティベーション指標が本物か、見せかけかを検証する方法</h2>
<p>アクティベーション指標を定義することは、あくまで第一歩です。次に必要なのは、それが単なる見栄えのよい数字ではなく、実際のアクティベーションを反映していることを証明することです。</p>
<p>指標が真のアクティベーションといえるのは、次のテストをクリアした場合に限ります。</p>
<h3>1. アクティベートしたユーザーは、そうでないユーザーよりも明確に高いリテンションを示す</h3>
<p>アクティベーションのマイルストーンに到達したユーザーと、到達しなかったユーザーのリテンションカーブを比較してください。</p>
<p>先ほどの図を思い出してください。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/fdee9bbb3503c5ef18133c15d7d328cf8568d526-1037x679.png" alt=""/><figcaption>アプリ内の2つの異なる行動における仮想的なリテンションカーブ</figcaption></figure>
<p>見るべきなのは、数週間後に消えてしまう一時的な差ではなく、持続的な差です。もし後になってカーブが再び収束するのであれば、その指標は単なるエンゲージメントの一段階にすぎず、真のアクティベーションではない可能性が高いです。</p>
<p>端的に言えば、「アクティベートした」ユーザーが明確に高く継続したり、より多く課金したりしていないのであれば、その指標は本当のアクティベーションではなく、単なるノイズです。</p>
<h3>2. その関係が（ほとんどの）コホートやチャネルで成り立っている</h3>
<p>アクティベーション指標がリテンションを一貫して予測しているかどうかを、次の観点で確認してください。</p>
<ul>
<li>時間ごとのコホート</li>
<li>獲得チャネル</li>
<li>Web と iOS と Android の比較</li>
<li>デバイスタイプ</li>
<li>地域（該当する場合）</li>
</ul>
<p>完璧である必要はありません。ある程度のばらつきは自然です。たとえば：</p>
<ul>
<li>あるチャネルでは関係性が弱い</li>
<li>あるプラットフォームではアクティベーションの仕方が異なる</li>
</ul>
<p>といったことは起こり得ます。</p>
<p>重要なのは、そのパターンが全体として成立していること、そしてどこで・なぜ崩れているのかを理解していることです。場合によっては、Web、iOS、Android、あるいは地域ごとに異なるアクティベーション指標が必要になることもあります。</p>
<h3>3. 指標の改善が下流の成果を改善する</h3>
<p>アクティベーションの効果がリテンションカーブに現れるまでには時間がかかることがあります。特に最近トラッキングを始めたばかりの場合はなおさらです。そのため、もう一つの重要なチェックは、そのアクティベーション指標を改善することで、本来影響すべき成果が改善しているかどうかです。</p>
<p>たとえば：</p>
<ul>
<li>それが初期の価値マイルストーンであれば → トライアルから課金への転換率は改善しているか？</li>
<li>より深い習慣マイルストーンであれば → 初回更新率は改善しているか？</li>
<li>ジャーニーの後半に位置するものであれば → 早期チャーンは減少しているか？</li>
</ul>
<p>指標だけが改善しても、下流の成果が何も変わらないのであれば、それは意味があるように見えても、実際にはより良く、より持続的なユーザーを生み出してはいない可能性があります。</p>
<h3>指標への信頼性を高めるための実践的チェック</h3>
<p>十分なデータがある場合は、より踏み込んだ分析でアクティベーション指標をストレステストしてみてください。</p>
<ul>
<li>同一コホート内で、アクティベートしたユーザーとそうでないユーザーを比較する</li>
<li>有料ユーザーと無料ユーザーに分けて分析する（フリーミアムモデルの場合）</li>
<li>チャネルやデバイスの質ごとに分解する</li>
<li>高LTVユーザーが同じアクティベーションパターンをたどっているかを確認する</li>
</ul>
<p>こうした分析によって、そもそも課金やリテンションの可能性が低いユーザーを前提にアクティベーションモデルを構築してしまうリスクを避けることができます。</p>
<h3>アクティベーションウィンドウを見極める</h3>
<p>アクティベーションは「何が起きるか」だけでなく、「いつ起きるか」も重要です。</p>
<p>リテンションカーブを確認し、急激な初期離脱がどこで落ち着くかを特定してください。そのポイントは、アクティベーションからリテンションへの移行地点を示していることが多く、あなたの指標が本当に意味を持つ期間（ウィンドウ）を定義する助けになります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/5fa51d9488e91bce2ab3c092ccad2cbdf5675742-940x679.png" alt=""/><figcaption>The activation window</figcaption></figure>
<p>アクティベーションウィンドウが非常に長い場合、ユーザーが十分に早く価値を得られていない可能性や、そもそもプロダクトの性質上、アクティベーションに時間がかかる可能性を示しています。たとえば：</p>
<ul>
<li>ユーザーが価値に到達するまでに時間がかかりすぎている</li>
<li>初期段階で意味のある前進をするためのガイダンスやサポートが不足している</li>
</ul>
<p>語学学習アプリの例に戻ると、1回のレッスンだけではコミットメントを示すには不十分です。ユーザーが長期的な学習者として本格的に関与する（あるいはフクロウを恐れて続けるようになる）には、1〜2週間にわたり複数のレッスンを完了する必要があるかもしれません。ウィンドウは単に最初のレッスンを捉えることだけではなく、ユーザーが継続する可能性を大きく高めるまでに必要な時間も含みます。</p>
<p>目的は、無理にアクティベーションを早めることではありません。現在どのタイミングで起きているのかを理解し、そのタイミングがリテンションを支えているかを見極めることです。</p>
<h2>実務でどう活用するか</h2>
<p>ここまで整理すると、追跡できる指標のリストはかなり長くなっているかもしれません。しかし、何十もの指標を追う必要はありません。指標を次の3つの明確なカテゴリに分けることで、焦点を保ちましょう。</p>
<ol>
<li><strong>重要な指標</strong>は、コンバージョン、リテンション、更新を直接予測する指標です：これらを最適化する。</li>
<li><strong>知見を導く指標</strong>は、なぜアクティベーションが起きているのか、あるいは起きていないのかを理解するための指標です：これらを調査する。</li>
<li><strong>注意をそらす指標</strong>は、改善しやすいものの、質より量を最適化してしまいがちな指標です：注視はするが、追いかけすぎない。</li>
</ol>
<p>もし一つだけ持ち帰るべきポイントがあるとすれば、これです。アクティベーションとは、ユーザーにステップをこなさせることではありません。<strong>適切なユーザーが価値に到達し、その結果として継続する可能性が高まる状態</strong>を作ることです。</p>
<p>チームがリテンションやマネタイズの問題だと考えている場合、その多くは実際にはアクティベーションが起きていないことが原因です。自社プロダクトにとっての「本当のアクティベーション」を早い段階で定義できれば、その後のすべては格段にシンプルになります。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Sebastian RöhlはいかにしてHabitKitを築いたのか―うまくいったことを続け、だめならやり直す]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/sebastian-rohl-habitkit-launched-podcast-2026</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/sebastian-rohl-habitkit-launched-podcast-2026</guid>
      <pubDate>Wed, 25 Feb 2026 16:38:54 GMT</pubDate>
      <dc:creator><![CDATA[Charlie Chapman]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[Podcastでは、公開開発の持つ力、成長が鈍い時期にこそ粘り強さがどのように成果につながるのか、そしてユーザーのニーズに焦点を当て反復的に改善を重ねることが、インディーアプリ開発において予想外の成功を生む理由について、Sebastian と話しています。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/3d82de0365b39ddfddf4ed6831c050ab34999086-1600x840.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>Sebastian Röhl氏は、インディーアプリ開発者として偶然成功したわけではありません。伸び悩むアプリをリリースし、燃え尽き、もう一度やり直し、そしてようやく成長が積み重なり始める瞬間を迎えました。</p>
<p>最新の Sub Club エピソードでは、HabitKit と FocusKit を手がけるインディー開発者である Sebastian氏 が、アプリ開発におけるゆっくりとした、不確実な“中盤”について語ります。成長の停滞、はっきりしないシグナル、そして何も機能していないように見える状況でも続けるという決断についてです。</p>
<p>これは一夜にして成功した物語ではありません。粘り強さ、タイミング、そして基本を十分にやり切ることで、やがて成長が着地できる場所をつくる――そんなストーリーです。</p>
<p><a href="https://www.youtube.com/watch?v=VBYA6gO8weg">Watch on YouTube</a></p>
<h2>安定した仕事から、自ら設定した期限へ</h2>
<p>ドイツでコンピューターサイエンスとソフトウェアエンジニアリングを学んだ後、Sebastian氏は C#、.NET、Angular を扱うエンタープライズ向けソフトウェア企業に就職しました。刺激的な仕事とは言えませんでしたが、確かな基礎力と、経験豊富なエンジニアたちと働く機会を得ることができました。</p>
<p>同時に、彼の中では自分自身のビジネスを築きたいという思いが静かに膨らんでいました。そして3年後、具体的なプランがないまま退職し、自らに明確な制約を課します――<strong>「12か月以内に何かを形にする」</strong>と。</p>
<p>エピソードの中で Sebastian氏が語っているように、彼は洗練されたビジネスアイデアを持って会社を辞めたわけではありません。ただ、自分のために何かを作りたいという思いと、その手段としてモバイルアプリがしっくりきていた――それだけでした。</p>
<h2>最初のアプリは失敗ではなかった――だが、うまくもいかなかった</h2>
<p>最初の挑戦は <strong>LiftBear</strong> というワークアウトトラッカーでした。Sebastian氏が自分のために作ったアプリです。彼は素早くリリースし、ベータテストは行わず、進捗を Twitter で公開する以外のマーケティングもほとんどしませんでした。</p>
<p>結果は、落胆させられるものでありながら、多くを学ばせてくれるものでした。</p>
<p>LiftBear は一定数のユーザーを獲得し、最終的には<strong>月間経常収益（MRR）約 150 ドル</strong>に落ち着きました。完全に失敗したわけではありません。しかし、成長もしていませんでした。6か月にわたってアップデートや細かな改善を続けたものの、進捗は止まってしまったのです。</p>
<p>Sebastian氏はこの時期を、強いモチベーション低下を感じた期間だったと振り返ります。アプリが明確に失敗しているわけではない。しかし、さらに注力すれば状況が変わるというシグナルも見えない――そんな状態でした。</p>
<h2>HabitKit は、瞬時に共感を生んだ一つのビジュアルから始まった</h2>
<p>HabitKit は、よりシンプルなアイデアから生まれました。<strong>GitHub のコントリビューショングリッド</strong>のような形式で、習慣の継続を可視化するトラッカーを作りたい――それが出発点でした。</p>
<p>最初のスクリーンショットを公開したとき、反応は即座に現れました。エンゲージメントは急増し、フォロワーも増加し、ローンチ前にもかかわらず、初めて明確な関心が示されたのです。</p>
<p>そのシグナルは、彼のエネルギーを一変させました。Sebastian氏は HabitKit に全力で集中し、約2か月の開発を経て最初のバージョンをリリースしました。</p>
<p>スタートアップの基準で見れば控えめなローンチでしたが、インディー開発者にとっては意味のあるものでした。<strong>初日の売上は約 150 ドル</strong>。何より重要だったのは、人々がこのプロダクトを瞬時に理解してくれたという事実でした。</p>
<h2>公開開発は初期には有効だった――しかし長期的な成長エンジンではなかった</h2>
<p>初期段階では、公開開発（building in public）が重要な役割を果たしました。HabitKit が最初のユーザーを獲得し、初期レビューを得て、最初の勢いを生み出す助けになったのです。また、静かな立ち上げ初期の数か月間において、Sebastian氏に責任感とモチベーションを与える存在でもありました。</p>
<p>しかし、最大の成長の瞬間はソーシャルメディアから生まれたわけではありませんでした。</p>
<p>ローンチから数か月後――Sebastian氏がすでに週4日勤務の仕事に戻った後――HabitKit は突如として、ドイツや英国を含む複数の App Store 地域で<strong>「habit tracker」</strong>というキーワードでランキング入りし始めました。その後、Google Play でも同様の動きが起こります。</p>
<p>バズ投稿があったわけでも、大きなメタデータ変更があったわけでも、明確なきっかけがあったわけでもありません。Sebastian氏自身も、なぜ起きたのかは分からないと語っています。ただ一つ明確だったのは、HabitKit がある閾値を超えた瞬間に、ダウンロードと収益が一気に加速したということです。</p>
<p>それは、これまで積み重ねてきたプロダクト品質、レビュー、そして一貫性といった取り組みが、ようやく報われた瞬間でした。</p>
<h2>仕事に戻ったことは、物語の終わりではなかった</h2>
<p>最初に設定した 12 か月の期限が過ぎた時点で、HabitKit はまだ Sebastian氏をフルタイムで支えられる状態ではありませんでした。彼は以前の会社に戻り、週4日勤務し、金曜日を自分のアプリ開発に充てることにしました。</p>
<p>その“セーフティネット”は、彼に安定と時間をもたらしました。</p>
<p>それから6〜7か月後、HabitKit の成長はもはや曖昧なものではなくなっていました。オーガニック経由の発見が積み重なり、収益も着実に増加。Sebastian氏は再び退職する決断を下します。今度は希望ではなく、明確なトラクションに裏打ちされた判断でした。</p>
<h2>FocusKit は多角化ではなく、モチベーションのためだった</h2>
<p>長年ほぼ HabitKit に専念してきた中で、Sebastian氏は別の停滞にも気づきました。それは、自身のモチベーションです。</p>
<p>アップデートは小さな改善にとどまり、公開での発信もどこか繰り返しのように感じられるようになっていました。新鮮さを取り戻すために彼が始めたのが、SwiftUI でネイティブに構築したミニマルなポモドーロタイマー、<strong>FocusKit</strong> です。</p>
<p>FocusKit は HabitKit を置き換えるためでも、すぐに同等の収益を生み出すためでもありませんでした。新しい技術を学び、ネイティブな iOS デザインに向き合い、創作の勢いを取り戻すためのプロジェクトだったのです。</p>
<p>ローンチも意図的にプレッシャーの少ない形で行われました。初期の収益は控えめですが、このプロジェクトの目的は別のところにあります。Sebastian氏が関心を持ち続け、好奇心を保ち、作り続けられる状態を維持することです。</p>
<h2>Sebastian氏の歩みが示す、インディーアプリ成長の本質</h2>
<p>Sebastian氏のストーリーは、巧妙なハックや攻撃的なグロース戦術によって築かれたものではありません。土台にあるのは、次のような基本の積み重ねです：</p>
<ul>
<li>自分自身が本当に使いたいプロダクトをリリースすること</li>
<li>特に初期段階において、進捗を正直に共有すること</li>
<li>居心地が悪く感じるほど長く改善を続けること</li>
<li>プロダクトがそれに値する状態に<em>なってから</em>、流通（ディストリビューション）の複利効果に任せること</li>
</ul>
<p>振り返れば成長は突然に見えます。しかし実際には、何か月にもわたる静かな積み重ねの先に訪れたものでした。</p>
<p>🎧 <a href="https://www.youtube.com/watch?v=VBYA6gO8weg">Sub Club のフルエピソードをぜひお聴きください</a>。Sebastian氏が、成長が止まっているように感じた時期や挫折、そして当時は意味があるように思えなかったものの、最終的には大きな意味を持つことになった決断について詳しく語っています。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[実はまだ支払っていない（かもしれない）15%のApp Store手数料]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/small-business-program</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/small-business-program</guid>
      <pubDate>Wed, 25 Feb 2026 16:15:28 GMT</pubDate>
      <dc:creator><![CDATA[Rik Haandrikman]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[たった10分の登録で、数千ドルを節約する方法]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/fd2417315c616bbc843b78169044e28f0ebc9b68-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>開発者であれば、App Store の 30% 手数料について不満を言ったことがあるかもしれません。アプリが存在できるという「特権」のためだけに、収益の一定割合がプラットフォーム事業者へ強制的に持っていかれるように感じられます。</p>
<p>しかし、あまり語られていない事実があります。<strong>大多数の開発者にとって、30% 手数料は「神話」のようなものです。</strong></p>
<p>実はここ数年、Apple と Google の両方が、<strong>その手数料を半分の 15% に引き下げる</strong>プログラムを提供しています。それでも私は毎日のように、こうしたプログラムの存在をまったく知らない開発者や、時間を割けないほど複雑な手続きだと思い込んでいる開発者に出会います。その結果、<strong>何万ドルものお金を取りこぼしている</strong>のです。もう一人エンジニアを雇ったり、マーケティングキャンペーンを回したり、あるいは、そうですね、家賃や支払いに充てたりできるはずのお金です。</p>
<p>これは秘密の抜け道ではありません。公的に提供されているプログラムです。そして、アプリからの年間収益が 100 万ドル未満であれば、あなたは対象になります。今日はそれを正します。言い訳はもう終わりです。あなたが得るべき 15% を取り戻すためのステップバイステップガイドを、ここから紹介します。</p>
<h2>今すぐ参加すべきプログラム</h2>
<p>Apple と Google では名称こそ異なりますが、基本的な仕組みは同じです。<strong>年間収益が 100 万ドル未満であれば、手数料率が 15% に引き下げられます。</strong>とてもシンプルです。</p>
<h3>Apple：App Store Small Business Program</h3>
<p>Apple のプログラムは、インディー開発者や小規模スタジオにとってまさに救いです。有料アプリのダウンロード、アプリ内課金、サブスクリプションなど、すべての収益に対して手数料が 30% から 15% に引き下げられます。</p>
<h4>適用条件：</h4>
<ul>
<li>前暦年総収益（Apple の手数料控除後）が 100 万ドル以下であること</li>
<li>「Associated Developer Accounts」に該当するすべての開発者アカウントの収益が、この 100 万ドルの上限に合算されること</li>
<li>新規開発者の場合は、自動的に対象となること</li>
</ul>
<h4>Apple のプログラムへの登録方法（所要時間：約 10 分）：</h4>
<ol>
<li><strong>登録ページへアクセスする：</strong> まず、自身が Apple Developer アカウントの Account Holder であることを確認します。そのうえで<a href="https://developer.apple.com/app-store/small-business-program/enroll/">登録ページ</a>にアクセスします。</li>
<li><strong>アカウントの確認：</strong> Apple から開発者アカウントの確認を求められます。複数のアカウントを持っている場合は、すべてを申告する必要があります</li>
<li><strong>利用規約に同意する：</strong> まだ承認していない場合は、App Store Connect の最新の Paid Applications 契約を確認・承認します。その後、Small Business Program の利用規約に同意します</li>
</ol>
<p>これで完了です。承認され次第、手数料率は 15% に適用されます。あなたは今、自分自身に大幅な昇給をもたらしたことになります。</p>
<h3>Google：15% Service Fee Tier</h3>
<p>Google のプログラムも同様に重要です。毎年の収益のうち最初の 100 万ドルまでは、手数料は 15% が適用されます。その上限を超えた場合、その年の残りの期間は 30% になります。多くの開発者にとっては、実質的に恒常的な 15% レートを意味します。</p>
<h4>適用条件：</h4>
<ul>
<li>各暦年に得た収益の最初の 100 万ドルまでに、15% の手数料率が適用されること</li>
<li>Apple と同様に、「Associated Developer Accounts」を申告し、「Account Group」を作成する必要があること</li>
</ul>
<h4>Google のプログラムへの登録方法（所要時間：約 10 分）：</h4>
<ol>
<li><strong>Play Console にアクセス：</strong> ログイン後、「<a href="https://play.google.com/console/developers/associated-developer-accounts">Associated developer accounts</a>」ページに移動します</li>
<li><strong>Account Group を作成：</strong> 画面の案内に従ってグループを作成します。ここで、所有している他の開発者アカウントを紐づけます</li>
<li><strong>登録：</strong> グループの設定が完了すると、15% のサービス手数料への登録を促すバナーが表示されます。「Review and enroll」をクリックします</li>
<li><strong>利用規約に同意：</strong> 利用規約を確認し、同意します</li>
</ol>
<p>これで完了です。数回のクリックだけで、アプリの財務的な将来を大きく変えることができます。</p>
<h2>もう一つのポイント：サブスクリプションの手数料割引</h2>
<p>Small Business Program が主役であることは間違いありません。しかし、特にサブスクリプションに関しては、多くの開発者が見落としているもう一つの重要な仕組みがあります。</p>
<h3>Apple：2年目以降の優遇</h3>
<p>自動更新サブスクリプションには、Apple があらかじめ用意している割引制度があります。特定のサブスクライバーについて、<strong>最初の1年間は 30% の手数料</strong>を支払います。しかし、そのユーザーが12か月間継続してくれれば、<strong>2年目以降はそのサブスクライバーに対する手数料が 15% に引き下げられます</strong>。</p>
<p>もちろん、Small Business Program に参加していれば、最初から 15% が適用されています。しかし、アプリが成長し、Small Business Program の対象外になった場合、この「2年目割引」は非常に重要になります。これは、長期的なリテンションに注力することへの明確なインセンティブです。</p>
<h3>Google：初日から 15%</h3>
<p>Google はよりシンプルです。Google Play のすべての自動更新サブスクリプションに対して、サービス手数料は<strong>初日から 15%</strong> です。割引プログラムに参加しているかどうかは関係ありません。サブスクライバーの最初の月であっても、3年目であっても同じです。サブスクリプションの手数料率は常に 15% です。</p>
<p>これは Android 上のサブスクリプションアプリにとって大きな利点であり、開始時点からユニットエコノミクスをより有利にします。</p>
<p>内訳は以下のとおりです：</p>
<table>
<thead><tr>
<th><p><strong>プラットフォーム／プログラム</strong></p></th>
<th><p><strong>サブスク手数料（1年目）</strong></p></th>
<th><p><strong>サブスク手数料（2年目以降）</strong></p></th>
</tr></thead>
<tbody>
<tr>
<td><p><strong>Apple（標準）</strong></p></td>
<td><p>30%</p></td>
<td><p>15%</p></td>
</tr>
<tr>
<td><p><strong>Apple (Small Business Program)</strong></p></td>
<td><p>15%</p></td>
<td><p>15%</p></td>
</tr>
<tr>
<td><p><strong>Google Play（すべての開発者）</strong></p></td>
<td><p>15%</p></td>
<td><p>15%</p></td>
</tr>
</tbody>
</table>
<h2>RevenueCat に登録状況を伝える</h2>
<p>RevenueCat を利用している場合、もう一つ行っておきたいステップがあります。それは、これらのプログラムに登録していることを RevenueCat に設定することです。これにより、チャート、各種メトリクス、連携先に送信されるデータが、正しい手数料率を反映するようになります。</p>
<h3>Apple の場合</h3>
<p>RevenueCat アカウントでは、異なる会社の複数アプリを管理している場合もあるため、Small Business Program のステータスはアプリ単位で設定します。設定方法は以下のとおりです：
</p>
<ol>
<li><strong>RevenueCat ダッシュボードへ移動： </strong>左側ナビゲーションバー下部の「Apps &amp; providers」を選択します</li>
<li><strong>App Store アプリを選択： </strong>下にスクロールし、「Apple Small Business Program」のドロップダウンを展開します</li>
<li><strong>開始日を入力：</strong> プログラムへの参加が有効になった日付を入力します。2020年12月18日以前に登録し、2020年12月30日までに通知を受け取っている場合は、2021年1月1日を入力します</li>
<li><strong>終了日を入力（該当する場合）：</strong> プログラムから退出、または除外された場合は、その日付を入力します</li>
</ol>
<p>保存すると、RevenueCat はチャート上で正しく収益を計算し、連携先にも正確な価格データを送信します。開始日を過去の日付に設定した場合、チャートは 24 時間以内に再計算されます。</p>
<h3>Google の場合</h3>
<p>朗報です。RevenueCat は、Google の reduced service fee tier に登録している前提で自動処理を行います。サブスクリプション取引については、デフォルトで 15% の手数料率を使用します。</p>
<p>暦年内に 100 万ドルの上限を超えた場合、RevenueCat はその年の残り期間について自動的に 30% に切り替えます。複数アプリを管理している場合や、アプリを移管していて計算にずれがあると感じた場合は、RevenueCat サポートに連絡してください。プロジェクトの手数料率を手動で調整できます。</p>
<h2>もう取りこぼさない</h2>
<p>以上です。複雑な法的手続きも、リスクの高いサイドローディングのような手法も必要ありません。公式に提供されている2つの簡単に参加できるプログラムと、サブスクリプションに関する明確なルールがあるだけです。それだけで、手数料の半分を節約できます。</p>
<p>この投稿から一つだけ覚えておいてほしいことがあります。それは、<strong>今すぐ登録状況を確認することです。</strong></p>
<ul>
<li><strong>Apple の場合：</strong><a href="https://appstoreconnect.apple.com/">App Store Connect</a> の契約画面を確認してください</li>
<li><strong>Google の場合：</strong>Play Console の「<a href="https://play.google.com/console/developers/associated-developer-accounts">Associated developer accounts</a>」ページを確認してください</li>
<li>RevenueCat の場合：アプリ設定を開き、Small Business Program のステータスが正しく設定されているか確認してください</li>
</ul>
<p>まだ登録していないのであれば、10 分だけ時間を取りましょう。今年得られる中で、最も ROI の高い 10 分になるはずです。あなたは素晴らしいアプリを作りました。その対価として得た収益は、あなたが受け取るに値します。</p>
<p><em>編集部より愛を込めて：お気づきの方もいるかもしれませんが、本記事では多くの段落の末尾にピリオドがありません。見落としではありませんのでご安心ください。これは RevenueCat の VP of Marketing、Rik Haandrikman による“お約束”のスタイルです。彼の独特な投稿をもっと見たい方は、</em><a href="https://x.com/HHaandr"><em>X で Rik をフォロー</em></a><em>してみてください（ピリオドが見当たらなくなったら、正しいアカウントにたどり着いています）。</em></p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[早くリリースし、早く学ぶ：初期段階のアプリ成長を支えるスピード戦略]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/fast-shipping</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/fast-shipping</guid>
      <pubDate>Thu, 29 Jan 2026 09:54:30 GMT</pubDate>
      <dc:creator><![CDATA[Daphne Tideman]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[いつスピードを優先し、いつ減速すべきか、そして信頼を損なうことなく学びを得る方法を解説します。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/57765ba4f44f134484f695c1eecc989081d314a4-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>私たちは誰しも、会議の中で何度もこんな質問をされた経験があるはずです。</p>
<p>「そのテストは、いつ本番リリースされますか？」理想的な答えはこうです。「もうリリースされています。」</p>
<p>しかし現実はどうでしょうか。Zoom 画面の向こうにいる大勢の人たちに、気まずく説明しなければならない、お決まりの理由や遅延のリストが並びます。</p>
<ul>
<li>開発の完了を待っている</li>
<li>他の誰かの承認がまだ必要</li>
<li>ブランドチームがデザインにまだ納得していない</li>
</ul>
<p>これが一度起きるだけなら、大きな問題ではありません。ですが、「動きが遅い状態」が当たり前になると、その影響は積み重なっていきます。特にスタートアップにとっては、1 つひとつの遅れが<strong>学習機会の損失</strong>につながり、<strong>ランウェイを短くし</strong>てしまいます。</p>
<p>私たちはしばしば、「理想の世界」を教えられてきました。すべての関係者が足並みを揃え、テストはきれいにキューに並び、ライフタイムバリュー（LTV）が十分に明らかになってから意思決定を行う、という世界です。</p>
<p>一方で、現実はこうです。毎月コストは発生し、初期のアイデアのほとんどはうまくいきません。そして、完璧なデータを待つということは、多くの場合、待ちすぎることを意味します。</p>
<p>どこかのタイミングで、硬直したルールを手放し、完璧な計画よりも速いフィードバックを選ぶ必要があります。それは居心地の良い選択ではありませんが、無謀になるという意味でもありません。<strong>どこで速く動き、どこで慎重になるのか、そして何から学ぶかをどれだけ早く判断するのかを、意図的に決めるということです。</strong></p>
<p>この記事で学べること（そして、できれば実際に使ってほしいこと）は次のとおりです。</p>
<ul>
<li>確実性を待ち続けることに潜むリスク</li>
<li>なぜ速いフィードバックが「根拠のない自信」に勝るのか</li>
<li>実験を早期に止めるべきタイミング</li>
<li>信頼を損なうことなく、より速くリリースする方法</li>
<li>そして、実際にスピードを落とすべき場面とはいつなのか</li>
</ul>
<h2>確実性は、リリースした後に得られるもの</h2>
<p>以前、プレローンチ実験の一環として、ランディングページをテストしていたクライアントと仕事をしたことがあります。創業者は細部へのこだわりが非常に強いデザイナーで、私も一緒になって、あらゆる要素を二重三重にチェックしました。数か月にわたるリサーチ、競合分析、そして本格的な開発に入る前に関心を検証するためのペインテッドドアテストまで、やるべきことはすべてやっていました。</p>
<p>そして、ついにページが公開されました。お祝いの時間です。</p>
<p>私たちは、プレローンチの申し込みが次々と入ってくるのを待ちました。<a href="https://www.revenuecat.com/blog/growth/customer-validation-subscription-app/">ペインテッドドア</a>テスト（実際には存在しない機能やオファーを見せることで関心を測る手法）では需要が示されていたため、期待は高まっていました。しかし、結果はほとんど何も起きませんでした。意味のあるサブスクリプション登録はほぼゼロだったのです。</p>
<p>ただし、私たちが素早く学べ<em>たこと</em>は、それ以上に価値のあるものでした。</p>
<ul>
<li>Meta 広告はその時期は非常に高コストで、信頼を高めてコストを下げるには、より多くの動画コンテンツが必要だったこと</li>
<li>サブスクリプション価格の段階でユーザーがためらっていたため、まず<a href="https://www.revenuecat.com/blog/growth/hybrid-monetization-techniques/">中間ステップを導入</a>したところ、コンバージョン率が改善したこと</li>
</ul>
<p>私たちは、ローンチ前に自信を持つために、あらゆることを「正しく」行っていました。しかし、<strong>何が機能し、何が機能しなかったのかという確実性は、実際にリリースし、本物のユーザーがページとやり取りして初めて得られた</strong>のです。</p>
<p>ここで多くの<a href="https://www.revenuecat.com/blog/growth/build-app-growth-team/">グロースチーム</a>が立ち止まってしまいます。初期段階では、ほとんどの賭けは外れます。使えるデータは限られており、リピート購読者も少なく、意味のある<a href="https://www.revenuecat.com/glossary/#lifetime-value-ltv">ライフタイムバリュー（LTV）</a>のシグナルはほとんどありません。<strong>この段階の</strong><a href="https://www.revenuecat.com/blog/growth/ad-monetization-subscription-apps/"><strong>マネタイズ指標</strong></a><strong>は、せいぜい方向性を示す程度のもの</strong>であり、確信を持って待ち続けられるようなものではありません。</p>
<p>初期のマネタイズ判断で重要なのは、正確さではなく勢いです。ライフタイムバリューを正確に予測しようとしているのではなく、そもそもそのオファーに成立する可能性があるのかを見極めようとしているのです。<a href="https://www.revenuecat.com/glossary/#trial-conversion-rate">トライアルから有料への転換率</a>、<a href="https://www.revenuecat.com/blog/growth/subscription-app-churn-reasons-how-to-fix">初期解約</a>、価格感度といったシグナルは、「最終的にどこへ行き着くか」を示すものではなく、「次にどこを見るべきか」を教えてくれます。完璧な LTV を待ってから行動しようとするのは、まだ存在していない確実性を前提にしてしまっているのです。</p>
<h3>より速く動くためのシンプルなルール</h3>
<p>Reid Hoffman氏は、<a href="https://www.amazon.co.uk/Blitzscaling-Lightning-Fast-Building-Massively-Companies/dp/0008303630">ブリッツスケーリング</a>を「<em>不確実性の中で、効率よりもスピードを優先すること</em>」だと表現しています。これはまさに、初期のグロースに求められる姿勢です。無謀になることではなく、<strong>明確さは準備からではなく、実際に世に出すことから得られる</strong>、という事実を受け入れることなのです。</p>
<p>私たちは、より深く考えたり、計画に時間をかけたりすることで確実性を得るわけではありません。物事を世に出し、その振る舞いを観察することで学びます。必ず成功するキャンペーンや機能を作れたら理想ですが、それはできません。誰にもできないのです。</p>
<p>では、戦略は何でしょうか。</p>
<p>より速く動くためのシンプルなルールは、次のとおりです。</p>
<p><em>間違っていた場合のコストが可逆的で、影響が限定的であれば、速く動く。</em>
<em>不可逆であったり、信頼を損なう可能性がある場合は、慎重に進める。</em></p>
<p>グロースとは、リリース前に自信を積み上げることではなく、<strong>リリース後に自信を獲得</strong>していくことです。だからこそ、速いフィードバックが極めて重要になります。</p>
<h2>速いフィードバックは競争優位になる</h2>
<p>初期段階のグロースについては、さまざまな数字を耳にするでしょう。「やっていることのうち、成果につながるのは 20％だけ」「本当に機能するのは 10％程度」「ほとんどの実験は失敗する」といった具合です。正確な数字がどれなのかは分かりません。ただ、初期フェーズのスタートアップでグロースをリードし、多くのチームと関わってきた中で私が確信しているのは、<em>どれほど多くのことが</em>うまくいかないか、という事実がとにかくフラストレーションを生むということです。</p>
<p><strong>勝つチームは、成功率が高いチームではありません。より早く「分かる」チームです。</strong></p>
<p>速いフィードバックとは、より多くの機能をリリースしたり、実験の数を増やしたりすることではありません。<strong>「最小限の方法で、意味のある学びを得るにはどうすればいいか？」</strong>と常に問い続けることです。たとえば、アプリに手を加える前に <a href="https://www.revenuecat.com/blog/growth/7-meta-ad-testing-frameworks-for-subscription-apps/">Meta 広告で価値提案をテスト</a>したり、<a href="https://www.revenuecat.com/blog/growth/testing-strategies-for-low-traffic-apps/">App Store のメッセージングを試して</a>、どの機能訴求が実際にコンバージョンを生むのかを見極めたりすることも含まれます。</p>
<p>それは、次のような問いを立てることかもしれません。</p>
<ul>
<li>どのエンゲージメント行動が、継続利用を確実に予測するのか</li>
<li>どの初期収益シグナルが、より価値の高いユーザーを示しているのか</li>
<li>ユーザーはどの段階で、コミットすることをためらっているのか</li>
</ul>
<p>多くのサブスクリプションアプリでは、年額プランのほうが月額プランよりも LTV が高くなることが知られています。そのため、年額プランをできるだけ強く押し出したり、月額プランを完全に削除したりするのが一般的な対応です。短期的にはマネタイズを最適化できるかもしれませんが、その分、学習のスピードは落ちてしまいます。</p>
<p><a href="https://subclub.com/episode/vc-funding-vs-bootstrapping-for-subscription-apps-martin-siniawski-podcast-app">Streema は、あえてその逆を選びました</a>。Martin Siniawski氏が共有しているように、彼らは月額サブスクリプションをあえて目立つ形で残しました。そうすることで、解約をより早く把握し、何が本当の意味で再現性のある価値を生んでいるのかを理解し、そして実際に離脱したユーザーと対話することができたのです。</p>
<h3>実践における、速いフィードバックのルール</h3>
<p>これが、実際の現場での「速いフィードバック」の姿です。遅れて得られる確実性よりも、学習スピードを優先するという考え方であり、具体的には次のような取り組みを意味します。</p>
<ul>
<li>統計的に有意であることよりも、<strong>素早く失敗できるテストを設計</strong>する</li>
<li>方向性を示すものだと理解したうえで、<strong>プロキシ指標を意図的に使う</strong>（決定的ではないが、十分に役立つ）</li>
<li>大規模で一方向なリリースよりも、<strong>可逆的な変更を優先</strong>する</li>
<li>コンバージョン率やマネタイズだけでなく、<strong>インサイトが得られる速さを最適化する</strong></li>
<li>短期的にトップライン指標が下がったとしても、<strong>より早い「真実の瞬間」を作る</strong></li>
<li>定量データだけに頼るのではなく、実際に<strong>ユーザーと話す</strong></li>
<li>期待していた結果でなくても、<strong>得られた学びを行動に移す</strong></li>
</ul>
<p>速いフィードバックは、プロダクトだけの問題ではありません。複数の承認がなければ意思決定できない組織や、学びを得ても実行に移す前に承認が必要な環境では、この仕組みは簡単に機能しなくなります。いわゆる「船頭多くして船山に登る」という状況です。</p>
<p>だからこそ、最後のルールはとてもシンプルです。複雑な承認フローに頼るのではなく、<strong>スピードを前提に設計された組織をつくり</strong>、自律性と信頼を育てることです。</p>
<p>断言します。速いフィードバックは時間とともに複利的に効き、成長スピードを確実に高めてくれます。</p>
<h2>ダーリンは殺せ…速く、しかし自信を持って</h2>
<p>速く動くうえで最も難しいのは、リリースそのものではありません。本当に難しいのはその後です。意図的に素早く動き、実際の代替案を作り上げたにもかかわらず、それがまったく機能しなかったときです。先ほど触れた、成果が出なかったプレローンチのランディングページのように。胸が痛む瞬間であり、たいていこのタイミングで「もう少し様子を見よう」という誘惑が忍び寄ってきます。</p>
<p>先ほどのプレローンチ実験に話を戻しましょう。ローンチから約 1 週間が経過していました。コンバージョンが起きるには十分な時間であり、ある程度のデータも集まっていましたが、公式に「確信が持てる」と言えるほどではありません。それでも数値を確認すると、そこから目を背けることはできませんでした。仮にクリエイティブを改善し、<a href="https://www.revenuecat.com/blog/growth/metrics-for-scaling-paid-ads/">クリック単価</a>（CPC）を下げられたとしても、サブスクリプション獲得の目標 CPA を大きく上回る状態になることは明らかだったのです。</p>
<p>その段階になると、「待つこと」は忍耐ではなく、ただの希望に変わります。初期データがこれほど大きく外れている場合、それが勝ちパターンに転じることはまずありません。多少は改善するかもしれませんが、引き続き時間や予算、そして注意を注ぎ込む価値があるほどではないのです。</p>
<p>だからこそ──創業者からの素晴らしい提案もあり──私たちはそれを修繕しようとはしませんでした。見切りをつけ、根本的に異なる構成である 2 ステップのページへと切り替えたのです。</p>
<p>ただし、ここから話は少し難しくなります。</p>
<p>別のクライアントで<a href="https://www.revenuecat.com/blog/engineering/price-testing-for-mobile-apps/"> A/B テストを行って</a>いたとき、私は「やってはいけないこと」をしてしまいました。早い段階で結果をのぞいてしまったのです。結果は芳しくありませんでした。新しいバリアントは、既存のものよりわずかにパフォーマンスが悪かったのです。正直、気に入らない結果でしたが、それでも私は止めませんでした。各バリアントのコンバージョン数がごくわずかで、まだ判断に足るシグナルがなかったからです。このケースでは、時間を与えた判断が結果的に正しく、最終的には新しいバリアントが勝ちました。</p>
<p>実験には、時間をかけるべきケースもあります。特に<a href="https://www.revenuecat.com/blog/engineering/price-testing-for-mobile-apps/">価格設定実験</a>ではそれが顕著です。初期のコンバージョン率だけを見ると、新しい<a href="https://www.revenuecat.com/blog/growth/guide-to-app-pricing-research-methods/">価格戦略</a>やパッケージがうまくいっていないように見えても、1〜2 回の更新サイクルを経た後に、全体の収益が伸びていることが分かる場合があります。</p>
<p>つまり、<em>すべての</em>ダーリンをすぐに殺せと言っているわけではありません。同時に、<em>すべてに</em>無限の時間を与えるべきだとも言っていません。速くリリースし、速く学ぶことは、「とにかく全部切る」アプローチを意味するわけではないのです。<strong>すぐに止めるべきときもあれば、意図的に待つべきときもあります。</strong></p>
<h3>ダーリンを見切るためのルール</h3>
<p>役立つのは、「なぜ続けるのか」「なぜ止めるのか」を明確にすることです。実際には、私たちは次のような基準でダーリンを見切っています。</p>
<ul>
<li><strong>戦略的に途中結果を確認するが</strong>、感情的な反応を招く形で<strong>早期結果を広く共有しない</strong></li>
<li>統計的な確実性には程遠くても、<strong>方向性が見えるだけのデータは確保する</strong></li>
<li>単に数値が「上がったか・下がったか」ではなく、<strong>目標からどれだけ乖離しているかを数値で把握する</strong></li>
<li><strong>実験を単発のテストではなく、より大きなシステムの一部として捉える</strong>。この実装が違っていても、仮説そのものを信じ続けることはできる</li>
<li>価格実験のように、効果が表れるまで更新サイクルが必要なものなど、<strong>あらかじめ時間を与えるべきダーリンを決めておく</strong></li>
</ul>
<p>何かを早期に止めることは、悲観的な判断ではありません。多くの場合、それは集中力を守り、次の、より良い賭けのための余地を生み出す、最も直接的な方法です。止めないことには、現実的な機会損失があります。生かし続けている実験一つひとつが、本来なら成果を生むかもしれない別の取り組みを選ばない、という判断になっているのです。</p>
<p>これは、植物の剪定のようなものです。元気そうな葉を切り落とすのは心苦しいものですが、それによって植物がより強く、よりよく成長することを分かっているからこそ、あえてそうするのです。</p>
<h2>スピードは、品質やユーザーの信頼を犠牲にする必要はない</h2>
<p>より速く動くことについて話すとき、多くのチームが抱く最大の不安の一つは、「品質が必ず下がってしまうのではないか」という点です。確かに、そうなるケースもあります。しかし、スピードを重視することが本来意味するのは、決して次のようなことではありません。</p>
<ul>
<li>雑な仕事</li>
<li>壊れたユーザー体験</li>
<li>ユーザーがまだ受け入れる準備のできていないものをリリースすること</li>
</ul>
<p>私は以前、コミュニティ型アプリを運営するクライアントにアドバイスしていました。そのチームは、コミュニティを本当に居心地の良い場所に保つため、モデレーションの改善を目指していました。非常に良いアイデアでしたが、同時に規模の大きな取り組みでもありました。検討されていた複数の案はいずれも、スコアリングシステムを構築するバックエンド、フロントエンド、デザイン、プロダクトといった複数領域の連携を必要とするものでした。その複雑さゆえに、この施策は重要であるにもかかわらず、「着手するには大きすぎる」と感じられ、何度も後回しにされていたのです。</p>
<p>視点を引いて全体を見直したとき、ある一点が非常に明確になりました。彼らが構想していたモデレーションシステム全体は、たった一つの前提に依存していたのです。それは、ユーザーが実際に、いいねやリアクション、ポジティブ／ネガティブなやり取りを示すシグナルといった入力を提供してくれる、という前提です。もしユーザーがそれを行わなかったり、想定どおりに振る舞わなかったりすれば、このモデル全体は機能しないか、根本的な見直しが必要になります。</p>
<p>そこで私たちは、モデレーションシステム全体を構築するのではなく、<strong>まずその仮定を検証する</strong>ことに集中しました。</p>
<p>最初の一歩は、スコアリングモデルでも、完全なモデレーションフローでもありませんでした。単に、ユーザー同士のやり取りの中で、いいね／リアクションボタンを実際に使うかどうかを導入し、観察することだったのです。この単一の行動を見るだけで、より大きな構想に土台があるかどうかを判断できました。</p>
<p>もし利用が少なければ、優先すべきはモデレーションロジックの改善ではなく、その入力をどう促すか、あるいはどう再設計するかを理解することになります。一方で、それが機能すれば、チームははるかに高い確信を持って次のステップに進むことができたのです。</p>
<h3>Minimum Viable Product（MVP）とは、実際には何を意味するのか？</h3>
<p>ここで重要なのは、ユーザーにとってそれが「未完成」に感じられなかったという点です。ユーザーは、完成していないシステムにさらされたわけでも、質の低い体験を我慢させられたわけでもありません。ユーザーの視点では、単に他者とのやり取りに対して反応し、感じたことを表現する手段が増えただけでした。実際、それだけで、舞台裏でテストされている仕組みについて何も知らなくても、「良い・悪いインタラクションとは何か」に対するコントロール感が高まっていたのです。</p>
<p>これこそが、スピードを正しく活かした状態です。すべてを一気に作ろうとするのではなく、<strong>まず何を学ぶ必要があるのか</strong>を絞り込むこと。アイデアのリスクを実質的に下げるための、最小のテストは何か。どの前提が間違っていたら、他のすべてが無意味になるのか。</p>
<p>私が Ethan Gar氏による Minimum Viable Product（MVP）の捉え方を気に入っているのは、まさにこの点です。</p>
<p><em>「多くの人は、Minimum Viable Product という考え方を誤解しています。“Minimum” にばかり注目し、“Viable” を見ていないのです。中核となる機能が壊れているアプリを渡されても、価値は得られず、成果も出ません。スピードを重視するとは、価値を提供できる、最もシンプルな“実行可能な”バージョンに焦点を当てることなのです。」</em></p>
<p>この違いは非常に重要です。先ほどのモデレーションの例は、スピードそのものを目的にしたものでも、手を抜いたものでもありませんでした。重要だったのは、早い段階で価値を届けながら、どの前提が本当に重要なのかを学ぶことであり、複雑さに過度にコミットする前に、それを見極めることだったのです。</p>
<p>もちろん、スピードを上げれば、物事が壊れる頻度は高くなります。それはトレードオフの一部です。しかし、ほとんどの場合、ユーザーはそれに気づきません。そして、これを正しく行えたとき、速く学べることで得られる価値は、たまに起こる小さな失敗のコストを上回ります。</p>
<p>そして、ここからがより難しい問いです。<strong>いつスピードが最適な選択ではなくなり</strong>、いつ減速することが品質や信頼を守ることにつながるのでしょうか。</p>
<h2>いつスピードよりも完成度を優先すべきか？</h2>
<p>スピードが常に正解というわけではありません。慎重になることが臆病さではなく、責任ある判断となる場面もあります。完成度を重視してリリースするのが正しい選択となる瞬間です。こうした状況では、ジェネラリスト的な姿勢が通用しなくなり、速く動きすぎることで、得られる価値以上のリスクを生んでしまうことがあります。</p>
<p>チームが陥りがちな誤りは、完成度を常に標準的な運用モードとして扱ってしまうことです。しかし実際には、完成度を最優先すべきなのは、限られた特定の場面においてです。この緊張関係を乗り越えるためには、どの状況であれば意図的にスピードを落とすべきなのかを明確にすることが役立ちます。</p>
<p>以下に挙げるすべてが、すべてのアプリやブランドに当てはまるわけではありません。それでも、これらを一つひとつ確認していくことで、「偶発的に遅くなっている」のではなく、「意図して減速している」状態を見極めやすくなります。</p>
<h3>1. アプリの中核となる機能</h3>
<p>アプリが提供する中核的な価値については、満たすべき最低限の基準があります。抽象的な意味での「完璧さ」ではなく、ユーザーが利用の初期段階で、その価値を明確に体感できるレベルであることが重要です。</p>
<p>これは、Ethan Gar が提唱する「<em>minimum viable value</em>（最小限の実行可能な価値）」という考え方とも密接に一致します。<strong>目的は、すべてをリリースすることではなく、リリース</strong><em><strong>する</strong></em><strong>ものが確実に機能することです</strong>。ユーザーがお金を払っている以上、パフォーマンスや信頼性は重要です。検証や改善のスピードを上げることは可能ですが、その土台となる体験は、最初から明確な基準を満たしている必要があります。</p>
<h3>2. 大規模で一方向な技術的意思決定</h3>
<p>技術的な選択の中には、後戻りが難しいものがあります。たとえば、<a href="https://flutter.dev/">Flutter</a> への移行を検討しているアプリを支援した際には、どれほど多くのものが影響を受けるかが明らかになりました。このような移行は、ほぼすべての要素に関わり、長期的な影響をもたらします。</p>
<p>こうしたケースでは、スピードを落とすことが正当化されます。なぜそれを行うのか、どの問題を本当に解決するのか、そして成功をどのように測定するのかについて、明確にしておく必要があります。よくある落とし穴は、技術的なリライトを「すべてを直すための口実」として使ってしまうことで、その結果、長期の遅延を招いてしまうことです。</p>
<p>ここで言う完成度とは、すべてを劇的に改善することを意味するわけではありません。多くの場合、新しいバージョンが不安定さを持ち込むことなく、少なくとも従来のバージョンと同等に動作することを保証する、という意味です。その基準はチームが想像するより低いこともありますが、それでも守る価値のあるものです。</p>
<h3>3. データプライバシーとセキュリティ</h3>
<p>ユーザーデータを扱う場面では、スピードは二の次になります。プライバシー、同意、トラッキング、コンプライアンスといった領域がこれに含まれます。ここでの不注意は、信頼を一気に損ない、その回復は容易ではありません。</p>
<p>この分野は、荒削りな実験や近道が許される場所ではありません。数少ないケースの一つとして、過度なくらい慎重であることが、ほとんどの場合正しい判断となる領域です。</p>
<h3>4. 配慮が必要なユーザー層</h3>
<p>アプリが、特に配慮を要するユーザー層を対象としている場合は、より慎重な対応が求められます。以前、子ども向けのメンタルヘルスアプリに関わっている人と話したことがありますが、これは二重の意味で非常にセンシティブなテーマでした。</p>
<p>このようなケースでは、意味のあるものをリリースする前に、リサーチや検証に多くの時間と労力が割かれることが一般的です。それは「何もリリースしない」という意味ではありませんが、思慮深さや検証に求められる水準が高く、失敗した場合のコストが極めて重く受け止められている、ということを意味します。</p>
<h3>5. ブランドを定義づける瞬間</h3>
<p>中には、単に機能を追加するだけでなく、ユーザーがブランドをどう捉えるかそのものを変えるリリースもあります。こうした瞬間には、特別な配慮が必要です。</p>
<p>良い例が、フィットネスアプリの <a href="https://www.joinladder.com/">Ladder</a> です。同社は栄養管理機能へと領域を広げ、純粋なフィットネスアプリから、より包括的なヘルスプラットフォームへとポジショニングを変えました。これは競争環境とユーザーの期待の両面において、大きな転換点でした。</p>
<p>最初のバージョンは完璧ではありませんでしたが、必要最低限以上に、意図的に完成度の高いものとして提供されていました。栄養入力についても、音声・画像・テキストといった複数の手段が最初から用意されており、いずれか一つに限定されてはいませんでした。この判断は、スピードや機能範囲の問題ではなく、新しいポジショニングをユーザーに即座に実感してもらうためのものでした。</p>
<h3>6. 不可逆な意思決定（ワンウェイドア）</h3>
<p>Jeff Bezos氏は、意思決定を「ワンウェイドア」と「ツーウェイドア」に分類しています。ツーウェイドアは元に戻せますが、ワンウェイドアは元に戻せません。</p>
<p>ターゲットユーザーを変更すること、アプリの目的を根本的に変えること、あるいは簡単には撤回できない約束をすることは、いずれもワンウェイドアに該当します。こうした局面では、スピードを落とし、前提条件を徹底的に検証し、長期的な影響について誠実に向き合う必要があります。</p>
<h3>7. 実証済みの機能を再構築・スケールする場合</h3>
<p>最後に、すでに有効性が確認されているものについては、実装を急ぎすぎるとかえって逆効果になることがあります。そうして生まれるのが、脆弱なシステム、スパゲッティ化したコード、そして増え続けるバグのバックログです。</p>
<p>この点については、私自身も身に覚えがあります。というのも、私の夫が edtech スタートアップで開発者として働いており、まさにこうした急ぎすぎた実装の後始末に、多くの時間を費やしているからです。最初に短縮できた時間は、ほとんどの場合、後になって利息付きで支払うことになります。</p>
<h2>スピードを基本に、完成度は選択的に</h2>
<p>多くのサブスクリプションチームが失敗する理由は、動きが速すぎることではありません。学ぶまでに時間をかけすぎてしまうことです。<strong>確実性は、より綿密な計画や、より多くの承認、整ったスプレッドシートから生まれるものではありません。リリースし、観察し、判断することで初めて得られるものです。</strong></p>
<p>これは、確実性とリスクのバランスを取る行為でもあります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/72e086d2a49e6e5517cd66f856ce13d09f1e0cdd-1600x1595.png" alt=""/></figure>
<p>速いフィードバックは競争優位になります。それは、成功を保証してくれるからではなく、間違ったことに時間を浪費するのを、より早く止められるからです。スピードは、雑な仕事や信頼の破壊を意味するものではありません。うまく機能している場合、それは学習すべき問いを絞り込み、意味のある最小の前提を検証し、うまくいかないと分かったら素早く次に進むことを意味します。</p>
<p>もちろん、スピードを落とすことが正当化される場面、むしろ必要な場面も存在します。信頼、安全性、不可逆性、あるいはコアとなる価値が関わるときです。しかし、そうした場面は例外であり、原則ではありません。多くの初期フェーズのチームにとって、スピードはあくまでデフォルトであるべきです。完成度は、<strong>間違えたときのコストが、待つことのコストを上回る場合</strong>にのみ、選択的に適用するものなのです。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Google Play のサブスクリプション価格変更を理解する：完全ガイド]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/google-play-price-change</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/google-play-price-change</guid>
      <pubDate>Thu, 29 Jan 2026 03:29:45 GMT</pubDate>
      <dc:creator><![CDATA[Jaewoong Eum]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[オプトイン型とオプトアウト型のモデルの違い、通知要件、実装の詳細を含め、サブスクリプション価格変更をどのように管理すべきかを解説します。また、新規サブスクライバーと既存サブスクライバーの双方に対して、RevenueCat がどのようにスムーズな価格変更管理を支援するかを紹介します。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/cc45f918b8837e064abe4b78bb6bfe48df840821-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>サブスクリプションの価格は、ほとんどの場合固定ではありません。市場環境は変化し、コストは変動し、ビジネス戦略も進化します。付加価値を反映するために価格を引き上げたり、より多くのユーザーを獲得するために価格を引き下げたりと、いずれサブスクリプション価格の調整が必要になるタイミングが訪れるでしょう。しかし、Google Play におけるサブスクリプション価格の変更は、ダッシュボード上の数値を更新するだけで完了するほど単純ではありません。</p>
<p>価格変更は、新規ユーザーと既存のサブスクライバーに対して異なる影響を与え、特定の通知フローが必要となります。また、ユーザーの信頼を維持し、Google Play のポリシーを遵守するためにも、慎重な対応が求められます。そこで本記事では、Google Play におけるサブスクリプション価格変更の仕組みを詳しく解説します。具体的には、以下の内容を取り上げます。</p>
<ul>
<li>新規および既存サブスクライバーそれぞれに対する価格変更の仕組み</li>
<li>オプトイン型とオプトアウト型の値上げの違い</li>
<li>通知要件とそのタイムライン</li>
<li>実装の詳細（具体的な例を交えた解説）</li>
<li>RevenueCat を活用して、サブスクライバー全体に対する価格変更をスムーズに管理する方法</li>
</ul>
<h2><strong>価格変更が異なるサブスクライバーグループに与える影響</strong></h2>
<p>Google Play Console または API を通じてサブスクリプション価格を変更した場合でも、その影響はすべてのユーザーに同じように及ぶわけではありません。Google Play では、新規サブスクライバーと既存サブスクライバーを次のように異なる形で扱います。</p>
<h3><strong>新規サブスクライバー</strong></h3>
<p>新規サブスクライバーに対しては、価格変更は比較的早く反映され、通常は変更後数時間以内に有効になります。新しい価格が有効になると、新たにサブスクリプションを開始するユーザーは、更新後の価格を確認し、その価格で支払うことになります。このグループに対して特別な対応は必要ありません。購入画面に到達した時点で、常に現在の価格が表示されるだけです。</p>
<h3><strong>既存サブスクライバー：レガシー価格コホート</strong></h3>
<p>既存サブスクライバーはまったく異なる扱いになります。デフォルトでは、サブスクリプション価格を変更すると、現在のサブスクライバーは Google Play が<strong>レガシー価格コホート</strong>と呼ぶグループに分類されます。これらのユーザーは、価格変更の影響を受けることなく、更新のたびに引き続き元の価格を支払い続けます。このデフォルトの挙動は、想定外の請求変更からユーザーを保護すると同時に、いつ・どのように新しい価格へ移行させるかを、開発者がコントロールできるようにするためのものです。</p>
<p>このレガシーコホートの仕組みにより、Play Console 上で価格を変更しても、<strong>既存サブスクライバーが支払う金額が自動的に変更されることはありません</strong>。既存サブスクライバーを新しい価格へ移行させるには、明示的に移行を選択する必要があります。</p>
<h2><strong>レガシー価格コホートの終了</strong></h2>
<p>既存のサブスクライバーをレガシー価格から新しい価格へ移行する場合は、価格移行 API を使用します。これにより、新しい価格が現在ユーザーが支払っている金額より高いか低いかに応じて、「値上げ」または「値下げ」のフローが開始されます。</p>
<h3><strong>移行 API の利用</strong></h3>
<p>サブスクライバーを新しい価格へ移行するには、バックエンド側から <a href="https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.subscriptions.basePlans/migratePrices">monetization.subscriptions.basePlans.migratePrices</a> エンドポイントを呼び出します。</p>
<pre><code class="language-kotlin">\/\/ Backend service for initiating price migration
class PriceMigrationService(
    private val androidPublisher: AndroidPublisher
) {
    fun migrateSubscribersToNewPrice(
        packageName: String,
        productId: String,
        basePlanId: String,
        regions: List&lt;String&gt;,
        newPriceAmountMicros: Long,
        currencyCode: String
    ) {
        val regionalConfigs = regions.map { regionCode -&gt;
            RegionalPriceMigrationConfig().apply {
                this.regionCode = regionCode
                this.priceIncreaseType = &quot;OPT_IN&quot; \/\/ or &quot;OPT_OUT&quot; if eligible
                this.oldestAllowedPriceVersionTime = null \/\/ migrate all legacy cohorts
            }
        }

        val request = MigratePricesRequest().apply {
            this.regionalPriceMigrationConfigs = regionalConfigs
        }

        androidPublisher
            .monetization()
            .subscriptions()
            .basePlans()
            .migratePrices(packageName, productId, basePlanId, request)
            .execute()
    }
}</code></pre>
<p>この移行は地域ごとに設定されるため、異なる市場に対して段階的に価格変更を展開したり、地域ごとの価格差を個別に管理したりすることが可能です。</p>
<h2><strong>値下げのフロー</strong></h2>
<p>新しい価格が、ユーザーが現在支払っている金額よりも低い場合、移行プロセスはシンプルで、ユーザーにとっても負担の少ないものになります。値下げは、ユーザーの明示的な同意を必要とせず、自動的に適用されます。</p>
<h3><strong>値下げの仕組み</strong></h3>
<p>サブスクライバーを低い価格へ移行すると、Google Play は値下げが行われたことを知らせるメール通知をユーザーに送信します。その後、次回の更新時から、ユーザーは新しい低い価格で支払うことになります。値下げは自動的に適用されるため、ユーザー側での操作は一切必要ありません。</p>
<p>ただし、タイミングに関して注意すべき点が 1 つあります。Google Play では、更新の最大 48 時間前（インドおよびブラジルでは最大 5 日前）に支払いが承認される場合があります。値下げが適用される前に、すでに高い価格で支払いが承認されていた場合、その更新分については高い価格が請求されますが、以降の更新からは低い価格が適用されます。</p>
<h3><strong>アプリ内での値下げ対応</strong></h3>
<p>実装の観点では、値下げに対して特別な対応はほとんど必要ありません。ユーザーに対して、この変更を知らせるコミュニケーションを行うことを検討するとよいでしょう。</p>
<pre><code class="language-kotlin">class PriceChangeManager(
    private val backendApi: BackendApi
) {
    suspend fun checkForPriceChanges(userId: String): PriceChangeInfo? {
        val subscriptionStatus = backendApi.getSubscriptionStatus(userId)
        val priceChange = subscriptionStatus.pendingPriceChange ?: return null

        return when {
            priceChange.newPriceMicros &lt; priceChange.currentPriceMicros -&gt; {
                PriceChangeInfo.Decrease(
                    currentPrice = formatPrice(priceChange.currentPriceMicros),
                    newPrice = formatPrice(priceChange.newPriceMicros),
                    effectiveDate = priceChange.effectiveDate
                )
            }
            else -&gt; {
                \/\/ Handle price increase (covered in next section)
                handlePriceIncrease(priceChange)
            }
        }
    }
}

\/\/ In your UI layer
fun showPriceDecreaseNotification(info: PriceChangeInfo.Decrease) {
    showBanner(
        title = &quot;Good news!&quot;,
        message = &quot;Your subscription price is decreasing from ${info.currentPrice} &quot; +
            &quot;to ${info.newPrice} starting ${formatDate(info.effectiveDate)}.&quot;
    )
}</code></pre>
<p>値下げは一般的にユーザーにとって前向きな変更であるため、主な対応ポイントは同意フローの管理ではなく、価格が変更されたことをユーザーに確実に認識してもらうことです。</p>
<h2><strong>値上げのフロー：オプトイン型</strong></h2>
<p>値上げは、ユーザーへの周知が必要であり、多くの場合、明示的な同意も求められるため、より複雑になります。値上げのデフォルト方式は<strong>オプトイン型</strong>で、ユーザーが新しい価格に明確に同意しない限り、課金されることはありません。</p>
<h3><strong>オプトインのタイムライン</strong></h3>
<p>オプトイン型の値上げフローは、明確に区切られたフェーズを持つ特定のタイムラインに沿って進行します。</p>
<table>
<thead><tr>
<th><p><strong>フェーズ</strong></p></th>
<th><p><strong>期間</strong></p></th>
<th><p><strong>内容</strong></p></th>
</tr></thead>
<tbody>
<tr>
<td><p>フリーズ期間</p></td>
<td><p>1 日目〜 7 日目</p></td>
<td><p>Google Play からの通知は送信されない。開発者は独自にユーザーへ通知可能</p></td>
</tr>
<tr>
<td><p>通知期間</p></td>
<td><p>8 日目〜 37 日目</p></td>
<td><p>Google Play がメールおよびプッシュ通知を送信</p></td>
</tr>
<tr>
<td><p>有効日</p></td>
<td><p>37 日目以降</p></td>
<td><p>値上げが有効化され、次回更新時に新しい価格で請求</p></td>
</tr>
</tbody>
</table>
<p>冒頭の 7 日間のフリーズ期間は、意図的に設けられています。この期間中、Google Play による自動通知が始まる前に、開発者が自社のチャネルを通じてユーザーに通知することが可能です。これにより、メッセージ内容をコントロールし、値上げによってユーザーが得られる価値を説明する余地が生まれます。</p>
<h3><strong>ユーザーによる同意の要件</strong></h3>
<p>オプトイン型の値上げでは、ユーザーが新しい価格に明示的に同意する必要があります。ユーザーは、Play ストアのサブスクリプション管理画面で価格変更の説明を確認し、同意するか、または拒否するかを選択します。</p>
<p>新しい価格が適用される最初の更新までにユーザーが値上げに同意しなかった場合、そのサブスクリプションは自動的に解約されます。現在の請求期間が終了するまでは引き続き利用できますが、サブスクリプションは更新されません。</p>
<h3><strong>アプリ内でのオプトイン型値上げ対応</strong></h3>
<p>アプリ側では、保留中の値上げを検知し、ユーザーが同意プロセスを完了できるように案内する必要があります。</p>
<pre><code class="language-kotlin">class OptInPriceIncreaseManager(
    private val billingClient: BillingClient,
    private val backendApi: BackendApi
) {
    sealed class PriceIncreaseState {
        object None : PriceIncreaseState()
        data class Pending(
            val currentPrice: String,
            val newPrice: String,
            val effectiveDate: Instant,
            val inFreezePeriod: Boolean
        ) : PriceIncreaseState()
        object Accepted : PriceIncreaseState()
        object Declined : PriceIncreaseState()
    }

    suspend fun checkPriceIncreaseStatus(userId: String): PriceIncreaseState {
        val subscriptionStatus = backendApi.getSubscriptionStatus(userId)
        val priceChange = subscriptionStatus.pendingPriceChange

        if (priceChange == null || priceChange.newPriceMicros &lt;= priceChange.currentPriceMicros) {
            return PriceIncreaseState.None
        }

        return when (priceChange.state) {
            &quot;OUTSTANDING&quot; -&gt; {
                val freezePeriodEnd = priceChange.initiatedAt.plus(Duration.ofDays(7))
                PriceIncreaseState.Pending(
                    currentPrice = formatPrice(priceChange.currentPriceMicros),
                    newPrice = formatPrice(priceChange.newPriceMicros),
                    effectiveDate = priceChange.effectiveDate,
                    inFreezePeriod = Instant.now().isBefore(freezePeriodEnd)
                )
            }
            &quot;CONFIRMED&quot; -&gt; PriceIncreaseState.Accepted
            &quot;CANCELED&quot; -&gt; PriceIncreaseState.Declined
            else -&gt; PriceIncreaseState.None
        }
    }

    fun showPriceIncreaseUI(
        activity: Activity,
        state: PriceIncreaseState.Pending
    ) {
        if (state.inFreezePeriod) {
            \/\/ During freeze period, show your own messaging
            showCustomPriceIncreaseDialog(
                currentPrice = state.currentPrice,
                newPrice = state.newPrice,
                effectiveDate = state.effectiveDate,
                onAcceptClick = { openPlayStoreSubscriptionSettings(activity) }
            )
        } else {
            \/\/ After freeze period, can also use Google's in app messaging
            showInAppMessage(activity)
        }
    }

    private fun showInAppMessage(activity: Activity) {
        val params = InAppMessageParams.newBuilder()
            .addInAppMessageCategoryToShow(
                InAppMessageParams.InAppMessageCategoryId.SUBSCRIPTION_PRICE_CHANGE
            )
            .build()

        billingClient.showInAppMessages(activity, params) { result -&gt;
            \/\/ Handle the result
            when (result.responseCode) {
                InAppMessageResult.InAppMessageResponseCode.NO_ACTION_NEEDED -&gt; {
                    \/\/ No price change message needed or user already responded
                }
                InAppMessageResult.InAppMessageResponseCode.SUBSCRIPTION_STATUS_UPDATED -&gt; {
                    \/\/ User interacted with the message - refresh subscription status
                    refreshSubscriptionStatus()
                }
            }
        }
    }

    private fun openPlayStoreSubscriptionSettings(activity: Activity) {
        val intent = Intent(Intent.ACTION_VIEW).apply {
            data = Uri.parse(
                &quot;&lt;https:\/\/play.google.com\/store\/account\/subscriptions&gt;&quot;
            )
            setPackage(&quot;com.android.vending&quot;)
        }
        activity.startActivity(intent)
    }
}</code></pre>
<h3><strong>値上げ時に価値を伝えるコミュニケーション</strong></h3>
<p>フリーズ期間は、なぜ価格が引き上げられるのかをユーザーに対して直接伝えるための重要な機会です。この期間に適切なコミュニケーションを行うことで、値上げへの同意率を大きく向上させることができます。</p>
<pre><code class="language-kotlin">fun showCustomPriceIncreaseDialog(
    currentPrice: String,
    newPrice: String,
    effectiveDate: Instant,
    onAcceptClick: () -&gt; Unit
) {
    showDialog(
        title = &quot;Subscription Update&quot;,
        message = &quot;&quot;&quot;
            Starting ${formatDate(effectiveDate)}, your subscription will change
            from $currentPrice to $newPrice per month.

            Since you subscribed, we've added:
            \u2022 Advanced analytics dashboard
            \u2022 Offline mode for all content
            \u2022 Priority customer support
            \u2022 And 15+ other features

            To continue enjoying these features, please confirm the new price
            in your Play Store subscription settings.
        &quot;&quot;&quot;.trimIndent(),
        positiveButton = &quot;Review in Play Store&quot; to onAcceptClick,
        negativeButton = &quot;Maybe Later&quot; to { \/* dismiss *\/ }
    )
}</code></pre>
<h2><strong>値上げのフロー：オプトアウト型</strong></h2>
<p>特定の地域および一定の条件下では、Google Play で<strong>オプトアウト型</strong>の値上げが許可されています。オプトアウト型の値上げでは、価格変更についてユーザーに通知は行われますが、ユーザーが明示的に解約やプラン変更を行わない限り、自動的に新しい価格で課金されます。</p>
<h3><strong>適用条件</strong></h3>
<p>オプトアウト型の値上げは、すべてのケースで利用できるわけではありません。利用可否は、地域ごとの対応状況（オプトアウト型値上げに対応している国は一部に限られます）、この方式を使用できる頻度の制限、国ごとに定められた値上げ率または金額の上限、さらに開発者側に求められる追加の適格要件など、複数の要因によって決まります。これらの制約があるため、オプトアウト型の値上げは、価格変更の主な手段というよりも、補助的な選択肢として考えるべきものです。</p>
<h3><strong>オプトアウトのタイムライン</strong></h3>
<p>オプトアウト型の値上げは、オプトイン型とは異なるタイムラインで進行します。</p>
<table>
<thead><tr>
<th><p><strong>項目</strong></p></th>
<th><p><strong>オプトイン</strong></p></th>
<th><p><strong>オプトアウト</strong></p></th>
</tr></thead>
<tbody>
<tr>
<td><p>フリーズ期間</p></td>
<td><p>7 日間</p></td>
<td><p>なし</p></td>
</tr>
<tr>
<td><p>通知期間</p></td>
<td><p>30 日間</p></td>
<td><p>30 日または 60 日（国によって異なる）</p></td>
</tr>
<tr>
<td><p>ユーザーによる操作</p></td>
<td><p>同意が必要</p></td>
<td><p>回避するには解約が必要</p></td>
</tr>
<tr>
<td><p>デフォルトの挙動</p></td>
<td><p>サブスクリプションが解約される</p></td>
<td><p>新しい価格で課金される</p></td>
</tr>
</tbody>
</table>
<p>オプトアウト型における通知期間は国によって異なります。30 日前の通知が求められる国もあれば、60 日前の通知が必要な国もあります。これらの地域ごとの要件は、オプトアウト移行を開始すると、Google Play によって自動的に処理されます。</p>
<h3><strong>オプトアウト型値上げへの対応</strong></h3>
<p>実装の観点では、オプトアウト型の値上げは、サブスクリプションを継続するためにユーザー側で特別な操作を行う必要がないため、比較的シンプルです。</p>
<pre><code class="language-kotlin">fun handleOptOutPriceIncrease(priceChange: PriceChangeInfo) {
    \/\/ For opt-out increases, the state will be &quot;CONFIRMED&quot; rather than &quot;OUTSTANDING&quot;
    \/\/ Users will be charged the new price automatically unless they cancel

    showNotification(
        title = &quot;Subscription Price Update&quot;,
        message = &quot;Starting ${formatDate(priceChange.effectiveDate)}, &quot; +
            &quot;your subscription will be ${priceChange.newPrice}\/month. &quot; +
            &quot;No action needed to continue your subscription.&quot;
    )
}</code></pre>
<p>ただし、ユーザーの操作が不要であっても、今後予定されている価格変更については、ユーザーに対して明確に伝える必要があります。</p>
<h2><strong>アプリ内通知の要件</strong></h2>
<p>オプトイン型・オプトアウト型のいずれの値上げ方式を使用する場合でも、Google Play では、価格変更に関するアプリ内通知を表示することが求められます。この要件は、アプリが動作するすべてのデバイスタイプに適用されます。</p>
<h3><strong>必須となる通知表示先</strong></h3>
<p>価格変更に関する通知は、モバイルデバイス（スマートフォンおよびタブレット）、Android TV、その他のストリーミングデバイスで表示する必要があります。唯一の例外はウォッチデバイスで、画面サイズが限られているため、アプリ内通知は推奨されてはいるものの、必須ではありません。</p>
<h3><strong>通知のタイミング</strong></h3>
<p>オプトイン型の値上げの場合、推奨される対応は、フリーズ期間（1 日目から 7 日目）に、値上げの理由や提供価値を説明する独自のメッセージを表示し、その後、フリーズ期間終了後（8 日目以降）は、リマインダーの表示を継続しつつ、Google の In-App Messaging API を使用することです。</p>
<pre><code class="language-kotlin">class PriceChangeNotificationManager(
    private val billingClient: BillingClient
) {
    fun showPriceChangeNotificationIfNeeded(
        activity: Activity,
        priceIncreaseState: PriceIncreaseState
    ) {
        when (priceIncreaseState) {
            is PriceIncreaseState.Pending -&gt; {
                \/\/ Always show some form of notification for pending increases
                if (priceIncreaseState.inFreezePeriod) {
                    showCustomNotificationBanner(activity, priceIncreaseState)
                } else {
                    \/\/ Use Google's in app messaging
                    showGoogleInAppMessage(activity)
                }
            }
            else -&gt; {
                \/\/ No notification needed
            }
        }
    }

    private fun showCustomNotificationBanner(
        activity: Activity,
        state: PriceIncreaseState.Pending
    ) {
        \/\/ Show a subtle banner at the top of the screen
        val banner = PriceChangeBanner(activity).apply {
            setMessage(
                &quot;Your subscription price will change to ${state.newPrice} &quot; +
                &quot;on ${formatDate(state.effectiveDate)}. Tap to review.&quot;
            )
            setOnClickListener {
                openPriceChangeDetails(activity, state)
            }
        }
        banner.show()
    }

    private fun showGoogleInAppMessage(activity: Activity) {
        val params = InAppMessageParams.newBuilder()
            .addInAppMessageCategoryToShow(
                InAppMessageParams.InAppMessageCategoryId.SUBSCRIPTION_PRICE_CHANGE
            )
            .build()

        billingClient.showInAppMessages(activity, params) { \/* handle result *\/ }
    }
}</code></pre>
<h2><strong>価格変更が重複した場合の対応</strong></h2>
<p>以前の価格変更がまだ保留中の状態で、新たな価格変更を開始した場合はどうなるのでしょうか。Google Play では、先に進行中だった価格変更をキャンセルし、新しい価格変更を適用することで対応します。</p>
<h3><strong>キャンセルおよび置き換えのフロー</strong></h3>
<p>価格変更が重複した場合、以前の価格移行は CANCELED としてマークされ、 SUBSCRIPTION_PRICE_CHANGE_UPDATED の Real-Time Developer Notification (RTDN) が送信されます。その後、新しい価格移行が有効になり、ユーザーは最新の価格変更にのみ対応すればよくなります。この挙動により、ユーザーが複数の連続した値上げに同意することを求められる状況が回避され、ユーザー体験の悪化を防ぐことができます。</p>
<h3><strong>価格変更ステータスの追跡</strong></h3>
<p>バックエンド側では、RTDN 通知を処理して価格変更のステータスを追跡する必要があります。</p>
<pre><code class="language-kotlin">\/\/ Backend notification handler
class PriceChangeNotificationHandler(
    private val subscriptionRepository: SubscriptionRepository,
    private val playDeveloperApi: AndroidPublisher
) {
    fun handlePriceChangeNotification(notification: DeveloperNotification) {
        val purchaseToken = notification.subscriptionNotification.purchaseToken

        when (notification.subscriptionNotification.notificationType) {
            NotificationType.SUBSCRIPTION_PRICE_CHANGE_UPDATED -&gt; {
                \/\/ Query the current state of the price change
                val subscription = playDeveloperApi
                    .purchases()
                    .subscriptionsv2()
                    .get(packageName, purchaseToken)
                    .execute()

                val priceChangeState = subscription.lineItems[0]
                    .autoRenewingPlan
                    ?.priceChangeDetails

                if (priceChangeState != null) {
                    subscriptionRepository.updatePriceChangeStatus(
                        purchaseToken = purchaseToken,
                        state = priceChangeState.priceChangeState,
                        newPriceMicros = priceChangeState.newPrice?.priceMicros,
                        expectedNewPriceChargeTime = priceChangeState.expectedNewPriceChargeTime
                    )

                    \/\/ Notify app layer to update UI if needed
                    notifyPriceChangeUpdated(purchaseToken, priceChangeState)
                }
            }
        }
    }
}</code></pre>
<h2><strong>誤って行った価格変更からの復旧</strong></h2>
<p>ミスは起こり得るものです。意図せず価格を変更してしまった場合や、想定していない価格移行を開始してしまった場合、復旧の方法は変更の種類や、どれだけ時間が経過しているかによって異なります。</p>
<h3><strong>オプトイン型値上げの取り消し</strong></h3>
<p>オプトイン型の値上げでは、取り消しを行うタイミングが非常に重要になります。7 日以内（フリーズ期間中）に取り消した場合、Google Play からユーザーへの通知は一切送信されていないため、この変更は実質的にユーザーから見えないものになります。7 日を過ぎてから取り消した場合、新しい価格でまだ課金されていないユーザーについては価格変更がキャンセルされますが、すでに通知を受け取っているユーザーも存在する可能性があり、混乱を招くことがあります。</p>
<h3><strong>オプトアウト型値上げの取り消し</strong></h3>
<p>オプトアウト型の値上げの場合、元の価格に戻すことで、新しい価格でまだ課金されていないユーザーに対しては値上げがキャンセルされます。ただし、支払い承認のタイミングには注意が必要です。地域によっては、更新の最大 5 日前に支払いが承認されることがあり、すでに承認されているユーザーについては、引き続き課金される可能性があります。</p>
<h3><strong>値下げの取り消し</strong></h3>
<p>値下げをキャンセルして元の高い価格に戻す必要がある場合は、まず Play Console 上で元の価格に戻し、その値上げをオプトイン型にするかオプトアウト型にするかを選択します。その後の結果は、取り消しとユーザーの更新タイミングとの関係によって決まります。取り消しからユーザーの更新までの期間が通知ウィンドウ（国によって 30〜60 日）よりも長い場合、ユーザーは次回の更新時に元の価格を支払います。一方、その期間が通知ウィンドウより短い場合は、ユーザーは一度だけ低い価格で課金され、その後、通常の値上げ通知フローに進むことになります。</p>
<h2><strong>分割払いサブスクリプションと価格変更</strong></h2>
<p>サブスクリプションで分割払いプラン（一定回数の支払いを前提とするプラン）を使用している場合、価格変更の挙動は通常のサブスクリプションとは異なります。</p>
<p>分割払いサブスクリプションでは、価格変更は、現在有効な契約期間が終了した時点でのみ適用されます。分割払いの途中にあるユーザーに対して価格を変更することはできず、新しい価格は、契約が終了した後、最初の更新時に有効になります。たとえば、12 か月の分割払いプランの後に月次の自動更新へ移行するサブスクリプションの場合、どのような価格変更を行っても、その変更が反映されるのは、12 か月の契約期間が完了し、月次更新フェーズに移行してからになります。</p>
<h2><strong>価格変更のテスト</strong></h2>
<p>本番環境のサブスクライバーに価格変更を展開する前に、Google Play が提供するテストツールを使って、各フローを十分に検証することが重要です。</p>
<h3><strong>ライセンステスターの利用</strong></h3>
<p>ライセンステスターは、実際のサブスクライバーに影響を与えることなく、価格変更に関する通知を受け取ることができます。Play Console でライセンステスターを設定し、通知の配信やタイミング、アプリ内メッセージの表示、同意および拒否のフロー、バックエンドにおける状態遷移などを確認してください。</p>
<h3><strong>Play Billing Lab</strong></h3>
<p>Google は、課金シナリオをテストするための <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.play.billingtestcompanion">Play Billing Lab アプリ</a>を提供しています。これを使用して価格変更のシナリオをシミュレーションし、アプリが各状態を正しく処理できているかを検証します。</p>
<h3><strong>監査ログ</strong></h3>
<p>Play Console では、すべての価格変更について変更履歴が記録されます。このログを利用することで、価格がいつ更新されたのか、誰が変更を行ったのか、どの地域が影響を受けたのかを確認できます。この監査ログは、問題の調査や、誤って行われた変更の履歴を振り返る際に非常に有用です。</p>
<h2><strong>RevenueCat が価格変更管理をどのように簡素化するか</strong></h2>
<p>大規模なサブスクライバーベースに対して価格変更を管理するには、高い複雑性が伴います。具体的には、ユーザーごとの移行ステータスの追跡、RTDN 通知の処理、適切なアプリ内メッセージの表示、そしてさまざまなエッジケースへの対応が必要になります。RevenueCat は、こうした複雑さの多くを抽象化しつつ、価格変更を効果的に管理するための追加ツールを提供します。</p>
<h3><strong>自動的な状態管理</strong></h3>
<p>RevenueCat は、Google Play の RTDN 通知を開発者に代わって処理し、保留中の価格変更を含む最新のサブスクリプション状態を維持します。通知を受信・処理するための独自のインフラを構築する代わりに、RevenueCat に対して現在のカスタマー状態を問い合わせるだけで済みます。</p>
<pre><code class="language-kotlin">fun checkForPriceChanges() {
    Purchases.sharedInstance.getCustomerInfoWith { customerInfo -&gt;
        val entitlement = customerInfo.entitlements[&quot;premium&quot;]

        \/\/ RevenueCat's CustomerInfo reflects current subscription state
        \/\/ including any pending price changes processed from RTDN

        if (entitlement?.isActive == true) {
            \/\/ Check for billing issues that might indicate price change problems
            entitlement.billingIssueDetectedAt?.let { issueDate -&gt;
                showBillingRecoveryUI(customerInfo.managementURL)
            }
        }
    }
}</code></pre>
<h3><strong>ユーザー操作のための管理 URL</strong></h3>
<p>RevenueCat の CustomerInfo には、 <a href="https://www.revenuecat.com/docs/subscription-guidance/managing-subscriptions#using-the-managementurl-to-help-customers-cancel-a-subscription">managementURL</a> プロパティが含まれており、Google Play のサブスクリプション管理画面への直接リンクが提供されます。ユーザーは、この画面で価格変更への同意または拒否を行います。</p>
<pre><code class="language-kotlin">fun guideToPriceChangeAcceptance(customerInfo: CustomerInfo) {
    val managementUrl = customerInfo.managementURL

    showDialog(
        title = &quot;Action Required&quot;,
        message = &quot;Please review the upcoming changes to your subscription.&quot;,
        positiveButton = &quot;Open Settings&quot; to {
            openUrl(managementUrl)
        }
    )
}</code></pre>
<h3><strong>クロスプラットフォームでの一貫性</strong></h3>
<p>複数のプラットフォームにまたがるアプリの場合でも、RevenueCat は Android、iOS、その他のプラットフォーム間でサブスクリプション状態の一貫性を確保します。ユーザーがいずれかのデバイスで価格変更に同意すると、その更新された状態は追加の実装なしで、すべてのデバイスに反映されます。</p>
<h3><strong>サーバーサイド処理のための Webhook</strong></h3>
<p>RevenueCat は、サブスクリプションイベントを正規化された形式でサーバーに通知する Webhook を提供します。これは、生の RTDN 通知を直接処理するよりもシンプルで、価格変更に関連するイベントも含まれています。</p>
<pre><code class="language-kotlin">\/\/ Your webhook handler
fun handleRevenueCatWebhook(event: WebhookEvent) {
    when (event.type) {
        &quot;RENEWAL&quot; -&gt; {
            \/\/ Renewal completed - check if price changed
            val transaction = event.transaction
            if (transaction.priceInPurchasedCurrency != previousPrice) {
                \/\/ Price change took effect
                updateUserPricing(event.appUserId, transaction.priceInPurchasedCurrency)
            }
        }
        &quot;CANCELLATION&quot; -&gt; {
            \/\/ User canceled, might be due to price change rejection
            val reason = event.cancellationReason
            if (reason == &quot;PRICE_INCREASE&quot;) {
                \/\/ Track churn related to price changes
                analytics.trackPriceChangeChurn(event.appUserId)
            }
        }
    }
}</code></pre>
<h3><strong>価格変更の影響を把握するための分析機能</strong></h3>
<p><a href="https://www.revenuecat.com/docs/dashboard-and-metrics/charts">RevenueCatのChart</a> では、価格変更の影響を把握するための分析データを確認できます。これには、価格変更のタイミングと関連づけた解約率、値上げ通知を受け取ったサブスクライバーのコンバージョン率、価格変更前後の収益への影響分析などが含まれます。これらのインサイトは、価格戦略に関する意思決定を行い、今後の価格変更において最適なタイミングやコミュニケーション方法を見極めるのに役立ちます。</p>
<h3><strong>RevenueCat を使う際のベストプラクティス</strong></h3>
<p>RevenueCat を価格変更管理に利用する場合は、カスタマー属性を活用して保留中の価格変更があるユーザーを特定し、フリーズ期間中に対象を絞ったコミュニケーションを行うなど、積極的な情報提供を重視してください。また、価格変更通知から同意に至るまでのコンバージョン率や、影響を受けたユーザーの解約率といった主要な指標を継続的にモニタリングすることも重要です。さらに、managementURL を通じて、ユーザーが Play ストアのサブスクリプション設定へ簡単にアクセスできる導線を常に用意しておくべきです。最後に、RevenueCat が提供する正規化されたデータを活用することで、値上げが保留中の状態でプラン変更が行われた場合などのエッジケースにも、無理なく対応できます。</p>
<h2><strong>サブスクリプション価格変更のベストプラクティス</strong></h2>
<p>これまでに解説してきた仕組みを踏まえ、価格変更を成功させるために実践すべき重要なポイントを紹介します。</p>
<h3><strong>コミュニケーション戦略を計画する</strong></h3>
<p>価格変更を開始する前に、影響を受けるユーザーにどのように伝えるかを計画しておきましょう。ユーザーが得られる価値を説明するメッセージを用意し、フリーズ期間を使って独自の案内を行うかどうかを検討します。また、価格変更に敏感なユーザー向けに、年額プランや既存価格を維持する選択肢などの代替案を提示することも考えられます。</p>
<h3><strong>地域ごとに段階的に展開する</strong></h3>
<p>グローバルに価格を引き上げる場合は、地域ごとに段階的に展開することを検討してください。まずは規模の小さい市場でテストを行い、反応を確認したうえで、初期のフィードバックをもとにメッセージを調整します。最大規模の市場に影響が及ぶ前に、問題へ対応する時間を確保することが重要です。</p>
<h3><strong>同意率をモニタリングする</strong></h3>
<p>オプトイン型の値上げに対して、どれだけのユーザーが同意し、どれだけのユーザーがサブスクリプションを解約しているかを追跡します。</p>
<pre><code class="language-kotlin">class PriceChangeAnalytics(
    private val analytics: AnalyticsService
) {
    fun trackPriceChangeOutcome(
        userId: String,
        originalPrice: Long,
        newPrice: Long,
        outcome: PriceChangeOutcome
    ) {
        analytics.track(
            event = &quot;price_change_outcome&quot;,
            properties = mapOf(
                &quot;user_id&quot; to userId,
                &quot;original_price_micros&quot; to originalPrice,
                &quot;new_price_micros&quot; to newPrice,
                &quot;increase_percentage&quot; to calculatePercentage(originalPrice, newPrice),
                &quot;outcome&quot; to outcome.name
            )
        )
    }
}

enum class PriceChangeOutcome {
    ACCEPTED,
    DECLINED,
    SUBSCRIPTION_CANCELED,
    NO_RESPONSE_BEFORE_DEADLINE
}</code></pre>
<p>同意率が想定より低い場合は、コミュニケーション戦略の見直しや、値上げ幅そのものの再検討が必要になるかもしれません。</p>
<h3><strong>代替案を用意する</strong></h3>
<p>より高い価格を支払う意思がないユーザーでも、別のプランであれば継続する可能性があります。価格を抑えたプランへのダウングレード導線を用意したり、実質的な月額単価を下げた年額プランを提供したり、解約を防ぐための「ライト」プランを新たに用意することも有効です。</p>
<h3><strong>アプリ内での移行をスムーズに処理する</strong></h3>
<p>価格変更中のあらゆる状態を、アプリが適切に処理できるようにしておきましょう。値上げが保留中のユーザーには分かりやすいメッセージを表示し、値上げを拒否したユーザーが即座に利用できなくなることがないよう配慮します。また、同意したユーザーにとっては、価格の切り替えが違和感なく行われることが重要です。</p>
<h2><strong>まとめ</strong></h2>
<p>Google Play におけるサブスクリプション価格変更は、ユーザーを保護しつつ、開発者に柔軟性を提供するために設計された、慎重に構成されたプロセスです。理解しておくべき重要なポイントは、既存サブスクライバーを自動的な価格変更から守るレガシー価格コホートの仕組み、オプトイン型とオプトアウト型の値上げの違いとそれぞれのタイムライン、デバイスタイプを横断して適用される通知要件、そしてタイミングや適用可否に影響する地域ごとの違いです。</p>
<p>値下げの場合、プロセスは比較的シンプルです。ユーザーは次回の更新時から自動的に低い価格で課金されます。一方、値上げの場合は、デフォルトでオプトイン型フローが適用され、7 日間のフリーズ期間の後に 30 日間の Google Play 通知期間を経て、有効日を迎えます。このフローでは、ユーザーの明示的な同意が必要になります。</p>
<p>価格変更を直接実装するには、RTDN 通知の処理、バックエンドでのサブスクリプション状態の管理、そしてユーザーが同意プロセスを進められるようにするための UI 構築が必要です。RevenueCat は、これらの通知処理を自動で行い、正規化されたデータ、分析機能、さらにユーザー操作のための管理 URL を提供することで、この複雑さを大幅に軽減します。その結果、開発者はビジネスや、より重要な取り組みに集中することができます。</p>
<p>どのようなアプローチを取るにしても、価格変更を成功させるためには、ユーザーが受け取る価値について明確に伝えることが不可欠です。フリーズ期間は、Google Play の自動通知が始まる前に、メッセージの方向性を自らコントロールできる貴重な機会です。この期間を有効に活用することで、アプリが提供する価値を反映した価格調整を行いながら、ユーザーの信頼を維持することができます。サブスクリプション価格変更に関する完全なドキュメントについては、<a href="https://developer.android.com/google/play/billing/price-changes">Android Developer の公式ドキュメント</a>および <a href="https://www.revenuecat.com/docs/subscription-guidance/managing-subscriptions">RevenueCat のサブスクリプション管理ガイド</a>を参照してください。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[サブスクアプリがハイブリッドマネタイズで収益を最大化する方法]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/hybrid-monetization-techniques</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/hybrid-monetization-techniques</guid>
      <pubDate>Wed, 28 Jan 2026 18:52:43 GMT</pubDate>
      <dc:creator><![CDATA[Thomas Petit]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[異なる支払い意欲を持つユーザーに対応するために、複数の収益モデルを組み合わせる方法]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/ac7a1c89cdb8f5da0f4e95a6d850ef8313c21a21-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>ハイブリッドマネタイズとは、サブスクリプションに加えて、ユーザーから収益を得るための別の手段を組み合わせることを指します。たとえば、アプリ内課金（IAP）、消費型アイテム、広告、パートナーシップなどです。</p>
<p>ただし、ここで強調しておきたい点があります。目的はサブスクリプションを置き換えることでは<em>ありません</em>。あくまで、それを補完することです。ユーザーがアプリを発見し、利用し、そして離脱していく過程の中で、ハイブリッドマネタイズは可能な限り多くのユーザーを収益化の対象として捉えることを可能にします。</p>
<p><strong>なぜハイブリッドマネタイズなのか？サブスクリプション単体モデルの限界</strong></p>
<p>私が長い間ハイブリッドマネタイズを提唱してきた理由は、獲得（UA）が本質的にはビジネスモデル同士の<em>競争</em>だからです。ARPUが高いほど、有料広告オークションで有利なポジションを取れ、回収期間は短くなり、リテンションやオンボーディングなどに再投資できる余地も広がります。そのため、サブスクリプションは優れたモデルである一方で、根本的な欠陥も抱えています。それが「高い最低ライン（フロア）と低い上限（シーリング）」という性質です（これについては後ほど詳しく触れます）。</p>
<p>サブスクリプションは二択です。支払うか、支払わないか。</p>
<p>しかし、実際の需要は二択ではありません。<strong>支払い意欲額</strong>は連続的に分布しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/389aa29cf8cf0c0bc68d900061061b80cafe05df-2236x1310.png" alt=""/></figure>
<p>上のグラフ（<a href="https://www.revenuecat.com/state-of-subscription-apps-2025/">State of Subscription Apps 2025</a> より）によると、90%のユーザーはコンバージョンしないと予測されています。しかも、特定の業種、地域、非iOSプラットフォームでは、この状況はさらに深刻です。昨年、私はある国で100万人以上のユーザーを獲得したにもかかわらず、有料サブスクユーザーが1,000人未満というアプリを目にしました。</p>
<p>問題は、単一の継続課金価格が「ほとんどのユーザーは同程度の支払い意欲を持っている」という前提に立っていることです。しかし現実には、プレミアム価格でも喜んで支払うユーザーもいれば、たまに価値を感じるものの、継続課金は正当化できないユーザーもおり、そもそも決してサブスクしないユーザーも多く存在します。</p>
<p>その結果、よくある2つのボトルネックが生まれます。</p>
<h3>高いシーリング（上限）の問題</h3>
<p>単一のオファーは、購入意欲の低いユーザーにとって障壁が大きすぎます。割引を試したり、サブスクリプション期間を短くしたりすることはできますが、それでも一部のユーザー（たとえば新興国のAndroidユーザーなど）は反応しません。</p>
<p>多くのユーザーは、<em>そもそも</em>サブスクリプションに加入しません。しかし彼らは依然として価値を生み出しています（注意、データ、拡散など）。そして、提示の仕方を変えたり（たとえばアプリ内課金を提供したり）、より低い価格帯であれば、何らかの形で支払う意思を持つユーザーもいます。</p>
<p>問題点：アプリに価値を感じているにもかかわらず、サブスクリプションという心理的・金銭的ハードルを越えられない<strong>購買意欲の低いユーザーからの収益を取りこぼしています</strong>。</p>
<h3><strong>低いフロア（下限）の問題</strong></h3>
<p>高いシーリングよりも、むしろ深刻かもしれません。多くのサブスクリプションモデルには「クジラ」、つまり超高額課金ユーザーが存在しません。ハイブリッドマネタイズ（主にIAP＋広告）を先駆けてきたゲームアプリでは、他のユーザーの支出が少なくても、ごく一部のユーザーが売上の大部分を占めることがあります。たとえば、私はかつて大規模な「マッチ3」ゲームのデータで、有料ユーザーの2%のうち、さらにその2%未満（つまり全体の0.04%）が、実際には売上の半分以上を生み出しているケースを見たことがあります。サブスクリプション単体のアプリでは、この可能性が失われます。</p>
<p>問題点：他のユーザーのコンバージョンを損なわずに価格を引き上げることができないため、<strong>購入意欲の高いユーザーを十分にマネタイズできていません</strong>。</p>
<p>本質的に、ハイブリッドマネタイズとは<strong>「需要の粒度」に「価格の粒度」を合わせる</strong>ことなのです。</p>
<h2><strong>需要曲線への適応</strong></h2>
<p>多くのアプリは、利用意図・利用頻度・緊急度が大きく異なるユーザーを同時に抱えています。しかし単一のサブスクリプション価格は、そうした違いをすべて平坦化してしまいます。</p>
<p>視覚的には、オーディエンスを次のような需要曲線として捉えることができます。</p>
<ul>
<li>左側：パワー、スピード、利便性のためなら、より高い金額を支払う意思のあるユーザー</li>
<li>右側：まったく支払う意思のないユーザー</li>
<li>中央：ときどき価値は欲しいが、サブスクリプションには抵抗があるユーザー</li>
</ul>
<p>ハイブリッドマネタイズは、この需要曲線上の各ポイントに対して、適切なマネタイズ手段を配置し、すべてのユーザーに同じ選択を強制することを避けます。</p>
<p>アプリにおけるマネタイズの需要曲線は非常に極端で、次のように表現できます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/b2b29aeafeb32c02932523d6b6c80ae9076aa79b-1600x906.png" alt=""/></figure>
<p>この直線上の一点だけを選ぶ二値的なサブスクリプションモデルでは、多くの収益機会を取りこぼしています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a0cb4030730130617c5ba38ffbc66dad5ec0e977-1600x900.png" alt=""/></figure>
<p>需要曲線に適応することで、オファーを改善し、ARPUを高めるための選択肢は数多く存在します。以下にその手段の一部を示します。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/0c3631322b4be1fb0845d20e9a994d0a0b5aef60-1233x938.png" alt=""/></figure>
<h2><strong>ハイブリッドマネタイズの手法（アプリ事例付き）</strong></h2>
<p>私がこれまでに関わり、また観察してきたハイブリッドマネタイズの事例はすべて、<strong>サブスクリプションを重力の中心（コア）として維持</strong>したまま、その上にレイヤーを重ねるという構成になっています。ここから、いくつかの具体例を見ていきましょう。</p>
<h3><strong>1. 価格設定とパッケージング</strong></h3>
<p>ここではあまり深掘りしませんが、より高度なマネタイズに向けた最も分かりやすい最初の一歩は価格設定とパッケージの調整です。<a href="https://www.revenuecat.com/feature/paywalls/">ペイウォールのA/Bテスト</a>が以前よりも簡単に行えるようになったことで、これはすでに多くのアプリで実践されています。</p>
<p>この段階では、開発者は（そして実際に）さまざまな要素を試すことができます。たとえば、異なる価格帯の検証、プラン構成の組み合わせ（プランはいくつ用意するのか、週次／月次／年次なのか）、セグメンテーション（これは長年の遅れを経て、AIによって<em>ようやく</em>本格化すると私は予想しています）、価格のローカライズなどです。</p>
<p>かなり極端な例としては、Headway のディスカウントフローがあります。私のケースでは、提示されるオファーが €89.99 から €21.99 まで下がっていきました。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c1b95df153281ef9f75e9e6eb2285250fe2313d7-1600x757.png" alt=""/></figure>
<h3><strong>2. サブスクリプションのティア（段階）</strong></h3>
<p>複数のサブスクリプションティアを提供すること自体は、厳密には「ハイブリッド」ではありません（あくまでサブスクリプションのみだからです）。しかし、需要曲線に合わせて提供内容を調整するという点では、ハイブリッドマネタイズに近づくアプローチと言えます。</p>
<p>SaaS（Software as a Service）ビジネスでは、異なるユーザープロファイルに対して機能を段階的に提供する手法が、以前から成功裏に使われてきました。その一例が Photoroom です。Photoroom では、利用パターンに基づいてユーザーをセグメントし、Photoroom Pro、Max、Ultra といった複数のプランを提供しています。</p>
<p>サブスクリプションの巨大プレイヤーである Noom や Tinder も、いずれもティア（段階）を活用しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/87109a9ef37d4e5377393d5d92bd1f3ff4ec6e99-1600x705.png" alt=""/></figure>
<p>また、厳密にはサブスクリプションの「ティア」とは言えないものの、<a href="https://www.revenuecat.com/blog/growth/app-portfolio-vs-single-app/">複数のアプリをポートフォリオ</a>として持つ多くのデベロッパーは、<strong>バンドル</strong>を用いてより高い価格帯へのアップセルを行っています。例としては、Monkey Taps（アプリ内およびアプリストア上）や Reflectly（Web）などがあります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c9f76e0d9e192456f790a021fa959eee01407171-1600x889.png" alt=""/></figure>
<h3><strong>3. サブスクリプション＋広告</strong></h3>
<p>広告は、価格に関係なく一切支払う意思を示さないユーザーが約90%いる状況において、最も分かりやすいマネタイズ手段のひとつです。私自身、99%オフという極端なディスカウントを試したことがありますが、コンバージョン率の上昇はごくわずかでした。このようなユーザー層が多い場合、広告で補完するのは有効な手法になり得ます。</p>
<p>このユースケースでよく知られている例が、サブスクリプションのロールモデルとも言える <a href="https://subclub.com/episode/how-to-time-reactivation-campaigns-for-maximum-impact-jackson-shuttleworth-duolingo">Duolingo</a> です。Duolingo は、<a href="https://www.youtube.com/watch?v=fDJ5qzjSZXI">広告付きのコアとなるフリーミアムオファー</a>に加え、広告を削除できるプレミアムプランや IAP を組み合わせています。いくつかの事例<a href="https://growthgems.substack.com/i/159941562/the-opportunity-is-too-big-to-ignore">研究</a>では、サブスクリプション＋広告により、ユーザーベースや実装次第で 10〜30%の収益向上が見込めるとされています。</p>
<p>ただし注意すべき点として、ハードペイウォール型のアプリでは広告収益には限界があることも念頭に置く必要があります。たとえば Spotify の場合、広告を受け入れている無料ユーザー（＝ユーザー数としては多数派）からの収益は、全体の5%未満にとどまっています。私が関わった別のケースでは、1%程度しかありませんでした。</p>
<h4><strong>サブスクリプション＋広告を実装する際の考慮点</strong></h4>
<p>アプリに広告を組み込む際には、プライバシー法規制、広告 SDK を組み込むことによる影響、チャーン（解約率）への影響など、考慮すべき点が数多くあります。以下は、参考になる良質なリソースです。</p>
<ul>
<li><a href="https://www.revenuecat.com/blog/growth/revenue-strategies-low-intent-users/">7 smart ways to monetize low-intent users</a>（低インテントユーザーを賢くマネタイズする7つの方法）</li>
<li><a href="https://www.revenuecat.com/blog/growth/how-to-turn-freemium-users-into-loyal-subscribers/">How to turn freemium users into loyal subscribers</a>（フリーミアムユーザーをロイヤルな購読者へと転換する方法）</li>
<li><a href="https://www.revenuecat.com/blog/growth/ad-monetization-subscription-apps/">Boosting ARPU with ads: How to monetize free users without degrading UX</a>（UXを損なわずに広告でARPUを高める方法）</li>
<li><a href="https://growthgems.substack.com/p/should-you-also-monetize-your-subscription?open=false#%C2%A7the-opportunity-is-too-big-to-ignore">Sylvain Gauchet’s pros and cons of ads in subscription apps</a>（Sylvain Gauchetによるサブスクリプションアプリにおける広告のメリットとデメリット）</li>
</ul>
<h4><strong>サブスクリプション＋広告の手法</strong></h4>
<p>一部のアプリでは、広告を単なる収益追加の手段ではなく、障壁を生み出して広告のない体験（＝サブスクリプション）へ誘導する手段として捉えています。たとえば Impulse では、戦略的に配置された複数の箇所で<strong>「広告を削除する」ことをユーザーに促しています</strong>。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/5301b73822e8b59480f9904ef52742599169dc10-1787x863.png" alt=""/></figure>
<p>このフロー（<a href="https://growthgems.substack.com/p/should-you-also-monetize-your-subscription">GrowthGems</a> より）では、広告を閉じると、週次プランとライフタイムプランを含むサブスクリプションのペイウォールが表示されます。さらにそれを閉じると、$4.99 で広告を削除できる非更新型 IAP が提示されます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/2fed797d6aaab7e37f63ad5877385defb83f6542-1600x938.png" alt=""/></figure>
<p>ゲーム業界の専門家である Matej Lancaric と Felix Braberg は、<a href="https://www.youtube.com/watch?v=yfI-rZNCi0M">Impulse のハイブリッドモデルを分析した非常に良い動画</a>を公開しています。また、<strong>広告枠を使って自社サブスクリプションを宣伝する</strong>ことも可能です。たとえば<a href="https://www.youtube.com/watch?v=QBaDsqhFnz8">この動画</a>では、Duolingo の広告ブレイク中に 2 本の広告が表示され、1 本は NYT Games、もう 1 本は Duolingo MAX の広告になっています。ややメタな構造ですが、機能している例です。</p>
<p><a href="https://www.youtube.com/watch?v=QBaDsqhFnz8">Watch on YouTube</a></p>
<p>最後に、シンプルなバナー広告でも大きな効果を発揮する場合があります。たとえば park4night の例では、（興味深いことに米国外でも）ストア外の導線へと誘導しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/ebec2741f03acea1c3b2d53a01b40fd4f20770b7-784x1600.png" alt=""/></figure>
<h3><strong>4. サブスクリプション＋パートナーシップ</strong></h3>
<p>ここで言う「パートナーシップ」とは、AppLovin、Unity、AdMob などの SDK 経由で提供される一般的な広告モデルの代替を指しています。特定の業界（バーティカル）では、関連性の高いブランドと提携することで、大きなインパクト――場合によっては大きな収益――を生む可能性があります。これは、そのパートナーがプレミアムユーザーを含むユーザー体験に付加価値をもたらせるケースがあるためです。

その例として挙げられるのが、<a href="https://business.strava.com/resources/ultimate-guide-sponsored-challenges">Strava のスポンサー付きチャレンジ</a>です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/dd519f8b22d22c3a4c23c55e50412520964b034b-1180x468.png" alt=""/></figure>
<p>
このようなパートナーシップは、<strong>ユーザージャーニー上のさまざまなトリガーポイントに組み込む</strong>ことができます。下記の Prematch の例は、その実装パターンを示しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/669f39ec4928ec2a29ef25cda849b972fb186e56-1600x699.png" alt=""/></figure>
<h3><strong>5. サブスクリプション＋Eコマース／アフィリエイト</strong></h3>
<p>前述のとおり、サブスクリプション単一モデルの限界のひとつは、熱量の高いパワーユーザーやアンバサダーが、ブランドとさらに深く関わるための選択肢が用意されていない点にあります。そこで、サブスクリプションを補完する手段として有効なのが、Eコマースやアフィリエイト戦略の追加です。</p>
<p>たとえば、一部の熱心なファン（メガファン）は、<strong>ブランドグッズや物理的な商品を購入</strong>してくれる可能性があります。その例が Lingokids です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/e7ff74f1e88c95782864a63920e108bfa2140f86-375x277.png" alt=""/></figure>
<p>また、Eコマースの機会がプロダクト内に組み込まれているケースもあります。たとえば、釣り人向けのソーシャルネットワークアプリ Fishbrain では、<strong>マーケットプレイス</strong>が提供されています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/71546cab5d50d8b52a5150c5bfc079a07da945aa-226x490.png" alt=""/></figure>
<p>さらに間接的な手法としては、<strong>他社と提携し、ユーザーに特典や割引を提供する</strong>方法もあります。これは Revolut が採用しているアプローチです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/41ba8b7d96c51a72bfb78639f54a8d7d509a0acb-226x491.png" alt=""/></figure>
<h3><strong>6. サブスクリプション＋消費型／単発のアプリ内課金（IAP）</strong></h3>
<p>最後に紹介するのが、（多くのアプリにとって）最も大きな収益向上ポテンシャルを持つ手法です。それが、サブスクリプションに加えて、消費型アイテムや単発の IAP を提供することです。これらはアプリビジネスにとって非常に大きなリターンをもたらし得るにもかかわらず、依然として十分に活用されていません。</p>
<p><a href="https://www.revenuecat.com/state-of-subscription-apps-2025/">RevenueCat の State of Subscription Apps 2025</a> レポートによると、消費型アイテムの利用は限定的で、ゲーム分野（約 40%）を除くと、これらのマネタイズモデルを採用しているアプリは全体の 5〜15% に留まっています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/b517e4abe15af7effb9bfb40cd5079618165dccc-1308x819.png" alt=""/></figure>
<p>この手法を採用しているアプリは少数派ですが、採用しているアプリははるかに高い収益を上げています。<a href="https://www.revenuecat.com/blog/growth/key-insights-from-app-growth-annual-2024/">最近のデータ</a>では、ハイブリッド購入者は購入者全体のわずか 7% に過ぎない一方で、総収益の 25% を生み出していることが示されています。</p>
<p>非更新型／消費型アイテムは、サブスクリプションではカバーできない多くのユースケースに適合します。
サブスクリプションの代替（そもそも購読されないケース）として機能する場合もあれば、追加支出としてサブスクリプションの上に重ねられることもあります。アプリの種類によって、その中身は大きく異なりますが、代表的な例が「ブースト」です。これは <a href="https://www.revenuecat.com/blog/growth/ravi-mehta-tinder-sub-club-podcast-2025/">Tinder</a> や Wallapop といった、デーティングアプリやマーケットプレイスでよく見られます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c876f932423ef041818fd90c2f78a548543bf6c0-1076x898.png" alt=""/></figure>
<p>アプリ内課金は、価格に敏感なユーザーが<a href="http://unlock premium features individually, or for a limited time">プレミアム機能を個別、または期間限定でアンロックする手段</a>としても使えます。たとえば、私が関わったある学習アプリでは、数日間すべてのコンテンツにアクセスできる単発 IAP（いわゆる「週末パス」）を追加しました。また、コンテンツ階層全体を解放しなくても、特定のレッスンだけにアクセスできる IAPも導入しました。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/7fbcdc933246a24678f754439eb1b111a37a1ce9-309x732.png" alt=""/></figure>
<p>消費型アイテムは<strong>アップセル</strong>としても機能し、特にヘルスケアやフィットネス分野で高い効果を発揮しています。たとえば、特定の部位を鍛えるためのガイド、特定の個人コーチ、専用のワークアウトや食事プログラムなどです。これらは、オンボーディング時に直接アップセルとして販売されることもありますが、私の経験上、アプリ内よりも Web（支払い完了後）のほうがうまく機能するケースが多いです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/4e87ae969523f520a8eb23868510bc3dcbc41fb9-929x724.png" alt=""/></figure>
<p>IAP の可能性は非常に幅広く、Nebula は単発のタロット占いや霊能者との 1 対 1 チャットを販売し、Duolingo は個別テストや認定資格を提供しています。ほかにも、チップ、スタンプ、カスタマイズ要素などを提供するアプリは数多く存在します。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/f8e598914c0736468d55dd2f7429a3db08b97554-588x590.png" alt=""/></figure>
<p>消費型アイテムに関する注意点として、そしておそらくここで避けて通れない論点が AI です。</p>
<p>AI には大きなコストが伴うため、<a href="https://www.revenuecat.com/blog/growth/ai-subscription-app-pricing/#h-why-do-ai-apps-cost-more-to-run">同じ料金を支払っているユーザー間でも、実際の利用コストが大きく異なる場合があります</a>。私が見た中で最初期のハイブリッド AI モデルのひとつが Lensa AI で、200 枚の AI アバターを $9.99 で販売していましたが、サブスクリプションに加入するとクレジット価格が 50% 割引になる仕組みでした（なぜ有料なのかを明示している点が興味深いと感じました）。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/57f6c032a2546991ad399d05c164f3f219eac610-301x739.png" alt=""/></figure>
<p>ChatGPT のような段階的なサブスクリプションと並行して、追加利用のための単発課金は、<a href="https://www.revenuecat.com/blog/growth/ai-subscription-app-pricing/#h-why-do-ai-apps-cost-more-to-run">AI アプリの間でますます一般的</a>になりつつあります。</p>
<h3><strong>7. 積み重ねる：ハイブリッド・マネタイズ手法を組み合わせる</strong></h3>
<p>ハイブリッドな選択肢は相互排他的ではなく、加算的です。であれば、重ねて使わない理由はありません。最も成熟したサブスクリプションアプリは、アップセル手法をひとつだけ採用するのではなく、複数を組み合わせています。</p>
<p>この図は、<a href="https://www.youtube.com/@SubversivePodcast">Subversive podcast</a>の制作者であり、有名な <a href="https://www.revenuecat.com/blog/growth/the-subscription-value-loop-a-framework-for-subscription-app-growth/">Subscription Value Loop</a> を提唱した <a href="https://philgcarter.substack.com/p/the-subscription-value-loop">Phil Carter</a>氏によるもので、Tinder がどのように需要曲線に適応したかを示しています。また、Tinder の元 Chief Product Officer である Ravi Mehta は、<a href="https://subclub.com/episode/how-tinder-captures-more-value-with-tiered-pricing-and-consumables-ravi-mehta">Sub Club podcast でこの戦略について詳しく語っています</a>。ハイブリッド・マネタイズが実際にどのように機能するのかを知るうえで、非常におすすめです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a684cc4f7434dd99806d6ffa6f77285092eb2b0c-1176x705.png" alt=""/></figure>
<p>Listen on: <a href="https://www.youtube.com/watch?v=AWI3rofh0BA">YouTube</a> · <a href="https://open.spotify.com/episode/2aWtd0a16r42SSIlSrDV8p?si=b663818739c94b39">Spotify</a> · <a href="https://podcasts.apple.com/us/podcast/how-tinder-captures-more-value-with-tiered-pricing/id1538057974?i=1000738494460">Apple Podcasts</a></p>
<p>以下は、複数の非サブスクリプション型収益源を組み合わせる方法の例です。</p>
<h4><strong>すべてを提供する！</strong></h4>
<p>たとえば、減量アプリ Simple は、まずトライアル期間をスキップするためのアップセルを提示し、その後に複数のサブスクリプション階層を用意し、さらにアプリ内ガイドの単発購入も提供しています。正直、かなり<em>盛りだくさん</em>です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/3883f033420ee9f3fb7dc10e3ffb03cf0ce40b0c-1600x925.png" alt=""/></figure>
<p>Me アプリも似た構成を採用しており、コアとなるサブスクリプションに加えて、コーチング、特典、アップセルが用意されています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a22be8fca38575097eaa14d3932a0e6454877ebf-1600x902.png" alt=""/></figure>
<h4><strong>リアル商品とデジタル商品のバンドル</strong></h4>
<p>もうひとつの革新的（ただし比較的まれな）例が、デジタル商品とリアル商品をバンドルする手法です。これは高級ブランドやデザイナー向けに適しているように感じられますが、実際にはどのアプリでも成立し得ます。Arya は、初期オファーや、その後のストアでのアップセルを通じてこの手法を採用しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/541bccaefd09e1b173b1a1a94b78397325cfefcf-1600x893.png" alt=""/></figure>
<p>これらの例は細部こそ異なりますが、根底にあるロジックは同じです。有料サブスクライバーに転換するだけでも十分に難しいのだから、サブスク利用者から追加でマネタイズできる機会があるなら、それを活かすべきです。低いフロア（収益下限）を壊し、たとえ少数であっても大きく支払うユーザーを見つけましょう。オンボーディング時であれ、後から（たとえばマーチャンダイズ）であれ、ARPU を大きく引き上げられる機会があるなら、追求する価値はあります。</p>
<h4><strong>さらに多くを提供する</strong></h4>
<p>近年、多くのサブスクリプションビジネスは、純粋な B2C モデルを超えて展開しています。エンドユーザー、プロシューマー、小規模事業者、さらには大企業までを含む混合モデルで運営されるケースが増えています。これは特に、グラフィック、写真、動画ツールの分野で顕著です。その一例が Photoroom です。Photoroom は複数のサブスクリプション階層に加えて、ヘビーユーザー要件を超える B2B 向けプランも提供しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/b057fae9551dedf8188c1c1378f9e702ee06457b-1382x973.png" alt=""/></figure>
<h2><strong>ハイブリッドマネタイズを実装する前の注意点と検討事項</strong></h2>
<p>ハイブリッドマネタイズは「やれば必ず勝てる」ものではありません。計画と実践が必要ですし、アプリマネタイズ全般と同様にリスクも伴います。ただし、よくある障壁はある程度予測可能です。</p>
<h3><strong>ユーザー側：選択肢過多はコンバージョンを阻害する</strong></h3>
<p>新しいマネタイズ手段を追加するたびに、それは特に意思決定ポイントにおいて、その存在意義を明確に示す必要があります。そうでなければ、選択肢が多すぎて「何も選ばれない」状態を招くリスクがあります。どのように、そしていつ選択肢を提示するかが極め indications です。たとえば Netflix では、1 行あたりに 7 本以上のタイトルを表示するとユーザーエンゲージメントが低下することが分かっています。また、Duolingo、Zapier、Airbnb、Trello などを例に、ヒックの法則や選択肢過多の事例を詳しく解説している<a href="https://growth.design/psychology#hicks-law">良質なブログも存在します</a>。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/384d20157ce555450adf0f2d674fcde19c6b4d4a-2048x1912.png" alt=""/></figure>
<h3><strong>開発者側：複雑さは急速に増大する</strong></h3>
<p>SKU が増えれば増えるほど、ロジックも増え、エッジケースも増えます。

これが最大の注意点かもしれません。ハイブリッドマネタイズは、誰にでも向いているわけではありません。実際、ハイブリッドモデルの失敗原因は、プロダクト設計よりも組織構造に起因することの方が多いです。マネタイズ、UA（ユーザー獲得）、プロダクトなど、複数のチームで KPI が影響を受けるため、新たなアラインメントが必要になります。</p>
<p>複数の選択肢を提供するには、より強固なプロダクト運用・データ運用・オペレーションの規律が求められます。また、オーディエンスに刺さる形を見つけるまでに何度も実験を重ねる場合、データ負債や技術的負債が急速に積み上がる可能性もあります。</p>
<p>そのため、初期フェーズや小規模チームにとっては、まず純粋なサブスクリプションモデルに集中するのは、非常に合理的な選択です。</p>
<h3><strong>隠れたシグナルとカニバリゼーションのリスク</strong></h3>
<p>ハイブリッドマネタイズによる実際の収益向上を測定するのは、一見簡単そうに見えますが、実際はそうではありません。割引は逆効果になることがあります。設計の甘い IAP はサブスクリプションを弱体化させます。強気な価格設定の消費型アイテムは、単に収益を前倒ししているだけの場合もあります（同程度の LTV であっても、キャッシュフロー的には良いこともありますが）。その結果、更新収益を損ない、最終的には LTV を下げてしまうこともあります。広告は短期的な ARPU を押し上げる一方で、長期的なリテンションや後段のコンバージョンを悪化させる可能性もあります。</p>
<p>ごく単純な価格変更であっても、更新率、リテンション、アップセル余地に長期的かつ複合的な影響を与えることがあります。</p>
<p>要するに、導入前に必要な分析設計を十分に意識することが重要です。ハイブリッドマネタイズは、非常にもっともらしい「偽のポジティブ指標」を生みやすい手法でもあります。</p>
<h3><strong>国や文化による依存性</strong></h3>
<p>プラットフォーム間には、サブスクリプションのマネタイズに大きな格差があります（これが Google Play チームが<a href="https://www.youtube.com/watch?v=BgQLwjWTpi8">早期から混合モデルを推進してきた</a>理由です）。たとえば、少額 IAP は iOS より Android の方が効果的なケースが多いことがあります。これはユーザープロファイルや利用意図の違いによるものです。</p>
<p>支払い習慣、広告への耐性、価格感度も地域によって大きく異なります。Spotify は長らくグローバルで有意なスケールができなかった一方で、楽曲単位課金・単発購入・チップを提供する Tencent Music は世界的に成功しています。長期サブスクリプションに消極的な文化（例：中国）や、自動更新に強い不信感を持つ文化（例：ドイツ）も存在し、こうした地域では混合モデルが非常に有効に機能します。</p>
<p>さらに、各国固有の規制も存在します。たとえば、日本や韓国での <a href="https://developer.apple.com/news/?id=bo1b122z">2025 年の制度変更</a>による更新率の急落、<a href="https://www.arcadian.ai/blogs/news/california-click-to-cancel#:~:text=Bottom%20Line-,California's%20new%20%22Click%20to%20Cancel%22%20law%20just%20became%20official.,what%20cost%20a%20subscription%20renews.">カリフォルニア州で提案されている「クリックで解約」法案</a>などが挙げられます。</p>
<aside class="tip"><strong>Rulings and regulations</strong><p>Keep up to date with <a href="https://www.revenuecat.com/blog/engineering/app-to-web-purchase-guidelines/">global app-to-web regulations and purchase guidelines here</a>.</p></aside>
<h2><strong>まとめ：あなたのアプリはハイブリッドマネタイズに対応できていますか？</strong></h2>
<p>ここまで多くのことを見てきました。ハイブリッドマネタイズにはさまざまなフレームワークがあり、導入前に検討すべきメリット・デメリットも数多く存在します。そこで最後に、新しい収益源を導入する前に自分たちに問いかけるべき質問を挙げます。</p>
<ul>
<li>自分たちは、高・中・低インテントユーザーを明確に理解できているか？</li>
<li>コホートベースで信頼できるリテンションおよび収益データを持っているか？</li>
<li>変更を重ねすぎることなく、クリーンな実験を実施できるか？</li>
<li>トレードオフしてもよい指標と、絶対に守るべき指標を把握しているか？</li>
</ul>
<p>もしこれらにまだ答えられないのであれば、まずそこを整えるべきです。ハイブリッドマネタイズは、意図的に導入してこそ機能します。そうでなければ、施策は散漫で混乱したものになり、場当たり的な対応に陥ります。短期的な数値の改善を誤って成功と解釈し、長期的なリテンションを損なってしまう──そんな落とし穴に、くれぐれもはまらないようにしてください。</p>
<table>
<thead><tr>
<th><p>ハイブリッドマネタイズが有効に機能する</p></th>
<th><p>ハイブリッドマネタイズではない</p></th>
</tr></thead>
<tbody>
<tr>
<td><p>価値は感じているものの、継続課金には踏み切らないユーザー層が多く存在する
ユーザーごとの支払い意欲に大きなばらつきがある
サブスクリプション価格を引き上げることだけに頼らず、ARPUを向上させたい</p></td>
<td><p>考えうるあらゆるペイウォールや広告フォーマットを、無秩序にユーザーへ投げ込むこと
適切な計測や検証を伴わない、成長への近道
強力なコアとなるサブスクリプション提供の代替手段</p></td>
</tr>
</tbody>
</table>
<p>覚えておいてください。裏技は存在しません。<strong>ハイブリッドマネタイズは、低いARPUを手っ取り早く解決するための近道ではありません。</strong>サブスクリプションが明確で再現性のある価値を提供できていない場合、マネタイズのレイヤーを追加しても状況は悪化するだけです。プロダクトが悪ければ、マネタイズもうまくいきません。そして、より高度なモデルを採用すればするほど、「うまくマネタイズできない形」が増えるだけなのです。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Webペイウォール向けワンタップ購入の提供開始]]></title>
      <link>https://www.revenuecat.com/jp/blog/company/express-checkout-for-paywalls-on-the-web</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/company/express-checkout-for-paywalls-on-the-web</guid>
      <pubDate>Wed, 28 Jan 2026 15:24:53 GMT</pubDate>
      <dc:creator><![CDATA[Niklas Winkels]]></dc:creator>
      <category><![CDATA[[ 会社情報 ]]]></category>
      <description><![CDATA[ネイティブウォレット決済をペイウォールに追加し、チェックアウトをスキップしましょう。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/2c1de19e175b30081d3e559ed9ac4944e4cff134-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>あなたの顧客は、すでに「購入する」という判断を下しています。</p>
<p>それにもかかわらず、チェックアウトの段階で、多くのユーザーが立ち止まり、迷い、あるいは離脱してしまいます。</p>
<p>Express Checkout は、ブラウザ上でペイウォールが表示された際に、ネイティブウォレットの購入ボタンをペイウォール上に直接追加します。これにより、顧客は別のチェックアウトページへ遷移することなく、ワンタップで購入を完了できます。</p>
<h2>すでに決断したあとで、チェックアウトが顧客の動きを鈍らせる</h2>
<p>ユーザーがペイウォールに到達した時点で、ほとんどの仕事はすでに終わっています。
価値を理解し、価格にも納得し、次に進む準備ができています。</p>
<p>ところが、その流れで「別の場所へ移動してください」と求められます。</p>
<p>チェックアウトページの読み込みを待ち、支払い方法を選び、端末がすでに知っている情報を再入力し、すでに下した決断をもう一度確認する──。これらのステップは、信頼を高めるわけでも、価値を明確にするわけでもありません。ただ遅延を生むだけです。</p>
<p>チェックアウトは購買意欲を掻き立てません。最も重要な瞬間に、勢いを削いでしまうのです。</p>
<h2>購入をペイウォール上で完結させることで、1ステップを丸ごと削除できる</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/e73f64075f73ff5ecda4cf800db12bddc7691273-3296x1688.png" alt=""/></figure>
<p>一般的なWebフローでは、ペイウォールで購入意欲を高めたあと、別のページへ遷移して購入を完了させます。</p>
<p>Express Checkoutでは、意思決定が行われたその場所で購入が完結します。</p>
<p>ユーザーはペイウォール上のネイティブウォレットボタンをタップするだけで、取引は完了します。リダイレクトも、フォーム入力も、「はい」から「支払い完了」までの間に挟まる追加の判断もありません。</p>
<p>この変更により、ファネルから1ページ分が完全に削除され、離脱の機会も複数取り除かれます。これは見た目の調整やコピーのテストではありません。ブラウザにおける購入体験そのものを構造的に改善するものです。</p>
<h2>Express Checkout でできること</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/2c8a91c4f9fedce016e330e16baedc8eae52bd4f-2516x1714.png" alt=""/></figure>
<p>Express Checkout は、Web 上で表示されるペイウォールに、ネイティブのデジタルウォレット購入ボタンを直接追加します。</p>
<p>このコンポーネントは、ユーザーごとに最適な支払い手段を自動で表示します。たとえば、iOS では Apple Pay、対応する Android デバイスやブラウザでは Google Pay が表示されます。ユーザーがタップすると、デバイスのネイティブな支払いプロンプトが即座に立ち上がり、通常のチェックアウトフローを経由することなく購入が完了します。</p>
<p>モバイルでは、従来のブラウザベースの購入体験よりも、アプリ内課金に近い感覚になります。購入フローの中で最も失敗しやすいステップが、ここで消えます。</p>
<p><a href="https://www.revenuecat.com/docs/web/web-billing/paywalls">設定手順や対応ウォレットの要件については、ドキュメントをご覧ください</a>。</p>
<h2>Web、App-to-Web、Web-to-App のフローで利用可能</h2>
<p>Express Checkout は、ペイウォールが「意思決定の瞬間」になるあらゆる場面でコンバージョンを向上させます。</p>
<p><strong>純粋な Web 流入</strong></p>
<p>ユーザーが広告、SNS 投稿、ニュースレター内のリンクをタップし、ブラウザ上のペイウォールに到達します。オファーを読み、「価値がある」と判断したら、そのままデバイスのネイティブウォレットを使って即座に購入を完了できます。チェックアウトページへの遷移はなく、新しいページの読み込み中に購買意欲が冷めてしまうような“間”もありません。</p>
<p><strong>App-to-Web での購入完了</strong></p>
<p>ユーザーはアプリ内でペイウォールに到達し、購入は Web 上で完了します。直前に下した判断と切り離されたチェックアウトページに遷移する代わりに、オファー内容がそのまま反映されたブラウザ上のペイウォールが表示され、ワンタップで購入できます。体験は「取引的」ではなく、途切れのない流れとして感じられます。</p>
<p><strong>Web-to-App のジャーニー</strong></p>
<p>ユーザーは Web 上でプロダクトを知り、ブラウザ上のペイウォールで購入し、その後アプリへ進みます。プラットフォームをまたぐ体験であっても、購入ステップは高速で馴染みのあるもののままです。ペイウォールは一時的な通過点ではなく、スムーズな入口として機能します。</p>
<p>いずれの場合でもメリットは同じです。ユーザーがブラウザ上のペイウォールに到達したその瞬間、Express Checkout は「今まさに買う準備ができている」タイミングで不要なステップを取り除きます。</p>
<h2>標準のチェックアウトは自動的に引き続き利用可能</h2>
<p>ユーザーのデバイスやブラウザでネイティブウォレットが利用可能かつサポートされている場合、Express Checkout がペイウォール上に表示され、そのまま直接購入が完了します。</p>
<p>ネイティブウォレットが利用できない場合は、従来どおりの標準的な購入ボタンが表示され、通常のチェックアウトフローへ進みます。この 2 つの選択肢は共存できるため、常に最速の購入経路へユーザーを誘導しつつ、確実に購入を完了できるフォールバックも維持されます。</p>
<p>税金処理、コンプライアンス要件、各種エッジケースはすべて裏側で処理されます。ワンタップ決済が使えない状況でも購入を妨げることなく、可能な限り障壁を低減することができます。</p>
<p>セットアップの詳細、対応ウォレット、フォールバック時の挙動については、<a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/components#express-checkout">Express Checkout のドキュメント</a>を参照してください。</p>
<h2>始めましょう</h2>
<p>すでに Web で RevenueCat Paywalls を利用している場合は、Paywall Builder から Express Checkout を追加できます。</p>
<p>これから Web での販売を始める場合でも、ブラウザ上でワンタップ購入体験を提供する最速の方法です。既存のプロダクト、トライアル、オファーとそのまま連携でき、変更するのは価格モデルではなく、ファネルの「最後の一歩」だけです。各チームが実験を開始し次第、コンバージョン結果も共有していく予定です。また、この同じボタンは、今後予定されている、より高度な App-to-Web ペイウォールフローへの基盤にもなります。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[実際にコンバージョンしている Web-to-App ファネル事例 5 選]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/web-to-app-funnel-examples</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/web-to-app-funnel-examples</guid>
      <pubDate>Mon, 26 Jan 2026 17:12:57 GMT</pubDate>
      <dc:creator><![CDATA[Daphne Tideman]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[何が機能するのか（そしてその理由）を学ぶ]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/37b6e67af744c233ba3cee947bc6755504ff3d0d-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>私たちは皆「競合を真似るべきではない」と口では言いますが、正直なところ、優れた事例をいくつか知るだけで<em>大幅に</em>時間を節約できるのも事実です。Web-to-App に関して言えば、流行るずっと前からこの領域に取り組み、地道にファネルをテストし、最適化し続けてきたサブスクリプションアプリも存在します。そもそも、「模倣は最大の賛辞」だと親に言われませんでしたか？</p>
<p>そこで本記事では、あなた自身の <a href="https://www.revenuecat.com/blog/growth/web-to-app-funnels/">Web-to-App</a> の取り組みに役立つよう、私のお気に入りの事例をいくつか紹介しつつ、そこから何を学べるのかを解説します。なぜなら、「なぜそのファネルが機能しているのか」「自分たちのブランドにどう応用できるのか」を理解せずに真似ても意味がないからです。安心してください。これはクイズ型ファネルだけを並べた記事ではありません。<a href="https://www.revenuecat.com/blog/growth/web-to-app-paid-user-acquisition/">Web-to-App</a> にはさまざまなアプローチがあるため、本記事では複数タイプのファネルを取り上げます。</p>
<p>とはいえ、まずは私のお気に入りのクイズから始めましょう。その後で、別のアプローチもきちんと紹介します。</p>
<h2>1：Calm の Web-to-App クイズファネル</h2>
<p><strong>Web ファネルの種類：Webクイズ</strong> <strong>→ トライアルオファー → アプリインストール</strong></p>
<p>まずは、Gen Z の言い方で「クイズファネルの <em>GOAT</em>（Greatest Of All Time：史上最高、とは妹いわく）」から始めましょう。瞑想アプリの <a href="https://www.calm.com/">Calm</a> は、Web-to-App のクイズファネルとして長年ずっと際立った存在です。シンプルで、洗練されていて、そして驚くほど効果的です。</p>
<p>私は、このフローがなぜ何年もほとんど変わっていないのかを理解するために、クイズの全バリエーションを確認しました。以下がファネル全体の流れですが、細かさに圧倒されて慌てないでください。ここからステップごとに順を追って説明します。自分のペースでこのフロー（あるいは他の例）を確認したい場合は、<a href="https://www.figma.com/design/trdPEQFNv7bfqCp0mO9GdQ/5-Web-to-App-Examples?node-id=0-1&amp;t=8kXPXwjJluKwtQte-1">こちらでフローチャート全体をまとめて見ることもできます</a>。</p>
<p>最初に注目すべき点は、Calm が本当にパーソナライズしているのは睡眠フローだけで、他の 4 つの選択肢はすべて標準化された同一の導線に進むことです。これは意図ベースのセグメンテーション（ユーザーを目的で分ける）の優れた例です。睡眠は緊急度が高く、感情にも強く結びつく課題なので、より深いパーソナライズに投資するのは理にかなっています。一方で他の目的はより探索的な性質があるため、軽めのフローにするのは現実的な選択です。</p>
<p>これは私がアプリのテストチームによく勧める戦術でもあります。<strong>最初からすべてをパーソナライズしようとしないこと。</strong>まずは最優先のオーディエンスから始め、そこから計測し、学び、反復していきましょう。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c1754ac1b4a44a86951ee3ca358c7e655b9b539b-1339x1600.png" alt=""/></figure>
<h3>睡眠クイズのフロー</h3>
<p>まずは睡眠フローから見ていきましょう。最初に聞かれるのは、この悩みにどのくらいの頻度で直面しているか、という質問です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/f7a7c6ec6138916a4fe8a93151ab61f9511ec29b-1999x1079.jpg" alt=""/></figure>
<p>ここで行われているのは、とてもシンプルですが効果的なことです。回答に対して即座にフィードバックが返ってくるのです。</p>
<p>これは別画面ではありません。「あなたは大丈夫、ここに来て正解です」といった短い安心感のあるメッセージです。そこからクイズはさらに踏み込み、「寝つけない」のか「途中で目が覚めてしまう」のかを切り分け、その後で睡眠の課題につながる可能性のある原因を探っていきます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/806c34dbec01cb10706c7608f6d4fad56c1977b8-1999x881.jpg" alt=""/></figure>
<p>不眠に悩んできた身として、これはとても心地よく感じました。否定も、的外れな質問もありません。ただ私の課題に対して、敬意をもって関心を示してくれているだけです。また、どちらの質問も複数選択できる点も気に入っています。1つだけ無理に選ばされることがないのです。</p>
<p>次に、自分と状況が重なりそうな人物からのレビューが表示されます。画像や名前によってパーソナルな印象はありますが、出典がわからない点は、やや信頼性を下げているとも言えます。ただし、Calm はこの分野ですでに広く知られたブランドなので、シンプルで共感しやすいレビュー以上に強いソーシャルプルーフに頼る必要はありません。</p>
<p>Calm が文脈を確認してくれる点も評価しています。「今まさに寝ようとしているのか？」という質問です。<strong>多くのアプリは、ユーザーが開いた瞬間に利用している前提で進めてしまいますが、フィットネスやウェルネス系アプリでは、必ずしもそうとは限りません。</strong></p>
<p>興味深いことに、どちらの選択肢を選んでも、直後のステップ自体は変わりません。ただし、この回答は後続の体験に影響しているはずです。たとえば、登録後に表示されるコンテンツや送られてくる内容が、一般的な瞑想になるのか、その瞬間に合わせた睡眠ストーリーになるのか、といった違いです。</p>
<p>その後、興味のあるコンテンツタイプの好みを設定する質問が続きます。ここで唯一気になるのは、この時点では自分が何を求めているのか、まだ分かっていない場合も多いという点です。おすすめを探しているだけだったり、広く試してみたいだけのこともあります。<strong>Calm は、なぜそれらをおすすめするのかを、もう少し明確に示してもよかったかもしれません。</strong></p>
<p>最後の画面（これはすべてのフローで共通です）に進む前に、他の選択肢を選んだ場合に何が起こるかも見てみましょう。</p>
<ul>
<li>ストレスや不安を減らしたい</li>
<li>集中力を高めたい</li>
<li>自己成長・セルフインプルーブメント</li>
<li>その他</li>
</ul>
<h3>Calm の別パターンのクイズフロー</h3>
<p>4つすべての選択肢をテストしてみましたが、結果的には毎回同じフローにたどり着きました。最初は、自分が今どんな気分なのかを確認する補足的な質問から始まり、睡眠フローと同じ種類の安心感を与えるフィードバックが添えられています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/e210f77cc5ed75425c2df709324e0b675e64a7fd-1600x741.png" alt=""/></figure>
<p>ここではまず、原因の探索から始まるのが興味深い点です。その後、いったん戻る形で、問題への理解をより深めていきます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/555a647e73efe3ccf2c9cf36fd894d1b9fdd48f6-1600x669.png" alt=""/></figure>
<p>再び似たようなレビュー画面が表示されますが、こちらはかなり汎用的で、回答内容によって変わることはありません。これまでの流れを踏まえると、もう少しパーソナライズされていることを期待していました。</p>
<p>Calm が経験レベルについて質問し、それに応じた安心感を与えてくれる点は気に入っています。私のように、何度も瞑想に挑戦してきた人間にとって、基礎を何度も繰り返されるのは正直フラストレーションになります。このステップは、瞑想経験の有無にかかわらず「このアプリは自分に合っている」と感じさせるシグナルにもなっています。</p>
<p>最後のパートでは、ユーザーにコントロール感を与えています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/28fade163c04a0c2fc6a0b0b6d59dd2f43ce18e7-1600x1137.png" alt=""/></figure>
<p>瞑想は「やるべきタスク」のひとつに感じられてしまうこともあるため、Calm は、意欲が高まっている状態のユーザーに対して、やりすぎず、かといって少なすぎない、ちょうどよいバランスを取ろうとしています。そのうえで、現在の感情状態や、いつ瞑想をする予定なのかを把握し、プッシュ通知やメールを最適化しようとします。</p>
<p>感情状態や問題解決に引き続き焦点を当てている点は評価できますが、質問の順番がときどきランダムに感じられる場面もありました。</p>
<h3>クイズ後のステップ（全フロー共通）</h3>
<p>最終ステップは、すべてのフローで共通しています。全ユーザーに同一内容の追加レビューが表示されますが、その内容は睡眠によりフォーカスしており、その後にアカウント登録を促す流れになっています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/68e0d5c4adb2faf1fe56ba96a69f8251119e20dc-1416x1350.png" alt=""/></figure>
<p>このパターンは、特にクイズ形式のWebファネルでは珍しくありません。この時点でユーザーはすでに多くの入力を行っており、<strong>Calm は設定内容を保存するという形で、さりげなく損失回避（loss aversion）を活用しています</strong>。</p>
<p>興味深いのは、Calm がクイズ終了時点でコンテンツに関するフィードバックを一切提示していない点です。クイズ自体は明らかに体験のパーソナライズを目的としていますが、その結果が可視化されるのはアカウント<em>登録後</em>になります。おすすめコンテンツ自体は無料で利用できるものの、この段階ではユーザーはそのことをまだ知りません。</p>
<p>これは、このクイズが<strong>即時的なコンバージョンの満足感よりも、その後のパーソナライズを重視して設計されていることを示唆しています</strong>。ユーザーにすぐ報酬を与えるのではなく、アプリ内でのレコメンド、通知、ライフサイクルメッセージングといった後続体験の最適化に軸足を置いているように見えます。メンタルヘルスという領域の特性を考えると理にかなったアプローチではありますが、「こんな体験が得られますよ」という訴求の余地を残しているとも言えます。</p>
<p>この時点でユーザーは、時間・感情・データをすでに投資しており、トライアルは強引なセールスではなく、自然な次のステップとして感じられる状態になっています。</p>
<p>支払いページは意図的にシンプルに設計されています。選択肢は年額プランに紐づいた7日間の無料トライアルのみで、ユーザーを迷わせることはありません。すぐに登録しなかった場合でも、Calm は後日、追加の割引オファーでコンバージョンを後押しすることがよくあります。</p>
<h3>Calm の Web-to-App ファネルから、他のアプリが学べること</h3>
<p>以下は、Calm から学べるポイントです。</p>
<p><strong>1. インテントが最も高い部分にパーソナライズを集中させる</strong>
Calm はすべてをパーソナライズしようとはしていません。睡眠には専用フローを用意し、それ以外の目標は共通フローにしています。これは、効果的なパーソナライズは「網羅性」ではなく「集中」によって成立する、という良い示唆です。</p>
<p><strong>2. 感情的な安心感がコミットメントを生む</strong>
このクイズが機能している理由は、アカウント登録やトライアル申し込みといった要求をする前に、まずユーザーを肯定している点にあります。価格が提示される頃には、ユーザーはすでに「理解されている」と感じています。</p>
<p><strong>3. クイズの本当の価値は後から現れる</strong>
Calm は多くの情報を収集しますが、その場ですぐにフィードバックを返しません。これは、このクイズが即時のコンバージョン獲得よりも、後続のパーソナライズやリテンションを目的として設計されていることを示しています。</p>
<p><strong>4. ペイウォールでは、やはりシンプルさが勝つ</strong>
比較的長めのクイズの後（とはいえ、他アプリと比べて特別長いわけではありません）、Calm は意図的に選択肢を削ぎ落とします。1つのプラン、1つのトライアル。余計な判断をさせません。</p>
<p><strong>5. ブランドへの信頼が、過度なソーシャルプルーフを補完する</strong>
汎用的なレビューや出典の少なさは、小規模アプリにとっては不利に働く可能性があります。Calm はファネル内で自社ブランドへの信頼を活用できますが、他のアプリではより多くのソーシャルプルーフが必要になるでしょう。</p>
<p><strong>6. 強いファネルでも、完璧ではない</strong>
質問の順序がランダムに感じられる場面や、活かしきれていないパーソナライズも見られます。しかし、これはむしろ安心材料です。最初の <a href="https://www.revenuecat.com/blog/engineering/app-to-web-purchase-guidelines/">Web-to-App</a> ファネルであっても、あるいは100回目であっても、完璧である必要はありません。十分に機能するものは作れます。</p>
<h2>2. Blinkist のコンテンツ主導型ファネル</h2>
<p><strong>Webファネルタイプ：ランディングページ → アプリインストール</strong></p>
<p>学習・自己成長アプリである <a href="https://www.blinkist.com/">Blinkist</a> の価値は「コンテンツ」に根ざしているため、獲得ファネルの最前線にコンテンツが置かれているのは非常に理にかなっています。アプリの機能や約束を前面に出すのではなく、Blinkist は「アイデア」から始めます。まず何かを学び、その体験をさらに深める手段としてプロダクトを知る、という流れです。</p>
<p>Blinkist は時間をかけて、アイデアを要約した短く洞察に富んだ記事を中心に、強力なコンテンツ成長エンジンを構築してきました。これらの記事は、オーガニックチャネルと有料チャネルの両方で配信され、ユーザーにダウンロードや購読を求める前に信頼を築く役割を果たしています。同じコンテンツ形式が広告、パートナーシップ、自社メディアでも再利用されており、このアプローチは非常にスケーラブルです。</p>
<p>Marcus Burke氏は、ある時点では <a href="https://www.revenuecat.com/blog/growth/web-to-app-paid-user-acquisition">Blinkist の獲得の約 70% が Web-to-App フロー経由だった</a>と述べています。これは、このコンテンツ主導型アプローチが同社の成長においていかに中心的な役割を果たしてきたかを明確に示しています。</p>
<h3>Blinkist の典型的な Web-to-App ジャーニーはどのようなものか？</h3>
<p>典型的な Blinkist のジャーニーは、アプリではなく「コンテンツ」を訴求する広告から始まります。その広告は、ある概念・原則・アイデアを深く掘り下げた記事へとユーザーを導きます。そしてそのコンテンツの中で、Blinkist は「より深く学ぶ」「より効率的に理解する」ためのツールとして位置づけられます。</p>
<p>これは同じパターンの数あるバリエーションのひとつにすぎませんが、全体の構造自体は一貫しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/f9e88e1ca93105a09ff0b241b1fc9d648567ec2a-1488x953.png" alt=""/></figure>
<p>以下は、Blinkist が現在有料トラフィックを流している記事の一部です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/68881f7846564ed0bac972aef1c438857954a869-1071x583.jpg" alt=""/></figure>
<p>Blinkist は、コンテンツ全体を通してソーシャルプルーフを強く活用しています。場合によっては Apple での特集や App Store での評価として現れ、別の場合には、そのアイデアを語る著者・思想家・著名人の権威性として表れます。<strong>このアプローチにより、過度に売り込み感を出すことなく、コンテンツからプロダクトへと信頼が自然に移転します。</strong></p>
<p>CTA（行動喚起）は通常、「Start your free trial（無料トライアルを開始）」または「Create an account（アカウントを作成）」のいずれかです。トライアル CTA は、Calm と似た web オンボーディングクイズに進むことが多く、一方でアカウント作成 CTA はユーザーを web 上に留め、引き続きコンテンツを探索できるようにします。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/df87ee1db6d0808b0fb12afb4bd33770bebf561d-926x763.png" alt=""/></figure>
<h3>マネタイズはどこで行われているのか？</h3>
<p>ユーザーがアカウントを作成すると、さまざまな書籍要約を閲覧できるようになります。いずれかの要約をクリックすると、web サブスクリプションを促すペイウォールが表示されます。モバイルでは、Blinkist はあわせてアプリのダウンロードも促し、web 上での発見体験と、アプリでの消費体験を組み合わせた真のハイブリッド構造を作っています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/65609471200ce7cbf93da7bd0972661634a01dc1-491x782.jpg" alt=""/></figure>
<p>このアプローチが強力なのは、Blinkist が 「アハ体験」を前倒しで提供している点です。ユーザーは、アカウントを作成したりトライアルを開始したりする前に、「何か有益なことを学んだ」という体験を先に得ます。直接的にコンバージョンを狙うランディングページと比べると、サインアップ率自体は低くなる可能性があります。しかしこの戦略によって、Blinkist ははるかに広いオーディエンスにリーチし、早い段階で信頼を構築できます。そしてその信頼は、ユーザーが実際にサインアップを決めたとき、より強い意図と質の高いコンバージョンへとつながっていく可能性が高いのです。</p>
<h3>注意すべきトレードオフとリスク</h3>
<p>この戦略にはトレードオフも存在します。Blinkist のウェブサイトへのオーガニックトラフィックは、過去 2 年間で大きく減少しているように見えます。これは、検索行動の変化や、AI 主導のコンテンツ発見の影響を受けている可能性が高いです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/af32dc6d83503b0d80d4a3ec657264daec9c6bba-1231x164.png" alt=""/></figure>
<p><em>ソース：SemRush — </em><em><a href="http://blinkist.com">Blinkist.com</a></em><em>の全世界自然検索トラフィック</em></p>
<p>一方で、Semrush が計測している有料トラフィックは比較的安定しているものの、規模としては依然として小さいままです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/8457b0d65892b90741655bd301a51d55dfee9531-1251x149.png" alt=""/></figure>
<p>このアプローチは、特に大規模なオーディエンスに対してオンライン上で信頼を構築する強力な手段になり得ますが、コンテンツがきちんと見られ続け、かつ関連性を保ち続けられるようにするための戦略的な設計が重要になります。</p>
<h3>他のアプリは Blinkist の Web-to-App ファネルから何を学べるか？</h3>
<p><strong>1. アハ体験を前倒しで提供する</strong>
Blinkist は、サインアップを求める前に価値を体験させることで、その後の意図（インテント）を強められることを示しています。ユーザーがコンバージョンするのは、機能を売り込まれたからではなく、すでに「何かを学べた」と感じているからです。</p>
<p><strong>2. コンテンツ自体がプロダクトのプレビューになり得る</strong>
コンテンツ主導型のアプリでは、Web ファネルでアプリを説明する必要はありません。価値を直接示し、アプリを自然な次のステップとして位置づけることができます。</p>
<p><strong>3. Web は即時コンバージョンしなくても十分に機能する</strong>
Blinkist の多くのフローでは、Web は教育・選別・信頼構築のために使われています。コンバージョンは、アカウント作成、クイズフロー、あるいはアプリ内ペイウォールなど、後の段階で発生します。</p>
<p><strong>4. ソーシャルプルーフはレビュー以外からも生まれる</strong>
Blinkist は、一般的なユーザーレビューよりも、思想家やコンセプトそのものの権威性に重きを置いています。これは特に教育系アプリにおいて効果的です。</p>
<p><strong>5. 配信（ディストリビューション）はコンテンツの質と同じくらい重要</strong>
コンテンツ主導型ファネルは、コンテンツが継続的に新しいオーディエンスに届いてこそ機能します。検索行動やプラットフォームの変化はパフォーマンスに即座に影響を与えるため、現在人々がどのように検索しているのかを意識し、AI 主導の検索においても適切に評価・表示されるよう設計することが不可欠です。</p>
<h2>3. PlantIn のランディングページ型ファネル</h2>
<p><strong>Webファネルのタイプ：ランディングページ → Webでの購入 または アプリインストール</strong></p>
<p>AI 植物ケアアプリの <a href="https://myplantin.com/">PlantIn</a> は、比較的クラシックな Web-to-App 構成を採用していますが、過度に凝りすぎることなく、非常に意図的に設計されている点が際立っています。コンテンツ、アプリの訴求、Web ベースのサブスクリプションフローをうまく組み合わせることで、実際に「購入」を求められる前に、ユーザーが納得し、関与するための機会を数多く提供しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/7301ec5319170424e50084d89841764a03ca89fa-1999x1757.png" alt=""/><figcaption>全フローは こちら</figcaption></figure>
<p>このジャーニーは、通常コンテンツから始まります。広告は、アプリとその目的を紹介する動的な中間ページへと誘導されます。そこから先の体験はデバイスによって変わります。モバイルでは、たとえ離脱しようとしてもアプリのダウンロードを促される一方、デスクトップでは Web サイトへと案内されます。これは小さな違いですが非常に賢い設計であり、PlantIn が「意味のない場面でアプリファースト体験を強制しない」ことを示しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/35df103cc92eb5580064ceb631c24c421883095e-1019x838.png" alt=""/></figure>
<h3>PlantIn のランディングページ</h3>
<p>Web-to-App のランディングページの中には、「この先がアプリにつながっている」ことが分かりにくいものもあります。特に Web 決済のみを提供している場合、誤ってユーザーを App Store に送ってしまうリスクがあるため、設計が難しくなりがちです。
その点、PlantIn ではその問題は発生しません。アプリを簡単にダウンロードできる QR コードを前面に配置し、App Store へのリンクを明示し、さらにアプリ内のスクリーンショットも表示しています。このスクリーンショットによって、ユーザーがアプリから得られる価値が明確に伝わります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/fc7e2fe6f824be0af735f438846ac24d69dca1c2-1872x4283.png" alt=""/></figure>
<p>次の「What is PlantIn?（PlantIn とは？）」というセクションは、一見するとアプリの機能説明のように見えますが、実際には統計データを用いた信頼構築の役割を果たしています。PlantIn の信頼性と安心感を高めることを目的とした、6つの主要な数値が強調されています。</p>
<p><strong>アプリの主要なベネフィットに進む前に、それぞれの数値がどのような意味を持つのかが分かるよう、丁寧に説明されています。</strong>その後、このセクションは簡単なソーシャルプルーフと、関連する記事へのリンクで締めくくられます。たとえば「コーヒーかすを植物に使う方法」の記事などがあり、これは個人的にもおすすめです。</p>
<p>PlantIn の優れている点は、ユーザーを急いでコンバージョンさせようとしないことです。代わりに、サインアップやより深いコンテンツへの誘導に重点を置いています。植物の種類、植物の病気、さらには識別可能なキノコまで紹介するなど、非常に充実した詳細ページが用意されています。これらはアプリの中核的な価値――「植物を自信を持って識別できること」――を損なうものでも、コンバージョンを妨げるものでもありません。むしろ、価値を示し、信頼を築く役割を果たしています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/d814f88e08e61d6e36b6b76eabdb92f9f6554c28-649x1151.png" alt=""/></figure>
<h3>まずはサインアップ、その後にサブスク登録</h3>
<p>購入前にサインアップする、という昔ながらの定番フローです。これはアプリにとって非常に重要で、もしアカウントを作成せずに購入されてしまうと、購入後にアプリへ誘導・セットアップする流れが不自然で分かりづらくなってしまいます。また、サインアップを挟むことでメール登録も促せるため、その後のガイドやフォローもしやすくなります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a9cb2cae70b1d84087e089634c02f436ccdec8f8-1382x972.png" alt=""/></figure>
<p>PlantIn の価格提示ステップで特に気に入っているのは、Web からサブスク登録することで、どれだけお得になるのかが明確に示されている点です。アプリ側は <a href="https://www.revenuecat.com/blog/growth/the-pros-and-cons-of-web-to-app-funnels/">Web 経由でより低い手数料を実現でき、ユーザーにとっても長期的な継続率が高まりやすくなります</a>。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a74688f8450893f7764febfb0cc0f9983e55f34f-1227x1174.png" alt=""/></figure>
<p>Web では不正利用のリスクがあるため、無料トライアルはあまり一般的ではありません。その中で PlantIn がトライアルを提供しているのは注目に値します。期間は短めに設定されており、悪用を防ぐ意図と、ユーザーが比較的すぐにアプリの価値を実感できる点の両方を考慮しているのでしょう。</p>
<p>チェックアウトはポップアップ形式で表示され、何に対して支払うのか、そして何がアンロックされるのかが明確に分かります。この段階になると、強引な売り込みというよりも、ここまで体験してきた流れの中で「次に進むのが自然」だと感じられます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/2b20cf27a21e9d053a01f511e0b5842d2b69ca11-808x1127.png" alt=""/></figure>
<p>全体を通して印象的なのは、PlantIn が何度も価値提案を繰り返しているにもかかわらず、決して押しつけがましく感じさせない点です。<strong>各ステップが、同じメッセージを強く押すのではなく、少しずつ文脈を積み重ねていきます。</strong></p>
<p>ただし、表現にはやや誤解を招く点もあると感じました。タイトルでは「Web でサブスク登録」と書かれている一方で、すべてのプランでは「access（アクセス）」という言葉が使われています。定期課金であることが明確になるのは、最初の請求金額にドル記号すら付いていない小さな注意書きだけです。これでは、サブスクリプションだと気づかずに登録してしまい、不満を抱くユーザーが出るリスクがあります。価格表記には「サブスクリプション」や「◯期間ごと」といった表現を明確に使い、どれがサブスクでどれがそうでないのかを分かりやすく示すべきだと思います。</p>
<h3>PlantIn の Web-to-App ファネルから、他のアプリが学べることは？</h3>
<p><strong>1. ユーザーが今いる場所に合わせる</strong>
モバイルユーザーとデスクトップユーザーを異なる導線に振り分けることで、
プリダウンロードが適切でない場面でもそれを無理に強制せず、すべてのユーザーを同じように扱うことを避けています。</p>
<p><strong>2. 主要機能だけでなく、アプリ全体の広がりを見せる</strong>
PlantInは、サブスクリプションを単一のツールへの支払いではなく、ひとつのエコシステムへのアクセスとして感じさせる点が非常に優れています。同時に、「何でもできるオールインワン」を過度に打ち出してしまう落とし穴も回避しています。</p>
<p><strong>3. 不安を和らげるためにコンテンツを活用する</strong>
特に「自分は植物の世話が苦手だ」と感じているユーザーに対して、PlantInは販売を始める前に、安心感を与えるコンテンツを提供しています。</p>
<p><strong>4. ジャーニー全体を通してアプリの存在を可視化する</strong>
Web上でマネタイズしている場合であっても、アプリは常に体験の中心に置かれている点が重要です。</p>
<p><strong>5. Web特有の提供価値を伝えることを恐れない</strong>
Web版の方が安価なサブスクリプションについても、単なる手数料回避ではなく、ユーザーにとっての付加価値として提示しています。</p>
<h2>4. YNABのワークショップ型ファネル</h2>
<p><strong>Webファネルのタイプ：ワークショップ → Web購入またはWebオンボーディング → メール → アプリインストール</strong></p>
<p><a href="http://ynab.com/">YNAB</a>… You Need a Budget（予算が必要ですよね、みんな）。その名のとおり家計管理アプリであるこのサブスクリプションアプリは、非常に充実したWeb体験を提供しています。予算の設定や管理には多くのデータ入力が必要になるため、YNABではそのプロセス全体をWeb上で完結できるようにしており、アプリが登場するのはカスタマージャーニーのかなり後半です。</p>
<p>実際、その登場があまりにも遅いため、「もしかしてアプリは存在しないのでは？」と疑い始めたほどでした——でも、ちゃんとあります。ワークショップやウェビナーはB2Bアプリだけに有効なものではありません。信頼構築が重要な場合や、競争の激しい市場で差別化したい場合には、コンシューマー向けアプリでも非常に効果的です。私自身、以前に瞑想・マインドフルネス系アプリの仕事をしていた際、週次ワークショップを提供していました。そこでは、ストレスや感謝といったテーマを中心に、3日間や7日間のライブチャレンジを複数開催していました。</p>
<p>これらの無料ワークショップは、ユーザーがコーチとつながるきっかけとなり、その後アプリ購入へと自然に誘導されていました。
このアプローチは短期的な成果を生むだけでなく、「もっとこのコーチのコンテンツを使いたい」とユーザーが感じることで、長期的な成長につながるケースも多かったのです。</p>
<h3>学習を支援するワークショップ</h3>
<p>YNABは独自のメソドロジーを中核に構築されており、ユーザーをサポートし、学習を助ける点において非常に優れています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/f250466387b4045e7f37f65988746db6e89b4449-1455x555.png" alt=""/></figure>
<p>ワークショップへの申し込みはZoom経由で簡単に行え、登録後には確認メールが届きます。この段階ではアプリについての言及は一切なく、そのためアプローチは驚くほど売り込み感がありません。既存ユーザー・新規ユーザーの双方に対して、純粋に価値を提供することにフォーカスしています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/04ba41eabe02c744f10cbc5dd3b6e5619fc68574-1600x936.png" alt=""/></figure>
<p>では、Webフローを開始すると何が起こるのでしょうか。その答えは——かなり長めのWebオンボーディングです。このフローはWebサイトからも、ウェビナー参加後からもアクセスできます。なお、YNABはユーザーの課題（ペインポイント）に合わせてパーソナライズされた34日間の無料トライアルページへの広告も配信しており、そこからも同じWebオンボーディングへと進む構成になっています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/183aeaeaf1f0ddc5e352c36fa77f16e097bd467f-1600x650.png" alt=""/></figure>
<h3>Webオンボーディングのプロセス</h3>
<p>アプリやセールスへの言及が一切ないまま、これほど多くのステップを進むことになる点は非常に興味深いと感じました。ここで重視されているのは、ユーザーに投資感覚を持ってもらうことです。十分な「サンクコスト（すでに費やした時間や労力）」が積み上がることで、自然とフローに引き込まれるよう設計されています。また、これだけステップが多いにもかかわらず、セットアップが想像以上に簡単で楽しかったのも意外でした。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/639c711dc69d1f2a137c527cd5bc2ca106e4df2b-1600x1563.png" alt=""/></figure>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/69716e77e0bcc4d114b2ec1490da5f4aba2d9916-1600x1269.png" alt=""/></figure>
<p>お金の話は、どこか<em>気まずさ</em>を感じるものですし、質問内容も個人的になりがちです。それでも私は、自分の金銭的な考え方について驚くほど率直に共有できていました――Web-to-Appの事例記事で、こんな体験をするとは思っていませんでしたが。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/cb5502c40622e4c8221d6e55d282d0ea80a98cec-1600x1109.png" alt=""/></figure>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/71d9a659a29a38f6d895dbcfa625dc58b07170f8-1600x1537.png" alt=""/></figure>
<p>一点、少し変わっていると感じたのはUIの構成です。オンボーディング中、コンテンツは画面下部に表示され、残りの部分は基本的に空白のまま進みます（最初の画面では表示されていますが、その後は表示されません）。フロー自体が長いため、ときどき未完成のように感じる瞬間もありました。</p>
<p>本質的に、優れたWebクイズはオンボーディングとの境界が曖昧になりがちですが、YNABの場合は違います。境界は一切なく、これは純粋なオンボーディングです。特に注目すべきポイントはいくつかあります。</p>
<ul>
<li><strong>カスタマイズされたレビュー</strong>：自分が設定した目標によって、表示されるレビューがまったく異なっていました。</li>
<li><strong>必要とされる「思考力」の段階的な引き上げ</strong>：質問は簡単なものから始まり、徐々に深く、考えさせる内容へと進んでいきます。</li>
<li><strong>関連するフォローアップ質問のパーソナライズ</strong>：たとえば、持ち家があると答えると、後続で住宅保険に関する質問が出てきます。</li>
<li><strong>その場で答えやすい初期質問 → 計算や内省を伴う後半質問</strong>：最初は即答できる質問が中心ですが、後半になると「毎月いくら貯蓄したいか／必要か」「世帯収入はいくらか」といった、個人的で計算を要する質問が登場します。</li>
<li><strong>質問の分割と緩急</strong>：質問数自体は<em>多い</em>ものの、レビューや説明、フィードバックを挟むことで、フロー全体の負担感が和らげられています。</li>
</ul>
<p>クイズの最後に至っても、アプリやYNABの料金についての言及は一切ありません。YNABは「お金を節約するためのツール」であるため、価値を体験する前にお金を払うことに違和感を覚える可能性があります。そのため、おそらく34日間という長めの無料トライアルが用意されているのでしょう。この期間は1か月のサイクルをカバーしており、実際にデータを入力し、金銭的な目標に向けて動き始め、YNABへの理解を深めることができます。</p>
<p>さらに、アカウント設定や銀行口座連携のための第2段階の質問票があり、その後に、より説明的で受動的なオンボーディングフェーズが続きます。ここで特に印象的だった点は2つあります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/426a2f09dbf8aebdf5ec895071607fb3f47cf163-1600x510.png" alt=""/></figure>
<p>1つ目は、第2段階のセットアップ完了後に用意されているお祝いの瞬間です。長期的な目標を扱うプロダクトにおいて、こうした進捗の祝福は非常に効果的です。カラフルな紙吹雪を嫌いな人はいませんよね。予算管理が、こんなに楽しく感じられるとは思いませんでした。</p>
<p>2つ目は、このフロー全体が安心感を与えてくれる点です。銀行口座の接続という、非常に信頼が求められる大きなお願いが出てくるのは、かなり進んだ後です。その前に、時間を投資し、前進を実感し、理解されていると感じられるため、ここで丁寧なセキュリティ説明を受けることで、行動前の不安がしっかり和らぎます。</p>
<p>それでも……まだアプリの話は出てきません。メニューにすら登場しないのです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/1cf2fd84fde5478f4b92924e42d92a0cf05327da-435x774.png" alt=""/></figure>
<p>私が初めてアプリを目にしたのは、登録当日に届いたフォローアップメールでした。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/ab220ffde29a172d0ad431049a8052468ccd04f7-525x1155.png" alt=""/></figure>
<p>これは、「優れたフローは、必ずしも最初にアプリを前面に出す必要はない」ということを示しています。もしアプリが主にリテンションのためのツールであったり、十分なセットアップや文脈理解を必要とする場合、まずWeb上で包括的かつ教育的な体験を提供する方が、結果的に効果的なこともあるのです。</p>
<h3>YNABのWeb-to-Appファネルから、他のアプリが学べることは？</h3>
<p><strong>1. Web-to-Appは、必ずしも最初にアプリを前面に出す必要はない</strong>
YNABは、意図的と言っていいほどアプリの存在を後回しにしています。ほとんど不安になるほどですが、それは狙いどおりです。YNABにおいて中核となる価値提案はアプリそのものではなく、そのメソドロジーにあります。Web体験が、教育・信頼構築・心理的なコミットメント形成といった重い役割を担い、アプリが登場する前にユーザーを十分に引き込んでいます。</p>
<p><strong>2. 教育そのものがプロダクトである場合、ワークショップは強力に機能する</strong>
これらのワークショップは、成長のために後付けされたギミックや単なるリードマグネットではありません。YNABの思想を自然に拡張したものです。もしプロダクトが、考え方の転換や新しい行動様式の習得を必要とするのであれば、ワークショップはランディングページでは決して達成できない価値を生み出します。</p>
<p><strong>3. 「納得感」があれば、長いオンボーディングでも成立する</strong>
このフローは確かに長いですが、長く感じません。質問は簡単なものから始まり、徐々に個人的な内容へと進みます。その間に、安心させるメッセージ、レビュー、説明が定期的に挟まれます。このケースでは、ステップ数そのものよりもペース配分のほうがはるかに重要です。</p>
<p><strong>4. 信頼が築かれるまで「大きなお願い」は遅らせる</strong>
銀行口座の連携は、非常に大きな信頼を伴う瞬間です。YNABは、ユーザーが時間を投資し、前進を実感し、理解されていると感じるまで、このお願いを待ちます。その段階では、それは「リスク」ではなく「妥当な行動」に感じられます。</p>
<p><strong>5. 成果ではなく、進捗を祝う</strong>
予算管理は長期戦です。YNABが祝うのは金銭的な成果ではなく、セットアップという進捗そのものです。パート2完了後の紙吹雪の演出は、節約額の話ではなく、目標に向かって前に進んでいるという勢いを祝うものです。</p>
<p><strong>6. 無料トライアルは「やるべき仕事」に合わせて設計すべき</strong>
34日間の無料トライアルは、適当に決められたものではありません。1か月分の予算サイクルを一通り体験し、価値を実感してから支払い判断ができるだけの時間を提供しています。このトライアル期間は、単なるコンバージョン促進ではなく、行動変容を支えるための設計になっています。</p>
<h2>5: Photoroomの無料ツール型ファネル</h2>
<p><strong>Webファネルのタイプ：無料ツール → Webオンボーディング → トライアルオファー → アプリインストール</strong></p>
<p>写真編集アプリの <a href="https://www.photoroom.com/">Photoroom</a> は、B2B志向のアプリが、押し付けがましさを感じさせずにWeb-to-Appを活用している好例のひとつです。アカウント作成やトライアルの背後にすべてを閉じ込めるのではなく、まず最初に「実際の作業」をさせてくれます。背景削除を、摩擦ゼロで、Web上ですぐに無料で試せるのです。それだけで、すでに明確な価値が提供されています。</p>
<p>興味深いのは、このWeb体験が「簡易的なティーザー」には感じられない点です。むしろ、それ自体がひとつの実用的なプロダクトとして成立しています。それでいて、各ステップごとに、より深いコミットメントへとさりげなく導かれていきます。</p>
<p>画像をアップロードして結果を確認した瞬間、ユーザーはすでに「なるほど！」というアハ体験をしています。そして、まさにそのタイミングで、Photoroomは次のステップを少しずつ重ねていくのです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/dbf41fb66c203a2c384b7aab1c01481e96fb6a9a-1600x1037.png" alt=""/><figcaption>確認：ここから全ての詳細を拡大表示できます</figcaption></figure>
<h3><strong>価値を先に提供し、その後にコミットメントを求める</strong></h3>
<p>Photoroomは、オンライン上でそのままアクセスして利用できる複数のツールを提供しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/1c5c7dfd9f300cb84d17b3442be8e1dd4d2730ad-426x403.png" alt=""/></figure>
<p>Photoroomが下している最も賢い判断のひとつは、アカウント作成を早い段階で強制しないことです。サインアップせずに最初のアクションを完了できるため、特に「一度きりの課題」を解決したいユーザーにとって、初期の摩擦が大きく軽減されます。</p>
<p>しかし、それだけでは終わりません。Photoroomは、その最初の成功体験を、次のステップを求める正当な理由として活用します。編集を続けたい、高画質で書き出したい、追加機能を試したい──そうなった段階で、アカウント作成が促されます。この時点では、それがごく自然に感じられます。支払いを求められるわけでも、何かをダウンロードさせられるわけでもありません。「試すために登録する」のではなく、すでに始めた作業を続けるために登録するという感覚です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/b64440bdd0f64919f4916da941b147488fc33af0-1600x740.png" alt=""/></figure>
<p>これは、Web-to-Appにおいて必ずしも強いゲート（ハードゲート）が必要ではないことを思い出させてくれる好例です。場合によっては、まずコアとなる価値を実際に体験してもらうことこそが、ユーザーの意欲（インテント）を最も早く高める近道になるのです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a49711d77679649cc3cf791d265128c7c98f7ce6-1600x1437.png" alt=""/></figure>
<h3>個人事業主とビジネス利用：まったく異なる2つのジャーニー</h3>
<p>アカウントを作成すると、Photoroomはすぐにどのような用途でプロダクトを使う予定かを尋ねてきます。ここで、このファネルは明確にB2B志向になります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/3ad8e35f2841a4119544c541c01f98c010db2fdc-706x653.png" alt=""/></figure>
<p>個人利用だと回答した場合、フローは比較的ライトなまま進みます。それでも、インポートするブランドを持っているかどうかは確認されます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/e7520d9d92987a2134535c9e61240c065bc988d8-860x528.png" alt=""/></figure>
<p>一方で、Photoroomをビジネス用途で使うと回答すると、体験は大きく変わります。オンボーディングはより深くなり、会社について、ニーズについて、想定している利用量についてといった質問が続きます。これは不要な質問をされている感じではなく、むしろ適切に見極められている（クオリファイされている）感覚に近いものです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/f0ac15eb7b329707df1db0eabc293cb91c6ada65-860x528.png" alt=""/></figure>
<p>Photoroomは、あなたがどのような顧客なのか、どの価格帯やセットアップが適切なのかを明確に理解しようとしています。グロースの観点では、これは同時に次の2つを実現しています。</p>
<ul>
<li>体験を最適化することで、<strong>関連性（リレバンス）を高める</strong></li>
<li>より高度で高価格帯のプランに対する<strong>期待値を、早い段階で設定する</strong></li>
</ul>
<p>これは、webオンボーディングを単なるコンバージョン手段としてではなく、アプリ体験が始まる前にユーザーを適切にセグメントするための手段として活用している、非常に良い例です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/cb5502c40622e4c8221d6e55d282d0ea80a98cec-1600x1109.png" alt=""/></figure>
<h3>ファネルの一部としてのチームセットアップ</h3>
<p>Photoroomのフローの中で、私が特に気に入っている点のひとつが、チームセットアップを非常に早い段階で導入していることです。ビジネスユーザーにとって、チームメンバーの招待は「あとで見つける高度な機能」ではなく、自然な次のステップとして位置づけられています。</p>
<p>インターフェース上では、チームを招待して共有ワークスペースを設定することがとても簡単にできます。これによって、次の2つの重要な効果が生まれます。</p>
<ul>
<li><strong>早い段階でスイッチングコストを高める</strong></li>
<li>課金が発生する前に、<strong>1人のユーザーを複数人のユーザーへと広げる</strong></li>
</ul>
<p>価格が提示される頃には、もはや「個人としてツールを評価している」状態ではありません。チームとしてワークフローを導入するという視点に切り替わっています。この意識の変化だけでも、価格の受け取られ方は大きく変わります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/ab9d3d90e7e6c4379b53a40f546fa14fbaeede21-1600x1433.png" alt=""/></figure>
<h3>繰り返しているのに、くどく感じさせない工夫</h3>
<p>Photoroomは、価格提示までのフロー全体を通してさりげないが非常に効果的なことをしています。それは、どの無料ツールから使い始めた場合でも、同じ中核となる機能や価値提案が繰り返し表示されるという点です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/de69a7ab3796857b55d76229288e9ce19eab812a-1342x1356.jpg" alt=""/></figure>
<p>一見すると、プロダクト全体の幅広さをあえて控えめに見せているようにも感じられます。しかし、これは意図的だと思います。Photoroomができることをすべて並べてユーザーを圧倒するのではなく、少数のコア機能にフォーカスし、それを一貫して強調しているのです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/fe22e4db14f0c6ba87c646a8c5d34b951719031f-864x890.png" alt=""/></figure>
<p>このような繰り返しは、理解を深め、認識を明確にします。「網羅性」よりも「フォーカス」のほうが、コンバージョンにつながりやすいということを思い出させてくれる好例です。</p>
<h3>価格の分かりやすさとトライアル提示のタイミング</h3>
<p>Photoroomが無料トライアルを提示するタイミングは、唐突ではありません。この時点までに、ユーザーはすでに次の体験をしています。</p>
<ul>
<li>プロダクトを実際に使っている</li>
<li>アカウントを作成している</li>
<li>自分のワークフローの中でどう役立つかを理解している</li>
<li>場合によっては、チームメンバーを招待している</li>
</ul>
<p>そのため、トライアルは強引な売り込みではなく、自然な延長線上の次のステップとして受け取られます。いくつかの質問に答え、アカウント設定も済んでいるため、オンライン決済の失敗リスクを下げる設計にもなっています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/f69f6ad148556b026cfe16bbc9656ebcbb4b6ed6-1424x1600.png" alt=""/></figure>
<p>また、Photoroomの価格表示が非常に明確である点も評価できます。何が提供され、いくら請求され、いつ課金されるのかがはっきり分かり、「うっかり忘れてしまうようなトライアルに騙された」という感覚がありません。このような透明性は信頼を生み、特にビジネスユーザーにとっては非常に重要です。</p>
<h3>他のアプリは、PhotoroomのWeb-to-Appファネルから何を学べるか？</h3>
<p><strong>1. 実際に役立つ体験を、まず無料で提供する</strong>
Photoroomは、最初に意味のある価値を無償で提供しても、コンバージョンを損なわないことを示しています。むしろそれが、コンバージョンを生み出しています。</p>
<p><strong>2. Webオンボーディングは「売る」だけでなく「見極める」ために使う</strong>
ビジネス利用かどうかを尋ねることで、より深いセグメンテーションが可能になり、後続の価格設計や体験の最適化につながります。

<strong>3.</strong> <strong>早い段階からチーム利用を前提に設計する</strong>
マネタイズ前にチーム設定を導入することで、ユーザーのコミットメントが高まり、アカウントあたりの価値も拡大します。

<strong>4. さりげない反復が、理解を深める</strong>
複数の入口で少数のコア機能に絞って繰り返し伝えることで、ユーザーは「このプロダクトが何のためのものか」を理解し、記憶しやすくなります。

<strong>5. トライアルは「納得感」があると最も効果的に機能する</strong>
無料トライアルが提示される頃には、それはリスクのある選択ではなく、自然で当然の次のステップとして感じられます。</p>
<h2>「最適解」のWeb-to-Appファネルは存在しない</h2>
<p>5つの事例を通して見えてくる最大の学びは、Web-to-Appに万能なテンプレートは存在しないということです。Calm、Blinkist、PlantIn、YNAB、Photoroomは、それぞれプロダクト、ユーザー、そして「達成したいジョブ（Jobs to be done）」が異なるため、まったく異なるアプローチを取っています。</p>
<ul>
<li><strong>感情</strong>に訴える</li>
<li><strong>学習・教育</strong>を軸にする</li>
<li><strong>実用性</strong>を前面に出す</li>
</ul>
<p>共通しているのは、明確な意図とユーザー価値へのフォーカスです。これらのファネルはいずれも、Webを「できるだけ早くアプリに送客するためだけの薄い獲得レイヤー」として扱っていません。その代わりに、Webは以下の役割を担っています。</p>
<ul>
<li>信頼を構築する</li>
<li>コミットメントを生み出す</li>
<li>不安や不確実性を減らす</li>
<li>そして場合によっては、プロダクトの中核となる価値そのものを提供する</li>
</ul>
<p>もし一つだけ覚えておくべきことがあるとすれば、それはこれです。<strong>アプリが開かれる前に、最も難しい仕事をWebファネルが担うべきだということ。</strong></p>
<p>それは、Calmのようにユーザーが自分自身をより深く理解する手助けかもしれません。あるいは、BlinkistやYNABのように、役立つ知識を教えることかもしれません。または、PhotoroomやPlantInのように、最初から実際の価値を体験させることかもしれません。</p>
<p>もちろん、最適なアプローチはサブスクリプションアプリごとに異なります。しかし機会は共通しています。Web-to-Appは単なる「橋渡し」ではなく、高品質なユーザーを生み出すプロダクト体験の一部として機能したとき、最も効果を発揮するのです。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Jetpack Composeでアニメーション付きカスタムペイウォールを構築する]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/custom-paywalls-compose</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/custom-paywalls-compose</guid>
      <pubDate>Mon, 26 Jan 2026 07:28:56 GMT</pubDate>
      <dc:creator><![CDATA[Jaewoong Eum]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[この記事では、Jetpack Compose を用いて高度な「Day & Night」アニメーション付きペイウォールをどのように構築するかを解説します。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/fe6909856f1ee2419cd3f5bc5ac39550216dd283-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>ペイウォールは、アプリと収益をつなぐ重要な接点です。既成テンプレートを使えば素早く立ち上げられますが、ブランドのアイデンティティに合い、記憶に残るユーザー体験を生み出すカスタムペイウォールを作るべき理由も十分にあります。たとえば、昼と夜のテーマを切り替えるようにユーザーの状況に反応するアニメーション付きペイウォールは、静的テンプレートでは実現できない感情的なつながりを生み出せます。丁寧に作り込まれたペイウォールがもたらす心理的な効果は、単なる見た目の良さに留まりません。ユーザーに「このアプリは洗練されていて、プロフェッショナルで、投資する価値がある」と伝えるシグナルになります。</p>
<p>この記事では、Jetpack Composeで高度なアニメーション付きペイウォールを構築する方法を学びます。「Day &amp; Night」ペイウォールの実装を深掘りし、各アニメーション手法をステップごとに解説します。さらに、Firebaseを使ってカスタムペイウォールのコンテンツを俊敏にA/Bテストする方法も学び、RevenueCatのPaywall Builderを選ぶほうが適しているケースも把握できます。読み終える頃には、コンバージョンにつながるカスタムペイウォールを「いつ」「どのように」作るべきかを、総合的に理解できるはずです。</p>
<h2><strong>カスタムペイウォールを作る：Day &amp; Night の深掘り</strong></h2>
<p>ここでは、16秒サイクルで昼と夜のテーマが切り替わる、プロダクション品質のアニメーション付きペイウォールを見ていきます。この実装では、複数の高度なComposeアニメーション手法が調和して連携しています。ペイウォールは、太陽が昇って沈み、星がきらめきながら現れ、雲が空を流れ、UI要素が時間帯に合わせて色を変える——といった、動的に変化する没入感のある環境を作り出します。この連続的なサイクルは注意を引きつけ、静的なペイウォールでは実現できない感情的なエンゲージメントを生み出します。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/ef456c84592d155af1e6d2d435b46bfd20e60923-1561x925.gif" alt=""/></figure>
<h3><strong>アーキテクチャ概要</strong></h3>
<p>Day &amp; Night ペイウォールは、関心事を明確に分離したレイヤードアーキテクチャを採用しています。土台となるのは <code>DayNightBackground</code> コンポーザブルで、空のグラデーション遷移、個別にきらめく挙動を持つプロシージャル生成の星空、空を弧を描いて移動する太陽と月、継続的に流れるパララックス雲レイヤー、そしてシーン全体を支えるランドスケープのグラデーションなど、すべての環境アニメーションを担当します。</p>
<p>このアニメーション背景の上に、コンテンツオーバーレイとして実際のペイウォール情報が配置されます。サイクルに応じて「GOOD MORNING」と「GOOD EVENING」がクロスフェードする挨拶文、昼夜の状態に合わせて色が変化するアニメーション付きチェックマークの機能リスト、アクセントカラーがアニメーションする価格表示、そして昼は温かみのあるゴールド、夜はクールなインディゴへと遷移するCTAボタンが含まれます。</p>
<p>このレイヤードアーキテクチャにはいくつもの利点があります。背景のアニメーションロジックがコンテンツ表示から切り離されているため、両者をそれぞれ独立して変更しやすくなります。背景は必要に応じて他のコンテキストで再利用でき、コンテンツレイヤーは複雑なアニメーションコードに触れることなく更新可能です。さらに、この分離によって、Composeが各レイヤーごとに再コンポーズを最適化できるため、パフォーマンスの向上にもつながります。</p>
<h3><strong>アニメーションサイクルのセットアップ</strong></h3>
<p>このペイウォール全体は、16秒かけて 0 から 1 までループする単一の cycleProgress値によって駆動されます。この長さは慎重に選ばれていて、遷移をじっくり味わえるだけの余裕がありつつ、急かされている感じはしません。一方で、一般的なペイウォールの閲覧時間の中でユーザーがサイクル全体を体験できるくらいには短くもあります。</p>
<pre><code class="language-kotlin">@Composable
fun DayNightPaywallScreen(onDismiss: () -&gt; Unit = {}) {
    val paywallState = rememberPaywallState(onPurchaseSuccess = onDismiss)
    val infiniteTransition = rememberInfiniteTransition(label = &quot;daynight&quot;)

    val cycleProgress by infiniteTransition.animateFloat(
        initialValue = 0f,
        targetValue = 1f,
        animationSpec = infiniteRepeatable(
            animation = tween(16000, easing = LinearEasing),
            repeatMode = RepeatMode.Restart,
        ),
        label = &quot;cycle&quot;,
    )

    val isDay = cycleProgress &lt; 0.5f
    \/\/ ...
}</code></pre>
<p>このパターンは、複雑なアニメーションにおいて重要です。<strong>単一の進捗値を「唯一の真実（source of truth）」として扱い、そこから他のすべてのアニメーションを派生させます。</strong>こうすることで完全な同期が保証され、アニメーションの挙動も理解しやすくなります。このペイウォールのように複数のアニメーションが連動する必要がある場合、ドライバーを1つにすることでタイミングのズレ（ドリフト）をなくし、要素同士の関係を明確にできます。</p>
<p><code>LinearEasing</code> を選んでいるのも意図的です。時間の経過を表す連続的なサイクルでは、線形の進行が最も自然に感じられます。非線形のイージングにすると、日中のある時間帯が速く感じたり遅く感じたりしてしまい、このメタファーが崩れます。 <code>RepeatMode.Restart</code> によって、深夜から夜明けへとシームレスにループできるようにしています。</p>
<p>サイクルは2つのフェーズに分かれています。昼のフェーズは 0.0〜0.5 で、この間に太陽が昇り、空を横切って沈みます。夜のフェーズは 0.5〜1.0 で、同じ軌道を月が辿ります。この対称的な分割により、ユーザーは昼と夜の両モードを同じだけ体験でき、2つのビジュアル表現の露出を最大化できる、バランスの取れた体験になります。</p>
<h3><strong>アニメーション背景の実装</strong></h3>
<p><code>DayNightBackground</code> composable が、環境全体のアニメーションをすべて担当します。ここがまさに「魔法」が起きる場所で、シンプルな進捗値を、生き生きと動くシーンへと変換します。各レイヤーを分解して、どのように連携して動いているのかを理解していきましょう。</p>
<h3><strong>手続き的な星の生成</strong></h3>
<p>星は一度だけ生成して remember で保持し、自然なばらつきが出るようにプロパティをランダム化します。手続き的アプローチを採ることで、セッションごとにユニークな星空が生成され、体験にさりげない多様性が加わります。</p>
<pre><code class="language-kotlin">data class NightStar(
    val x: Float,
    val y: Float,
    val size: Float,
    val twinklePhase: Float,
    val twinkleSpeed: Float,
)

@Composable
fun DayNightBackground(cycleProgress: Float, modifier: Modifier = Modifier) {
    val stars = remember {
        List(60) {
            NightStar(
                x = Random.nextFloat(),
                y = Random.nextFloat() * 0.6f,  \/\/ Upper 60% of sky only
                size = Random.nextFloat() * 2f + 1f,
                twinklePhase = Random.nextFloat() * PI.toFloat() * 2f,
                twinkleSpeed = Random.nextFloat() * 2f + 1f,
            )
        }
    }
    \/\/ ...
}</code></pre>
<p>各星はそれぞれ固有の「きらめき（twinkle）」の位相と速度を持ち、同じタイミングで一斉に点滅しないようになっています。この非同期化はリアリティにとって重要で、同期したきらめきは不自然で機械的に見えてしまいます。 y 座標は 0.6 で上限を設け、星が本来あるべき空の上部に収まるようにしています。これにより、画面下部の地形（ランドスケープ）領域に星が出現するのを防げます。</p>
<p>星の数を 60 個にすることで、見た目の密度とパフォーマンスのバランスを取っています。星が少なすぎると夜空がスカスカに見え、逆に大幅に増やすと低スペック端末で描画パフォーマンスに影響する可能性があります。サイズを 1〜3px の範囲（<code>Random.nextFloat() * 2f + 1f</code>）にすることで奥行き感が生まれ、小さい星ほど遠くにあるように見せられます。</p>
<p><code>remember</code> ブロックにより、星はコンポジションごとに一度だけ生成され、ペイウォールがサイクルで変化しても一貫性が保たれます。これがないと、再コンポーズのたびに星が再生成されてしまい、カオスなチラつきが発生します。</p>
<h3><strong>フレーム精度のデルタタイム</strong></h3>
<p>フレームレートに依存しない滑らかなアニメーションのために、実際に経過した時間を追跡します。この手法はプロ品質のアニメーションにおける基本で、性能特性が異なるデバイス間でも一貫した挙動を保証します。</p>
<pre><code class="language-kotlin">var totalTime by remember { mutableFloatStateOf(0f) }
var lastFrameTimeNanos by remember { mutableLongStateOf(0L) }

LaunchedEffect(Unit) {
    while (true) {
        withFrameNanos { frameTimeNanos -&gt;
            val deltaTime = if (lastFrameTimeNanos == 0L) {
                0.016f  \/\/ Assume 60fps for first frame
            } else {
                ((frameTimeNanos - lastFrameTimeNanos) \/ 1_000_000_000f)
                    .coerceIn(0f, 0.1f)  \/\/ Cap to prevent jumps
            }
            lastFrameTimeNanos = frameTimeNanos
            totalTime += deltaTime
        }
    }
}</code></pre>
<p>このアプローチには2つのメリットがあります。1つ目は、端末性能に関係なくアニメーションが滑らかに保たれることです。30fps で動く端末でも 120fps の端末でも、同じ速度でアニメーションが進行します。2つ目は、デバイス間でアニメーション速度が統一されることです。低価格帯の端末でもハイエンド端末でも、ユーザーは同じ体験を見られます。</p>
<p><code>coerceIn(0f, 0.1f)</code> は、アプリがバックグラウンドから復帰したときのアニメーションの「飛び」を防ぎます。この上限がない場合、アプリがサスペンドされている間のデルタタイムが数秒になることがあり、雲の移動のような連続アニメーションで不自然なジャンプが発生します。デルタタイムを 0.1 秒（100ms）に制限することで、短時間の中断後でも滑らかに復帰できます。</p>
<p>ここで重要になるのが <code>withFrameNanos</code> 関数です。次のフレームまでサスペンドし、ナノ秒単位で正確なフレームタイムスタンプを提供します。長時間動作するアニメーションでタイミング誤差が蓄積し得る <code>delay()</code> のような代替手段よりも、精度が高いのが特長です。</p>
<h3><strong>マルチフェーズの空グラデーション</strong></h3>
<p>空は 8 つの明確な色フェーズを順に遷移し、夜明け → 昼 → 夕暮れ → 夜 → 夜明けへと戻る、現実感のあるサイクルを描きます。各フェーズでは 3 色のグラデーションを使い、空に奥行きを与えています。</p>
<pre><code class="language-kotlin">val sunriseColors = listOf(Color(0xFFFF8C42), Color(0xFFFFD700), Color(0xFFFFF4E0))
val dayColors = listOf(Color(0xFF4A90D9), Color(0xFF87CEEB), Color(0xFFB8E0F0))
val sunsetColors = listOf(Color(0xFFFF6B35), Color(0xFFFFAB5E), Color(0xFFFFD89E))
val duskColors = listOf(Color(0xFF2C3E50), Color(0xFF34495E), Color(0xFF5D6D7E))
val nightColors = listOf(Color(0xFF0D1B2A), Color(0xFF1B263B), Color(0xFF2C3E50))
val dawnColors = listOf(Color(0xFF1A1A2E), Color(0xFF16213E), Color(0xFF1F4068))</code></pre>
<p>色の選定は意図的で、実際の空の観察に基づいています。日の出では暖かみのあるオレンジやゴールドから始まり、グラデーション上部に向かって淡い色調へと移ろいます。昼はおなじみのスカイブルーを基調に、地平線に近づくにつれて明るくなります。夕焼けでは、より深いオレンジや赤で暖色が強調されます。薄暮では光が失われ、くすんだブルーグレーが現れます。夜は上部が濃いネイビーからほぼ黒に近づき、次のサイクルに向けて夜明けでは再びわずかな暖色の兆しが加わります。</p>
<p>フェーズ計算では、各ハーフサイクル内での進捗を正規化し、昼または夜のフェーズそれぞれで 0〜1 のローカル進捗値を作ります。</p>
<pre><code class="language-kotlin">val isDay = cycleProgress &lt; 0.5f
val dayProgress = if (isDay) cycleProgress * 2f else (cycleProgress - 0.5f) * 2f</code></pre>
<p>この正規化により遷移ロジックが単純化され、全体サイクルのどの位置にあっても、各フェーズは一貫して 0〜1 の範囲で扱えます。<code>cycleProgress</code> が 0.5 未満のときが昼フェーズ、上半分（0.5〜1.0）が夜フェーズです。</p>
<p>その後、各フェーズは <code>lerp</code> （線形補間）を使って滑らかに遷移します。進捗パラメータに基づいて色同士をブレンドします。</p>
<pre><code class="language-kotlin">val skyColors = if (isDay) {
    when {
        dayProgress &lt; 0.2f -&gt; {
            val t = dayProgress \/ 0.2f  \/\/ Normalize to 0-1 within this phase
            listOf(
                lerp(sunriseColors[0], dayColors[0], t),
                lerp(sunriseColors[1], dayColors[1], t),
                lerp(sunriseColors[2], dayColors[2], t),
            )
        }
        dayProgress &lt; 0.8f -&gt; dayColors  \/\/ Hold steady during midday
        else -&gt; {
            val t = (dayProgress - 0.8f) \/ 0.2f
            listOf(
                lerp(dayColors[0], sunsetColors[0], t),
                lerp(dayColors[1], sunsetColors[1], t),
                lerp(dayColors[2], sunsetColors[2], t),
            )
        }
    }
} else {
    \/\/ Similar structure for night phases...
}</code></pre>
<p>この設計により、自然に感じられる遷移が実現します。各ハーフサイクルのうち、日の出・日の入りはそれぞれ 20% を占め、残り 60% は安定した昼／真夜中の状態が保たれます。このテンポは、地平線付近で遷移が比較的速く起こり、昼夜の大半は安定しているという現実の採光パターンを模しています。また、この 20/60/20 の配分により、ペイウォールを短時間しか見ないユーザーでも何らかの変化を目にしやすく、体験を動的に保てます。</p>
<h3><strong>フェード遷移を伴う星の瞬き</strong></h3>
<p>星は夜明けと夕暮れのタイミングでフェードイン／フェードアウトしつつ、夜の間はそれぞれが個別に瞬く必要があります。この「二重アニメーション」の要件は、エフェクトをきれいにレイヤー化する方法を示しています。</p>
<pre><code class="language-kotlin">val starAlpha = if (isDay) {
    when {
        dayProgress &lt; 0.15f -&gt; 1f - dayProgress * 6f     \/\/ Fade out at dawn
        dayProgress &gt; 0.85f -&gt; (dayProgress - 0.85f) * 6f \/\/ Fade in at dusk
        else -&gt; 0f  \/\/ Invisible during day
    }
} else {
    when {
        dayProgress &lt; 0.15f -&gt; dayProgress * 6f           \/\/ Fade in after sunset
        dayProgress &gt; 0.85f -&gt; 1f - (dayProgress - 0.85f) * 6f \/\/ Fade out before sunrise
        else -&gt; 1f  \/\/ Fully visible at night
    }
}

if (starAlpha &gt; 0f) {
    for (star in stars) {
        val twinkle = (sin(totalTime * star.twinkleSpeed + star.twinklePhase) + 1f) \/ 2f
        val alpha = starAlpha * (0.4f + twinkle * 0.6f)  \/\/ Range: 40% to 100%
        drawCircle(
            color = Color.White.copy(alpha = alpha),
            radius = star.size,
            center = Offset(star.x * width, star.y * height),
        )
    }
}</code></pre>
<p>フェードのタイミングは、各フェーズの端に 15% のウィンドウを設けており、滑らかな遷移になります。倍率の 6（1/0.15 から導出）によって、フェードがそのウィンドウ内でちょうど完了するように調整されています。昼フェーズでは、時間の 70% は星が不可視（alpha 0）で、夜明けと夕暮れの遷移中にだけ星が現れます。</p>
<p>瞬き（twinkle）効果は、各星が持つ固有の位相でオフセットされたサイン波を使います。サイン関数は自然に -1〜1 の間を往復するため、 (<code>sin(...) + 1f) / 2f </code>で 0〜1 に正規化します。これに <code>starAlpha</code> を掛けることで全体のフェード効果を作り、さらに内側の計算 <code>(0.4f + twinkle * 0.6f)</code> によって星が完全に消えないようにしています。つまり、明るさは 40%〜100% の間で揺れ、実際の星のような大気による瞬きに近い見え方になります。</p>
<p>パフォーマンス最適化として、 <code>if (starAlpha &gt; 0f)</code> により、昼の間（星が見えないとき）は星の描画ループ自体をスキップします。これにより、不要な計算を避けられます。</p>
<h3><strong>太陽と月の弧を描く軌道</strong></h3>
<p>太陽と月は、空の上を同じ弧のパスで移動し、説得力のある天体の動きを作り出します。ここで使っている三角関数によって、地平線から地平線へと自然に移る軌道になります。</p>
<pre><code class="language-kotlin">val sunMoonY = height * 0.35f  \/\/ Arc center Y position
val arcRadius = width * 0.6f   \/\/ Arc radius
val centerX = width \/ 2f

if (isDay) {
    val sunAngle = PI.toFloat() * (1f - dayProgress)  \/\/ PI to 0 as progress increases
    val sunX = centerX + cos(sunAngle) * arcRadius
    val sunY = sunMoonY - sin(sunAngle) * arcRadius * 0.5f + height * 0.1f

    if (sunY &lt; height * 0.7f) {  \/\/ Only draw when above horizon
        \/\/ Draw sun...
    }
}</code></pre>
<p>この三角関数は、パラメトリックな計算で滑らかな弧を作ります。 <code>dayProgress = 0</code> のとき角度は PI （180度）なので、 <code>cos(PI) = -1 </code>により太陽は画面の左側に位置します。<code> dayProgress = 0.5</code> のとき角度は PI/2 （90度）となり、 <code>cos(PI/2) = 0</code> かつ <code>sin(PI/2) = 1</code> なので、太陽は画面上部の中央に配置されます。 <code>dayProgress = 1</code> のとき角度は 0 になり、cos(0) = 1によって太陽は画面の右側に位置します。</p>
<p>Y成分に <code>0.5f</code> の倍率を掛けることで、円弧ではなく楕円弧になり、空の高い位置まで上がりすぎない、より自然な「地平線から地平線」への軌道になります。さらに <code>height * 0.1f</code> のオフセットで弧全体を下方向にずらし、太陽と月が可視領域の下から昇って、また下へ沈むように見せることで、適切な地平線の演出を作っています。</p>
<p>また、 <code>if (sunY &lt; height * 0.7f)</code> という地平線チェックによって、天体が地形（ランドスケープ）エリアの下にあるときは描画しないようにしています。このシンプルなカリングにより、日の出・日の入り（および月の出・月の入り）の切り替わりがきれいになり、太陽と月が自然に地平線から現れて沈むように見えます。</p>
<h3><strong>アニメーションする光線を備えた太陽の描画</strong></h3>
<p>太陽は、発光して“生きている”ように見せるために複数レイヤーで構成されています。各レイヤーには役割があり、それらが合わさって放射するような暖かさの印象を作ります。</p>
<pre><code class="language-kotlin">\/\/ Outer glow
drawCircle(
    brush = Brush.radialGradient(
        colors = listOf(
            Color(0xFFFFFFCC).copy(alpha = 0.4f),
            Color(0xFFFFD700).copy(alpha = 0.2f),
            Color.Transparent,
        ),
        center = Offset(sunX, sunY),
        radius = 80f,
    ),
    radius = 80f,
    center = Offset(sunX, sunY),
)

\/\/ Main sun body
drawCircle(
    brush = Brush.radialGradient(
        colors = listOf(
            Color(0xFFFFFFE0),
            Color(0xFFFFD700),
            Color(0xFFFFA500),
        ),
        center = Offset(sunX - 8f, sunY - 8f),  \/\/ Offset for 3D effect
        radius = 35f,
    ),
    radius = 35f,
    center = Offset(sunX, sunY),
)

\/\/ Animated rays
for (i in 0 until 12) {
    val rayAngle = (i * 30f + totalTime * 20f) * PI.toFloat() \/ 180f
    val innerRadius = 40f
    val outerRadius = 55f + sin(totalTime * 3f + i) * 5f  \/\/ Pulsing length
    drawLine(
        color = Color(0xFFFFD700).copy(alpha = 0.6f),
        start = Offset(
            sunX + cos(rayAngle) * innerRadius,
            sunY + sin(rayAngle) * innerRadius,
        ),
        end = Offset(
            sunX + cos(rayAngle) * outerRadius,
            sunY + sin(rayAngle) * outerRadius,
        ),
        strokeWidth = 3f,
        cap = StrokeCap.Round,
    )
}</code></pre>
<p>外側のグロー（発光）には、透明へ向かってフェードする放射状グラデーションを使い、太陽の周りに柔らかなハロー（光の輪）を作ります。この大気的なグローが奥行きを与え、太陽がただの平坦な円として空間に浮いて見えるのを防ぎます。</p>
<p>太陽本体は、グラデーションの中心を少しオフセット（上と左へ8ピクセル）して、控えめな3D感を作っています。このオフセットにより片側がより明るく見え、太陽に厚みがあり、光が一定方向から当たっているかのように感じられます。中心の淡い黄色から金色を経て、縁のオレンジへと移る色の変化は、太陽の写真で見られる色の階調を再現しています。</p>
<p>光線（レイ）は2つの方法でアニメーションします。1つ目は、角度計算にある <code>totalTime * 20f</code> によってゆっくり回転し、スピンしているような効果を作ります。2つ目は、 <code>sin(totalTime * 3f + i) * 5f</code> によって各光線の長さがそれぞれ独立して伸縮し、 + i の位相オフセットで光線ごとに脈動のタイミングがずれるようにしています。この組み合わせにより、有機的で呼吸しているような質感が生まれ、太陽が“生きている”ように感じられます。</p>
<h3><strong>視差による雲の移動</strong></h3>
<p>雲は、互いに独立した移動速度によって奥行きを作ります。これは「パララックス（視差）」と呼ばれる手法で、2Dシーンに立体感を生み出すうえで基本となるものです。</p>
<pre><code class="language-kotlin">data class Cloud(val xOffset: Float, val y: Float, val scale: Float, val speed: Float)

val clouds = remember {
    List(5) {
        Cloud(
            xOffset = Random.nextFloat(),
            y = Random.nextFloat() * 0.3f + 0.1f,  \/\/ Upper portion of sky
            scale = Random.nextFloat() * 0.5f + 0.8f,
            speed = Random.nextFloat() * 0.02f + 0.01f,
        )
    }
}</code></pre>
<p>5つの雲には、それぞれ異なるスケール（大きさ）と速度が設定されています。大きくて遅い雲は遠くにあるように見え、小さくて速い雲は手前にあるように感じられます。この変化により、平坦な2Dキャンバスであっても大気的な奥行きが生まれます。Y座標は画面の上部1/3（高さの0.1〜0.4）に制限されており、雲が本来あるべき空の領域に収まるようになっています。</p>
<p>各雲は、重なり合う円で描画され、横方向にループ（wrap）する移動を行います。</p>
<pre><code class="language-kotlin">val cloudAlpha = if (isDay) 0.9f else 0.15f  \/\/ Dim at night
val cloudColor = if (isDay) Color.White else Color(0xFF555555)

for (cloud in clouds) {
    val cloudX = ((cloud.xOffset + totalTime * cloud.speed) % 1.4f - 0.2f) * width

    drawCircle(
        color = cloudColor.copy(alpha = cloudAlpha * 0.8f),
        radius = 25f * cloud.scale,
        center = Offset(cloudX, cloudY),
    )
    drawCircle(
        color = cloudColor.copy(alpha = cloudAlpha),
        radius = 35f * cloud.scale,
        center = Offset(cloudX + 30f * cloud.scale, cloudY - 5f),
    )
    \/\/ Additional circles for cloud shape...
}</code></pre>
<p><code>% 1.4f - 0.2f</code> というラップの式によって、雲は右側へ抜けたあと、左側から自然に再登場します。 1.4 の範囲（画面幅の140%）と -0.2 のオフセットを組み合わせることで、雲は画面の左端より少し外側で生成され、可視領域全体を横切り、右端を少し超えたところまで進んでからラップします。これにより、端で“ポップ”して見えることなく、滑らかで連続的な動きになります。</p>
<p>雲の色とアルファ（不透明度）は昼夜で変化します。昼の雲は不透明度90%の明るい白で、青空に対してはっきり見えます。夜の雲は不透明度15%の濃いグレーになり、星空を邪魔しない程度の控えめなシルエットとして見えるようになります。</p>
<h3><strong>サイクルに合わせてUI要素をアニメーションさせる</strong></h3>
<p>UIレイヤーは、 <code>animateColorAsState</code> を使って昼／夜の状態に応じてアニメーションします。<code>animateColorAsState</code> は、ターゲットの色が変わるたびに色同士を滑らかに補間します。</p>
<pre><code class="language-kotlin">val buttonColor by animateColorAsState(
    targetValue = if (isDay) Color(0xFFFFB800) else Color(0xFF6366F1),
    animationSpec = tween(800),
    label = &quot;buttonColor&quot;,
)

val buttonTextColor by animateColorAsState(
    targetValue = if (isDay) Color.Black else Color.White,
    animationSpec = tween(800),
    label = &quot;buttonTextColor&quot;,
)

val accentColor by animateColorAsState(
    targetValue = if (isDay) Color(0xFFFFD700) else Color(0xFF8B9DC3),
    animationSpec = tween(800),
    label = &quot;accentColor&quot;,
)</code></pre>
<p>800ms のdurationは、急ぎすぎない滑らかなトランジションを作ります。このタイミングは、ペイウォール全体のテンポに合わせて選ばれており、反応は十分に機敏に感じられつつ、ユーザーが変化を認識できて心地よい速さでもあります。色の選定も昼夜テーマを強化します。昼は暖かいゴールド系のトーンで日差しやエネルギーを想起させ、夜はクールなインディゴやシルバー系で落ち着きと洗練された印象を作ります。</p>
<p>label パラメータは、デバッグやツール連携で重要です。Android StudioのAnimation PreviewやComposeのデバッグツールを使うとき、これらのlabelによって可視化の中で「どのアニメーションがどれか」を識別しやすくなります。</p>
<h3><strong>挨拶テキストのクロスフェードアニメーション</strong></h3>
<p>挨拶テキストは、Crossfade を使って「GOOD MORNING」と「GOOD EVENING」を切り替えています。Crossfade は、コンテンツが切り替わる際の表示・非表示アニメーションを自動的に処理してくれます。</p>
<pre><code class="language-kotlin">Crossfade(
    targetState = isDay,
    animationSpec = tween(800),
    label = &quot;greeting&quot;,
) { day -&gt;
    Text(
        text = if (day) &quot;GOOD MORNING&quot; else &quot;GOOD EVENING&quot;,
        style = TextStyle(
            color = Color.White.copy(alpha = 0.8f),
            fontSize = 12.sp,
            fontWeight = FontWeight.Bold,
            letterSpacing = 4.sp,
        ),
    )
}</code></pre>
<p><code>Crossfade</code> コンポーザブルは、古いコンテンツをフェードアウトしつつ、新しいコンテンツを同時にフェードインさせます。これにより、ジャンプやチラつきのない、滑らかな切り替えが実現します。 800ms のdurationは他のUIアニメーションと揃えられており、全体として一体感のある体験を生み出します。</p>
<p>この挨拶テキストは、単なる装飾以上の重要な役割を持っています。時間帯に合った挨拶は、アプリがユーザーの状況を理解し、それに反応しているように感じさせる小さな工夫です。アニメーションする環境表現と組み合わさることで、配慮が行き届いた、完成度の高い体験であるという印象をユーザーに与えます。</p>
<h3><strong>カスタムチェックマークの描画</strong></h3>
<p>機能リストの各項目には、 Canvas で描画したアニメーション付きのチェックマークが含まれており、アニメーションに反応するカスタムグラフィックの作り方を示しています。</p>
<pre><code class="language-kotlin">@Composable
fun TimeFeatureItem(title: String, checkColor: Color, modifier: Modifier = Modifier) {
    Row(
        modifier = modifier.fillMaxWidth().padding(vertical = 8.dp),
        verticalAlignment = Alignment.CenterVertically,
    ) {
        Box(
            modifier = Modifier
                .size(24.dp)
                .clip(CircleShape)
                .background(checkColor),  \/\/ Animated color from parent
            contentAlignment = Alignment.Center,
        ) {
            Canvas(modifier = Modifier.size(12.dp)) {
                val path = Path().apply {
                    moveTo(size.width * 0.2f, size.height * 0.5f)
                    lineTo(size.width * 0.4f, size.height * 0.7f)
                    lineTo(size.width * 0.8f, size.height * 0.3f)
                }
                drawPath(
                    path = path,
                    color = Color.White,
                    style = Stroke(width = 2f, cap = StrokeCap.Round, join = StrokeJoin.Round),
                )
            }
        }

        Spacer(modifier = Modifier.width(14.dp))

        Text(
            text = title,
            style = TextStyle(
                color = Color.White,
                fontSize = 15.sp,
                fontWeight = FontWeight.Medium,
            ),
        )
    }
}</code></pre>
<p>アイコンではなく Canvas でチェックマークを描画することで、より精密にコントロールでき、アセットへの依存もなくせます。チェックマークのパスは相対座標（キャンバスサイズに対する割合）で定義されているため、どのサイズでも正しくスケールします。 <code>StrokeCap.Round</code> と <code>StrokeJoin.Round</code> によって、線の端や角が滑らかで、親しみやすい見た目になります。</p>
<p>背景色は親コンポーザブルから渡され、昼夜サイクルに合わせてアニメーションします。つまり、チェックマークの円は日中の暖かいゴールドから、夜の落ち着いたインディゴへと滑らかに移行し、ペイウォール全体のビジュアルと調和を保ちます。</p>
<h3><strong>購入のためのRevenueCat統合</strong></h3>
<p>このペイウォールは <code>rememberPaywallState</code> ヘルパーを通じてRevenueCatを統合しており、購入ロジックをすべてカプセル化して、UIレイヤーに対してクリーンなインターフェースを提供します。</p>
<pre><code class="language-kotlin">@Composable
fun DayNightPaywallScreen(onDismiss: () -&gt; Unit = {}) {
    val paywallState = rememberPaywallState(onPurchaseSuccess = onDismiss)

    \/\/ ...

    Button(
        onClick = { paywallState.purchase(PackageType.ANNUAL) },
        modifier = Modifier.fillMaxWidth().height(56.dp),
        colors = ButtonDefaults.buttonColors(containerColor = buttonColor),
        shape = RoundedCornerShape(14.dp),
    ) {
        Text(
            text = &quot;Start Free Trial&quot;,
            style = TextStyle(
                color = buttonTextColor,
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold,
            ),
        )
    }

    \/\/ ...

    Text(
        text = &quot;Restore Purchases&quot;,
        modifier = Modifier.clickable { paywallState.restorePurchases() },
        \/\/ ...
    )
}</code></pre>
<p><code>PaywallState</code> クラスが購入に関するロジックをすべて内包することで、UIのコンポーザブルは表示（プレゼンテーション）に集中できます。</p>
<pre><code class="language-kotlin">class PaywallState(
    private val scope: CoroutineScope,
    private val onPurchaseSuccess: () -&gt; Unit,
    private val onPurchaseError: (String) -&gt; Unit,
    private val onPurchaseCancelled: () -&gt; Unit,
) {
    var offering by mutableStateOf&lt;OfferingInfo?&gt;(null)
    var isLoading by mutableStateOf(false)
    var errorMessage by mutableStateOf&lt;String?&gt;(null)
    var selectedPackage by mutableStateOf(PackageType.ANNUAL)

    fun purchase(packageType: PackageType) {
        scope.launch {
            isLoading = true
            when (val result = PurchaseHelper.purchase(packageType)) {
                is PurchaseResult.Success -&gt; onPurchaseSuccess()
                is PurchaseResult.Error -&gt; onPurchaseError(result.message)
                is PurchaseResult.Cancelled -&gt; onPurchaseCancelled()
            }
            isLoading = false
        }
    }

    fun restorePurchases() {
        scope.launch {
            isLoading = true
            when (val result = PurchaseHelper.restorePurchases()) {
                is PurchaseResult.Success -&gt; onPurchaseSuccess()
                is PurchaseResult.Error -&gt; onPurchaseError(result.message)
                is PurchaseResult.Cancelled -&gt; { \/* No-op *\/ }
            }
            isLoading = false
        }
    }
}</code></pre>
<p>この関心の分離は、明確なアーキテクチャ原則に沿っています。つまり、UIコンポーネントは表示のみを担当し、ビジネスロジックは別クラスに置くべき、という考え方です。<code>PaywallState</code> はRevenueCatとのやり取り全般、ローディング状態、エラーハンドリングを管理し、UIが必要とするインターフェースだけを公開します。これにより、コードはテストしやすく、保守しやすく、変更もしやすくなります。購入ロジックの変更でUIコードを触る必要がなく、その逆も同様です。</p>
<h2><strong>アジャイルなA/BテストのためのFirebase活用</strong></h2>
<p>カスタムペイウォールは高い表現力とコントロールを提供しますが、異なるメッセージやオファーをテストするには、リモートで設定を切り替えられる仕組みが必要です。Firebase Realtime Database や Firestore を使えば、アプリのアップデートを行わずにペイウォールのコンテンツを反復改善できるようになります。</p>
<h3><strong>ペイウォールコンテンツにFirebaseを使う理由</strong></h3>
<p>RevenueCat は、サブスクリプションプロダクト、価格設定、アナリティクスの管理において非常に優れています。しかし、カスタムペイウォールを構築した場合、コンバージョンに影響する コンテンツレイヤー ― 見出し、サブ見出し、機能リスト、価格表示形式、CTA（コールトゥアクション）文言 ― をリモートで制御できる必要があります。これらの要素は実験によって最適化されることが多く、変更のたびにアプリストアの審査サイクルを待つのは、反復スピードを大きく落としてしまいます。</p>
<p>Firebase を使えば、アプリのアップデートなしでこれらの値を変更でき、迅速な実験が可能になります。朝にテストを立ち上げ、日中にデータを収集し、夜には勝ちパターンをロールアウトする──従来のアプリ更新では不可能なスピードです。この俊敏性は、どのメッセージがユーザーに響くのかを学んでいる マネタイズ初期フェーズ において、特に大きな価値を発揮します。</p>
<p>ブランド表現や高度なアニメーションを担う カスタムUI と、素早い反復改善を可能にする リモートコンテンツ を組み合わせることで、両方のメリットを享受できます。ペイウォールはユニークな見た目と体験を保ちつつ、テンプレート型ソリューションを使うチームと同じスピードでメッセージ最適化を行うことができます。</p>
<h3><strong>ペイウォールコンテンツのRemote Configを設定する</strong></h3>
<p>まず、Firestore にペイウォール設定の構造を定義します。この構造では、変更・検証したくなる可能性のある すべてのテキスト要素 を含めるようにします。</p>
<pre><code class="language-kotlin">data class PaywallConfig(
    val headline: String = &quot;Always On&quot;,
    val subheadline: String = &quot;Premium works day and night&quot;,
    val features: List&lt;String&gt; = listOf(
        &quot;24\/7 Access Anytime&quot;,
        &quot;Sync Across All Devices&quot;,
        &quot;Offline Mode Support&quot;,
        &quot;Smart Scheduling&quot;,
        &quot;Priority Notifications&quot;,
    ),
    val priceDisplay: String = &quot;$39.99\/year&quot;,
    val priceSubtext: String = &quot;Less than $3.50\/month&quot;,
    val ctaText: String = &quot;Start Free Trial&quot;,
    val variant: String = &quot;control&quot;,
)</code></pre>
<p>デフォルト値には、主に2つの役割があります。1つ目は、ネットワークリクエストが失敗した場合の フォールバック として機能し、ペイウォールが常に妥当な内容で表示されるようにすること。2つ目は、想定するコンテンツを ドキュメント化 することです。各フィールドが何のためのものかが明確になり、運用や更新もしやすくなります。</p>
<p>また、 <code>variant</code> フィールドはアナリティクスにおいて重要です。設定そのものにバリアント識別子を含めておくことで、分析イベントに 常に正しい紐づけ（アトリビューション） を入れられるようになります。これは、A/Bテストでよくある「バリアントの割り当て」と「表示されたコンテンツ」がズレてしまう不具合の典型を防ぐことにもつながります。</p>
<p><strong>ペイウォール表示時に設定を取得する</strong></p>
<pre><code class="language-kotlin">class PaywallConfigRepository(
    private val firestore: FirebaseFirestore
) {
    suspend fun getPaywallConfig(userId: String): PaywallConfig {
        \/\/ Determine which variant this user should see
        val variant = determineVariant(userId)

        return firestore.collection(&quot;paywall_configs&quot;)
            .document(variant)
            .get()
            .await()
            .toObject&lt;PaywallConfig&gt;()
            ?: PaywallConfig()  \/\/ Fallback to defaults
    }

    private fun determineVariant(userId: String): String {
        \/\/ Simple hash-based assignment for consistent user experience
        val hash = userId.hashCode().absoluteValue
        return when (hash % 3) {
            0 -&gt; &quot;control&quot;
            1 -&gt; &quot;variant_a&quot;
            else -&gt; &quot;variant_b&quot;
        }
    }
}</code></pre>
<p>ハッシュベースでのバリアント割り当てにより、一貫性が保たれます。同じユーザーはセッションをまたいでも常に同じバリアント を見ることになり、これは正しいA/Bテストを行ううえで不可欠です。もし訪問のたびに異なるバリアントが表示されてしまうと、特定の施策がどの程度効果を持ったのかを正確に測定することができません。</p>
<p>また、 <code>?: PaywallConfig()</code> のような null 合体演算子を使って デフォルト値にフォールバック することで、Firestore が利用できない場合でもペイウォールが必ず動作するようになります。このような防御的な設計により、ネットワーク障害が原因で購入フロー全体が止まってしまう事態を防ぐことができます。</p>
<h3><strong>ペイウォールに動的コンテンツを組み込む</strong></h3>
<p>ペイウォールが 設定（config）を受け取れるように修正 します。</p>
<pre><code class="language-kotlin">@Composable
fun DayNightPaywallScreen(
    config: PaywallConfig,
    onDismiss: () -&gt; Unit = {},
) {
    \/\/ Use config values instead of hardcoded strings
    Text(
        text = config.headline,
        style = TextStyle(
            color = Color.White,
            fontSize = 38.sp,
            fontWeight = FontWeight.Bold,
        ),
    )

    Text(
        text = config.subheadline,
        style = TextStyle(
            color = Color.White.copy(alpha = 0.7f),
            fontSize = 14.sp,
        ),
    )

    \/\/ Dynamic feature list
    Column(
        modifier = Modifier
            .fillMaxWidth()
            .clip(RoundedCornerShape(16.dp))
            .background(Color.Black.copy(alpha = 0.3f))
            .padding(16.dp),
    ) {
        config.features.forEach { feature -&gt;
            TimeFeatureItem(title = feature, checkColor = checkColor)
        }
    }

    \/\/ Dynamic pricing
    Text(text = config.priceDisplay, \/* ... *\/)
    Text(text = config.priceSubtext, \/* ... *\/)

    \/\/ Dynamic CTA
    Button(onClick = { paywallState.purchase(PackageType.ANNUAL) }) {
        Text(text = config.ctaText, \/* ... *\/)
    }
}</code></pre>
<p>ペイウォールを config オブジェクトでパラメータ化することで、無制限のバリエーションをサポートする柔軟な仕組みを構築できます。アニメーションやビジュアルデザインは一貫して（かつ差別化された状態で）保たれ、コンテンツはリモートから調整可能になります。この分離は、ユーザーが「形」と「内容」の両方に反応するという示唆を反映しています。形（デザイン）はブランド認知を形成し、内容（メッセージング）はコンバージョンを促進します。</p>
<h3><strong>コンバージョンイベントのトラッキング</strong></h3>
<p>A/B テストの結果を分析するために、バリアント識別子を含めたコンバージョンイベントをログに記録します。</p>
<pre><code class="language-kotlin">class PaywallAnalytics(
    private val analytics: FirebaseAnalytics
) {
    fun logPaywallViewed(variant: String) {
        analytics.logEvent(&quot;paywall_viewed&quot;) {
            param(&quot;variant&quot;, variant)
            param(&quot;paywall_type&quot;, &quot;day_night&quot;)
        }
    }

    fun logPurchaseStarted(variant: String, packageType: String) {
        analytics.logEvent(&quot;purchase_started&quot;) {
            param(&quot;variant&quot;, variant)
            param(&quot;package_type&quot;, packageType)
        }
    }

    fun logPurchaseCompleted(variant: String, packageType: String) {
        analytics.logEvent(&quot;purchase_completed&quot;) {
            param(&quot;variant&quot;, variant)
            param(&quot;package_type&quot;, packageType)
        }
    }
}</code></pre>
<p>これら 3 つのイベントによってコンバージョンファネルが構築され、ユーザーがどの段階で離脱しているのかを分析できるようになります。各イベントをバリアントごとにフィルタリングすることで、施策間のパフォーマンスを比較できます。 <code>paywall_type</code> パラメータは、複数のペイウォールデザインを運用している場合に、デザインごとの分析を可能にします。</p>
<h3><strong>Firebase での結果分析</strong></h3>
<p>Firebase Analytics でファネル分析を作成し、 <code>paywall_viewed</code>→<code>purchase_started</code>→<code>purchase_completed</code> という遷移を確認します。各ステップをバリアントごとにフィルタリングし、バリアント間でコンバージョン率を比較して勝ちパターンを特定します。</p>
<p>結果を解釈する際には、統計的有意性が重要であることを忘れないでください。特にサンプルサイズが小さい場合、コンバージョン率のわずかな差はノイズであり、意味のある差ではない可能性があります。Firebase のオーディエンス機能を使えば、セグメントごとの影響を把握できます。たとえば、新規ユーザーには効果的なバリアントが、リピーターには期待どおりに機能しない、といったケースもあり得ます。</p>
<h3><strong>ペイウォール A/B テストのベストプラクティス</strong></h3>
<p>A/B テストから実行可能な示唆を得るためには、いくつかの原則があります。まず、可能な限り一度にテストする変数は 1 つにしてください。見出し、機能リスト、CTA を同時に変更してしまうと、どの変更が結果に影響したのかを特定できません。どうしても複数の変更をまとめてテストする必要がある場合は、それらを1 つのバリアントとして扱い、個々の要素について結論を出さないようにします。</p>
<p>次に、一貫したユーザー割り当てを行い、同じユーザーが常に同じバリアントを見るようにしてください。これにより、訪問のたびに異なる体験をしてしまうことで生じるノイズを防げます。三つ目に、統計的有意性を得られる十分な期間テストを実施することが重要です。検出したい効果量にもよりますが、通常はバリアントごとに 1,000 件以上のコンバージョンが必要になります。</p>
<p>四つ目として、セグメント別のテストも検討してください。新規ユーザーと既存ユーザーではメッセージへの反応が異なることが多く、セグメント内でのテストによって、全体集計では見えない示唆が得られる場合があります。最後に、結果を記録し、アーカイブすることです。時間をかけて、自社のオーディエンスに何が有効かという組織的な知見が蓄積され、将来の実験に活かせるようになり、同じアイデアを再テストする必要も減っていきます。</p>
<h2><strong>RevenueCat Paywall Builder：カスタムを超えて</strong></h2>
<p>カスタムペイウォールは最大限の柔軟性を提供しますが、多くのケースにおいては <a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls#using-the-editor">RevenueCat’s Paywall Builder</a> が非常に魅力的な選択肢になります。それぞれのアプローチがどのような場面で適しているかを理解することで、開発リソースをより効果的に配分できるようになります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c6b2bf820e54bb081f8368164e8efadf14a2a59b-1024x735.gif" alt=""/></figure>
<h3><strong>Paywall Builder が提供するもの</strong></h3>
<p>RevenueCat の Paywall Builder は、サーバードリブン UI の仕組みを採用したペイウォール構築ツールで、RevenueCat ダッシュボード上のビジュアルエディタを使って、コード変更なしでペイウォールをデザインできます。いったん作成したペイウォールは、アプリのアップデートを行うことなくリモートで更新でき、色、フォント、レイアウト、画像、コピーをいつでも変更可能です。組み込みの A/B テスト機能により、異なるデザインを統計的な厳密さをもってテストでき、トラフィックの自動割り当てや結果のトラッキングも行われます。</p>
<p>ローカリゼーション機能では、翻訳を一元管理でき、ユーザーのロケールに応じて自動的に適切な言語が配信されます。アナリティクスとの統合により、追加の計測実装なしでコンバージョンの自動トラッキングが可能です。また、テンプレートライブラリには実績のあるデザインが用意されており、それらをベースにカスタマイズすることもできます。</p>
<h3><strong>サーバードリブン UI の利点</strong></h3>
<p>Paywall Builder の最大の利点は、サーバードリブン UI にあります。アプリはサーバーから提供される設定内容をそのまま描画するため、ペイウォールの見た目をアプリのリリースサイクルから切り離すことができます。</p>
<pre><code class="language-kotlin">@Composable
fun PaywallScreen(onDismiss: () -&gt; Unit) {
    PaywallDialog(
        PaywallDialogOptions.Builder()
            .setDismissRequest(onDismiss)
            .build()
    )
}</code></pre>
<p>この単一の composable によって、RevenueCat ダッシュボードで設定したあらゆるペイウォールデザインを描画できます。色、フォント、レイアウトの変更、画像やアイコンの差し替え、コピーや価格表示の修正、A/B テストの開始、勝ちパターンのロールアウトまで、いずれもアプリのアップデートは不要です。</p>
<p>運用面での影響は非常に大きいです。プロダクトチームはエンジニアリングに依存せずにペイウォールを改善・反復できるため、実験のサイクルを大幅に高速化できます。ペイウォール内容に関する不具合も、アプリストアの審査を待つことなく即座に修正可能です。また、季節キャンペーンなども、アプリ更新の調整を行わずに、正確なスケジュールで開始・終了できます。</p>
<h3><strong>Paywall Builder を選ぶべきタイミング</strong></h3>
<p>反復スピードが最優先される場合、Paywall Builder は多くのケースで最適な選択肢になります。コンバージョン最適化を目的として多数のバリエーションを素早くテストしたい場合、ビジュアルエディタと組み込みの A/B テスト機能によって、フィードバックループを大幅に短縮できます。プロダクトチームはエンジニアリングの関与なしにテストを作成・公開できるため、開発者は他の重要な作業に集中できます。</p>
<p>エンジニアリングリソースに制約がある場合も、Paywall Builder は有利です。カスタムペイウォールは初期実装だけでなく、その後の保守にも開発工数が必要になります。一方で Paywall Builder では、これらの作業をプロダクトチームやデザインチームに移譲でき、コードを書くことなくビジュアルエディタ上で対応できます。</p>
<p>高度なアニメーションが不要な場合も、Paywall Builder は十分に対応可能です。基本的なアニメーションやトランジションをサポートしており、複雑なカスタム演出を必要としないペイウォールであれば、テンプレートで事足ります。実際、多くの成功しているアプリは、凝ったモーションデザインよりも、明確なメッセージを重視したシンプルなペイウォールを採用しています。</p>
<p>また、クロスプラットフォームでの一貫性も重要な検討ポイントです。Paywall Builder は iOS、Android、Web で同じ見た目を一貫して描画できます。一方、カスタム実装ではプラットフォームごとに個別の開発が必要となり、エンジニアリング投資がその分増加します。</p>
<h3><strong>カスタムペイウォールが依然として有効なケース</strong></h3>
<p>ブランド表現が最優先される場合、カスタムペイウォールは今でも正しい選択肢です。独自のビジュアルアイデンティティやカスタムアニメーションに厳密に合わせる必要がある場合、テンプレートでは再現できません。ここまで見てきた「Day &amp; Night」ペイウォールはその典型例で、プロシージャルに生成される星空、三角関数を用いた太陽／月の軌道、複数レイヤーが同期して動くアニメーションは、いずれもカスタムコードなしでは実現不可能です。</p>
<p>また、テンプレートでは対応できない独自のインタラクションが必要な場合も、カスタム実装が求められます。ゲーミフィケーションされたペイウォール、AR プレビュー、ジェスチャーベースのナビゲーション、あるいはプレミアム機能のミニデモなどは、いずれもカスタム実装が前提となります。こうしたインタラクティブな要素は、ユーザーが購入前に価値を体験できるため、コンバージョンに大きな影響を与えることがあります。</p>
<p>場合によっては、ペイウォールそのものがプロダクトの差別化要因になることもあります。たとえば、プレミアム体験のトーンを決定づける瞑想アプリの落ち着いたペイウォールのように、ペイウォール体験自体が「売り」になるケースでは、カスタム開発に投資する価値があります。第一印象は非常に重要であり、印象的なペイウォールは、プレミアムプランに対してユーザーが期待できる品質を強く印象づけるシグナルになります。</p>
<h3><strong>ハイブリッドアプローチ</strong></h3>
<p>多くの成功しているアプリは、これら2つのアプローチを戦略的に併用しています。初回のコンバージョンフローとなるメインのペイウォールにはカスタム実装を用い、ブランド表現や初めて課金に触れるユーザーに向けた印象的な体験を提供します。一方で、季節キャンペーン用のペイウォール、解約ユーザー向けのリカバリー施策、あるいは高速な反復が求められる実験用バリエーションについては、<a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls#using-the-editor">Paywall Builder</a> が活用されます。これらのケースでは、カスタムデザインよりもスピードと柔軟性のほうが重要になるためです。設定画面内のアップセルや、機能制限時に表示されるプロンプトといったセカンダリな表示箇所でも、表示頻度が低く、簡単に調整できることが価値になるため、Paywall Builder が使われることが多くあります。</p>
<p>このハイブリッドアプローチにより、ブランド表現と反復スピードの両方を最大化できます。メインのペイウォールでは強い第一印象を作りつつ、Paywall Builder を使うことで、継続的な最適化やプロモーション施策に必要な柔軟性を確保できるのです。</p>
<h2><strong>結論</strong></h2>
<p>Jetpack Compose を使ってアニメーション付きのカスタムペイウォールを構築することで、テンプレート型のソリューションでは実現できないクリエイティブな表現が可能になります。今回紹介した Day &amp; Night ペイウォールは、レイヤー化されたアニメーション、空のグラデーション、きらめく星、天体の軌道、パララックスで動く雲、そして同期した UI 要素を組み合わせることで、ユーザーの感情に訴えかける没入感のある体験を生み出しています。これらの手法は、コンバージョンの瞬間を単なる「取引」から「体験」へと変え、コンバージョン率とブランド認知の双方を高める可能性があります。</p>
<p>Firebase は、ペイウォールコンテンツをアジャイルに A/B テストするために必要なリモート設定レイヤーを提供します。見出し、機能説明、価格表示、CTA テキストを外部化することで、カスタムアニメーション体験を維持したまま、アプリ更新なしでメッセージングを反復改善できます。カスタムデザインとリモートコンテンツを組み合わせることで、ブランドの独自性と運用面での俊敏性の両方を手に入れることができます。</p>
<p>一方で、カスタムペイウォールが常に最適な選択肢とは限りません。RevenueCat の <a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls#using-the-editor">Paywall Builder</a> は、サーバードリブン UI、組み込みの A/B テスト、高速な反復を可能にする機能を備えており、多くのケースではカスタム開発の利点を上回る価値を提供します。カスタムとテンプレートのどちらを選ぶべきかは、チームのリソース、反復スピードの要件、そしてブランド表現の重要度を踏まえて判断する必要があります。実際、多くの成功しているアプリは、主要な体験にはカスタムを、プロモーションやセカンダリな表示にはテンプレートを使うという形で、両者を併用しています。</p>
<p>RevenueCat の SDK 連携に関する完全なドキュメントについては、<a href="https://www.revenuecat.com/docs">公式の RevenueCat ドキュメント</a> を参照してください。また、本記事で紹介したソースコードの全体については、<a href="https://github.com/RevenueCat/compose-paywall-animations">GitHub リポジトリ</a> をご確認ください。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[価格改定をきっかけにPelotonを解約した理由と、彼らが取れたはずの別の選択肢]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/peloton-retention-takeaways</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/peloton-retention-takeaways</guid>
      <pubDate>Sun, 25 Jan 2026 14:55:11 GMT</pubDate>
      <dc:creator><![CDATA[Daphne Tideman]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[価格改定時に役立つ、サブスクリプションアプリの実践的リテンション施策9選]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/23b2d1a8a9c26c39b7d9752a9654d80f2a0eb554-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>『<em>セックス・アンド・ザ・シティ</em>』のスピンオフ作品『<em>And Just Like That</em>』の第1話で起きたあの<a href="https://www.vanityfair.com/hollywood/2021/12/sex-and-the-city-peloton-big-and-just-like-that?srsltid=AfmBOoqJE6LJUN7Il8uy09YrgtYC95QBGPTrisiLD5k6HOXLYRGCNOYl">大騒動</a>よりも前から、Pelotonはすでに大きな話題の中心にありました。そして私はというと、そこから一目散に距離を置いていました。流行に乗るのが昔から得意ではありませんし、あのカルト的とも言える熱狂ぶりは……正直、少し気後れしてしまったのです。</p>
<p>それから数年が経ち、ブームはひと段落。自宅のスペースにも少し余裕ができた頃、抗えないほど魅力的なオファーが舞い込みました。友人が、ほとんど使っていないPelotonのバイクを、定価の3分の1で譲ってくれるというのです。ただし条件はひとつ。2月の凍えるような朝に、ロンドン中を運んで持ち帰ること。――挑戦、受けて立ちました。</p>
<p>これは、そんな私の体験談です。Pelotonに夢中になったところから始まり、次第に単調さに悩まされ、値上げを乗り越え、そして最終的にサブスクリプションを解約するまで。インターバルトレーニングのような構成だと思ってください。つらくて息が上がるような記憶のパートの合間に、少し呼吸を整えられる“軽めの区間”として、あなたのサブスクリプションアプリにも実際に活かせる学びを挟んでいきます。</p>
<h2>隔たり1：パーソナライズされたプランに飛び込む</h2>
<p>最初のつまずきは、アカウント設定の段階でした。細かい注意書きを読むのは昔から得意ではなく、案の定、月額39ポンドのAll-Accessサブスクリプションに加入しないと、バイクをフルに活用できないことが判明しました。</p>
<p>……おっと。それでも、やってみようという気持ちは揺らぎませんでした。しかも、このサブスクリプションがあればパートナーもバイクを使える。それが彼にとってはかなり魅力的だったようです。外は雨。私はますますバイクに乗る理由を見つけ、室内ライドにのめり込んでいきました。</p>
<p>そして、何よりのハイライトはここでした。Pelotonのパーソナライズドプラン機能です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/0a1b26e79b3e26d31956cb9db3a5303c09242ab3-609x913.png" alt=""/></figure>
<p><em>Pelotonからのメール：プランのカスタマイズについて</em></p>
<p>私は以前から、多くのアプリが提供する「決められたプラン」にうまくはまれずにいました。たいていは一種類の運動にフォーカスしていますが、私はバリエーションがないと続かないタイプです。同じレシピを二度と作らない人間、と言えば伝わるでしょうか。本当にそうなんです。</p>
<p>Pelotonでは、バイク、ランニング、筋トレを組み合わせたルーティンをすぐにカスタマイズでき、迷うことなくスタートできました。</p>
<p>以下が、実際のオンボーディングフローです。</p>
<p><em>Pelotonの質問</em></p>
<p>オンボーディングは直感的で、使っていて「分からない自分が悪い」と感じさせることがありません。</p>
<ul>
<li>HIITカーディオのように馴染みのないワークアウトでも、内容を分かりやすく説明してくれる</li>
<li>ビジュアルで器具の使い方が一目で分かる</li>
<li>目標についても、シンプルで率直な言葉で質問される</li>
</ul>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/8cedef2ab2359fe39144f470d85bd3f6523aaa43-704x1600.png" alt=""/></figure>
<p><em>エクササイズのわかりやすい説明</em></p>
<p>インストラクターや音楽のバリエーションも素晴らしく、ハイエナジーなワークアウトと完璧にマッチしていました。毎週の連続記録（ストリーク）もあっという間に伸び、週に1回ワークアウトするだけでも継続できる仕組みだったので、世界のどこにいても、必ず最低1セッションはこなしていました。</p>
<h3>教訓1：ユーザーがすぐにアプリの価値を最大限引き出せるようにする</h3>
<p>Pelotonでは、コンテンツを見つけるのがとにかく簡単でした。いくつかのシンプルな質問に答えるだけで、アプリは私を理解し、本当に楽しめるワークアウトを提案してくれます。ここで言う「速い」とは、必ずしもオンボーディングが短いという意味ではありません。<strong>オンボーディングが長めでも、ユーザーが最初の段階で明確な価値を感じられることが重要です。</strong></p>
<p>その点で、Pelotonは非常に優れています。パーソナライズされたルーティンを作るだけでなく、別の短いクイズを通じて<a href="https://www.onepeloton.com/en-GB/instructor-match">お気に入りのインストラクターを見つける</a>手助けまでしてくれます。TinderとStravaを掛け合わせたような体験で、「自分のワークアウトに本当に足りなかったのは、このマッチメイキングだったんだ」と気づかされました。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c39006a5bbb36ecc62962c10f381b2a06c7e8fb6-664x916.png" alt=""/></figure>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/0796dd1a0a866b4bde434b73e281cf40f7c05997-1339x694.png" alt=""/></figure>
<p><em>Pelotonウェブサイト上のインストラクター用診断テスト</em></p>
<h2>隔たり2：Peloton利用が下り坂に入る</h2>
<p>ハネムーン期間が永遠に続くことはありません。私たちの場合、それは夏に終わりました。その頃から、Pelotonでワークアウトする回数が明らかに減っていったのです。最初は、Pelotonから距離ができたことに対して、いくらでも言い訳がありました。なにしろ、私はすでにバイクに投資していたのですから。</p>
<ul>
<li>ケガをしていて、走れなかった</li>
<li>夏だったので、屋外でサイクリングや水泳をしていた</li>
<li>妹が家に滞在していて、ガイド付きの筋トレをやりたがっていた</li>
<li>旅行が多かった</li>
</ul>
<p>それでも私は、何とか続けようとしました。気分を変えるために、パーソナライズされたプランをリセットしてみたこともあります。でも、実際には同じようなワークアウトを繰り返している感覚が拭えませんでした。</p>
<p>プランは1週間分のクラスが固定で提示される仕組みで、時間とともに進化したり調整されたりする感覚がなかったのです。結局のところ、同じルーティンの「新しいバージョン」が並んでいるだけで、パーソナライズというより、シャッフルされる静的なテンプレートのように感じ始めました。変化を求めているときほど、モチベーションを保つのが難しくなります。</p>
<p><strong>目に見える進化のないパーソナライズは、停滞しているように感じられます。</strong>ユーザーが自分の成長を実感できないと、どれだけ優れたコンテンツライブラリでも、次第にマンネリに感じてしまうのです。</p>
<p>私はすでに最も難易度の高いワークアウトを選び、インストラクターもいろいろ試していました。トップパフォーマーではありませんでしたが（バイクでのパワー出力は、まだ伸ばせる余地がありました）、どうやって次のステップに進めばいいのかが分かりませんでした。</p>
<ul>
<li>ワークアウトの回数を増やす？</li>
<li>別の種類のワークアウトを選ぶ？</li>
<li>パーソナライズされているなら、どこにガイダンスがあるの？</li>
</ul>
<p>私はいったい、何を目指しているんだろう？そんな疑問が積み重なり、少しずつ、ひび割れが見え始めてきました。</p>
<h3>教訓2：レコメンドが「なぜ自分向けなのか」を理解できるようにする</h3>
<p>Pelotonのパーソナライズドプラン用クイズは、レコメンドを生成するという点ではとても優れていました。ただし、決定的に欠けていたステップがあります。それは、「<em>なぜ</em>そのレコメンドが提示されたのか」を説明することです。</p>
<p><strong>ユーザーが知りたいのは、何をすればいいかだけではありません。</strong>それがなぜ自分向けなのか、どんな目的に結びついているのかを理解したいのです。レコメンドの背景にある理由を説明することは、信頼とモチベーションの維持につながります。プロダクト側は、「ユーザーは考えたくないからこのサービスを使っている」と無意識に前提してしまうことがありますが、必ずしもそうではありません。面倒な部分を任せたいだけであって、「なぜ」に興味がないわけではないのです。</p>
<p>オンボーディングで10〜20問も質問したのであれば、偽の「考え中」ローディング画面の裏に隠れてしまってはいけません。ユーザーに、「あなたの回答はきちんと受け取られている」と示す必要があります。最低限でも、回答内容をフィードバックすること。さらに一歩進めるなら、それをどう理解し、どう解釈したのかを示し、ユーザーに確認することです。AIを活用したアプリなら、こうした体験はこれまで以上に実現しやすくなっています。</p>
<p>たとえば、減量アプリのNoomはオンボーディングが比較的長いですが、その途中に、ユーザーの回答から何を学んだのかを反映した小さな画面を挟み込んでいます。これによって、パーソナライズが「本物」だと感じられるのです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a569e5bd241e5958c40eba6c08e58cbc574509bd-738x1600.png" alt=""/></figure>
<p><em>Noomのオンボーディングフローにおけるパーソナライゼーション</em></p>
<p>Noomは、回答内容をもとにプロフィールへのフィードバックや、どこに注力すべきかを提示します。オンボーディングを進めるだけで、「このアプリは本当に自分のことを理解している」と感じられる設計になっています。</p>
<h3>教訓3：短期リテンションと長期リテンションを分けて考える</h3>
<p>月次課金ユーザーと年額課金ユーザーを比較すると、数か月で解約するユーザーと、1年・2年使ってから離れるユーザーとでは、解約理由がまったく異なることがよくあります。<strong>短期リテンションと長期リテンションは、同じゲームではありません。</strong></p>
<p>まずあるのが、ユーザーにアプリを使い始めてもらう「初期アクティベーション」のフェーズです。Pelotonの場合、多くのユーザーがすでに高額なバイクを購入しているため、この段階は比較的クリアしやすくなっています。その次に来るのが、習慣化のフェーズです。しかし、長期リテンションには、それとはまったく別の要素が必要になります。ユーザーは時間とともに変化し、それに合わせてアプリも進化しなければなりません。</p>
<p>アプリを「使い切ってしまった」と感じたのは、今回が初めてではありません。ADHDの特性もあり、私は同じことの繰り返しにすぐ飽きてしまいます。<a href="https://www.revenuecat.com/blog/growth/subscription-app-churn-reasons-how-to-fix/#4-finding-a-better-app">マインドフルネス系アプリやレシピアプリでも</a>、同じ経験をしてきました。基本をマスターし、アプリの提供価値を一通り体験すると、次のレベルを求めるようになるのです。</p>
<p>エンゲージメントを維持するためには、<strong>ユーザーのジョブ（jobs-to-be-done）が変化するのに合わせて、アプリも成長し、適応していく必要があります</strong>。Pelotonでは、クイズを再受験してレコメンドを更新することはできましたが、明確なレベル設計やマイルストーン、進歩している実感を与える仕組みを導入するチャンスを逃していました。ユーザーに「前に進んでいる」と感じさせる要素が欠けていたのです。</p>
<h2>隔たり3：すべてのユーザーが恐れるメール――価格改定</h2>
<p>この時点で、私の中にある2つの性格的特徴が真っ向から衝突していました。</p>
<ol>
<li>ひとつは、「まだ9か月しか使っていないものを手放したくない」という頑固な自分。</li>
<li>もうひとつは、「新しさを求めずにはいられない」という落ち着きのない自分です。</li>
</ol>
<p>そんなタイミングで、ついに届きました。すべてのサブスクユーザーが身構える、あのメールが。件名は「Pelotonメンバーシップに関する変更のお知らせ」。内容は、見なくてもだいたい想像がつきました。</p>
<p>私がPelotonの“ブーム”に乗るずっと前、実は過去の価格改定メールを「<a href="https://www.revenuecat.com/blog/growth/how-to-raise-app-prices-effectively/">優れたコミュニケーションの好例</a>」として紹介したことがあります。何が変わるのか、なぜ変わるのかが、クリーンで明確、そしてとても透明性の高い内容でした。2014年から2022年にかけて、ワークアウト数の増加やプログラム追加など、どれだけ価値が広がったのかを示す分かりやすい表まで用意されていました。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/805a69cb8a000d185362e1fff6d76ed92d6738ab-1149x638.png" alt=""/></figure>
<p><em>Pelotonの2014年版と2022年版の比較</em></p>
<p>もちろん、自分が支払う側でないときの方が、値上げメールは冷静に評価しやすいものです。</p>
<p>それでも私は、あのメールは今でも「よくできた価格改定の案内」だったと思っています。私はPelotonアンチではありませんし、良い価格アップデートであれば正当に評価したいタイプです。だから今回のメールも、同じレベルの分かりやすさを期待して、前向きな気持ちで開きました。ところが、理解できたどころか、逆に混乱してしまいました。こちらが、今回のPelotonの価格改定メールです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/e1ca80bd511241a0b1db58584fe80f55b12f5d1d-1218x1002.png" alt=""/></figure>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/f32d145662cd8cf3cd6a63a6272d279ac3910ede-1232x1284.png" alt=""/></figure>
<p><em>価格改定のお知らせメール</em></p>
<p>変更のタイミングや適用方法が明確だった点は評価できます。これは意外と見落とされがちなポイントですし、少なくとも1か月前に予告してくれたので、不意打ちにはなりませんでした。</p>
<p>ただ今回は、以前のような分かりやすい比較表はなく、変更点がただ羅列されているだけでした。その中には、正直なところ、私自身にはあまり関係のないものも多く含まれていました。</p>
<ul>
<li><strong>クラス数：</strong>「12,000本のクラス」と聞くと確かにすごそうですが、ある程度を超えると、もはや必要以上です。毎日1クラスやっても32年分ですから。</li>
<li><strong>Club Peloton：</strong>ユーザーエンゲージメントのための施策という印象が強く、私が追加料金を払う理由には感じられませんでした。</li>
<li><strong>怪我予防：</strong>コンセプト自体は興味深いものの、「特殊外科手術」との文脈で書かれていたため、自分に関係があるのかどうかが分かりませんでした。</li>
<li><strong>Peloton IQによるパーソナライズドトレーニング</strong>：やや抽象的でした。何のことなのかはっきりせず、たぶんアプリ使用中に表示されていたいくつかの指標のことだと思うのですが、トレーニング体験が大きく変わった実感はありませんでした。</li>
</ul>
<p>そして、メールの中で決定的に私を戸惑わせた一文がこれです。</p>
<p>「Breathwrk が Peloton の一部になりました。科学的根拠に基づいた呼吸エクササイズで、ストレス軽減、回復促進、集中力向上をサポートします。」</p>
<p>Breathwrkって何？私はアプリ内で呼吸コンテンツを見たことがありませんでしたし、そもそもそれを求めてもいませんでした。呼吸系はすでにCalmを使っていたからです。これは、ホテルに泊まったら部屋にカラオケマシンが追加されていた、みたいな感覚でした。確かにクールだし、誰かにとっては楽しいかもしれない。でも、私がそのホテルを予約した理由とはまったく関係ないし、頼んでもいないものを追加されて、しかもその分料金を上げられる——そんな違和感がありました。</p>
<h3>教訓4：価格改定の前に、大きな新機能は必ずアプリ内で伝える</h3>
<p>皮肉なことに、<a href="https://www.breathwrk.com/">Breathwrk</a>が何なのかを理解したのは、サブスクリプションを解約した後でした。実際には、Pelotonが提携した別アプリだったのですが、プロダクト内でそれに言及されているのを一度も見たことがなかったのです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/05f438c022cdbe93e7fdb736e27b9bc1e772d24b-1600x1600.png" alt=""/></figure>
<p><em>出典：Breathwrk</em></p>
<p>もし価格改定の前にきちんと説明されていれば、実際に使ってみたかもしれませんし、少なくとも「付加価値」として認識できたと思います。念のため受信箱を確認してみましたが、Breathwrkについて事前に案内するメールも送られていませんでした。</p>
<p>価格改定メールの中で新機能を強調すること自体は問題ありませんが、今回のケースは説明しすぎに感じられました。どこか「値上げの正当化」をしているような印象です。より良いアプローチは、<strong>まず価値を見せ、ユーザーに体験してもらい、その上で価格変更を伝える</strong>ことです。もしユーザーがアップデートを認識しているか分からないのであれば、値上げ前に期待感を高めるためのコミュニケーションを増やすべきです。</p>
<p>Pelotonにとっては素晴らしいパートナーシップなのだと思いますが、十分な文脈がないまま名前を出すには、価格改定メールはあまり適した場ではなかったように感じました。</p>
<h2>隔たり4：別のメンバーシップオプションを探す</h2>
<p>ここで触れておかないといけないのが、Pelotonの<a href="https://www.revenuecat.com/blog/growth/2025-app-monetization-trends/">ハイブリッドなマネタイズモデル</a>です。アプリ内サブスクリプションと物理的なハードウェアを組み合わせるのは、とても強力な戦略です。ただし、その大胆さの裏で、ユーザーの選択肢はかなり限られてしまっています。</p>
<p>私はすでに、バイクの機能を最大限に使うには最上位プランのサブスクリプションが必要だと気づいていました。そこに15%の値上げが加わり、「それでもバイクを使い続けられる別の選択肢はないだろうか？」と考え始めました。下位プランにダウングレードできないか、と。</p>
<p>答えは、はっきりと<strong>「ノー」</strong>でした。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/f7ce51a157a498ac75aeb7c3837f0ab2159ba7a6-1108x786.png" alt=""/></figure>
<p><em>Pelotonのサブスクリプションオプション</em></p>
<p>正当に評価すべき点として、Pelotonのアプリサブスクリプション自体には、ある程度の選択肢があります。</p>
<ul>
<li>月額プランと年額プラン</li>
<li>「ベーシック」プランか、すべてのワークアウトタイプにアクセスできるプランか</li>
</ul>
<p>少なくとも表面的には、これらの選択肢によって柔軟性は提供されています。しかし、すでに所有しているPelotonバイクを実際に使おうとすると、その柔軟性は消えてしまいます。一度最上位プランにコミットすると、気に入って使ってきた機能へのアクセスを失わずに調整できる余地は、ほとんどありません。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/1b715b774023ca014f90c34a59d73d5ac16016cc-924x919.png" alt=""/></figure>
<p><em>App One vs. App+ プラン</em></p>
<p>こうした選択肢が用意されている点自体は良いと思いましたが、All Accessサブスクリプションを使っている私にとって、実質的な選択肢は月額£45のプランしかありませんでした。まるで「バイクを持っていること」で罰せられているような感覚です。他の機器では使えるクラスもあるのに、Pelotonバイクそのものを使うためには、プレミアムな料金を支払わなければならない、そんな印象を受けました。</p>
<h3>教訓5：ブランドに投資してくれた顧客をきちんと報いる</h3>
<p>高価な機器を購入したユーザーを不利に扱うのではなく、ロイヤルティを維持するために、より良い価格で報いるべきです。もしPeloton以外のバイクでアプリを使うほうが高くつくとしたら、どうでしょうか。</p>
<p>そうなれば、バイクやトレッドミル、その他の機器を購入すること自体が、「使い続けることで報われる投資」になります。私は昔から、新規顧客には際限なく割引が提供される一方で、既存ユーザーのロイヤルティがほとんど評価されない構造に強い違和感を覚えてきました。</p>
<p>Pelotonがこれを実現する方法は、実はとてもシンプルだったはずです。たとえば、自社の機器でアプリを使う場合は他ブランドよりも安く設定する、あるいは既存のサブスクライバーに対しては値上げを一定期間延期する、といった形です。</p>
<h3>教訓6：ユーザーに「選択肢がある」と感じさせる</h3>
<p>子どもにブロッコリーを食べなさいと言ったことはありますか？ おそらく、あなたにとってもブロッコリーにとっても、あまり良い結果にはならなかったはずです。でも、5歳以下の子どもと接するときに、いとこから学んだ大切な教訓があります。それは、「選択肢があるように見せる」ことです。「ブロッコリーとニンジン、どっちを食べる？」と聞くだけで、どちらにせよ野菜は食べられ、みんなが一安心できます。</p>
<p>この話から得られる教訓はシンプルです。私たちは皆、たとえ事前に用意された2つの選択肢であっても、「自分で選んでいる」と感じたいのです。</p>
<p>Pelotonは通常のアプリサブスクリプションでは、この点をうまく実現しています。しかし、Pelotonの機器を所有しているユーザーに対しては、その感覚がありませんでした。サブスクリプションは1種類、期間も1パターンのみ。利用頻度を下げる（たとえば月4回だけ使うプラン）といった調整や、年払いで割安にするといった選択肢は用意されていませんでした。</p>
<p>心理学の観点から見ても、これは重要なポイントです。<a href="https://www.revenuecat.com/blog/growth/solve-app-problems-emotionally/">自己決定理論</a>に関する研究では、「自律性」はユーザー満足度を左右する主要な要因だとされています。価格やプロダクトの制約によってユーザーが「縛られている」と感じた瞬間、たとえプロダクト自体が変わっていなくても、知覚される価値は急激に下がります。月額課金は企業側にとっては単価を上げやすい一方で、ユーザーにとっては「やめる」判断もしやすくなるのです。</p>
<h2>隔たり5：そして、私はサブスクリプションを解約した</h2>
<p>私はバイクに小さく謝りつつ、「月額プランなら、恋しくなったらいつでも再開できるはず」と思いながら解約手続きを進めました。</p>
<p>ところが、ここで少しややこしいことが起こります。スマホでログインしてみると……サブスクリプションが表示されない。ウェブサイトを確認しても……やはり何も出てこない。混乱した私は、カスタマーサポートに連絡しました。</p>
<p>第一印象は、とても良かったです。面倒なやり取りもなく、問題もなし。更新日の数日前でしたが、サブスクリプションはすぐに停止されました。この点については、Pelotonを本気で称賛したいです。解約をほぼ不可能にしているブランドも、私はいくつも知っていますから。名前は挙げませんが……今回は。</p>
<p><em>サブスクリプションをキャンセルするためのチャット会話</em></p>
<p>ただ、その後に私は「あるもの」を待っていました…なぜ解約したのか、理由を聞かれること。
フィードバックを求められること。</p>
<p>しかし、それは一切ありませんでした。もしかしたら、後で届く確認メールにアンケートが含まれているのかもしれない、そう思いました。</p>
<p>確認メールは届きました……それでも、アンケートはなし。</p>
<p>まるで、心のこもった別れのスピーチをしたのに、相手からは肩をすくめられただけ、という感覚でした。「なぜ終わりにするのか、知りたくないの？」「他に誰かいるのか、気にならないの？」と聞きたくなるような。（ちなみに言っておくと、Pelotonを裏切ったことは一度もありません。）</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/da3102cc423c5dbb242d115d30508dc960251af3-738x1600.png" alt=""/></figure>
<p><em>サブスクリプションのキャンセル確認</em></p>
<p>全体として見ると、Pelotonがうまくやっていた点も多くあります。</p>
<ul>
<li>アカウントが解約されたことが非常に明確に確認できる（余計な装飾やノイズがない）</li>
<li>罪悪感を煽らない表現で、理解を示している</li>
<li>変更がいつから適用されるのかが明確</li>
<li>再開やプラン変更の方法が分かりやすい</li>
</ul>
<p>ただし、見逃された大きなチャンスがありました。それは、会話の中でも、メールの中でも、一度も「なぜ解約したのか」を聞かれなかったことです。これは、ブランドにとって非常に価値のあるフィードバックだったはずです。</p>
<h3>教訓7：解約体験は「気持ちよく」終われるものにする</h3>
<p>解約を隠したり、手続きを複雑にしたりしても、良い結果につながることはありません。最初に自分のアカウント上でサブスクリプションが表示されなかった理由は正直分かりませんが、おそらくデバイス間の不具合だったのでしょう。ただ、サポートに連絡してからは、すべてが丁寧に対応され、わずか2分で解約できました。</p>
<p>一部のユーザーはアプリストア経由で直接解約するかもしれませんが、Webでも<a href="https://www.revenuecat.com/blog/company/introducing-customer-center/#:~:text=Go%20to%20the%20Projects%20in,like%20Cancellation%20and%20Refund%20Request.">アプリ内サブスクリプション</a>でも、分かりやすくシンプルな解約フローを用意することが重要です。</p>
<h3>教訓8：解約メールは「クリーン」にまとめる</h3>
<p>良い解約確認メールには、次の内容がきちんと含まれているべきです。</p>
<ul>
<li>サブスクリプションが解約されたことの明確な確認</li>
<li>アカウントの利用がいつまで有効か</li>
<li>これまで利用してくれたことへの感謝</li>
<li>まだ聞いていない場合は、フィードバックを提供できる導線</li>
</ul>
<p>文章は短く、簡潔にまとめましょう。<strong>「行かないで！」</strong>と叫ぶようなパニック感は不要です。罪悪感をあおる表現はプロフェッショナルではありませんし、効果もありません。</p>
<p>さて、そのフィードバックについてですが…</p>
<h2>隔たり6：ついにフィードバック依頼が届いた！</h2>
<p>最終的にはアンケートが届いたのですが、それが「解約したから」送られてきたものかどうかは、正直なところ確信が持てません。内容は Net Promoter Score（NPS）アンケートでした。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a10804680416a8a3c73afaf75c19bd626cd36177-738x1600.png" alt=""/></figure>
<p><em>NPSアンケート調査のemail</em></p>
<p>解約直後というタイミングは興味深いですよね。とはいえ、とりあえず答えてみることにしました。</p>
<p>質問に回答していくうちに、このタイミングはおそらく意図的ではなかったのだろう、と感じました。というのも、このアンケートは、私のサブスクリプションがすでに解約されていることをまったく把握していないようだったからです。</p>
<p><em>フィードバック調査の質問</em></p>
<p>たとえば、「Peloton のメンバーシップに満足している」という設問に対して、「メンバーシップを持っていない」という選択肢がなかったのです。</p>
<p>Peloton にとっての私は、SNSですべてブロックされるような“こじれた元恋人”ではなく、まだ友だち関係が続いていて、可能性も残っている元恋人のような立場だったと思います。でも、さすがにそれでも、元恋人に次のような質問はしませんよね。</p>
<ul>
<li>私はあなたのニーズに合わせて進化している？</li>
<li>私は友人／パートナーとして価値がある？</li>
</ul>
<p>正直、ちょっと……違和感がありました。もし私が本当に怒り心頭の元恋人だったら、</p>
<ol>
<li>正直、フィードバックなんて送らなかったと思います</li>
<li>むしろ、さらに苛立っていたはずです</li>
</ol>
<p>それでも私は、社交辞令も含めて「大人の対応」をしながら、できる限り質問に答えました。「すでに解約した」という事実を選択肢で示せないにもかかわらず、です。</p>
<p>とはいえ、Peloton がきちんとやっていた点もありました。それは、「ユーザーが告知を見たかどうか」を確認していたことです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/1ac50a50e1b60577de84d3c4d5e6872b8e869430-738x1600.png" alt=""/></figure>
<p><em>どの機能を見たか尋ねる</em></p>
<p>少し唐突な質問ではありましたが、アプリが「ユーザーは当然すべて理解しているはず」と思い込んでしまうケースは少なくありません。実際、私自身も、3週間毎日使っていたアプリの中で、つい最近になって初めて気づいた主要機能がありました…。</p>
<h3>教訓9：解約後専用のフィードバックフォームを用意する</h3>
<p>解約理由を把握するためには、短く、そして理想的には「解約したその瞬間」に紐づいたフィードバックフォームを用意することが重要です。ユーザーが離脱する理由を正確に知ることができます。<a href="https://www.revenuecat.com/blog/growth/app-cancellation-flow-best-practices/">効果的な解約アンケートのベストプラクティス</a>については、こちらも参考になります。</p>
<p>Peloton を少し擁護すると（前にも言いましたが、私は“穏やかな元恋人”タイプなので）、解約の翌日にアンケートは送られてきましたし、システムの反映には72時間かかる、という注記もありました。もしかすると、その更新期間中にたまたま NPS アンケートが当たってしまっただけなのかもしれません。とはいえ……実際の「解約理由を聞くためのアンケート」は、いまだに届いていません。</p>
<h2>クールダウン：Peloton解約後の生活</h2>
<p>一番意外だったのは、この体験がとても感情的なものだったことです。私は Peloton を中心にした「習慣」を作っていました。インストラクター、プレイリスト、自分のために時間を取っているという感覚。こうした感情的なつながりは、どんな割引よりも長く私をサブスクに留めていました。けれど、そのつながりが薄れてしまった瞬間、価格改定は「解約を早める引き金」にすぎなくなりました。</p>
<p>これは他のアプリにとっても重要な示唆です。リテンションは単なる「利便性」の問題ではなく、<a href="https://www.revenuecat.com/blog/growth/solve-app-problems-emotionally/">「アイデンティティ」や「所属感」</a>の問題でもあります。ユーザーが「見られていない」「前に進んでいない」と感じ始めた瞬間、アプリを開かなくなってしまうのです。</p>
<p>解約した理由は、運動をやめたからではありません。私は今も週6日トレーニングするフィットネス中毒です。解約後は、別のアプリを試していますが、これがとても気に入っています。自分をきちんと追い込んでくれて、重量や回数を記録し、目に見える成長を示してくれます。</p>
<p>ただし、そのアプリにはバイクのワークアウトはありません。そして、今もワークアウトスペースに置かれている Peloton のバイクは、夜が長くなり雨の日が増えるにつれて、静かに私を呼び戻してきます。</p>
<p>サブスクリプションなしで、久しぶりに使ってみました。短い無料クラスを2本受けただけで、懐かしさが一気に込み上げてきました。まるで、昔よく通っていたカフェで元恋人に偶然会ったような感覚です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/52e34fa582323b12c7663db76f81b02321fa7507-1200x1600.jpg" alt=""/></figure>
<p><em>無料体験クラス</em></p>
<p>Peloton の話は、フィットネスアプリに限ったものではありません。すべてのサブスクリプションアプリが、同じ課題に直面しています。それは「ユーザーと一緒に進化し続けられるか」という点です。瞑想アプリでも、語学学習アプリでも、ゲームでも、学べる教訓は共通しています。</p>
<ol>
<li>ユーザーがすぐに価値を感じられるようにする</li>
<li>パーソナライズがどのように機能しているかを説明する</li>
<li>ユーザーの目標の変化に合わせてプロダクトも進化させる</li>
<li>価格を上げる前に、新たな価値をきちんと伝える</li>
<li>ロイヤルなユーザーを罰するのではなく、報いる</li>
<li>柔軟でフェアな価格オプションを用意する</li>
<li>解約はシンプルで、敬意ある体験にする</li>
<li>明確で思いやりのある確認メールを送る</li>
<li>タイムリーで適切なフィードバックを収集する</li>
</ol>
<p>ユーザーが「理解されている」と感じ、かつ「自分でコントロールできている」と思えたとき、リテンションは自然とついてきます。</p>
<p>今のところ、それだけでは私を引き戻すには至っていません。でも、バイクを手放す気にもなれないのです。もしかしたら、いつかまた、この高価な関係をうまく続ける方法が見つかるのかもしれません…</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[スマホ新法でアプリ外決済が解禁。アプリ事業者が今やるべきこと]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/new-smartphone-law</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/new-smartphone-law</guid>
      <pubDate>Fri, 16 Jan 2026 12:48:54 GMT</pubDate>
      <dc:creator><![CDATA[Cameron McAllister]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[2025年12月施行のスマホ新法で何が変わった？外部決済解禁による手数料削減の仕組みと、アプリ事業者が今すぐ取るべき対応を詳しく整理。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/7b7595cb248b03a3f0798d289043c1e3620cd38d-1860x1596.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>2025年12月18日に施行された「<strong>スマホ新法」</strong>(スマートフォンにおいて利用される特定ソフトウェアに係る競争の促進に関する法律)により、長らくアプリ事業者の収益を圧迫してきたストア手数料の構造が、ようやく変わり始めました。</p>
<p>施行日以降、日本市場において以下の行為が禁止されました。</p>
<ul>
<li>アプリ内でWeb決済ページへのリンクを制限すること</li>
<li>アプリ内で価格やキャンペーン情報の表示を禁止すること</li>
<li>外部決済を理由に審査を遅らせたり、検索順位を下げること &lt;/aside&gt;</li>
</ul>
<p>つまり、これまでは実質禁止されていた<strong>外部決済への誘導が解禁</strong>され、やり方次第では<strong>手数料を大幅に削減</strong>できる道が開けています。本投稿では、スマホ新法の要点と、アプリ事業者が今すぐ押さえるべき実務上のポイントを整理します。</p>
<h2>スマホ新法早見表　ー施行前 vs 施行後の手数料比較</h2>
<h3>Apple Store 参照元：<a href="https://developer.apple.com/jp/support/payment-options-on-the-app-store-in-japan/">Apple Inc.</a></h3>
<table>
<thead><tr>
<th><p>決済/導線</p></th>
<th><p>施行前</p></th>
<th><p>施行後*1</p></th>
</tr></thead>
<tbody>
<tr>
<td><p>アプリ内決済*2</p></td>
<td><p>30%</p></td>
<td><p><strong>26%</strong></p></td>
</tr>
<tr>
<td><p>アプリ内・外部決済*3</p></td>
<td><p>原則不可</p></td>
<td><p><strong>21%</strong></p></td>
</tr>
<tr>
<td><p>リンクアウト決済*4</p></td>
<td><p>原則不可</p></td>
<td><p><strong>15%</strong></p></td>
</tr>
<tr>
<td><p>代替アプリストア配信</p></td>
<td><p>不可</p></td>
<td><p><strong>5%</strong></p></td>
</tr>
<tr>
<td><p>外部決済の言及のみ</p></td>
<td><p>不可</p></td>
<td><p>可能</p></td>
</tr>
</tbody>
</table>
<h3>Google Play 参照元：<a href="https://support.google.com/googleplay/android-developer/answer/16787536?hl=ja&amp;utm_source=chatgpt.com">Play Console ヘルプ</a></h3>
<table>
<thead><tr>
<th><p>決済/導線</p></th>
<th><p>施行前</p></th>
<th><p>施行後</p></th>
</tr></thead>
<tbody>
<tr>
<td><p>アプリ内決済*2</p></td>
<td><p><strong>30%</strong></p></td>
<td><p><strong>30%</strong></p></td>
</tr>
<tr>
<td><p>アプリ内・外部決済*3</p></td>
<td><p>26%</p></td>
<td><p><strong>26%</strong></p></td>
</tr>
<tr>
<td><p>リンクアウト決済*4</p></td>
<td><p>原則不可</p></td>
<td><p><strong>10%</strong>（サブスク / 年$1Mまで）</p></td>
</tr>
<tr>
<td><p><strong>20%</strong>（その他デジタル購入）</p></td>
<td></td>
<td></td>
</tr>
<tr>
<td><p>代替アプリストア配信</p></td>
<td><p>Androidは構造上もともと可能（Galaxy Store等）</p></td>
<td><p>同様</p></td>
</tr>
<tr>
<td><p>外部決済の言及のみ</p></td>
<td><p>可能</p></td>
<td><p>可能</p></td>
</tr>
</tbody>
</table>
<ol>
<li>条件により表記の手数料より減少する場合があります</li>
<li>Apple IAPもしくはGoogle Play Billingのこと</li>
<li>外部決済SDK等</li>
<li>App → Webで決済のこと</li>
</ol>
<p>外部決済を採用することで<strong>手数料の大幅減額</strong>が見込めるように</p>
<p><strong>Apple（日本）</strong></p>
<ul>
<li>アプリ内決済“最大30%”⇨ <strong>最大26%</strong></li>
<li>リンクアウト型の外部決済は<strong>原則不可⇨可能</strong>に。手数料は <strong>15%（条件で10%）</strong>。</li>
</ul>
<p><strong>Google（日本）</strong></p>
<ul>
<li>アプリ内決済“の標準手数料は 30%据え置き</li>
<li>リンクアウト型の外部決済は<strong>原則不可⇨可能</strong>に。手数料は <strong>20%（条件で10%）</strong></li>
</ul>
<h2>スマホ新法の要点</h2>
<h3>スマホ新法によりできるようになること</h3>
<p><strong>1. アプリ内からWeb決済への誘導</strong></p>
<p>「Webで購入する」などのボタンを設置し、ブラウザでWeb決済を完了させる導線が可能になります。</p>
<p><strong>2. アプリ内での価格・キャンペーン表示</strong></p>
<p>Web上で提供するプランの価格や割引情報を、アプリ内で表示することが認められます。</p>
<p><strong>3. ストア決済と外部決済の併存</strong></p>
<p>従来のアプリ内課金（IAP）を残しつつ、外部決済を主要な購入導線として設計することも選択肢に入ります。</p>
<h3>想定される決済フロー</h3>
<p>施行後、以下のパターンが新たな選択肢になります。</p>
<table>
<thead><tr>
<th><p>パターン</p></th>
<th><p>内容</p></th>
</tr></thead>
<tbody>
<tr>
<td><p>アプリ</p></td>
<td></td>
</tr>
<tr>
<td><p>↓</p></td>
<td></td>
</tr>
<tr>
<td><p>Web決済</p></td>
<td></td>
</tr>
<tr>
<td><p>↓</p></td>
<td></td>
</tr>
<tr>
<td><p>即時利用</p></td>
<td><p>アプリ内でプラン表示</p></td>
</tr>
<tr>
<td><p>↓</p></td>
<td></td>
</tr>
<tr>
<td><p>CTAからWebへ遷移</p></td>
<td></td>
</tr>
<tr>
<td><p>↓</p></td>
<td></td>
</tr>
<tr>
<td><p>決済後すぐ利用可能</p></td>
<td></td>
</tr>
<tr>
<td><p>Web先行購入</p></td>
<td></td>
</tr>
<tr>
<td><p>↓</p></td>
<td></td>
</tr>
<tr>
<td><p>アプリログイン</p></td>
<td><p>Webで先に購入</p></td>
</tr>
<tr>
<td><p>↓</p></td>
<td></td>
</tr>
<tr>
<td><p>アプリでアカウント連携&amp;利用</p></td>
<td></td>
</tr>
<tr>
<td><p>IAP</p></td>
<td></td>
</tr>
<tr>
<td><p>＋</p></td>
<td></td>
</tr>
<tr>
<td><p>Web決済の併存</p></td>
<td><p>ユーザーに選択肢を提示し、</p></td>
</tr>
<tr>
<td><p>どちらでも購入可能にする</p></td>
<td></td>
</tr>
</tbody>
</table>
<h2>モバイルアプリ事業者はこれからどうしていくべきか？</h2>
<p><strong>外部決済を前提とした設計への移行</strong></p>
<p>スマホ新法の施行により、アプリ内決済（IAP）よりも外部決済・Web決済へ誘導する方が手数料面で有利になりました。これに伴い、従来の**「アプリ内決済を前提とした設計」から「外部決済を主軸とした設計」への見直し**が必要になります。</p>
<p>以下、実務上のポイントを整理します。</p>
<h3>1. 課金・権限管理の設計変更</h3>
<p>従来はAppleやGoogleのレシートを「購入の証明」として扱い、それを元に利用権限を付与する設計が一般的でした。外部決済を主軸にする場合、この前提が変わります。</p>
<p><strong>購入証跡の扱い</strong></p>
<ul>
<li>ストアのレシートは「購入経路のひとつ」として扱う</li>
<li>利用権限の付与は自社バックエンドで判断する</li>
<li>IAP・Web決済どちらの購入でも、同一の権限IDを付与する</li>
</ul>
<p><strong>アカウント管理の軸</strong></p>
<ul>
<li>Apple ID・Google IDではなく、アプリ内アカウント（メールアドレス等）を軸に管理する</li>
<li>端末変更、OS変更、Web→アプリの移行に対応できる構造にする</li>
<li>将来的なマルチプラットフォーム展開の土台になる</li>
</ul>
<h3>2. Web決済体験の設計</h3>
<p>Web決済への誘導が増えると、Webストアの使いやすさが収益に直結します。特に日本市場では、違和感のない体験設計が重要になります。</p>
<p><strong>UI設計</strong></p>
<ul>
<li>スマホ縦画面・片手操作を前提にする</li>
<li>入力項目は最小限に抑え、決済完了までのステップを短くする</li>
<li>Safari・Chrome両対応、ブラウザの「戻る」操作で破綻しない設計にする</li>
</ul>
<p><strong>価格・プラン表示</strong></p>
<ul>
<li>税込価格、課金周期、解約条件を明示する</li>
<li>アプリ内購入との違いがユーザーに伝わる説明を入れる</li>
</ul>
<p><strong>決済後の体験</strong></p>
<ul>
<li>決済完了後、サーバー側で即座に利用権限を付与する</li>
<li>アプリに戻った際に自動で同期される仕組みにする</li>
<li>「支払ったのに使えない」状態が発生しない設計にする</li>
</ul>
<h3>3. 計測項目の整備</h3>
<p>外部決済の導線が増えると、どこで離脱が起きているかを把握する重要性が増します。以下の指標は最低限追えるようにしておく必要があります。</p>
<table>
<thead><tr>
<th><p>指標</p></th>
<th><p>見るべきポイント</p></th>
</tr></thead>
<tbody>
<tr>
<td><p>アプリ→Web遷移率</p></td>
<td><p>誘導導線が機能しているか、文言・配置の効果検証</p></td>
</tr>
<tr>
<td><p>Web決済完了率</p></td>
<td><p>決済UIの使いやすさ、入力負荷、心理的離脱の有無</p></td>
</tr>
<tr>
<td><p>利用開始までの時間</p></td>
<td><p>決済完了→機能利用開始までの秒数。長いと問い合わせが増加する</p></td>
</tr>
<tr>
<td><p>問い合わせ発生率</p></td>
<td><p>「反映されない」「どこで買ったか分からない」などの発生頻度</p></td>
</tr>
</tbody>
</table>
<h3>4. 地域別・段階的な展開</h3>
<p>スマホ新法は日本国内の法律であり、他国のストア規約とは状況が異なります。一斉に切り替えるのではなく、段階的に展開できる設計が必要です。</p>
<p><strong>地域制御</strong></p>
<ul>
<li>まず日本のみでWeb決済導線を有効化する</li>
<li>他国のストア規約リスクを回避する</li>
</ul>
<p><strong>段階展開</strong></p>
<ul>
<li>ユーザー属性、OS、アプリバージョン単位でON/OFFを制御できるようにする</li>
<li>問題発生時に即座にロールバックできる構造にする</li>
</ul>
<p><strong>サーバー側制御</strong></p>
<ul>
<li>アプリのアップデートなしで導線を変更できるようにする</li>
<li>審査中でも挙動を制御可能にする</li>
<li>法改正やガイドライン変更への即応性を確保する</li>
</ul>
<h3>手数料を実質0%にする方法</h3>
<p>ユーザーが<strong>アプリ内のリンクを経由せず</strong>、自らWebストアにたどり着いて決済を完了すれば、プラットフォームへの手数料は発生しません。以下のような方法が検討できます。</p>
<p><strong>アプリ内での告知（リンクなし）</strong></p>
<ul>
<li>「『アプリ名 公式ストア』で検索」などのテキスト表示</li>
<li>「Webストアならお得に購入できます」といった案内文</li>
<li>リンクが設置されていないバナーやポップアップ</li>
</ul>
<p><strong>アプリ外からの誘導</strong></p>
<ul>
<li>メールマガジンでWebストアへ誘導</li>
<li>SNS（X、LINE、Instagram等）での告知</li>
<li>プッシュ通知から直接Webストアへ遷移（アプリを経由しない導線）</li>
</ul>
<aside class="tip"><strong>注意点：アプリ内リンクを設置する場合</strong><p>一方、アプリ内にWebストアへの直接リンクを設置する場合は注意が必要です。リンクアウト型の外部決済では、リンクをタップした瞬間の購入だけでなく、<strong>タップ後一定期間内に行われたWeb上の取引がストア手数料の対象</strong>になります。具体的には、Appleではリンクタップ後7日以内、Googleでは24時間以内の購入に手数料が課されます。</p></aside>
<h2>外部決済システム導入における課題と解決策</h2>
<p>外部決済の導入が手数料削減に有効であることは明らかです。しかし、実際に導入しようとすると、いくつかの現実的なハードルに直面します。</p>
<h3><strong>課題1：実装コストと運用リスクが高い</strong></h3>
<p>Web決済を自前で構築する場合、以下のような開発・運用が必要になります。</p>
<ul>
<li>決済UI（Checkout画面）の構築</li>
<li>Stripe等の決済サービス連携</li>
<li>サブスクリプション管理システム</li>
<li>Web購入→アプリへの反映処理</li>
<li>再購読・復元機能</li>
<li>不正決済・二重課金・例外処理</li>
<li>分析基盤・Webhook連携</li>
</ul>
<p>これらはすべてアプリ内決済とは別のシステムとして構築する必要があり、エンジニア工数・バグリスク・将来の保守コストを考えると、導入のハードルは決して低くありません。</p>
<h3><strong>課題2：ストアガイドライン違反によるリジェクトリスク</strong></h3>
<p>外部決済で最も怖いのは、意図せずガイドラインに抵触してしまうことです。</p>
<ul>
<li>表示ルール違反</li>
<li>不適切な誘導と判断される</li>
<li>将来のルール変更への対応漏れ</li>
</ul>
<p>リジェクトされれば、せっかく構築した決済導線が使えなくなり、結果的に購入機会を失うことになります。</p>
<h3><strong>課題3：売上データと顧客状態の分断</strong></h3>
<p>自前でWeb決済を導入すると、以下のようにデータが分断されがちです。</p>
<table>
<thead><tr>
<th><p>項目</p></th>
<th><p>管理場所</p></th>
</tr></thead>
<tbody>
<tr>
<td><p>IAP売上</p></td>
<td><p>App Store / Google Play</p></td>
</tr>
<tr>
<td><p>Web売上</p></td>
<td><p>Stripe等の決済サービス</p></td>
</tr>
<tr>
<td><p>顧客状態</p></td>
<td><p>自前データベース</p></td>
</tr>
<tr>
<td><p>分析</p></td>
<td><p>別ツール</p></td>
</tr>
</tbody>
</table>
<p>「誰がいくら払っているのか」「どの導線からの購入か」が把握しづらくなり、LTV分析やマーケティング施策の効果測定に支障をきたします</p>
<h2>3つの課題を解決する「Web Purchase Button」</h2>
<p>これらの課題をまとめて解決できるのが、RevenueCatが提供する<strong>モバイルアプリ向けWeb決済ソリューション「</strong><a href="https://www.revenuecat.com/jp/web-purchase-button/"><strong>Web Purchase Button</strong></a><strong>」</strong> です。</p>
<p>RevenueCatは、<strong>モバイルアプリとWebをまたいだサブスクリプション管理</strong>を前提に設計されたインフラを提供しています。</p>
<p>日本でWeb決済を本格的に導入する際には、モバイルに最適化されたWeb購入体験と、購入直後からアプリを利用できる仕組みが重要になります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/1ddca52fded49e3a40df63ed25e17d941f71b4d1-620x532.svg" alt=""/></figure>
<h3><strong>Web Purchase Buttonが選ばれる3つの理由</strong></h3>
<p><strong>課題1：実装・運用コストが高い → 開発負担を大幅に軽減</strong></p>
<p>Web Checkoutの画面はRevenueCatがホスティングしているため、自前で決済UIを構築する必要がありません。決済完了からアプリへの反映処理もSDKが吸収してくれるので、IAP＋Web決済という二重システムを自社で抱え込まずに済みます。</p>
<p><strong>課題2：ガイドライン違反のリスク → ストア準拠を前提とした設計</strong></p>
<p>Apple・Googleのガイドラインに準拠することを前提に設計されています。国やOSごとの出し分けにも対応しており、Web商品が設定されていない場合は自動的にIAPへフォールバックする仕組みも標準で備わっています。</p>
<p><strong>課題3：売上・顧客データの分断 → 既存の分析基盤をそのまま活用</strong></p>
<p>Web経由の購入もIAP経由の購入も、RevenueCat上で統合して管理できます。すでにお使いのWebhook連携・LTV分析・解約率の計測・権限管理の仕組みをそのまま活かせるため、「Web決済を入れたら分析が壊れた」という事態を防げます。</p>
<h3><strong>開発者・事業者にとっての本質的な価値</strong></h3>
<p>Web Purchase Buttonの価値は「Web決済ができること」ではありません。**「導入コストを最小化しながら、手数料削減のメリットを最大化できること」**にあります。また、以下のような「売上に効くか分からない施策」を小さく安全に試せる環境が手に入ります。これはCFO・PM・法務との合意コストを下げるという意味でも大きなメリットです。</p>
<p><strong>Web Purchase Buttonで可能な施作例</strong></p>
<ul>
<li>日本のみWeb決済を有効化</li>
<li>高LTVユーザーだけWeb誘導</li>
<li>割引プラン・年額プランだけWebで提供</li>
<li>A/Bテスト（アプリ更新なし）</li>
</ul>
<p>導入方法や料金体系など、詳しくは <a href="https://www.revenuecat.com/jp/web-purchase-button/">Web Purchase Button 公式ページ</a> をご覧ください。</p>
<h2>よくある質問（スマホ新法・外部決済）</h2>
<h3><strong>Q. スマホ新法はいつから適用されますか？</strong></h3>
<p>2025年12月18日に全面施行されました。この日以降、Apple・Googleは日本市場において新しいガイドラインに従う義務があります。</p>
<h3><strong>Q. 自社アプリも対象になりますか？</strong></h3>
<p>デジタルコンテンツやサブスクリプションを販売しているアプリであれば対象になります。物販など物理的な商品の販売は、もともとIAPの対象外のため影響はありません。</p>
<h3><strong>Q. AppleとGoogle、両方に適用されますか？</strong></h3>
<p>はい。スマホ新法はApple・Google両社が対象です。ただし、手数料率や適用条件は各社で異なるため、それぞれのガイドラインを確認する必要があります。</p>
<h3><strong>Q. 外部決済を導入すれば必ず手数料は下がりますか？</strong></h3>
<p>導入方法によります。アプリ内にリンクを設置する場合、Appleは15%、Googleは20%の手数料が発生します。</p>
<h3><strong>Q. アプリ内で「Webストアで購入できます」と書くだけで大丈夫ですか？</strong></h3>
<p>リンクを設置しないテキストでの告知であれば、手数料は発生しません。「『アプリ名 公式ストア』で検索」のような案内文は認められています。</p>
<h3><strong>Q. リンクを設置した場合、手数料はいつまでかかりますか？</strong></h3>
<p>リンクタップ後、Appleは7日間、Googleは24時間以内のWebストア購入が手数料の対象になります。この期間を過ぎた取引には手数料はかかりません。</p>
<h3><strong>Q. 外部決済を導入すると審査で不利になりますか？</strong></h3>
<p>スマホ新法では、外部決済を理由に審査を遅らせたり、検索順位を下げたりする行為は禁止されています。ただし、セキュリティや未成年者保護を理由とした一定の制約は認められる可能性があります。</p>
<h3><strong>Q. 小規模事業者向けの優遇はありますか？</strong></h3>
<p>あります。小規模事業者の場合、Appleのリンクアウト手数料は10%、Googleも10%に軽減されます。適用条件は各社のガイドラインで確認してください。</p>
<h3><strong>Q. 海外展開しているアプリはどう対応すべきですか？</strong></h3>
<p>スマホ新法は日本国内の法律です。他国では従来のストア規約が適用されるため、地域ごとに導線を切り替えられる設計が必要です。まず日本のみでWeb決済を有効化し、段階的に展開することが推奨されます。</p>
<h3><strong>Q. すぐに対応しないとペナルティはありますか？</strong></h3>
<p>事業者側にペナルティはありません。スマホ新法はApple・Googleに対する規制であり、アプリ事業者に対応を義務付けるものではありません。ただし、対応が遅れるほど手数料削減の機会を逃すことになります。</p>
<h3><strong>Q. 既存のIAP課金ユーザーはどうなりますか？</strong></h3>
<p>既存ユーザーのIAP契約はそのまま継続されます。外部決済への移行を促す場合は、更新タイミングでの案内や、Webストアでのお得なプラン提示などを検討してください。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[アプリ買収市場のリアル：10人の主要アクワイアラーが語る2026年の視点]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/guide-to-selling-apps</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/guide-to-selling-apps</guid>
      <pubDate>Sat, 03 Jan 2026 20:17:43 GMT</pubDate>
      <dc:creator><![CDATA[Lorelei Whitman, Evelin Herrera]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[ディールメーカーの Evelin Herrera氏が、2026年のアプリ買収市場について有力なアプリバイヤーに取材しました。売却を検討するすべての創業者が事前に知っておくべきポイントを解説します。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/f79e70c710c1d78d7011a6385ec33a6e468b0c4b-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>多くのアプリ開発者が「いつかはアプリを売却したい」と夢見る一方で、アプリを“買う側”の世界は、いまだにあまり知られていない領域です。就職面接や個人の資産について話すのと同じように、率直な会話が避けられがちなテーマでもあります。</p>
<p>幸いなことに、私たちはそうではありません。そして、そろそろ誰かがこうした疑問をきちんと解き明かす時期に来ているはずです。</p>
<p>たとえば、こんな疑問です。</p>
<ul>
<li>自分のアプリはいくらの価値があるのか？</li>
<li>買収後も自分は残る必要があるのか？</li>
<li>買収後も残ることは<em>できる</em>のか？</li>
<li>買い手はオーガニック流入と広告流入、どちらを好むのか？</li>
<li>リテンションはどれくらい良ければ十分なのか？</li>
<li>マルチプライヤーとは何で、どうすればそれを得られるのか？</li>
</ul>
<p>これらの疑問（そして他にもいくつか）に答えることが、この記事の目的です。現在インターネット上にあるアプリ買収に関する情報の多くは、情報が古かったり、一般論に終始していたり、実際に<em>アプリを買ったこと</em>のない人によるものだったりします。</p>
<p>さまざまな理由から、多くの買い手は自分たちの考えを公にしません。しかし、就職面接の準備が以前より透明になってきているように、創業者には信頼できる買収ガイダンスが与えられるべきだと私たちは考えています。そこで私たちは、情報の出どころそのものに直接あたりました。</p>
<p>これは、この業界を形づくっている当事者――買い手本人たちから聞いた、<strong>アプリ買収市場のリアルな現状</strong>です。</p>
<p>Exitを検討している創業者はもちろん、将来を見据えて準備を始めたい人にとっても、この内容は、インタビュー動画を見たり、ポッドキャストを聞いたり、1対1で話を聞いたりする時間の10倍の価値があると断言します。</p>
<h4><strong>取材したアプリバイヤーたち</strong></h4>
<p><a href="https://www.linkedin.com/in/evelinherrera/">Evelin Herrera</a>氏は、EHVM App Capital の創業者であり、高成長アプリの創業者とともにExitや戦略的買収を支援する、モバイルアプリ専門のM&amp;Aファームを率いています。Evelin氏は日々、創業者と買い手の双方と直接向き合い、実際のディールを成立させています。それならば、「買い手が何を求めているのか」を知るうえで、これ以上ふさわしい人物はいないでしょう。</p>
<p>彼女は自身のネットワークを徹底的にたどり、評価額から買収後の創業者の立ち位置に至るまで、国際的に活躍する10人の経験豊富な買い手にインタビューを行いました。私たちはその内容をもとに、これまで整理できていなかった疑問や、聞きたくても聞けなかった質問への答えを丁寧にひも解いていきます。</p>
<p>Evelin氏が話を聞いたのは、次の方々です。</p>
<ol>
<li>🇺🇸 <a href="https://www.linkedin.com/in/danielnovaes/">Dan Novaes</a>：Mode Mobile 共同創業者 / CEO</li>
<li>🇫🇷 <a href="https://www.linkedin.com/in/guillaume-larrieu-33623a16/">Guillaume Larrieu</a>：Quiet 事業開発担当VP</li>
<li>🇨🇦 <a href="https://www.linkedin.com/in/jonwalshkodeon/">Jon Walsh</a>：Kodeon マネージングパートナー / Push Capital パートナー</li>
<li>🇸🇰 <a href="https://www.linkedin.com/in/matejlancaric/">Matej Lancaric</a>：独立系ユーザー獲得・マーケティングコンサルタント</li>
<li>🇪🇸 <a href="https://www.linkedin.com/in/michael-mcphee/">Michael McPhee</a>：Leadtech Group 事業開発・M&amp;A責任者</li>
<li>🇵🇱 <a href="https://www.linkedin.com/in/pawelpochowski/">Paweł Pochowski</a>：Nova Sphere 事業開発責任者</li>
<li>🇬🇧 <a href="https://www.linkedin.com/in/ryanjthorpe/">Ryan Thorpe</a>：Reflective Apps グロース責任者</li>
<li>🇺🇸 <a href="https://www.linkedin.com/in/kenneytom/">Tom Kenney</a>：LOYAL 共同創業者 / CEO</li>
<li>🇹🇷 <a href="https://www.linkedin.com/in/yalcinozdemir/">Yalçın Özdemir</a>：AppNation 創業者 / CEO</li>
<li>🇺🇸 <a href="https://www.linkedin.com/in/zachtobin/">Zach Tobin</a>：Product Growth LLC 創業者</li>
</ol>
<p>彼らは現在進行形で、アプリを買収し、統合し、スケールさせている人たちです。対象となるアプリのカテゴリも、ゲーム、ヘルス＆フィットネス、生産性、ユーティリティ、ライフスタイルまで多岐にわたります。それでは、彼らの世界を少し覗いてみましょう。</p>
<h2><strong>要約</strong>：<strong>アプリ買収のリアルな現状</strong>（実際に「お金を出している人たち」の視点から）</h2>
<p>要点だけを素早く押さえたい方のために、ここでは結論をまとめています。10時間以上に及ぶインタビューから、「アプリを売却したい」と考えているなら知っておく<em>べき</em>重要ポイントを抜粋しました。</p>
<ul>
<li><strong>大半の買い手は、買収後も元のチーム（創業者を含む）が残ることを好む</strong>：プロダクトへの深い理解、素早い改善サイクル、遅延なくスケールできる点が評価されるためです。</li>
<li><strong>アプリの評価額の起点は、EBITDAの3〜5倍が一般的です。</strong> これは、アプリが2年以上運用されており、かつサブスクユーザーのリテンションが4か月以上ある場合に当てはまります。</li>
<li><strong>戦略的買収（純粋な財務目的ではない買収）も存在します</strong>が、数は多くありません。実現には、かなり綿密なマッチングが必要になります。</li>
<li><strong>多くの企業は100%キャッシュの一括支払いを標準としています</strong>が、アーンアウトや株式など、別の形態を提示するケースもあります。これらは最終的な評価額を上げることも下げることもあるため、慎重な検討が必要です。</li>
<li><strong>オーガニック流入を好む買い手もいれば、有料ユーザー獲得（UA）を重視する買い手もいます。</strong>オーガニックは安定した成長を示し、有料UAはスケールを可能にします。指標の強さを示し、アルゴリズム依存のリスクを下げるためにも、50/50のバランスを目指すのが一つの目安です。</li>
<li><strong>そもそも、なぜ買い手はアプリを買収するのか？</strong>50万ドル未満の買収でも、12〜18か月で売上を倍増させた事例があり、金銭的な魅力は非常に高いからです。また、多くの買収者は、ゼロから作るよりも「買う」ことで、リスクを抑え、成長を加速し、すでに<a href="https://www.revenuecat.com/blog/growth/product-market-fit-subscription-apps/">プロダクトマーケットフィット</a> （PMF）が証明されたアプリからスタートしたいと考えています。</li>
<li><strong>買収における最大の「グリーンフラグ」は以下のとおり</strong>：高いリテンション、低い運用コスト、オーガニックによる複利的成長、ドメインオーソリティ、明確なPMF、そして市場の勢い。</li>
</ul>
<h2><strong>アプリの評価額を本当に左右するものとは？そして「マルチプル」の真実</strong></h2>
<p>開発者がまず最初に抱く疑問は、ほぼ例外なくこれです。「自分のアプリはいくらで売れるのか？」しかし、アプリの評価（バリュエーション）は簡単ではありません。将来の成長可能性、トレンドよりも継続性（スティッキーさ）、技術的な参入障壁（存在する場合）、そして他にも多くの要素を反映させる必要があります。</p>
<p>この問いの核心に最も正確に答えられるのは、実際に資金を投じている人たちの声を聞くことです。<em>ただし</em>本題に入る前に、まずは基本となる2つの概念を整理しておきましょう。<strong>買収の種類</strong>と<strong>マルチプル</strong>です。</p>
<h3><strong>戦略的買収と財務的買収</strong></h3>
<p>意外に思われるかもしれませんが、すべてのアプリが「お金儲け」だけを目的に買われているわけではありません。実際には、多くの買収は戦略的判断、財務的動機、そして個人的な関心や情熱が混ざり合ったものです。とはいえ、大きく分けると買収には2つのタイプがあります。それが、財務的買収と戦略的買収です。</p>
<p><strong>財務的買収</strong>では、評価額は純粋にその会社の財務パフォーマンスに基づいて決まります。</p>
<p>「財務指標が最優先です。ただし、私たちが構築しているものと戦略的に一致する場合は、そこも考慮します。」— <a href="https://www.linkedin.com/in/danielnovaes/">Dan Novaes</a>（Mode Mobile 共同創業者兼CEO）</p>
<p><strong>戦略的買収</strong>では、そのアプリがビジネスにもたらす戦略的価値が重視されます。たとえば、<a href="https://www.revenuecat.com/blog/growth/app-portfolio-vs-single-app/">アプリポートフォリオ</a>の空白を埋める存在であるか、特定市場で非常に強い価値を持っているか、といった点です。このタイプの買収は、プレミアム価格が付くことも珍しくありません。</p>
<p>「私たちは、生活の質を向上させる高品質なアプリのポートフォリオを構築するという戦略を前進させてくれる買収案件を常に探しています。その上で、複数の要素をもとに評価額を決定しています。」— <a href="https://www.linkedin.com/in/jonwalshkodeon/">Jon Walsh</a>（Kodeon マネージングパートナー／Push Capital パートナー）</p>
<h3><strong>マルチプルは買収における決定要因なのか？</strong></h3>
<p>モバイルアプリの買収の世界では、「マルチプル」という言葉があちこちで飛び交います。もちろん、それに付随する数々の略語とともに、です。</p>
<p>簡単に言うと、マルチプルとは、<strong>買い手が中核となる財務指標をもとに事業価値を見積もる</strong>ためのシンプルな方法です。「あなたのアプリは、稼いでいる金額の〇倍の価値がある」と評価する考え方であり、言い換えれば「将来どれだけ稼げるか」を織り込む指標でもあります。</p>
<p>多くの買収では、<a href="https://www.revenuecat.com/glossary/#monthly-recurring-revenue-mrr">月次経常収益（MRR）</a>、年次経常収益（ARR）、または EBITDA を基準指標として使います。マルチプルとは、その1単位あたりの価格です。たとえば、あるアプリが年間 10 万ドルを稼いでおり、その市場では「収益 1 ドルあたり 3〜5 ドル」が一般的な相場だとすると、そのアプリの評価額は 30 万〜50 万ドルになります。買い手がこれらの指標を基準に価値を固定するのは、規律を保ち、過剰な買い付けリスクを抑えるためです。</p>
<p>「評価額は常にマルチプルを基準に決まります。規律を欠けば、過払いになり、その分だけ成功が難しくなります。評価は、買い手を含むすべての関係者にとって win-win である必要があります。」— <a href="https://www.linkedin.com/in/kenneytom/">Tom Kenney</a>（LOYAL 共同創業者兼 CEO）</p>
<p>多くの創業者はマルチプルに強くこだわり、それが買収のすべてだと思いがちです。しかし、Evelin がすべての買い手から聞いた実際の答えは、マルチプルはあくまで出発点であり、絶対的なルールではないというものでした。本当の評価額は、<a href="https://www.revenuecat.com/blog/growth/one-year-retention-rates-insights/">リテンション</a>、スケーラビリティ、成長性、チーム構成など、さまざまな要因（これについてはこの後詳しく触れます）によって上下します。</p>
<p>たとえば AppNation 創業者兼 CEO の <a href="https://www.linkedin.com/in/yalcinozdemir/">Yalçın Özdemir</a>氏は、適切なアプリであれば評価額は柔軟に調整され得ると説明しています。</p>
<p>「私たちの強みを活かして、短期間で収益を大きく伸ばせると判断した場合には、評価額を引き上げることも厭いません。そうしたケースでは、創業者が築いたものと、私たちが提供できる価値の“噛み合い”そのものに本当の価値があると考えています。」— <a href="https://www.linkedin.com/in/yalcinozdemir/">Yalçın Özdemir</a>（AppNation 創業者兼 CEO）</p>
<h3><strong>マルチプルだけでは語れない評価の実態</strong></h3>
<p>Yalçın氏が述べているとおり、マルチプルは買い手の関心を左右する唯一の決定要因ではありません。より大きな全体像を見ることが重要であり、特にゲームのような一部の業界では、マルチプルへの依存度が比較的低い場合もあります。</p>
<p>「マルチプルは有用なツールではありますが、それだけに頼っているわけではありませんし、常に最も正確な指標というわけでもありません。たとえばゲームでは、ユーザー獲得への投資を抑えた途端に収益が落ちることがよくあります。そうしたケースでは、直近 12〜24 か月の実績だけに基づいた評価では、本来のポテンシャルを反映できないことがあります。」— <a href="https://www.linkedin.com/in/pawelpochowski/">Paweł Pochowski</a>（Nova Sphere 事業開発責任者）</p>
<p>また、アーリーステージのアプリや新興ニッチ領域のプロダクトも、マルチプルだけでは正しく評価されにくいことがあります。Paweł氏は、こうしたカテゴリでは、まだパフォーマンス指標によって価値を十分に証明できていない場合があると説明しています。「こうしたケースでは、過去データだけで判断するのではなく、<strong>市場トレンド</strong>、<strong>戦略的な適合性</strong>、<strong>成長ポテンシャル</strong>も含めて評価します。強い勢いや独自のポジショニングが見られれば、標準を上回る評価額を提示することにも前向きです。」</p>
<p>「まずは財務パフォーマンスを起点にし、その後で各種パフォーマンス指標を深掘りしながら、アプリのこれまでの歩み、現在の市場での立ち位置、そして現ユーザー・過去ユーザーにとっての価値を理解するための包括的なモデルを構築します。」— <a href="https://www.linkedin.com/in/jonwalshkodeon/">Jon Walsh</a>（Kodeon マネージングパートナー／Push Capital パートナー）</p>
<p>さらに <a href="https://www.linkedin.com/in/jonwalshkodeon/">Jon Walsh</a>氏は、新しいアプリを評価する際に、自社の既存アプリポートフォリオとの関係性を考慮する買い手が多いことにも言及しています。「私たちは、そのアプリが自社ポートフォリオ全体にどれだけ補完的かを考えたうえで、最終的に支払える価格を判断します。全体戦略を加速させる資産であれば、より高いマルチプルを支払うこともありますが、あくまで財務規律に基づいた範囲内で行います。」</p>
<h3><strong>ハイマルチプル帯に入るための考え方</strong></h3>
<p>では、あなたのアプリが“あの”ハイマルチプル帯に入るための秘訣は何なのでしょうか。</p>
<p>一般的に、評価額は EBITDA の 3〜5 倍といったマルチプルレンジで語られます。アプリごとに評価を上下させる要因はさまざまであり、ごく一部の買い手は、その自社<a href="https://www.revenuecat.com/blog/growth/app-portfolio-vs-single-app/">アプリポートフォリオ</a>にとって「より大きな価値」を解き放つと判断した場合、標準的なレンジを超える評価を行うこともあります。</p>
<p>その理由として挙げられるのは、たとえば次のような要素です。</p>
<ul>
<li>クロスセルの可能性</li>
<li>特定カテゴリにおける専門性</li>
<li>ユーザー層の重なり</li>
<li>ターゲット市場における実証済みの PMF</li>
<li>自社では持っていない機能セット</li>
</ul>
<p>だからこそ、創業者は複数の買い手と話すべきなのです。最も高い評価額を提示してくれるのは、必ずしも「収益マルチプルが最も高い買い手」ではなく、あなたのアプリと自社ポートフォリオとの間に最大のシナジーを見出した買い手であることが多いからです。</p>
<p>Evelin が話を聞いたすべての買い手に共通していたのは、非常に明確なパターンでした。マルチプルレンジの上限を狙うのであれば、次の 3 つが不可欠です。</p>
<ol>
<li><strong>強いリテンション</strong>：これは疑いようのないプロダクトマーケットフィットを示すシグナルであり、長期的なキャッシュフローを予測するうえで最も重要な指標です。</li>
<li><strong>低い運用負荷とクリーンなアーキテクチャ</strong>：買い手は、できるだけ速く、そして簡単にスケールしたいと考えています。ドキュメントの欠如、分析データの不整合、整理されていないコードがある状態では、それは実現できません。</li>
<li><strong>オーガニック、もしくは複利的に成長するディストリビューション</strong>：これは効率的な成長エンジンを意味します。未開拓市場、機能拡張の明確な余地、カテゴリ初期段階でのトラクションなどが該当します。</li>
</ol>
<p>大したことは求めていないですよね？</p>
<h3><strong>まとめ：評価額とマルチプルについて</strong></h3>
<p>マルチプルは理解しやすく、アプリの価値を素早く把握するための指標として有用ですが、<strong>それ以上に重要なのは「適切な買い手を見つけること」</strong>です。あなたのアプリが、買い手の目標達成をより早められるものであったり、戦略やポートフォリオとの明確なフィットがあったり、成長の勢いを持っている場合、より高いマルチプルが提示される可能性は大きく高まります。</p>
<p>同様に、買い手が「自分たちがどこで価値を生み出せるか」を明確に描けるほど、そのアプリは魅力的になり、結果として評価額も上がります。初期の成長軌道やカテゴリ全体の動きも、財務指標とほぼ同じくらい評価に影響します。とはいえ、忘れてはならないのは財務的な規律が最終的には重視されるという点です。ほとんどの買い手は EBITDA や MRR のマルチプルを評価の軸に据えており、過度に大きな財務リスクを取ることはありません。</p>
<h2><strong>アプリ買収における買い手のウィッシュリスト：買収前に創業者が最適化すべきポイント</strong></h2>
<p>マルチプルはオファーを得るうえで確かに重要な要素ですが、買い手が実際にディールを前に進めるかどうかを左右する要因は、それだけではありません。Evelin は、買い手に「アプリを見るうえで最も重視する上位3つのポイント」を尋ねました。では、全員が同じ3つを挙げたでしょうか？</p>
<p>答えは――ゼロです。つまり、万人に当てはまる正解は存在しません。</p>
<p>とはいえ、マルチプルに影響を与えるシグナルと同様に、ほぼすべての買い手が共通して重視していた要素は存在しました。とくに多く挙げられたのが、<a href="https://www.revenuecat.com/glossary/#retention-rate">リテンション</a>、そして「定着性（sticky）のあるユーザー」を持っているかどうかです。</p>
<p>「最終的には、買収価格は低いほうがいいし、投資回収が早いほうがいい。でも私たちは、数多くの要素と、それらがどう関係しているかを見ています」— <a href="https://www.linkedin.com/in/ryanjthorpe/">Ryan Thorpe</a>（Reflective Apps／Director of Growth）</p>
<p>買い手が注目している主なポイントは次のとおりです。</p>
<ul>
<li>リテンション</li>
<li>オーガニック成長</li>
<li>マネタイズの余地</li>
<li>評価額と ROI</li>
<li>技術インフラ</li>
<li>プロダクトマーケットフィット（PMF）</li>
<li>業界への理解度、<em>と／または</em>戦略・ポートフォリオとの適合性</li>
<li>市場の勢い（マーケットモメンタム）</li>
</ul>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/6b337bc3c4f9a8e0dcd9824e405847b0ce230ecb-1024x768.png" alt=""/></figure>
<p>では、それぞれを詳しく見ていきましょう。</p>
<table>
<thead><tr>
<th><p>優先項目</p></th>
<th><p>なぜ重要か</p></th>
<th><p>関連指標</p></th>
</tr></thead>
<tbody>
<tr>
<td><p><strong>継続率</strong></p></td>
<td><p>継続率は、ユーザーベースが簡単には離れていかないことを示す重要なシグナルであり、すなわち金銭的なポテンシャルがあることを意味します。買い手はこれを品質の指標、そしてプロダクトマーケットフィット（PMF）が成立している証拠として捉えます。
彼らが見たいのは、低い解約率と高い定着性です。つまり、新機能がなくても、多少の不具合があっても、ユーザーが何度も戻ってきているかどうかです。
継続率は、PMF、将来のキャッシュフロー、そして下振れリスク耐性を示す最も強い指標です。成長が鈍化したとしても、継続率が高ければリスクは大きく下がります。</p></td>
<td><p>DAU/MAU
コホート継続率
解約率（Churn rate）
<a href="https://www.revenuecat.com/glossary/#trial-conversion-rate">コンバージョン率</a></p></td>
</tr>
<tr>
<td><p><strong>オーガニック成長</strong></p></td>
<td><p>買い手は、成長性、ドメインオーソリティ、そしてオーガニックチャネルによって生まれている需要を重視します。<em>すべての</em>買い手がトラフィックの「オーガニックか有料か」を重視しているわけではありません（この点は後述します）が、オーガニック成長がポジティブなブランド認知と複利的な成長ポテンシャルを示す、という点では全員が一致していました。</p></td>
<td><p>オーガニック由来インストール比率
主要キーワードの順位 (<a href="https://www.revenuecat.com/glossary/#app-store-optimization-aso">ASO</a> + SEO)
レビュー数と平均評価</p></td>
</tr>
<tr>
<td><p><strong>マネタイズの余地</strong></p></td>
<td><p>直感に反するかもしれませんが、買い手は「まだ十分に<a href="https://www.revenuecat.com/blog/growth/2025-app-monetization-trends/">マネタイズ</a>されていない状態」をプラスに捉えることがあります。これは、そのアプリが現状以上に収益を生み出せる可能性があることを意味するからです。
彼らは、すでにマネタイズが成功している実績、改善余地が明確にあること、そして収益の“量”だけでなく“<em>質</em>”も見ています。</p></td>
<td><p><a href="https://www.revenuecat.com/glossary/#arpu-average-revenue-per-user">ARPU</a>
年額プランと月額プランの構成比
RPI
サブスクリプション価格とオファー構成</p></td>
</tr>
<tr>
<td><p><strong>バリュエーションと投資回収</strong></p></td>
<td><p>ここが、いわゆる「マルチプル」の話になります。買い手は、この取引が双方にとって財務的に成立するかどうかを重視します。具体的な現金オファーのレンジを持っている買い手もいれば、投資回収期間（Payback period）を重要視する買い手もいます。
また、「このアプリが自社にフィットするなら、より高く支払ってもよい」と考える買い手も複数いました。</p></td>
<td><p>LTV/CAC
投資回収期間
粗利率</p></td>
</tr>
<tr>
<td><p><strong>技術基盤</strong></p></td>
<td><p>買い手は、保守・運用しやすいアプリを求めています。インフラは安定しており、かつスケーラブルである必要があります。クリーンなアーキテクチャ、十分にドキュメント化されたプロセス、信頼できるバックエンドは、すべて明確に評価ポイントとして挙げられていました。</p></td>
<td><p>アプリ安定性指標
インフラコスト（売上比）
課金失敗率</p></td>
</tr>
<tr>
<td><p><strong>プロダクトマーケットフィット</strong></p></td>
<td><p>すべての買い手が共通して求めているのは、「このアプリが、明確に定義された既存のユーザー層の課題を、本当に解決している」という証拠です。
PMFが成立していなければ、どれだけ見た目が良いアプリでも対象外になります。</p></td>
<td><p>継続率
長期利用ユーザー数
<a href="https://www.revenuecat.com/glossary/#churn-rate">解約率</a>
ソーシャルプルーフ</p></td>
</tr>
<tr>
<td><p><strong>業界理解・ポートフォリオ適合</strong></p></td>
<td><p>買い手は、自分たちがすでに理解している市場、既存の分析を再利用でき、ユーザーベースが重なり得る市場を好む傾向があります。実際、多くの買い手が「自社ポートフォリオに自然にフィットするアプリ」を優先すると話しています。
一方で、カテゴリーにこだわらず、専門外であっても成長余地のあるニッチ市場を狙う買い手もいます。また、既存プロダクトのギャップを埋める目的で買収するケースもあります。</p></td>
<td><p>同カテゴリ内でのベンチマーク比較（継続率、ARPUなど）
既存ポートフォリオとのユーザー重複
競合との価格整合性</p></td>
</tr>
<tr>
<td><p>市場の勢い</p></td>
<td><p>成長中、もしくは新興市場にあるアプリは高く評価されます。カテゴリーリーダーの存在やユーザー獲得状況は、市場の勢いを測る代理指標として使われます。買い手は「勢いのあるニッチ」や、高い成長ポテンシャルを持つ領域を求めています。</p></td>
<td><p>インストール成長率（MoM / YoY）
売上成長率
カテゴリ成長指標
カテゴリベンチマーク</p></td>
</tr>
<tr>
<td><p><strong>タイミング</strong></p></td>
<td><p>2人の買い手が明確に言及していたのが「タイミング」です。アプリ自体はまだ伸びる余地があるが、何らかの助けが必要だ、というサインを探しています。
具体的には、開発リソースの限界、創業者の疲弊、マーケティング知識の不足、実行面での限界などが挙げられていました。</p></td>
<td><p>定性的シグナル</p></td>
</tr>
</tbody>
</table>
<p>ほぼすべての買い手に共通しているのは、「純粋な売上だけ」を評価軸にしているわけではない、という点です。高いマルチプルや「欲しい」と思われるアプリは、<strong>継続率</strong>、<strong>ディストリビューション</strong>、<strong>マネタイズ</strong>、そして<strong>買い手との相性</strong>といった複数の要素がうまく噛み合ったところから生まれます。</p>
<p>何よりも重要なのは、そのアプリが明確なオーディエンスと市場の中で、自分の居場所を見つけているかどうかです。もしそれが、買い手にとっての戦略的なギャップやポートフォリオ上の空白を埋める存在であれば、なおさら評価は高まります。繰り返し出てきた共通認識は、「<em>このアプリはすでにうまく機能している。だが、私たちならもっと良くできる</em>」というものでした。</p>
<p>ここまでで、マルチプルが必ずしもすべてを語るわけではないこと、そして買い手が何を見ているのかは見えてきたはずです。それでは次に、アプリが評価される場面で、こうしたポイントをどのように示せばよいのかを、もう少し踏み込んで見ていきましょう。</p>
<h3><strong>買い手に「健全なアプリ」だと伝えるリテンションのシグナル</strong></h3>
<p>リテンションは、多くの買い手にとって極めて重要な指標です。それも当然で、ビジネスの成功を見込んで数年分の対価を先に支払うのであれば、有料ユーザーが長く残り続けてくれることを期待します。実際、買い手は一貫してリテンションを評価額を左右する上位3つの要因のひとつに挙げています。では、創業者はどのようにすれば、<strong>定着性を明確に示し、リスクを低く見せるリテンションのストーリーを用意</strong>できるのでしょうか。</p>
<p>Evelin氏が行ったヒアリングをもとにすると、リテンションのシグナルは大きく次の3つに分けられます。</p>
<p><strong>1. リテンションがカテゴリのベンチマークと整合していること</strong>：買い手が見ているのは、全アプリ共通の数値ではありません。カテゴリごとの標準、価格帯、サブスクリプション期間、利用頻度などを踏まえた相対評価です。</p>
<p>「そのカテゴリで最大のプレイヤーは誰か？どれくらいの売上を上げているのか？どんなUAチャネルを使っているのか？それらが、私が検討しているアプリのベンチマークになります。これらすべてを意思決定マトリクスに組み込みます」— <a href="https://www.linkedin.com/in/matejlancaric/">Matej Lancaric</a>（独立系ユーザー獲得・マーケティングコンサルタント）</p>
<p><a href="https://www.revenuecat.com/state-of-subscription-apps-2025/"><em>State of Subscription Appsレポート</em></a>を見ると、カテゴリによってリテンションがどれほど大きく変わるかが分かります。自分の業界を理解し、競合が何をしているのか、そして自分のアプリがどの位置にいるのかを把握しておくことが重要です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/220fb63220697e7d26360dbe7b25713cab1b6640-1808x1326.png" alt=""/></figure>
<p><strong>2. 初期チャーンの背景が明確に説明できること</strong>：<a href="https://www.revenuecat.com/state-of-subscription-apps-2025/">サブスクリプションの約30％が初月で解約される</a>ことを考えると、チャーンがあるからといって即座に「不採用」になるわけではありません。ただし、なぜ<a href="https://www.revenuecat.com/blog/growth/robbie-kellman-baxter-how-a-membership-mindset-can-help-reduce-churn/">チャーン</a>が起きたのかを理解し、それをもとに改善してきたことを示す必要があります。チャーンを説明できれば、評価額を守ることができます。</p>
<p><strong>3. 時間とともに安定するコホートが存在すること</strong>：たとえ全体のチャーン率が高くても、最も重要な長期ユーザーが定着していることを示す証拠を集めることは可能です。異なるサブスクリプションプラン、ユーザーセグメント、流入元ごとに、リテンションを横断的に捉えた全体像を作りましょう。</p>
<p>ここで、RevenueCat のダッシュボードを見て<a href="https://www.revenuecat.com/glossary/#retention-rate">リテンション率</a>に不安を感じている人は、少し待ってください。「強いリテンション」とみなされる基準は、買い手によって大きく異なります。</p>
<p>Reflective Apps の Growth Director である <a href="https://www.linkedin.com/in/ryanjthorpe/">Ryan Thorpe</a>氏は次のように述べています。
「年額サブスクリプションで、25％程度のものもあれば、60％に達するものもあります。何を『健全』と定義するか、そしてどんなサブスクリプションモデルかによって大きく変わります。」</p>
<p>一方で、Kodeon の Managing Partner であり Push Capital のパートナーでもある <a href="https://www.linkedin.com/in/jonwalshkodeon/">Jon Walsh</a>氏はこう語っています。「一般的には、年額サブスクリプションのリテンションは60〜70％がまずまずの水準だと言えるでしょう。もっとも、アプリのカテゴリや年数によって左右されますし、価格戦略のようにリテンションに影響する要因は他にもあります。これは、アプリが私たちにとってフィットするか、そしてその価値をどう評価するかを判断するための、多くの指標のひとつに過ぎません。」</p>
<h3><strong>まとめ：リテンションのシグナル</strong></h3>
<p>これは多くの開発者にとって朗報です。評価されるのはサブスクのリテンションだけではありません。これまでに触れてきたとおり、アプリ買収の判断では、ほかのシグナルも重要視されます。たとえば、回収期間（Payback Period）、価格モデル、<a href="https://www.revenuecat.com/glossary/#ltv-cac-ratio">LTV/CAC 比率</a>などです。これらすべてが組み合わさって、あなたの「<a href="https://www.revenuecat.com/blog/growth/michael-ribero-conde-nast-sub-club-podcast-2025/">リテンションのストーリー</a>」を形作ります。そして、そのうえで言えるのは、「良い」リテンションの基準は、聞く相手によって 25〜70％ と大きく幅がある、ということです。</p>
<p>自分のアプリの指標を正しく理解し、カテゴリごとのベンチマークを把握し、投げかけられるであろう質問に対して説明（あるいは反論）できるようにしておきましょう。「良い」とは何かを比較するうえでは、<a href="https://www.revenuecat.com/state-of-subscription-apps-2025/"><em>State of Subscription Appsレポート</em></a>のような資料が非常に有用です。また、RevenueCat の <a href="https://www.revenuecat.com/healthscore/">Subscription App Healthscore calculator</a>を使えば、競合アプリと比べて自分の立ち位置を確認することもできます。</p>
<h3><strong>有料かオーガニックか？トラフィックとUAに対する買い手の嗜好</strong></h3>
<p>Evelin氏が頻繁に受ける質問のひとつが、「<a href="https://www.revenuecat.com/blog/growth/how-paid-campaigns-affect-your-apps-organic-traffic/">オーガニックトラフィックと有料ユーザー獲得</a>（UA）のどちらが、バリュエーションにおいてより重要なのか？」というものです。これは彼女のインタビューの中でも、特に意見が分かれたテーマでした。完全にオーガニックを好む買い手もいれば、完全に有料を好む買い手もいる。そして多くの場合、その中間に位置しています。</p>
<h4><strong>オーガニック成長を強く好む買い手</strong></h4>
<p>オーガニックトラフィックは、リスクが低く、費用対効果が高いと見なされています。Product Growth LLC 創業者の <a href="https://www.linkedin.com/in/zachtobin/">Zach Tobin</a>氏は、オーガニックを好む立場です。「維持にかかる労力が少ない一方で、アルゴリズム変更のリスクはあります。理想は100％オーガニックですが、損益分岐点までは有料にも投資します。結果として、だいたい80/20の比率になります。」</p>
<p>Reflective Apps の Growth Director である <a href="https://www.linkedin.com/in/ryanjthorpe/">Ryan Thorpe</a>氏もこれに同意しています。「オーガニックトラフィックは配信の信頼性が高く、年間リターンも予測しやすい。さらに、追加の高額なマーケティングコストがかかりません。」</p>
<p>こうした買い手は、防御力の高さと複利的な成長を重視します。オーガニック成長は、品質の高さや強固なプロダクトマーケットフィット（PMF）の証と捉えられ、将来的な信頼性を示す指標と見なされています。</p>
<p>「オーガニックトラフィックは多ければ多いほど良い。私たちが求めているのは、複利的に伸びている高いオーガニックトラフィックです。PMFが確立され、実質的に無料のディストリビューションで、勢いが加速している予測可能なトレンドです。」— <a href="https://www.linkedin.com/in/ryanjthorpe/">Ryan Thorpe</a>, Director of Growth at Reflective Apps</p>
<h4><strong>有料ユーザー獲得を好む買い手</strong></h4>
<p>一方で、別の買い手にとっては、<a href="https://www.revenuecat.com/blog/growth/web-to-app-paid-user-acquisition/">有料UA</a>の方が予測可能で、スケールしやすいと考えられています。</p>
<p>「有料トラフィックは、私たちの戦略の中核です。オーガニック施策だけで急成長を見せたものの、長期的には維持できなかった若いアプリを、私たちは何度も見てきました。長期的な収益性とスケーラビリティを考えると、有料UAが必要です。」— <a href="https://www.linkedin.com/in/guillaume-larrieu-33623a16/">Guillaume Larrieu</a>, VP of Business Development at Quiet</p>
<p>LOYAL の CEO 兼 Co-founder である <a href="https://www.linkedin.com/in/kenneytom/">Tom Kenney</a>氏は、有料トラフィックを「アプリストアのノイズを突破するための手段」と表現しています。また他の買い手は、<a href="https://www.revenuecat.com/glossary/#customer-acquisition-cost-cac">CAC</a>、ROAS、ファネルのパフォーマンス、チャネルごとのトレンドをより明確に把握できる点を理由に、有料UAを好むと述べています。これにより、将来的に高くつく失敗を避けやすくなるというわけです。</p>
<h4><strong>オーガニックと有料のバランスを求める買い手</strong></h4>
<p>有料のみ、あるいはオーガニックのみのトラフィック構成だと敬遠する、という買い手も一部にはいましたが、大多数の買い手はミックス構成を許容しており、むしろバランスの取れた成長が期待できるとして好むケースも多く見られました。</p>
<p>Quiet の VP of Business Development である <a href="https://www.linkedin.com/in/guillaume-larrieu-33623a16/">Guillaume Larrieu</a>氏は、買収において 有料75％／オーガニック25％ の比率が良いと語っています。「オーガニックインストールが、ASOではなく、バイラル動画やソーシャルコンテンツのような自然な施策から生まれているなら、なお良いですね。」</p>
<p>Mode Mobile の Co-Founder &amp; CEO である <a href="https://www.linkedin.com/in/danielnovaes/">Dan Novaes</a>氏のように、より均等な配分を好む買い手もいます。</p>
<p>「私は、強いオーガニック倍率を伴った有料トラフィックが好きです。有料は、やり方を分かっていれば予測可能でスケールできます。アルゴリズムは変わるので、オーガニックだけに頼ることはできません。理想的なのは、オーガニック／有料が50/50の世界ですね。」— <a href="https://www.linkedin.com/in/danielnovaes/">Dan Novaes</a>, Co-Founder &amp; CEO at Mode Mobile</p>
<h3><strong>まとめ：オーガニックトラフィックVS有料トラフィック</strong></h3>
<p>どちらのトラフィックも重要ですが、指標や収益性を確認したい、あるいは過去の失敗を避けたいと考える買い手にとっては、有料UAがあることは大きなプラスであることが分かります。オーガニックは純粋な成長ストーリーを示す一方で、有料はより予測可能な手法として捉えられています。</p>
<p>売却前に完璧なトラフィック配分を用意する必要はありませんが、その配分を説明できることが重要です。</p>
<ul>
<li>オーガニックが強みであれば、その防御力を定量的に示すこと</li>
<li>有料が強みであれば、UAの収益性に加えて、失敗した実験やそこから得た学びを提示すること</li>
</ul>
<p>どのチャネルが機能していて、どのチャネルが機能していないのか、その理由は何か、そしてどこで効率性を築いてきたのか。こうした点を、買い手に対して明確に説明できるようにしておく必要があります。</p>
<p>「私たちはトラフィックの種類自体に強い好みはありません。ただし、アプリが有料獲得を行っている場合は、UAの指標や、有料ユーザーのパフォーマンスを何が押し上げているのかを深く理解する必要があります。そうすることで、それがどれだけ持続可能で、スケーラブルなのかを判断できるのです。」— <a href="https://www.linkedin.com/in/jonwalshkodeon/">Jon Walsh</a>, Managing Partner at Kodeon and Partner at Push Capital</p>
<h2><strong>ディールを成立させる：買い手の見つけ方と、実際の向き合い方</strong></h2>
<p>買い手が何を求めているのかを理解し、数字を整理し、アプリの成功ストーリーもまとめられた。次に必要なのは、実際に買い手とつながることです。</p>
<p>場合によっては買い手のほうから声がかかることもありますが、すぐに動きたいのであれば、以下のステップから始めましょう。</p>
<ol>
<li><strong>買い手のタイプをリサーチする</strong>：個人や企業がアプリを買収する理由はさまざまで、買い手のタイプによって重視するポイントも異なります。誰がアプリを買っているのか、そして自分のアプリがどのタイプの買い手に最もフィットするのかを理解するために、時間をかけて調べましょう。</li>
<li><strong>買い手を見つける</strong>：狙う買い手のタイプが定まったら、次はネットワーキングです。アプリを掲載できるWebサイトやマーケットプレイスを利用する方法もありますし、M&amp;Aの専門家に相談するのも一案です。とはいえ、最も効果的なのは対面でのネットワーキングやLinkedInです。職種としては、Business Development、M&amp;A、Partnership といった肩書きを持つ人を探すことになるでしょう。</li>
<li><strong>ターゲットリストを作成する</strong>：買い手候補を特定したら、スプレッドシートなどで一覧化します。買い手の情報、通常の取引規模、最近の買収事例、連絡手段などを記録しておくと、アプローチの進捗管理にも役立ちます。</li>
<li><strong>時間を無駄にしないチャネルで連絡する</strong>：ウォーム・イントロ（他の創業者、エンジェル投資家、弁護士、会計士、UAコンサルタントなど）は、コールドコールや一斉メールよりも<em>常に</em>高い成果を出します。共通の知人が見つからない場合でも、適切なチャネルを通じた直接のアプローチは有効です。また、創業者向けや買い手向けのフォーラム、マーケットプレイス系のサイトを覗いてみると、表立って動いていない買い手が潜んでいることもあります。対面イベントでのネットワーキングも忘れずに活用しましょう。</li>
<li><strong>自分語りではなく、要点から入る</strong>：最初のメッセージは売り込み<em>ではありません</em>。あくまで「適合性を確認するための一報」です。シンプルで、率直かつ事実ベースにまとめましょう。MRR、マージン、成長率といった主要指標、関連情報（過去に買収した類似アプリ、共通の知人など）を添え、次のステップとしてフォローアップの通話を提案します。</li>
</ol>
<p>最初の通話に進んだ後の次の一手は、相手が誰で、何を求めているかによって変わります。事実に基づいた情報とストーリーの両方を織り交ぜて話を進めることを意識し、やり取りの勢いを保ちながら会話を続けていきましょう。</p>
<aside class="tip"><strong>アプリ買収プレイヤーを一気に整理：誰が何を求めているのか</strong><p>アプリは個人にも企業にも買収されますが、その多くは大きく次の3タイプに分類できます。</p>
<ul>
<li><strong>ロールアップ型・ポートフォリオ型の買い手</strong>は、予測可能なキャッシュフローと、整理された運用体制を重視します。</li>
<li><strong>グローススタジオ</strong>は、スケール可能な有料ユーザー獲得（Paid UA）と、明確な<a href="https://www.revenuecat.com/blog/engineering/how-to-monetize-your-app-without-ads/">マネタイズのレバー</a>があることを求める傾向があります。</li>
</ul>
<p><strong>戦略的買収を行う買い手</strong>は、カテゴリーとの親和性、クロスセルの可能性、あるいは自社プロダクトに欠けている機能を補えるかどうかを重視します。</p></aside>
<h3><strong>買収オファーはどのような形で提示されるのか？</strong></h3>
<p>求人情報で「給与」ではなく「報酬パッケージ」という表現が使われることがありますが、買収オファーもそれとよく似ています。一般的に、オファーの構成は次の3つに分かれます。</p>
<ol>
<li><strong>現金（キャッシュ）：</strong>固定の買収価格を、ディール成立時に支払う形式です。売り手にとっては最もリスクが低く、最も一般的なオファー形態です。</li>
<li><strong>株式（エクイティ）：</strong>買収価格の一部、または全額が、買い手企業の株式で支払われます。支払いが買い手の将来的な成長に連動する形になります。</li>
<li><strong>アーンアウト（成果連動型支払い）：</strong>買収後に、あらかじめ合意した売上・利益・成長目標を達成した場合にのみ、買収価格の一部が支払われる仕組みです。</li>
</ol>
<p>Evelin氏が話を聞いた買い手のうち、66％は現金のみのオファーを提示しており、残りは現金と株式、またはアーンアウトを組み合わせた形を採用していました。なお、現金オファーであっても、一括で全額が支払われるとは限らず、多くの場合は50％ずつ、場合によっては契約から6か月後・12か月後に分けて支払われます。それでも一般的には、売り手にとって最も望ましい結果は現金オファーです。ただし、成長性の高い企業に買収される場合には、株式も大きな価値を持つ可能性があります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/ea2754d12e4b2ff38ce28dc062d870b02a37f4b1-1024x768.png" alt=""/></figure>
<h3><strong>ディールが早く成立する条件とは？</strong></h3>
<p>このセクションでは、創業者が最も気にする質問のひとつである<em>「買い手が素早く“YES”と言うのはどんなときか？」</em>に答えます。</p>
<p>インタビューを通じて、買い手たちは「リスクが高く時間がかかりそうな案件」とは対照的に、「クリーンで進めやすい」と感じるディールの特徴を語ってくれました。意思決定を早める要因は、次のとおりです。</p>
<ol>
<li><strong>整理され、一貫性のある財務データ：</strong>スピード感のあるディールには、すべての数字がきちんと整っていることが不可欠です。売上区分が曖昧だったり、理由の説明できない急落があったり、「その他」とまとめられた項目が多かったりすると、それだけでレッドフラグになります。数字が不明瞭なだけで、プロセスは大幅に遅くなります。</li>
<li><strong>明確な引き継ぎドキュメント：</strong>迅速に動きたい買い手は、「このアプリを引き継いだあと、問題なく運用を続けられるか」を重視します。そのためには、アーキテクチャの概要、データ設計（タクソノミー）、分析イベント、過去のロードマップ、実験ログ、グロース施策のプレイブックなどへのアクセスが必要です。Google Driveの奥に眠っている資料も含め、すべてが対象になります。</li>
<li><strong>透明性のある創業者：</strong>ディールが早く決まるかどうかは、事業の強さだけでなく「信頼」も大きく影響します。創業者と相性がよく、信頼関係を築けたと感じた買い手は、多少の不完全さには目をつぶり、より早く前に進む傾向があります。</li>
<li><strong>納得感のある成長ストーリー：</strong>買い手が知りたいのは、<em>「このアプリを買ったあと、何が起きるのか」</em>です。買収後の成功イメージを明確に描いてあげることができれば、彼らは迷わず契約書にサインしたくなります。</li>
</ol>
<h3><strong>人材タブー：アプリの買い手は創業者に残ってほしいのか？</strong></h3>
<p>多くの創業者は、「買い手は買収後すぐに自分を外したがる」と思いがちです。しかし実際には、その答えはもっと複雑で、買い手の運営モデルによって大きく異なります。</p>
<p>すべてのインタビューを通して、私たちは次の3つの共通点に気づきました。</p>
<ol>
<li>これまでの学びや試行錯誤の履歴は、プロダクトのスケールを支えるうえで非常に有用である</li>
<li>開発者（創業者）はプロダクトとビジョンを担い、買い手はマーケティングや<a href="https://www.revenuecat.com/blog/growth/revenue-strategies-low-intent-users/">マネタイズ</a>の専門性を持ち込む</li>
<li>買い手は長期的な関係構築に関心を持っている</li>
</ol>
<h4><strong>買い手は「人数」よりも「プロダクトに関する知識」を重視する傾向がある</strong></h4>
<p>多くの買い手が、移行期間中（あるいはそれ以上の期間）にオリジナルチームが残ることを好みます。その理由は明確で、プロダクトの歴史、ビジョン、技術的な意思決定を最も深く理解しているのが、まさにそのチームだからです。</p>
<p>「チームがコミットし続けてくれる限り、残ってもらえるのは理想的です。これまで何を試してきたかという履歴は、非常に価値のある文脈になりますし、そこを土台にさらに積み上げていけます。弱い部分については、こちらの専門性で補えばいいのです。」— <a href="https://www.linkedin.com/in/danielnovaes/">Dan Novaes</a>, Co-Founder &amp; CEO at Mode Mobile</p>
<p>Leadtech Groupで事業開発およびM&amp;Aを率いる<a href="https://www.linkedin.com/in/michael-mcphee/">Michael McPhee</a>氏も、創業者の継続関与を「間違いなく望んでいる」と明言しています。「私たちは、買収後もアプリを作ってきたチームに関わり続けてもらうよう常に努めています。彼らはプロダクトを最もよく理解しており、その専門性は継続的な開発や迅速な改善に不可欠です。」</p>
<p>Nova Sphereの事業開発責任者である<a href="https://www.linkedin.com/in/pawelpochowski/">Paweł Pochowski</a>氏も同意します。「実務的な観点から見ても、オリジナルの開発者が関与し続けることで、保守はスムーズになり、変更の実装も速くなります。」</p>
<p>多くの買い手にとって、買収とは「創業チームのスキル」と「新しいオーナーのスキル」を組み合わせることです。Michael氏は次のように説明しています。「Leadtechでは、マーケティング、マネタイズ、UAのスケールを私たちが担い、オリジナルチームはプロダクト改善に集中します。このバランスこそが、長期的なパートナーシップを築き、成功につながる重要な要素です。」</p>
<p>買い手は、ゼロからプロダクトを学び直したいわけではありません。<strong>継続性を重視</strong>し、<strong>すでにある成功を最大限に活かしたい</strong>のです。</p>
<h4><strong>創業者の関与は“信念”のシグナルとなり、評価額にも影響する</strong></h4>
<p>一部の買い手は、買収後も創業者が関与し続けたいと考えているかどうかが、評価額に影響すると明確に述べています。Nova Sphereの<a href="https://www.linkedin.com/in/pawelpochowski/">Paweł Pochowski</a>氏は、オリジナルのクリエイターが関わり続けることを好む理由をこう語っています。</p>
<p>「継続的に関与したいという姿勢は、そのプロダクトを本気で信じ、成長させたいという強いシグナルになります。」 — <a href="https://www.linkedin.com/in/pawelpochowski/">Paweł Pochowski</a>, Head of Business Development at Nova Sphere</p>
<p>創業メンバーがチームに残留を希望することは、プロダクトへの信頼だけでなく、あらゆる<a href="https://www.revenuecat.com/blog/growth/build-app-growth-team/">チームメンバー</a>に求められる情熱やコミットメントも示しています。現金を受け取ってすぐに去るのではなく、関与し続けることで将来の成長を支え、将来的に関係を終える場合でもスムーズな引き継ぎを可能にします。</p>
<h4><strong>プロダクトを吸収する前提の買収もある</strong></h4>
<p>一方で、創業者の関与にメリットがあるとはいえ、大規模なアプリスタジオやポートフォリオ運営企業、特に自社内にプロダクト、エンジニアリング、UAチームを持つ企業は、創業者が残ることへの依存度が低い場合もあります。ただし、だからといって「すぐに出ていってほしい」という意味ではありません。</p>
<p>AppNationの創業者兼CEOである<a href="https://www.linkedin.com/in/yalcinozdemir/">Yalçın Özdemir</a>氏は、次のように説明しています。</p>
<p>「私たちは、買収後に創業者が必ず残ることを前提にはしていません。大規模なアプリスタジオとして、社内のチームやシステム、専門性によって、プロダクトを効率的に統合し、独立して価値を引き出すことができます。ただし、創業者がプロダクトに深く関与しており、継続性の観点で重要な場合には、数か月の移行期間として残ってもらうことをお願いするケースもあります。」</p>
<p>だからこそ、潜在的な買い手とは「創業者としての将来」について率直に話し合うことが重要です。残りたいのか、離れたいのか自体が必ずしも売却可否に影響するわけではありませんが、全員が同じ認識を持っていることが何より重要なのです。</p>
<h3><strong>まとめ：ディールを成立させるために</strong></h3>
<p>数値とストーリーがしっかり整ったら、ディールをクロージングするうえで重要になるのは、主に次の2点です。</p>
<ol>
<li>適切な買い手を見つけること</li>
<li>買い手が「YES」と言いやすい状態をつくること</li>
</ol>
<p>まずは、買い手のタイプを理解し、的を絞ったターゲットリストを作成して、ネットワーキングを始めましょう。財務情報が整理されており、引き継ぎ用のドキュメントが準備できていて、創業者がオープンかつ誠実である場合、ディールは最もスムーズに進みます。買収後に何年もコミットする必要は必ずしもありません<em>が、</em>明確な移行プランは必要です。もしエグジットを目指しているのであれば、ロードマップやドキュメント、あるいはアドバイザーとしての関与などを通じて、新しいオーナーに対してプロダクトの背景やこれまでの文脈、そして自信をどう伝えるかを考えておくことが重要です。</p>
<h2><strong>チェックリスト：2026年に向けた「買収されるための」創業者準備リスト</strong></h2>
<p>「アプリを買収してもらうために、何をすればいいのか？」その問いに答えるための、シンプルなToDoリストを探しているなら、まさにここが答えです。</p>
<p>以下は、Evelin氏が行ったアプリ買い手へのインタビューをもとに整理した、実践的で抜け漏れのないチェックリストです。今日エグジットを考えている創業者にも、5年後を見据えて準備したい創業者にも役立つ、継続的な準備項目として捉えてください。</p>
<h3><strong>1. 指標（メトリクス）を準備する</strong></h3>
<p>メトリクスは、買い手が「このアプリに時間をかける価値があるか」を判断するための根拠です。何よりも重要なのは、明確さと一貫性です。悪い数値よりも、分かりにくい・矛盾した数値のほうが、ディールを遅らせる原因になります。</p>
<p>準備しておくべき主要データ：</p>
<ul>
<li><a href="https://www.revenuecat.com/glossary/#lifetime-value-ltv">LTV</a>（コホート別）および LTV/CAC 比</li>
<li>リテンションカーブ（可能であれば D7、D30、D90+）</li>
<li>解約理由（任意解約と非任意解約の内訳）</li>
<li>オーガニックトラフィックと有料トラフィックの比率</li>
<li>UA（ユーザー獲得）の収益性（チャネル別＋主要な実験結果）</li>
<li>収益内訳（サブスクリプション／<a href="https://www.revenuecat.com/glossary/#in-app-purchase">IAP</a>／広告）</li>
<li>年間プラン利用ユーザーの割合（該当する場合）</li>
</ul>
<h3><strong>2. プロダクトを整える</strong></h3>
<p>自分自身を「営業担当」だと考えてみてください。より高い評価額を得るためには、買い手がそのプロダクトを引き継ぎ、すぐに収益化できる状態にしておく必要があります。</p>
<p><em><strong>覚えておくこと： </strong></em><em>買い手が求めているのは完璧さではなく、摩擦の少なさです。</em></p>
<ul>
<li>散らかったコードパスや一時的なハックの整理</li>
<li>不安定なサードパーティ依存の削減</li>
<li>オンボーディングの分かりやすさ向上</li>
<li>必要に応じた<a href="https://www.revenuecat.com/glossary/#paywall">ペイウォール</a>と価格ロジックの最適化</li>
<li>可能な範囲でのオーガニックトラフィックの成長（ASO、レビュー、SEO）</li>
</ul>
<h3><strong>3. 財務情報を準備する</strong></h3>
<p>整理されていない、または不透明な財務情報は、ディールを最速で破談に導く要因のひとつです。買い手が数値の意味を推測しなければならない状況では、最悪のケースを想定されてしまいます。推測させないことが重要です。</p>
<p>買い手と話す前に：</p>
<ul>
<li>不要なコストの見直しと削減（EBITDAと見え方の改善につながる）</li>
<li><a href="https://docs.google.com/spreadsheets/d/1P9QafBw8OYuqJlznUr6eo7q6thwGmevR-mO2jQxvEhQ/edit?gid=1627863938#gid=1627863938">損益計算書（P/L）</a>の整理と突合</li>
<li>加算項目（add-back）や一時的費用の明確な説明</li>
<li>MRRの内訳（国別、ストア別、プラン別、プラットフォーム別）</li>
<li>売上の急増・異常値・急落について説明できる準備</li>
</ul>
<h3><strong>4. チームについて整理する</strong></h3>
<p>買い手が重視するのは人数ではなく、継続性と守られた知見です。買い手と話し始める<em>前に</em>、必ずチームと認識を揃えておきましょう。</p>
<p>決めておくべきこと：</p>
<ul>
<li>買収後に誰が残るのか、またどのくらいの期間か</li>
<li>引き継ぐべき知識や責任範囲は何か</li>
<li>自分自身がどの形で関与し続ける意思があるか</li>
<li>更新済みの契約書、NDA、IP（知的財産）譲渡の状況</li>
</ul>
<h3><strong>5. 引き継ぎ準備を行う</strong></h3>
<p>買い手があなたが<em>いなくても</em>アプリを運営できると明確にイメージできるほど、ディールは速く進みます。今はあなたしか知らないこと、あるいはチームにとって有用なプロダクトの意思決定や背景をドキュメント化しましょう。</p>
<p>用意しておくべき内容：</p>
<ul>
<li>現在および過去のプロダクトロードマップ</li>
<li>機能の制御ロジック（feature gating）</li>
<li><a href="https://www.revenuecat.com/blog/growth/paywalls-study-guide/">ペイウォールのロジック</a>と価格変更の履歴</li>
<li>オンボーディングフローとファネル</li>
<li>アーキテクチャ概要（簡易なもので問題ありません）</li>
<li>ブランドアセットおよびプレスキット</li>
<li>使用ツール、SDK、ダッシュボード、ログイン情報をまとめたマスタードキュメント</li>
</ul>
<aside class="tip"><strong>ボーナスヒント</strong><p>実験内容、ディストリビューションのテスト、そしてプロダクトから得られた学びのドキュメント化も忘れないでください。凝った形式である必要はありません。チャネル別や施策別に情報を分け、箇条書きで整理するだけで十分です。買い手にとっては、「すでに学習が積み重ねられており、それがドキュメントとして残っている」という事実そのものが大きな魅力になります。自分たちがその学びを引き継いで活用できると分かれば、前向きな判断材料になるからです。Evelin氏は、こうした内容をまとめるために使える<a href="https://docs.google.com/document/d/1eUEbeo2eyPTl_4VEOEN00XT4kJifVS9X17cRRaj8jBw/edit?tab=t.0">テンプレート</a>も用意していますので、ぜひ活用してみてください。</p></aside>
<h3><strong>6. ディールの準備をする</strong></h3>
<p>オファーが出てから考え始めるのでは遅すぎます。自分が何を望んでいるのか、買収に関する会話をどう進めるのか、そして誰に事前に共有しておくべきかは、あらかじめ整理しておく必要があります。</p>
<p>ここで考えておくべきポイント：</p>
<ul>
<li>受け入れ可能な最低条件のオファー金額と、その構成を決める（現金／アーンアウト／株式）</li>
<li>理想とする買い手のタイプを明確にする（スタジオ、ロールアップ、戦略的買収など）</li>
<li>ターゲットとなる買い手のリストを作成する</li>
<li>最終的に決める前に、少なくとも5社の潜在的な買い手と話す</li>
<li>最初のコンタクト用メッセージを用意し、ピッチを練習する</li>
<li>タイミング、動機、トレードオフについて、自分自身に正直になる</li>
</ul>
<p>このリストを一度にすべて完了させる必要はありません。やることは多いですが、ひとつひとつ事前に準備しておくことで、適切な買い手が現れたときに、迷わず素早く前に進むことができます。</p>
<h2><strong>最後に：2026年にアプリを売却するという現実</strong></h2>
<p>買い手への取材、そしてこれまで数多くの創業者と話してきた経験から、Evelin氏は「創業者が買収について抱きがちな最大の誤解は、買い手が“完璧さ”を求めていると思っていること」だと言います。</p>
<p>実際は、そうではありません。</p>
<p>買い手が求めているのは、次のような要素です。</p>
<ul>
<li>予測可能な収益</li>
<li>本物のプロダクトマーケットフィット（PMF）を備えたプロダクト</li>
<li>しっかりと維持されているリテンション</li>
<li>納得感のある成長ストーリー</li>
<li>クリーンで透明性の高いビジネス運営</li>
</ul>
<p>これらのシグナルを、ストーリーとしても、ハードデータとしても明確に伝えられる創業者は、結果としてより高い評価を得やすく、ディールも早く成立します。もし今後12〜24か月以内に売却を検討しているのであれば、準備は今から始めるべきです。完璧なアプリや完璧なピッチは必要ありません。必要なのは、筋の通ったストーリー、透明性のある数値、そして適切な買い手です。</p>
<h3><strong>関連ツール・リソース</strong></h3>
<p>さらに深く知りたい方へ。買収に向けた準備に役立つ関連コンテンツやツールをご紹介します。</p>
<ul>
<li>インタビュー全文：<a href="https://cdn.sanity.io/files/c3qnx9b0/production/99a5c1c996f24261b700b85e512297ff76f7d472.pdf">質問と回答をすべて読む</a></li>
<li>RevenueCatの <a href="https://www.revenuecat.com/healthscore/">subscription healthscore calculator</a>（サブスクリプション健全性スコア計算ツール）</li>
<li>レポート：<a href="https://www.revenuecat.com/state-of-subscription-apps-2025/">State of Subscription Apps</a> （業界ベンチマークに最適）</li>
<li>ブログ：<a href="https://www.revenuecat.com/blog/growth/how-to-sell-an-app/">アプリを売却する方法 ― David Barnard からの学び</a></li>
<li>ポッドキャスト：<a href="https://www.youtube.com/watch?v=T3YIc-clWo0">どんなアプリが「買う価値がある」のか？ BlueThrone が量から価値へシフトした理由</a></li>
<li>ポッドキャスト：<a href="https://www.revenuecat.com/blog/growth/eric-duffet-spot-pattern-sub-club-podcast-2025/">実際の需要が、趣味のアプリをビジネスに変えた話</a></li>
<li>Evelin氏のテンプレート：<a href="https://docs.google.com/document/d/1eUEbeo2eyPTl_4VEOEN00XT4kJifVS9X17cRRaj8jBw/edit?tab=t.0">アプリの学び・実験ドキュメント</a></li>
<li>Evelin のテンプレート：<a href="https://docs.google.com/spreadsheets/d/1P9QafBw8OYuqJlznUr6eo7q6thwGmevR-mO2jQxvEhQ/edit?gid=1627863938#gid=1627863938">損益計算書（P/L）</a></li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[RevenueCat Paywallsの更新履歴]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/paywalls-changelog</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/paywalls-changelog</guid>
      <pubDate>Sat, 27 Dec 2025 13:31:45 GMT</pubDate>
      <dc:creator><![CDATA[Francie Fernandes]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[RevenueCat Paywalls の最新アップデート情報をチェック]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/782aae8ab096d2477bc08acb2f423f2341bcbc33-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p><a href="https://www.revenuecat.com/feature/paywalls/">RevenueCat Paywalls</a> は、RevenueCat のダッシュボード上からリアルタイムで<a href="https://www.revenuecat.com/blog/growth/paywalls-study-guide/">ペイウォールを構築・最適化</a>できる、ネイティブのペイウォールビルダーです。アプリのアップデートやコード変更は不要です。2025年夏、私たちは RevenueCat Paywalls をゼロから再構築しました。かつてはテンプレート中心のシンプルなツールでしたが、現在は<strong>完全に柔軟なコンポーネントベースのエディタ</strong>へと進化し、自由なレイアウト設計、あらゆる文字列のローカライズ、セグメントごとに最適化された体験の提供が可能になっています。</p>
<p>しかし、私たちはここで立ち止まりません。2025年11月以降、特に加速した開発ペースでアップデートを続けています。すべてのアプリにとって最高のペイウォールビルダーになることを明確な目標に、最も要望が多く、最もインパクトの大きい機能改善を次々とリリースしています。</p>
<p>このブログは、RevenueCat Paywalls に関するすべての更新をまとめた「生きた変更履歴」として運用していきます。ぜひブックマークして、最新情報を随時チェックしてください。</p>
<aside class="tip"><strong>RevenueCat のプロダクトアップデートを常に把握</strong><p>RevenueCat とそのすべての機能に関する更新情報は、メインの変更履歴（changelog）ですべて確認できます。<a href="https://www.revenuecat.com/changelog">最新情報はこちらから</a>ご覧ください。</p></aside>
<h2>Figma のデザインをそのまま Paywalls にエクスポート</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/cd6d04c0e555d4f7ecd69f806199fbc82b45c19b-1920x1080.png" alt=""/></figure>
<p>デザインの引き渡しが、「最初から作り直すこと」を意味する必要はありません。そして今、それは本当に不要になりました。</p>
<p>Figma のモックアップを、Paywall エディターに直接エクスポートできます。レイアウトは Paywalls のネイティブコンポーネントとして取り込まれるため、すぐに次の作業が可能です。</p>
<ul>
<li>構造を変えずにコピーを編集</li>
<li>プロダクトやパッケージを差し替え</li>
<li>テキストのローカライズ</li>
<li>A/B テストの追加</li>
<li>特定のオーディエンスへのターゲティング</li>
</ul>
<p>最大のメリットはスピードです。デザイナーは引き続き Figma で作業でき、ペイウォールのテストを出荷するチームは、最終モックからライブバリアントまで、レイアウトを手作業で作り直すことなく一気に進められます。</p>
<p><a href="https://e.customeriomail.com/e/c/eyJlIjoxNzQzMDMsImVtYWlsX2lkIjoiZXhhbXBsZSIsImhyZWYiOiJodHRwczovL3d3dy5yZXZlbnVlY2F0LmNvbS9ibG9nL2VuZ2luZWVyaW5nL3JldmVudWVjYXQtZmlnbWEtcGx1Z2luLz91dG1fY2FtcGFpZ249Tm92ZW1iZXIrTmV3c2xldHRlclx1MDAyNnV0bV9jb250ZW50PU5vdmVtYmVyK05ld3NsZXR0ZXJcdTAwMjZ1dG1fbWVkaXVtPWVtYWlsX2FjdGlvblx1MDAyNnV0bV9zb3VyY2U9Y3VzdG9tZXIuaW8iLCJ0IjoxNzY0Njk3MDQ3fQ/b7d9d39cf861b68d6a988cd66fe5fd508b68ba0a2a9bb287d78acde049e07132">Figma デザインをインポート↗</a></p>
<h2>Paywalls エディターのキーボードショートカット</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/f04231995201401bf401d274221ff2a029afdd46-1200x630.png" alt=""/></figure>
<p>素早く改善を重ねていると、ちょっとしたクリックの積み重ねが大きな負担になります。</p>
<p>Paywalls エディターでは、よく使う操作に対応したキーボードショートカットが利用できるようになりました。コンポーネントの追加、セクションの複製、変更の取り消し／やり直し、ブロックの削除などを、キーボード操作だけで行えます。作業の流れを止めることなく、スピーディな反復作業を本当に「一瞬」で進められます。</p>
<p><a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls">すべてのショートカットを見る ↗</a></p>
<h2>より多くのデバイスでペイウォールをプレビュー</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/73774dc674cfd69109bc999431cdd9f9edde21d5-1200x630.png" alt=""/></figure>
<p>ある画面では完璧に見えても、別の画面では不自然に見える——ペイウォールではよくあることです。これまでは公開後に気づくケースもありましたが、現在はより幅広い iOS / Android のスマートフォンやタブレットで、事前にペイウォールをプレビューできるようになりました。キャンバスは実際の画面サイズに合わせて更新されるため、デバイスを数秒で切り替えながら、次の点を確認できます。</p>
<ul>
<li>余白や間隔の問題を早期に発見</li>
<li>フォントサイズの確認</li>
<li>画像のトリミングやメディア配置のチェック</li>
<li>スクロール挙動の妥当性確認</li>
<li>CTA が意図した位置に表示されているかの確認</li>
</ul>
<p>シンプルな改善ですが、公開直前の修正作業を大幅に減らすことができます。</p>
<h2>ペイウォールテンプレートのフィルタリング</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a8c1da6bc93651b5b52b0e123818bf68e20b64b8-1200x630.png" alt=""/></figure>
<p>テンプレートは、目的のものをすぐに見つけられてこそ価値があります。</p>
<p>テンプレートギャラリーに、購入方法・ティア・パッケージ別のフィルターが追加されました。トライアル優先のレイアウト、価格表グリッド、プロモーション向けデザインなど、最初から使いたいパターンが決まっている場合に特に便利です。探す時間を減らし、実際にリリースすることに集中できます。</p>
<p><a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls">テンプレートから始める ↗</a></p>
<aside class="tip"><strong>インスピレーションに困ったら？</strong><p><a href="https://www.paywalls.com/">paywalls.com</a> は、実際のアプリで使われているペイウォールを集めた決定版リソースです。業界、コンポーネント、ダウンロード数などで絞り込んで、実例やインスピレーションを見つけることができます。</p></aside>
<h2>ペイウォール用カウントダウンコンポーネント</h2>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/611232680b0a20140b41cdeec91227cd564cff35-1200x630.png" alt=""/></figure>
<p>プロモーションは効果的なペイウォール施策になり得ますが、その効果が最大化されるのは「緊急性」が明確で、かつ本物である場合です。そこで、任意のペイウォールにカウントダウンタイマーを追加できるようになりました。終了日時を一度設定するだけで、タイマーは自動的に更新されます。追加のコードも、手動での更新も必要ありません。</p>
<p>これは、<a href="https://www.revenuecat.com/blog/growth/promotional-offers-sales-app/">ブラックフライデー、ローンチ記念プロモーション、期間限定ディスカウントなど</a>、「タイミング」がユーザーの意思決定を後押しするあらゆるキャンペーン向けに設計されています。</p>
<p><a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/components#countdown">カウントダウンを追加する ↗</a></p>
<h2>プロジェクト単位のブランドカラー設定</h2>
<p>プロジェクト設定でブランドカラーを定義できるようになりました。ここで設定したブランドカラーは、Paywalls エディタ内で利用可能です（今後、対応範囲はさらに拡大予定です）。プロジェクト全体で一貫したブランド表現を、より簡単に反映できるようになります。</p>
<h2>Paywalls エディタで実際の価格を表示</h2>
<p>これまでダッシュボードのエディタ上では、商品価格はプレースホルダー値で表示されていました。今回のアップデートにより、エディタ内で実際の価格が表示されるようになりました。これにより、作業中でもより現実に近い形でペイウォールを確認でき、デザインやコピーの調整がしやすくなります。
※注意点として、価格を表示するには、その商品で少なくとも1回のテスト購入が行われている必要があります。</p>
<h2>AIを使ってペイウォールを作成</h2>
<p>アプリストアのページ情報をもとに、AIでペイウォールを生成できるようになりました。アイデア出しのインスピレーションとしてはもちろん、そこから調整・テストを重ねていくためのしっかりした出発点としても最適です。</p>
<h2>Paywallsで動画に対応</h2>
<p>Paywalls で、画像と同様に動画を独立したコンポーネントとして追加できるようになりました。よりリッチで伝わりやすい表現が可能になります。</p>
<h2>動画を背景に設定</h2>
<p>動画を、ルートのペイウォール、フッター、または任意の親コンポーネント（スタック、パッケージなど）の背景として設定できるようになりました。視覚的なインパクトを高め、より没入感のあるペイウォール体験を作成できます。</p>
<h2>購入意図をインターセプト</h2>
<p>ネイティブの iOS / Android SDK において、購入意図（購入CTAのタップ）をインターセプトするためのメソッドを新たに提供しました。これにより、ユーザーが購入フローへ進むかどうかを決める前に、任意のカスタムUIを表示できるようになります。この仕組みは、たとえば購入前に年齢確認や保護者の同意を求める必要があるケースでは、購入に進む前段階で年齢ゲートとして機能するUIを表示するといった用途に活用できます。また、国ごとの利用条件や法的な文言など、購入前に追加で伝える必要がある情報がある場合にも、その内容を表示し、ユーザーに確認してもらったうえで購入フローへ進ませることが可能です。</p>
<h2>すべてのプランを表示（シート）</h2>
<p>ボタンの遷移先として、追加コンテンツを表示するための<strong>シート</strong>を指定できるようになりました。遷移先にシートを選択すると、コンポーネントパネル内の該当ボタンに新しく Sheet コンポーネントが表示されます。シート自体、またはその中に含まれるコンポーネントを選択すると、ペイウォールのプレビュー上でシートが表示されるようになります。シートには、他のスタックと同様に自由にコンポーネントを追加できます。</p>
<p>シートには独自のパッケージや購入ボタンを設定することも可能で、ユーザーはシート内に表示された選択肢から直接購入を完了できます。</p>
<p><a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/components#navigate-to-sheet">詳しくはドキュメントをご覧ください ↗</a></p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Web-to-Appファネル完全ガイド【2026年版】]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/web-to-app-funnels</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/web-to-app-funnels</guid>
      <pubDate>Fri, 26 Dec 2025 10:41:26 GMT</pubDate>
      <dc:creator><![CDATA[Daphne Tideman]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[メリットと落とし穴、そして初めてのファネルを成功させる設計図]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/677f9d8d8390cedc60bd4209b3dcec8fc217e3ef-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>Web-to-Appファネルは今まさに注目を集めていますが、「<em>ランディングページにトラフィックを流して終わり</em>」というほど単純なものではありません。本ガイドでは、Web-to-Appが本当に有効になるケース、そのメリットとデメリット、最初のファネルをどのように設計・テストするか、よくある疑問、そしてWeb-to-Appの今後の展望までを詳しく解説します。</p>
<p>個人的に私は、Web-to-Appがとても好きです。なぜなら、私が関わってきたeコマースとアプリの両方の長所を融合しているからです。Webファネルならではの<strong>ストーリーテリング、実験のしやすさ、そして高いコントロール性</strong>に、アプリが持つ<strong>リテンションやLTV（顧客生涯価値）の強さ</strong>が組み合わさります。うまく設計できれば、理想的な成長基盤だと感じられるでしょう。ただし、当然ながら課題も存在します。本ガイドでは、そのすべてを順を追ってご紹介していきます。</p>
<h2>Web-to-Appファネルとは？</h2>
<p>Web-to-Appファネル（web2app と表記されることもあります）は、その名のとおり<strong>Webから始まり、ユーザーをアプリへと誘導する導線</strong>です。たとえば、アプリをダウンロードする前にWeb上でサインアップや支払いを完了するケース（技術的には web-to-web と呼ばれます）もあれば、アプリをインストールした後に支払いが行われるケース（Web-to-App）もあります。</p>
<p>実際のところ、多くの人はこれらをまとめて「Web-to-App」と呼んでいます。正直なところ、それで問題ありません。どちらのアプローチも、Webとアプリの間のギャップを埋めるという点では同じだからです。本ガイドでは、特にアプリ内のみのファネルと最も異なる web-to-web ファネルを中心に解説していきます。</p>
<h2>Web-to-Appを活用するメリット</h2>
<p>Webファネル自体は新しいものではありません。特にヘルス＆フィットネス分野では長年使われてきましたが、近年、その導入が急速に拡大しています。多くの人が「ファネルはアトリビューションを改善し、コストを削減できる」と考えていますが、もちろん<a href="https://www.revenuecat.com/blog/growth/the-pros-and-cons-of-web-to-app-funnels/">Web-to-Appファネルにはメリットとデメリット</a>の両方があります。ここでは、その両面を見ていきましょう。</p>
<h3>1. コスト削減（※一概には言えない）</h3>
<p>Web-to-Appが検討される理由として、まず挙げられるのがコスト削減です。ただし、先に述べたとおり、話はそれほど単純ではありません。<a href="https://www.revenuecat.com/blog/growth/publishers-guide-app-store-fees-guidelines-compliance/">AppleやGoogleは15〜30％の手数料を取ります</a>が、これは確かに大きな割合です。一方、Web決済の手数料は通常かなり低く、約2〜3％程度です（すべての手数料を加味すると、実質的には約6％になることが多いです）。</p>
<p>このため、Web-to-Appは「コストを抑えられる」と考えがちですが、手数料が低いという理由だけで移行を判断すべきではない点は重要です。</p>
<p>App Growth Consultantの<a href="https://www.linkedin.com/in/thomasbcn/">Thomas Petit</a>氏は、<em><a href="https://www.revenuecat.com/blog/growth/thomas-petit-sub-club-podcast-2024-web-to-app/">Sub Club</a></em><a href="https://www.revenuecat.com/blog/growth/thomas-petit-sub-club-podcast-2024-web-to-app/">のポッドキャスト</a>で次のように述べています。「人々は、間違った理由でWeb-to-Appに移行している。」Web-to-Appファネルの構築には、時間と労力がかかります。まったく新しいフローをテストすると、アプリ内では機能していたものがWebでは必ずしも機能せず、コンバージョン率が下がることもあります。その結果、<a href="https://www.revenuecat.com/glossary/#customer-acquisition-cost-cac">顧客獲得単価（CAC）</a>が上昇する可能性もあります。</p>
<p>本当の価値は、必ずしもコスト削減にあるわけではありません。重要なのは、ユーザー1人あたりの<a href="https://www.revenuecat.com/glossary/#lifetime-value-ltv">ライフタイムバリュー（LTV）</a>を高められる可能性です。全体のコストが下がらなかったとしても、各ユーザーがもたらす価値が高まるのであれば、それは十分に意味のある結果だと言えます。</p>
<h3>2. 継続率とLTVの向上</h3>
<p>データを見ると、Web経由で購読したユーザーは、App StoreやGoogle Play経由のユーザーよりも更新率が高い傾向があり、その結果として継続率の向上やライフタイムバリュー（LTV）の増加につながるケースが多く見られます。その理由のひとつがフリクションです。スマートフォン上では、すべてのサブスクリプションが一か所にまとまっているため、ユーザーは複数のサービスをまとめて解約しやすくなります。特に<a href="https://www.revenuecat.com/blog/growth/how-to-tackle-new-year-subscription-churn/">1月にこうした動きが増えるのは、よく知られた傾向</a>です。もうひとつの要因として、Webサブスクリプションは比較的高価格帯のオファーに寄ることが多い点も挙げられます。</p>
<p>また、Webユーザーは高い価格を支払うことに慣れている場合が多く、その結果として、アプリに対してもより高額な支出を受け入れやすい傾向があります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/982af65f9c8fa5ad404f2f9716002e8b583344f3-1578x960.png" alt=""/><figcaption>ソース： State of Subscription Apps report 2025</figcaption></figure>
<h3>3. トラッキングとアトリビューションの簡素化</h3>
<p>2021年にAppleがApp Tracking Transparency（ATT）ポリシーを導入したことで、アプリ業界ではWeb-to-Appのあり方を改めて見直す動きが広がりました。Webではトラッキングが比較的シンプルであるため、キャンペーンから得られるデータ量が多く、より良いフィードバックループを構築できます。</p>
<p>もちろん、Web-to-Appのトラッキングが完璧というわけではありません（たとえば、購入データを7日後にMetaへ送信するのは難しいケースがあります）。それでも一般的には、購読ユーザーの行動をより深く把握できるため、キャンペーンパフォーマンスの改善につながります。たとえば、獲得元ごとに継続率やLTVへどのような影響が出ているかを簡単に確認できる点は、大きなメリットです。</p>
<h3>4. マネタイズの自由度</h3>
<p><a href="https://www.revenuecat.com/blog/growth/2025-app-monetization-trends/">返金保証</a>？もちろん可能です。<a href="https://www.revenuecat.com/blog/growth/lifetime-subscriptions/">買い切り（ライフタイム）サブスクリプション</a>？バンドル？アップセル？複数パターンの価格テスト？<em>思う存分</em>試せます。</p>
<p>時間の経過とともに、アプリストアはマネタイズやトラッキングに関して、より厳しいルールを課してきました。一方でWebはほぼ自由な実験環境です。アプリストアの制約を気にすることなく、さまざまな施策を試すことができます。もちろん、これは<a href="https://www.revenuecat.com/blog/growth/black-hat-aso-app-store-optimization/">ダークUX</a>を推奨したり、無秩序に大量のテストを行うことを勧めるものではありません。どのチャネルであっても、ベストプラクティスを守り、<a href="https://www.revenuecat.com/blog/growth/is-monetization-hurting-your-apps-user-experience/">倫理的なマネタイズ</a>とUXを尊重すべきです。それでもなお、この自由度こそが、Web-to-Appが選ばれる理由のひとつであることは間違いありません。</p>
<h3>5. 複数ファネルを素早くテストできる</h3>
<p>Web-to-Appの普及に伴い、ノーコードのWebアプリ／ファネルビルダーも大きく成長しました。その結果、エンジニアでなくても短時間でファネルを構築できるようになっています。RevenueCatでペイウォールを作るほど速くはないかもしれません（<em>最速で</em>4分未満！<a href="https://www.youtube.com/watch?v=bcnUYWLo-I4">スピード構築選手権</a>もあります）が、それでも十分にスピーディです。</p>
<p>アーリーステージのスタートアップの中には、Typeformのアンケートやシンプルなランディングページを、最初のWeb-to-Appファネルとして使っている例もあります。</p>
<p>もしプロダクトのローンチ前であれば、Web上でコンバージョンが完結するという点は大きなメリットです。<a href="https://www.revenuecat.com/blog/growth/web-to-app-paid-user-acquisition/">メッセージング、価格、ポジショニングを早い段階</a>からテストできます。Meta広告・アプリ成長コンサルタントの<a href="https://www.linkedin.com/in/marcusburke/">Marcus Burke氏</a>は、次のように述べています。「30%のストア手数料を節約するためにWebへ移行するのではありません。Webに移行するのは、差別化を図り、素早く学び、プロダクトのロードマップに関係なくマーケティングを強化できるからです。」</p>
<h3>6. キャッシュフローの改善が早い</h3>
<p>アプリ内で新しいサブスクライバーを獲得できたら、それ自体は素晴らしいことです。……が、<a href="https://www.revenuecat.com/blog/growth/understanding-app-store-payments-and-revenue-reporting/">App Storeから実際に入金されるまで最大68日</a>待つ必要があります。ありがとうございます、App Store。<a href="https://www.revenuecat.com/blog/growth/mobile-app-funding/">資金に余裕のないスタートアップ</a>にとっては、かなり<em>長い</em>期間です。</p>
<p>もちろん解決策がないわけではありません。たとえばRevenueCatでは、App Storeの売上に対して翌日払いを提供する<a href="https://www.youtube.com/watch?v=EVR7Crrm0_w">「RC Capital」を立ち上げています</a>。それでも、一般的にWeb決済はアプリストアと比べて即時、もしくは非常に短期間で入金されるケースが多く、キャッシュフローの面では大きなメリットがあります。</p>
<h3>7. コンテンツ主導のディスカバリー</h3>
<p>Thomas氏が指摘しているように、Web-to-Appは新規ユーザー獲得（ディスカバリー）においても非常に強力な手段になります。特に規模の大きいアプリでは、Web起点のコンテンツを活用して新しいユーザーを引き寄せることが可能です。たとえば Photoroom は、無料で使えるWebツールを提供することで認知を獲得し、そこからユーザーをアプリへと誘導しています。これにより、コンテンツを起点とした成長戦略（コンテンツドリブンなグロース）を実現しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c3de1b0c0fbc7df0f9d828d7d1aff70fed3be345-1600x1091.png" alt=""/></figure>
<h2>Web-to-App のデメリット</h2>
<p>Web-to-App のファネル構築を始める前に（そしてあのペイウォール高速構築記録に挑戦する前に）、いくつかの重要なデメリットも理解しておく必要があります。</p>
<p>多くのアプリは、Web向けにどれほど多くの変更や追加設定が必要になるかを過小評価しがちです。これまでに、追加コストやテストにかかる時間について触れてきましたが、それ以外にも考慮すべきポイントがあります。</p>
<h3>1. Webでは無料トライアルがうまく機能しにくい</h3>
<p>無料トライアルやフリーミアムモデルを主軸とした戦略の場合、それをそのままWebに持ち込んでもスムーズに機能しないことがあります。Webでは、残高のないカード情報が入力されるケースも多く、その結果、低価格の有料トライアル（例：1ドル）や返金保証といった代替手段が必要になることがあります。</p>
<p>このような違いにより、アプリに流入する無料ユーザー数が減る可能性があり、さらに Webとアプリのパフォーマンスを単純に比較することが難しくなるという課題も生じます。</p>
<h3>2. オーガニック順位とトラフィックへの影響</h3>
<p>多くのWeb-to-Appファネルでは、ユーザーがWeb上で直接コンバージョンするため、アプリのインストール数や評価、レビューが減少する可能性があります。一方で、アプリ内課金を前提としたキャンペーンでは、たとえその場でコンバージョンしなくても、ユーザーをApp StoreやGoogle Playに送客することになります。</p>
<p>インストール数・評価・レビューが減ると、ストア内でのランキングが下がり、オーガニック成長が制限されるおそれがあります。<a href="https://www.perceptycs.com/">Perceptycs</a>の創業者である<a href="https://www.linkedin.com/in/nathan--hudson/">Nathan Hudson氏</a>は、この<a href="https://www.revenuecat.com/blog/growth/the-pros-and-cons-of-web-to-app-funnels/">デメリット</a>について次のように説明しています。</p>
<p>「これは、目標ROASを維持しながら有料獲得をスケールさせたいアプリにとって、ASOの後押しが得られなくなるという点でも不利に働きます。ランキングが高いほどオーガニックインストールの量が増え、結果としてブレンドされた獲得単価を大幅に下げることができるのです。」</p>
<h3>3. 財務・法務面の複雑さ</h3>
<p>アプリストアが高い手数料を取ることについて不満を感じることは多いですが、実際には税制対応やチャージバック処理など、<a href="https://www.revenuecat.com/blog/growth/understanding-app-store-payments-and-revenue-reporting/">多くの煩雑な業務</a>を肩代わりしてくれているという側面もあります。</p>
<p>一方でWebでは、これらをすべて自分たちで対応する必要があります。アプリがグローバル展開している場合、その複雑さはさらに増します。<a href="https://www.paddle.com/">Paddle</a>のようなMerchant of Record（MoR）を利用するといった解決策もありますが、それは追加コストであり、運用上の新たなレイヤーの複雑さを意味します。</p>
<h3>4. アトリビューションが複雑になる</h3>
<p>Web とアプリの両方で複数のファネルを運用すると、トラッキングやアトリビューションは一気に複雑になります。</p>
<ul>
<li><strong>アプリキャンペーン</strong>は、SKAN や集計されたインストールデータに依存します</li>
<li><strong>Web キャンペーン</strong>は、ピクセルやサーバー間（server-to-server）のトラッキングを使用します</li>
</ul>
<p>この両方を同時にテストしていると、状況はかなり混沌としがちです。ユーザー数自体は増えるかもしれませんが、それは良いことでもある一方で、「どこから来たユーザーなのか」「どのファネルに紐づくのか」が分からなくなるリスクがあります。その結果、成功を再現したり（あるいは失敗を修正したり）するのが難しくなります。この問題は、Web とアプリの両方で一貫したユーザータグ付けを行い、さらにデータを単一の「信頼できる情報源（single source of truth）」に統合することで、ある程度改善できます。</p>
<h2>Web-to-App とアプリ内課金（In-app purchases）の主な違い</h2>
<p>ここまで見てきたとおり、Web-to-App とアプリ内課金は、仕組みとして大きく異なります。Web-to-App には多くのメリットがありますが、「すぐにサクッと試せるもの」ではありません。<a href="https://www.revenuecat.com/blog/company/lessons-from-app-growth-annual-2025/">App Growth Annual 2025</a> の<a href="https://www.youtube.com/watch?v=xmEoGuUKnfo">ワークショップ</a>で、Marketing &amp; Growth Consultant の <a href="https://www.linkedin.com/in/gessicabicego/">Gessica Bicego</a>氏 が説明していたように、Web ファネルには追加の複雑さがあります。</p>
<p>「Web ファネルは一見シンプルに見えますが、実際には複数の技術レイヤーが絡み合っています。」</p>
<ul>
<li>MMP：ディープリンクの管理や、正確なアトリビューションのために不可欠</li>
<li>CRM ツール：取得したメールアドレスを管理・活用（アクティベーション）するために必須</li>
<li>決済プロセッサ：グローバルな税制に対応できる決済基盤が必要</li>
<li>高い決済失敗率への備え：失敗率は約 50% に達することもあるが、適切なツールやリトライ設計によって承認率は大きく改善できる</li>
</ul>
<p>以下では、Web-to-App とアプリ内課金の違いについて、知っておくべきポイントを整理して解説します。</p>
<table>
<thead><tr>
<th><p><strong>項目</strong></p></th>
<th><p><strong>Web-to-App</strong></p></th>
<th><p><strong>アプリ内課金（In-app purchases）</strong></p></th>
</tr></thead>
<tbody>
<tr>
<td><p><strong>手数料・マージン</strong></p></td>
<td><p><strong>決済プロセッサの手数料は低め</strong>（約 2〜3%、すべてのコストを含めると最大で約 6%）だが、構築・運用・保守の工数は大きい。コンバージョン低下を考慮すると、必ずしもコスト削減につながるとは限らない。</p></td>
<td><p><strong>ストア手数料は 15〜30%</strong>。ただし、税務対応、返金処理、請求エラー、不正対策、グローバル決済手段などはストア側が対応。</p></td>
</tr>
<tr>
<td><p><strong>コンバージョン率</strong></p></td>
<td><p>ブラウザへの遷移による摩擦があるため、<strong>初期コンバージョンは低く</strong>なりがち。無料トライアルは調整なしでは成果が出にくい（例：$1 トライアル、返金保証など）。</p></td>
<td><p><strong>信頼性が高く</strong>、ワンタップで完了する<strong>スムーズ</strong>な購入体験により、トライアル開始率・有料転換率ともに高い。</p></td>
</tr>
<tr>
<td><p><strong>継続率・LTV</strong></p></td>
<td><p>摩擦を乗り越えたユーザーは<strong>定着しやすく</strong>、更新率が高くなる傾向がある（結果として LTV が高くなる可能性）。</p></td>
<td><p>ボリュームは大きいが、更新率は一般的に<strong>やや低め</strong>。</p></td>
</tr>
<tr>
<td><p><strong>アトリビューション・シグナル品質</strong></p></td>
<td><p><strong>より粒度の細かい</strong>トラッキングと高速なフィードバックループが可能。クリエイティブテストやチャネル最適化に向いている。</p></td>
<td><p><strong>ATT / SKAN の制約</strong>により、シグナルは遅延・集約されがちで、学習サイクルは難しい。</p></td>
</tr>
<tr>
<td><p><strong>価格設計・マネタイズの自由度</strong></p></td>
<td><p><strong>完全に柔軟</strong>：ライフタイムプラン、バンドル、アップセル、返金保証なども可能で、実験に最適。</p></td>
<td><p>App Store のルールに準拠する必要があり、<strong>価格や UX の自由度は限定的</strong>。</p></td>
</tr>
<tr>
<td><p><strong>キャッシュフロー</strong></p></td>
<td><p><strong>入金が早く</strong>、資金に制約のあるチームが有料 UA を拡大する際に有利。</p></td>
<td><p><strong>入金まで 45〜60 日</strong>（ファイナンス系プロダクトを利用しない場合）。</p></td>
</tr>
<tr>
<td><p><strong>ユーザー獲得</strong></p></td>
<td><p><strong>主に Meta が中心</strong>だが、新しいオーディエンスや潜在的なチャネルを開拓できる。</p></td>
<td><p><strong>Web では利用できない</strong>追加のキャンペーン／<strong>チャネル</strong>（ASO、Apple Search Ads など） Ads.</p></td>
</tr>
<tr>
<td><p><strong>運用の複雑さ</strong></p></td>
<td><p><strong>高い</strong>：自前の課金基盤、税制対応、不正管理、決済失敗対応、CRM 活用などが必要。</p></td>
<td><p><strong>低い</strong>：決済、税務、グローバル対応はすべてストアが担う。</p></td>
</tr>
<tr>
<td><p><strong>ASO・オーガニック流入への影響</strong></p></td>
<td><p>ストアページへの流入が減り、Web への投資が過度になると<strong>ランキング低下のリスクがある</strong>。</p></td>
<td><p><strong>レビュー、評価、ストア流入</strong>を促進し、発見性向上に寄与。</p></td>
</tr>
<tr>
<td><p><strong>実験スピード</strong></p></td>
<td><p><strong>アプリリリースを待たずに</strong>、マーケター主導でファネル構築・テストが可能。</p></td>
<td><p><strong>開発依存度が高く</strong>、アップデート配信が実験スピードを制限する。</p></td>
</tr>
<tr>
<td><p><strong>チャネル横断のアトリビューション</strong></p></td>
<td><p>Web とアプリを跨ぐ複数ファネルにより、アトリビューションが<strong>複雑化</strong>。</p></td>
<td><p>単一ソースでの計測はシンプルだが、SKAN / ATT の影響は残る。</p></td>
</tr>
</tbody>
</table>
<h2>Web-to-App ファネルをテストすべきなのはどんなアプリか？</h2>
<p>Web-to-App は、特定の一種類のアプリだけが検討すべき手法というわけではありません。アプリのカテゴリやターゲットユーザー、そして事業フェーズによって、さまざまな形で意味を持ちます。「自分たちも試すべきだろうか？」と考えているなら、以下のようなグループは特に Web-to-App のテストを検討する価値があります。</p>
<h3>1. アーリーステージのスタートアップ</h3>
<p>アーリーステージのスタートアップにとって、Web-to-App は初期のファネルを検証し、ペイド獲得を試しながら素早く改善を回していくための有効な手段になり得ます。</p>
<p>ただし、アプリ内課金（in-app）と Web-to-App を同時にテストすることは避けるべきです。特に少人数のチームやブートストラップで運営している場合、フォーカスが分散しすぎてしまいます。事業がもう一段階成長したフェーズであれば、両方を並行して運用する判断も現実的になります。</p>
<p>例外として、すでにアプリ内フローからスタートしていて、「Web の方が自分たちのプロダクトに合っている」と分かった場合があります。その場合は、Web ファネルに全面的にフォーカスとリソースを移すのが賢明です。</p>
<h3>2. ペイド獲得のリーチを拡大したいアプリ</h3>
<p>アプリ向けキャンペーンと Web 向けキャンペーンでは、ペイド最適化の考え方は大きく異なります。Web にフォーカスすることで、これまでリーチできていなかったまったく新しいオーディエンスを開拓できる可能性があります。</p>
<p>よく言われているのは、Meta 上における<a href="https://www.businessofapps.com/insights/winning-web-revenue-in-the-evolving-app-landscape/">アプリオーディエンスと Web オーディエンスの重なりは 約15%程度に過ぎない</a>、という点です。つまり、Web キャンペーンを展開することで、完全に新しいユーザー層への扉が開くということです。
不思議なことに、私は仕事柄これまで何百ものアプリをダウンロードしていますが（本当に仕事です！）、Meta 上でアプリキャンペーンを目にすることはほとんどありません。そういう意味で、私は完全に「Web オーディエンス側」に属していると言えるでしょう。</p>
<h3>3. トラッキングとアトリビューションの簡素化</h3>
<p>2021年に Apple が App Tracking Transparency（ATT） ポリシーを導入したことで、アプリ業界では Web-to-App を改めて見直す動きが広がりました。Web ではトラッキングが比較的シンプルで、キャンペーンから得られるデータ量も多く、フィードバックループを回しやすいという特徴があります。</p>
<p>Web-to-App のトラッキングが完璧というわけではありません（たとえば、購入データを 7 日後に Meta へ連携するのは難しいケースがあります）。それでも一般的には、サブスクライバーの行動をより深く把握でき、キャンペーンのパフォーマンス改善に役立ちます。たとえば、どの獲得チャネルがリテンションや LTV にどう影響しているかを比較的容易に確認できるようになります。</p>
<h3>4. Apps focusing on older audiences</h3>
<p>App Store 手数料を回避できる点も確かにメリットではありますが、Web-to-App による本当の収益性向上は、より高い LTV（顧客生涯価値）と優れたリテンションから生まれることがほとんどです。
長く使い続ける傾向のある Web サブスクユーザーとの関係をより強固に構築することで、アプリは中長期的な収益性を大きく改善することができます。</p>
<h3>5. Web-to-App に適したカテゴリは存在する</h3>
<p>Web-to-App は当初、ヘルス＆フィットネスやビジネス系アプリを中心に普及しましたが、現在はその状況が変化しています。<em><a href="https://www.revenuecat.com/state-of-subscription-apps-2025/">State of Subscription Apps</a></em><a href="https://www.revenuecat.com/state-of-subscription-apps-2025/"> レポート 2025</a> によると、ヘルス＆フィットネスは、現在では Web における成長が比較的緩やかなカテゴリのひとつとなっています。その一方で、<strong>プロダクティビティ</strong>、<strong>ユーティリティ</strong>、<strong>教育系</strong>アプリでは、web-first なファネルを採用するアプリが増え、力強い成長が見られています。これらの分野では、Web を起点としたユーザー獲得とマネタイズが、より効果的に機能し始めています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/0efa6c8a6115467a6f8eea6232801aea76dc4ab5-771x475.png" alt=""/></figure>
<p>また、ライフスタイル、エンターテインメント、金融系アプリでも、Web-to-App ファネルを採用する動きが増えています。最終的に重要なのはカテゴリそのものではなく、ユーザーにアプリを試してもらうために、何をどのように伝える必要があるかです。</p>
<p>Gessica氏が指摘しているように、Web ファネルで特に高い成果を出しているアプリには、共通する特徴があります。</p>
<ul>
<li>プロダクトの理解に<strong>さらなる説明</strong>が必要であること（数行のテキストや静的なビジュアルだけでは伝えきれない）</li>
<li>質問やストーリーテリングによって引き出される<a href="https://www.revenuecat.com/blog/growth/solve-app-problems-emotionally/">感情的なトリガー</a>に依存している体験であること</li>
<li>オンボーディング中に<strong>即時的な価値</strong>を提供できること（例：クイズ結果、パーソナライズされたプラン、無料ツールなど）</li>
<li>Web 上のオンボーディングが、購入前にユーザーを<strong>教育</strong>し、<strong>エンゲージ</strong>し、<strong>適切に選別</strong>できること</li>
</ul>
<p>つまり、カテゴリは最も重要な要素ではありません。重要なのは、ユーザーを効果的にコンバージョンさせるために、その<strong>アプリが何を伝える必要があるのか</strong>という点です。</p>
<h3>6. 企業が支払う B2B ブランド</h3>
<p>私自身、これまで主に B2C の世界に深く関わってきたため、このユースケースは当初あまり意識していませんでした。しかし、<a href="https://www.youtube.com/@SubClubPodcast">Sub Club</a> で Thomas氏が説明していたように、Web-to-App は B2B ブランドにとって特に大きな価値を持つケースがあります。</p>
<p>アプリストアの課金は、基本的に個人のクレジットカードに直接請求されるため、企業負担のサブスクリプションには向いていません。一方で Web では、雇用主がチーム単位の請求を管理したり、全社向けサブスクリプションを設定したり、支払いプロセスを簡素化したりすることが容易です。これらはすべて、B2B における購入体験を大きくスムーズにします。</p>
<h2>Web-to-App のテストと成果測定：無料のブループリント</h2>
<p>これまで見てきたように、Web-to-App のファネルには追加の複雑さが伴います。そのため、焦らず、正しく設計することが重要です。一般的には、既存の in-app フローをそのまま反映したファネルから始めることが推奨されます。これにより、初期セットアップを迅速化でき、結果を比較する際の差分も最小限に抑えられます。</p>
<p>とはいえ、クイズ形式のファネルに安易に頼る必要はありません。クイズは確かに人気がありますが、選択肢はそれだけではありません。</p>
<p>そこで、ここでは<strong>最初の Web-to-App ファネルを構築するためのブループリント</strong>を紹介します。</p>
<h3>1. 成功指標とテスト計画を定義する</h3>
<p><a href="https://www.revenuecat.com/blog/growth/iap-vs-web-purchases-conversion-test/">Web-to-App とアプリ内課金を比較検証</a>する際に、コンバージョン率や CAC だけを見るのは誤解を招きやすい点に注意が必要です。Web 上のコンバージョン率を最適化し、ユーザーをスムーズに Web からアプリへと移行させる仕組みを構築するには、一定の時間がかかります。</p>
<p><a href="https://www.revenuecat.com/glossary/#trial-conversion-rate">トライアルから有料への転換率</a>が向上するケースもありますが、その一方で、他の指標が初期段階では低下することもあります。短期的な数値に一喜一憂するのではなく、Web ファネル運用に伴う追加コストも加味したうえで、<a href="https://www.revenuecat.com/glossary/#arpu-average-revenue-per-user">ARPU（課金ユーザーあたりの平均収益）</a>や <a href="https://www.revenuecat.com/glossary/#ltv-cac-ratio">LTV／CAC 比率</a>を分析することが重要です。
多くのアプリにとって、これは「どちらか一方」を選ぶ話ではありません。重要なのは、<strong>Web-to-App が新しいユーザー層に対して、採算の取れる形でリーチできているかどうか</strong>です。そのためにも、テスト期間（一般的には有意なリテンションデータを得るために 3〜6 か月）と、試す具体的なアプローチをあらかじめ定義し、終わりのないテストに陥らないようにしましょう。</p>
<aside class="tip"><strong>覚えておいてください</strong><p>Web とアプリでは、コスト構造やパフォーマンスのベンチマークが異なります。そのため、両者を単純に横並びで比較するのは難しい点に注意が必要です。</p></aside>
<h3>2. Web-to-App のセットアップを設計する</h3>
<p>Web-to-App というと、オンボーディング用のクイズファネルを思い浮かべる人が多いかもしれません。確かにこれは定番の手法ですが、あくまで数ある選択肢のひとつにすぎません。また、<a href="https://www.revenuecat.com/blog/growth/web-to-app-funnels-are-not-onboarding-quizzes/">Web-to-App ファネルはオンボーディングそのものの代替ではない</a>という点も重要です。</p>
<p>テストを行う際は、次のような別のフローも検討してみてください。</p>
<ul>
<li>ランディングページ → チェックアウト</li>
<li>ランディングページ → サインアップ → インストール</li>
<li>スマートバナー（AppsFlyer、Adjust など）</li>
<li>QRコード → アプリインストール</li>
<li>メールシーケンス → Web ペイウォール → チェックアウト</li>
<li>リードマグネット → アプリインストール</li>
<li>ブログ記事 → インストール</li>
<li>ウェビナーファネル → チェックアウト</li>
<li>ランディングページ → Web アプリのデモ → チェックアウト</li>
</ul>
<p>誤解のないように言っておくと、クイズを否定しているわけではありません。クイズはパーソナライズや教育、より複雑なユーザージャーニーを構築するうえで非常に有効な手法です。ただし、それが唯一の方法ではないということです。Nathan氏は次のように述べています。</p>
<p>「みんながやっていることをそのまま真似するのではなく、自分たちのプロダクトにとって何が理にかなっているのかを考えるべきです。あなたのユニークな価値提案は何か？ユーザーが抱えている課題は何か？アプリをダウンロードする前の段階で、それらを Web 上でどう伝え、どう解決できるのか？
それは、必ずしも Web オンボーディングのクイズである必要はありません。」</p>
<p>シンプルな出発点として、ミニランディングページを使うという方法もあります。Gessica は、複雑さを加える前に Web-to-App ファネルを検証するための最初のテストとして、ミニランディングページが理想的だと共有しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/eda67da4baeeed2a9dc2c0f3401567bb8c4e99a7-1118x842.png" alt=""/></figure>
<p><em>Credit: Gessica Bicego</em></p>
<p>Gessica氏の例が優れている点は、純粋な Web ファネルに伴ういくつかのリスク（特に決済まわり）を軽減できていることです。一方で、決済自体はアプリ内で行われるため、Meta などでの Web キャンペーンを本格的に活用できるわけではありません。</p>
<p>ランディングページや Web クイズを構築するためには、立ち上げを支援してくれる ノーコードツールが数多く存在します。たとえば、Unbounce、ConvertKit、Web2Wave などがあり、これらを活用すればスピーディにテストを始めることができます。</p>
<h3>3. オファー設計を決める</h3>
<p>多くのアプリは、ハードペイウォール、無料トライアル、フリーミアム、あるいはそれらのハイブリッドに依存していますが、Web-to-App ファネルではオファー設計を見直す必要があるケースが多くあります。その理由は次のとおりです。</p>
<ul>
<li>Web では不正利用や購買意欲の低いユーザーが多く、無料トライアルのコンバージョンが下がりやすい</li>
<li>Web 決済には摩擦があるため、ユーザーは明確で即時的なメリットを期待する</li>
</ul>
<p>その結果、Web-to-App では次のようなオファーがよく採用されます。</p>
<ul>
<li>有料トライアル（例：7日間で $1）</li>
<li>返金保証（コンテンツ系・サービス系アプリで特に有効）</li>
<li>Web 限定割引（ストア手数料分の節約をユーザーに還元）</li>
</ul>
<p>また、Web ユーザー向けにプラン構成をシンプルにするのも有効です。</p>
<ul>
<li>分かりやすさと LTV 向上のため、年額プランをメインに訴求する</li>
<li>月額プランはアプリ内に残し、望ましい行動を促す</li>
</ul>
<p>私が特に気に入っているのが、植物識別アプリ <a href="https://myplantin.com/">Plantin</a> の例です。Plantin では「最もお得なのは Web」であることを明確に打ち出しつつ、非常に短期間の無料トライアルを提供しています。これは、インセンティブと摩擦低減のバランスが非常にうまく取れた設計です。Web 経由だからこその 30% オフという表現も、「特別なディールを見つけた」という感覚をユーザーに与えます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c047a3c50ac18b4b0d218fccb534310aa8bcbf37-738x1600.png" alt=""/></figure>
<p>最適化を重ねていくと、トラフィックの意図やチャネルに応じてオファー構成を使い分けるようになります。たとえば、購買意欲の高いユーザーには年額割引が響きやすく、コールドオーディエンスにはリスクの低い入口や、返金保証の仕組みを丁寧に説明することが効果的な場合があります。</p>
<h3>4. 初期ファネルを改善する</h3>
<p>多くの場合、まず取り組むべきは<a href="https://www.revenuecat.com/blog/growth/subscription-app-creative-testing/">クリエイティブの最適化</a>です。特に Web キャンペーンを初めて実施する場合、これまでとは異なる新しいオーディエンスにリーチすることになります。そのため、クリエイティブの出来が、獲得できるユーザーの質に大きく影響します。</p>
<p>また、信頼の構築は Web-to-App において非常に重要な要素です。アプリ内課金では App Store や Google Play の信頼性やレビューに依存できますが、Web-to-App ではそうはいきません。機能の明確な訴求、ソーシャルプルーフや評価の表示、あるいはミニデモとして機能する<a href="https://www.revenuecat.com/blog/growth/video-paywalls/">動画ペイウォール</a>の導入などを通じて、意識的に<strong>信頼を構築・最適化する必要があります</strong>。</p>
<p>次に、決済ページの最適化を行いましょう。Web の<a href="https://www.revenuecat.com/blog/growth/paywalls-study-guide/">ペイウォール</a>はアプリ内ほど制約が厳しくないため、価値が明確に伝わっているか、Web を選ぶ十分なインセンティブがあるか、そして信頼をさらに高められているかを意識して設計します。</p>
<p>あわせて、以下のような一般的なベストプラクティスも押さえておきましょう。</p>
<ul>
<li>決済を簡単にする（例：Apple Pay への対応）</li>
<li>アプリへの引き継ぎをシームレスにする（ディープリンク、オートログインなど）</li>
<li>モバイルファーストの UX を維持する</li>
<li>プラン数を絞り、選択による混乱を防ぐ</li>
</ul>
<p>こうした基本的な整理ができたら、次のステップとしてファネルをさらに改善していきます。たとえば、ランディングページのテストと改善を行ったり、クイズ形式の質問を最適化したりすることです（そう、クイズは本当に有効なツールに<em>なり得ます</em>）。クイズ形式の質問は信頼構築に役立ちますが、パーソナライズされていない、関連性の薄い、あるいは曖昧な質問は、かえってコンバージョン率を下げる要因になる点には注意が必要です。</p>
<h3>5. 個別ファネルをさらに最適化する</h3>
<p>Web-to-App の大きな魅力は、オーディエンスごとにファネルをカスタマイズできることです。Plantin の Head of Marketing である <a href="https://www.linkedin.com/in/anastasia-karlova/">Anastasiia Karlova</a>氏は、その重要性を示す<a href="https://www.businessofapps.com/podcasts/maximizing-growth-with-web-to-app-funnels-with-anastasiia-karlova-head-of-marketing-at-plantin/">示唆に富んだ事例</a>を共有しています。</p>
<p>彼らは「キノコを識別する」という広告をテストし、ユーザーが遭遇したキノコが何で、食べられるかどうかを理解できることに焦点を当てた Web ファネルを用意しました。このファネルは Web 上では非常によく機能しましたが、ユーザーがアプリに到達すると、そこにはキノコ関連のコンテンツが存在せず、多くのユーザーが離脱してしまったのです。</p>
<p>この事例が示しているのは、Web ファネルはアプリ内の体験ときちんと連動している必要があるということです。各チャネルごとにファネルを最適化し、Web 上でユーザーに約束した体験やコンテンツが、アプリ内でも確実に提供されている状態を作ることが重要です。</p>
<h2>Web-to-App の次に来るものは？</h2>
<p>Web-to-App の未来は非常にエキサイティングです。ここでは、今後起こると考えている変化をいくつか挙げます。</p>
<ul>
<li>アプリ内チャネルでのスケール競争が激化するにつれ、Web ファネルをテストするアプリがさらに増える</li>
<li>ユーザーを Web に送るタイミングと、<a href="https://www.revenuecat.com/blog/growth/guide-to-mobile-paywalls-subscription-apps/">アプリ内ペイウォール</a>を表示するタイミングを意識的に使い分ける、より多くのハイブリッド型ファネルモデルが登場する</li>
<li><a href="https://www.revenuecat.com/blog/growth/apple-anti-steering-ruling-monetization-strategy/">Epic対Apple 判決</a>（米国で<a href="https://www.revenuecat.com/blog/growth/introducing-web-paywall-buttons/">アプリから Web 決済へのリンク</a>が認められたこと）をきっかけに、他の国や市場にもこの動きが広がり、Web-to-App 戦略の新たな機会が生まれる</li>
</ul>
<p>ファネルの構築やパーソナライズが容易になることで、より細かなセグメンテーションとオーディエンスごとに最適化されたフローが増えるたとえば、ウェルネスアプリの <a href="https://betterme.world/">BetterMe</a> では、すでに少なくとも 12 種類の高度に最適化されたファネルが運用されています！</p>
<p>Web-to-App は、一夜にして成長をもたらす魔法の杖ではありません。自社アプリにとってのメリットとデメリットを踏まえたうえで、意識的に選択する必要があります。それでもなお、新しいオーディエンスを開拓し、アプリを成長させるための大きなチャンスを提供してくれるのは間違いありません。Web-to-App ファネルが急速に広がっているのには理由があります。すべてのアプリに適しているわけではありませんが、自社のアプリ内ファネルの代替、あるいは補完として、戦略的に Web-to-App をテストする価値があるかどうかは、すべてのアプリが一度は<em>検討すべき</em>でしょう。</p>
<h2>Web-to-App ファネルに関するよくある質問</h2>
<p><strong><strong>Web-to-App ファネルとは正確に何ですか？</strong></strong></p>
<p>ユーザーが Web 上（ランディングページ、クイズ、その他のフローなど）から体験を開始し、その後アプリをインストール、またはアプリ内でサブスクリプション登録に至る導線のことです。購入は Web 上で行われる場合もあれば、アプリ内で行われる場合もあります。</p>
<p><strong><strong>なぜ今、アプリは Web-to-App に移行しているのですか？</strong></strong></p>
<p>2021 年に Apple が App Tracking Transparency（ATT）を導入したことで、アトリビューションが難しくなりました。一方で Web ファネルは、よりクリーンなトラッキング、速い改善サイクル、価格やメッセージの高い自由度、そしてより高い LTV の可能性を提供します。そのため、Web-to-App に注目が集まっています。</p>
<p><strong><strong>Web-to-App は必ずコスト削減になりますか？</strong></strong></p>
<p>必ずしもそうではありません。Web の手数料は低め（平均で約 5〜6%、アプリストア経由では 15〜30%）ですが、コンバージョン率が下がる可能性や、追加ツールの導入が必要になる場合もあります。最終的な金銭的メリットは、構成や運用方法によって大きく異なります。</p>
<p><strong><strong>Web-to-App ファネルを立ち上げるのに開発者は必要ですか？</strong></strong></p>
<p>必ずしも必要ではありません。ノーコードの Web ファネルやランディングページビルダーを使えば、最小限のエンジニアリング支援でテストを始めることが可能です。ただし、ダウンロード後のリダイレクトや共有ログイン、ディープリンクの設定などには、開発者のサポートが必要になる場合があります。</p>
<p><strong><strong>Apple は Web-to-App ファネルを認めていますか？</strong></strong></p>
<p>はい。Web-to-App ファネルは以前から認められています。さらに 2025 年の Epic 判決以降、米国ではアプリから外部の購入オプションへリンクすることも可能になりました。</p>
<p><strong><strong>どのようなアプリが Web-to-App ファネルの恩恵を受けやすいですか？</strong></strong></p>
<p>Web に慣れたユーザー層を持つアプリ、価格帯が高めのアプリ、あるいはオンボーディングが比較的複雑なアプリ（ヘルスケア、教育、プロダクティビティ系など）は、特に高い成果を出しやすい傾向があります。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[RevenueCatのプロダクトマネジメント組織の内側]]></title>
      <link>https://www.revenuecat.com/jp/blog/company/inside-product-management</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/company/inside-product-management</guid>
      <pubDate>Fri, 26 Dec 2025 03:24:13 GMT</pubDate>
      <dc:creator><![CDATA[Jens-Fabian Goetzmann]]></dc:creator>
      <category><![CDATA[[ 会社情報 ]]]></category>
      <description><![CDATA[プロダクトマネジメント組織、その舞台裏（採用情報あり）]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/2dcc49d09cc8fc5de5e039aeb49ea3097b7467e5-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>RevenueCatの<a href="https://www.revenuecat.com/blog/company/values/">ミッション</a>は、<strong>開発者がより多くの収益を上げられるよう支援すること</strong>です。CEOの<a href="https://www.linkedin.com/in/jeiting">Jacob</a>は、隔週で行われる全社ミーティングのたびに、そのために私たちが取り組むべきことは「勝てるチームをつくること」と「開発者がより多く稼げるようになるプロダクトを作り、届け、販売すること」だと繰り返し伝えています。後者、つまりプロダクトを世に送り出すことを担っているのが、Engineering・Product・Design（EPD）であり、そしてその「勝てるチーム」を支える三本柱の一つが、私たちのプロダクトマネジメント組織です。</p>
<p>現在、RevenueCatのプロダクトマネジメントチームは6名のプロダクトマネージャー（PM）で構成されており、複数のポジションを募集中です。さらに、2026年に向けて今後も採用を進めていく予定です。そこで本記事では、RevenueCatでPMとして働くとはどういうことなのか、ここで成功するPMに求められるもの、そして私たちが直面している課題について、少し詳しくご紹介したいと思います。</p>
<h2><strong>RevenueCatのプロダクトが特別である理由</strong></h2>
<p>プロダクトマネージャーとして関われるプロダクトには、（あなたの両親も知っているような）誰もが使うコンシューマー向けプロダクトから、特定の業界に詳しくないと理解が難しいニッチなプロダクトまで、さまざまなものがあります。RevenueCatは間違いなく後者に属しますが、それでもなお、非常に特別なプロダクトだと私たちは考えています。</p>
<h3><strong>難解な課題、しかし大きなインパクト</strong></h3>
<p>RevenueCatの大きな特徴のひとつは、非常に複雑で、やや専門的な課題を解いている点にあります。アプリ内課金のペイロードに含まれる各フィールドが何を意味しているのか、Apple・Google・Stripeそれぞれでどのようなエッジケースが存在するのか、そしてそれらをどう扱うのが最適なのか——これらを正しく理解し、実装するのは複雑で、決して華やかな仕事ではありません。</p>
<p>私たちはよく「痛みを食べて生きている（eat pain for a living）」と言います。つまり、<strong>開発者が直面するつらくて厄介なインフラの問題を、私たちが代わりに引き受けて解決している</strong>、という意味です。それだけでも、RevenueCatは取り組みがいのある複雑なプロダクトだと言えます。かし、それ以上にこの仕事を意味あるものにしているのは、その先にある理由です。私たちは、アプリ開発者が自分たちのアプリをマネタイズできるよう支援しています。なぜなら……</p>
<ul>
<li>私たちは、（平均すれば）より多くのソフトウェアが世界にとってプラスになると信じている</li>
<li>人々がソフトウェアを作り、それで生計を立てられるようにすることこそが、人類がより多くのソフトウェアを生み出すための最良の方法だと信じている</li>
</ul>
<p>こうした考えに共感できるなら、RevenueCatは非常にやりがいのあるプロダクトです。私たちが解決している課題は、何万人もの開発者がアプリをマネタイズする手助けにつながっているからです。</p>
<p>RevenueCatのメンバーの多くは、アプリ開発のバックグラウンドを持っていたり、今でも個人でアプリをApp StoreやGoogle Playに出していたりします。だからこそ、私たちは顧客が直面している課題や、業界にもたらしている価値を実感をもって理解できます。実際に同じ立場を経験してきたからこそ、それができるのです。ここが、私たちのユニークな点でもあります。</p>
<h3><strong>お客様に愛されているプロダクト</strong></h3>
<p>RevenueCatには、多くのファンがいます。もちろん、すべてのお客様がファンというわけではありません。中にはプロダクトに対して正当な不満を持っている方もいますし、日々の業務で使う単なるツールのひとつとして捉えている方もいます。それでも、「アプリを作る」という自分の好きなことを仕事として成り立たせる手助けをしてくれる存在として、RevenueCatを心から気に入ってくれているお客様が数多くいるのも事実です。</p>
<p>カンファレンスで、わざわざブースを訪れてアプリについて話しかけてくれるお客様に出会ったり、App Growth Annualに参加した人たちから声をかけてもらったりすると、自分たちが携わっているプロダクトが愛されていることを実感できます。また、お客様が初めてのRevenueCat請求書について誇らしげにSNSへ投稿してくれるのを、私たちはよく目にします。これは、無料プランの枠を超え、アプリから実際に収益を得られる段階に到達したことを意味します。お客様がここまで喜んで「お金を払いたい」と思ってくれるプロダクトは、そう多くありません。</p>
<p>こうしたフィードバックは、RevenueCatで働くことを非常にやりがいのあるものにしてくれますし、課題に直面しているお客様をさらに支援したいというモチベーションにもつながっています。</p>
<h3><strong>ビジネスと顧客のインセンティブが一致していること</strong></h3>
<p>先ほど触れた「最初の請求書」にも関連しますが、RevenueCatとそのビジネスモデルの大きな特長のひとつは、私たちのインセンティブが顧客のインセンティブと完全に一致している点にあります。RevenueCatは、顧客の収益に対する一定割合を料金としていただいています。つまり、<strong>お客様が成長すれば私たちも成長</strong>し、お客様が収益を上げれば私たちも収益を得るという関係です。</p>
<p>これほど純粋なビジネスモデルは、そう多くありません。私たちは心からお客様の成功を願っています。なぜなら、お客様が成功すれば、私たちも成功するからです。<strong>両者のインセンティブが完全に揃っている</strong>ことで、プロダクトの選択がビジネスとして成り立つかどうかの判断も、非常にシンプルになります。</p>
<p>数年前、私たちは料金体系を簡素化し、無料プランであってもエンタープライズプランであっても、すべての顧客が全機能にアクセスできる形に変更しました。これは、RevenueCatの収益が顧客の収益に比例して伸びる仕組みであるため、規模の大きな顧客ほど自然と多く支払ってくれるからです。また私たちは、<strong>成長のためのツールは、すべての開発者が等しく利用できるべき</strong>だと考えています。もし安価なプランの小規模開発者にそれらのツールへのアクセスを制限してしまえば、それは顧客の成長機会を奪うだけでなく、結果として私たち自身の成長可能性をも制限してしまうことになります。</p>
<h3><strong>さまざまなプロダクトの接点と、それぞれの課題</strong></h3>
<p>最後に取り上げたいプロダクトの大きな特徴は、RevenueCatが持つ複数の「接点（サーフェス）」と、それぞれに固有の（技術的な）課題です。</p>
<ol>
<li><strong>バックエンド</strong>：RevenueCatのバックエンドは、お客様にとってのミッションクリティカルなインフラです。お客様の収益ストリームを危険にさらさないために、何よりも信頼性を最優先する必要があります。また、非常に高いスケーラビリティも求められます。私たちのバックエンドは、毎日数十億件規模のAPIリクエストを処理しています。最も利用頻度の高いAPIエンドポイントは完全に<a href="https://www.revenuecat.com/blog/engineering/data-caching-revenuecat/">キャッシュ</a>されていなければならず、そうでなければデータベースは一瞬で破綻してしまうでしょう。</li>
<li><strong>SDKとAPI</strong>：SDKやAPIは、開発者がそれらを前提にアプリやバックエンドを構築するため、数年先まで安定して使い続けられる設計である必要があります。特にSDKについては品質のハードルが非常に高く、もし不具合のあるSDKがアプリに組み込まれてしまうと、そのアプリが更新されない限り、長期間にわたって問題が世の中に残り続ける可能性があります。</li>
<li><strong>Webダッシュボード</strong>：Webダッシュボードでは、他の領域に比べてはるかに高い自由度でイノベーションや改善を行うことができます。そのため、試行錯誤を素早く回し、変更を非常に迅速にデプロイできる領域でもあります。</li>
<li><strong>コンシューマー向けUI</strong>：近年、私たちはコンシューマー向けのUIも積極的に提供しています。<a href="https://www.revenuecat.com/docs/tools/paywalls">Paywall</a>、<a href="https://www.revenuecat.com/docs/tools/customer-center">Customer Center</a>、<a href="https://www.revenuecat.com/docs/web/web-billing/customization">Webチェックアウト</a>、<a href="https://www.revenuecat.com/docs/web/web-billing/customer-portal">Webカスタマーポータル</a>などは、すべてお客様の「その先のユーザー」が利用するものです。そのため、信頼感を与えるための高い完成度と洗練度が求められます。</li>
</ol>
<h2><strong>プロダクトマネジメントへの取り組み方</strong></h2>
<p>RevenueCatにおけるプロダクトマネジメントのアプローチは、私たちの価値観とタレントビジョンの両方によって形作られています。RevenueCatのプロダクトマネジメントがどのように機能しているのかを理解するには、まず「<em>何を作るか</em>」をどのように決めているのかから説明する必要があります。</p>
<h3><strong>何を作るかを決める</strong></h3>
<p>RevenueCatでは、毎年プロダクト戦略を策定します。このプロダクト戦略が、翌年に注力すべき主要なフォーカス領域を定めます。基本的に、年次のプロダクト戦略は前年度の戦略を土台とした進化であり、革命的な転換や急激なピボットになることはほとんどありません。戦略はリーダーシップレベルで決定されますが、その策定プロセスにおいてPMは重要なインプットを提供します。</p>
<p>この戦略に沿って、チーム構成も見直します。RevenueCatでは比較的安定したクロスファンクショナルチームを採用しており、PMはエンジニアリングマネージャー（EM）のもとで働くエンジニアチーム、そしてデザイナーと協働します。</p>
<p>ロードマップは主に四半期ごとのプランニングプロセスで決定されます。このプロセスはこれまで何度も改善を重ねてきましたが、現在は以下のような流れで進めています。</p>
<p>各チームは、PM・EM・デザイナーを代表として、そのチームの優先事項案を提示します。それらはリーダーシップ（CEO、CTO、Head of Product）とともにレビュー・議論されます。この議論の中でロードマップに一定の調整が入ることはありますが、基本的には各チームが自らのロードマップと優先順位にオーナーシップを持ちます。このプロセスにおいて、PMは非常に重要な役割を果たします。多くの場合、PMは自分の担当プロダクト領域について最も俯瞰的な視点を持ち、プロダクト改善を通じてどのような価値を顧客に届けられるかを最も深く理解している存在だからです。</p>
<p>日々、そして週単位の業務においても、PMはEMやデザイナーと密に連携します。少なくとも週1回の定例ミーティングに加え、非同期コミュニケーションを通じてさらに頻繁にやり取りを行います。チーム内での機能の発見（ディスカバリー）と提供（デリバリー）はチーム全体の責任であり、緊密なコラボレーションによって実現されています。</p>
<h3><strong>プロダクトマネジメントにおける価値観の体現</strong></h3>
<p>前述のとおり、RevenueCatのプロダクトマネジメント組織を形づくるもう一つの要素が、会社としての価値観です。これらはNotionのドキュメントに書かれて放置されているような理念ではありません。日々の仕事の中で意識的に実践し、判断や行動の基準として自分たちを照らし合わせ続けている“生きた精神”です。</p>
<h4><strong>カスタマーオブセッション（顧客への徹底したこだわり）</strong></h4>
<p>RevenueCatでは、<strong>何よりもまず顧客に価値を届ける</strong>ことを最優先に考えています。この考え方は、私たちのプロダクトマネジメントの進め方にも明確に表れています。</p>
<ul>
<li><strong>PMは顧客と頻繁に対話することが期待されています</strong>：1対1の会話やユーザーリサーチのインタビューに限らず、サポートチケット、SNS上の投稿、セールスとの会話、顧客と共有しているSlackチャンネル、カンファレンスのブースでの立ち話まで、あらゆる接点が含まれます。</li>
<li><strong>PMと顧客の間に壁はありません：</strong>より良いプロダクト判断につながるのであれば、誰の許可も必要ありません。必要だと思った会話は、すぐに設定します。</li>
<li><strong>顧客の実体験</strong>は、プロダクト判断において非常に強い説得力を持ちます。もちろん、顧客からの要望をすべてそのまま作るわけではありません。しかし、その背後にある本質的なニーズや未解決の課題を見極めることを重視しています。一般的に、わざわざ課題や不満を伝えてくれる顧客は、それだけプロダクトを大切にしている存在です。だからこそ、耳を傾ける価値があると考えています。</li>
<li><strong>問題の大きさに関わらず、顧客の声に向き合います</strong>。私たちにとって戦略もロードマップも重要ですが、顧客が遭遇したバグを素早く修正したり、使う上での制約を一つ取り除いたりすることで、「気にかけてもらえている」と感じてもらえることがあります。そうした小さな対応が、疑念を持っていたユーザーをファンに変え、やがてはプロダクトを広めてくれる存在（エバンジェリスト）へと変えていくことも少なくありません。</li>
</ul>
<h4><strong>Always be shipping（常にShip続ける）</strong></h4>
<p>「<em>Always be shipping</em>」は、プロダクトマネジメントにおける私たちの姿勢に強く影響しています。具体的には、計画している内容のスコープを常にMVP（最小実用プロダクト）まで削ぎ落とすことを後押しします。その理由は主に次の2つです。</p>
<ol>
<li>顧客に価値をより早く届けられること</li>
<li>できるだけ早い段階で、顧客からのフィードバックや検証を得られること</li>
</ol>
<h5><strong>Ship-or-dies（四半期ごとの必達リリース）</strong></h5>
<p>本当に「Always be shipping」を実践し、スコープを最小化するための仕組みのひとつが、社内の明確な締切設定です。私たちが採用している主な仕組みが、四半期ごとの全社的な出荷目標である「ship-or-dies」です。</p>
<p>ある取り組みが ship-or-die に指定されると、四半期末までに必ず出荷するために、あらゆる手段を講じます。必要であればリソースを追加し、チームのスピードを上げます。その一方で、多くの場合、痛みを伴うスコープ削減も迫られます。「必須（must-have）」だった要素を「あれば嬉しい（nice-to-have）」に落とす判断をすることもあります（ソフトウェア開発を知っている方なら分かる通り、これは往々にして「<em>結局やらない</em>」ことを意味します）。</p>
<p>興味深いのは、機能をリリースして実際に顧客の手に渡ったあと、最初に寄せられる要望が、後回しにした部分ではないことが多いという点です。むしろ、まったく別の点に関するフィードバックが来ることがよくあります。これは、素早く出荷する価値を如実に示しています。私たち自身も、顧客自身も、機能が実際にプロダクト内で使われ始めるまで、どのように使われるかを正確に予測することはできません。それを知るための唯一確実な方法は、早く出して、その後に改善を重ねることです。</p>
<h5><strong>Bias for action（行動バイアス）</strong></h5>
<p>「<em>Always be shipping</em>」を支えるもう一つの重要な要素が、<strong>行動を優先する姿勢（bias for action）</strong>です。私たちは常に、不完全な情報の中で意思決定をしています。完璧な情報が揃うのを待っていたら、何も決められなくなってしまいます。だからこそ、RevenueCatのプロダクトマネージャーには、<strong>不確実性がある中でも意思決定を前に進める責任があります</strong>。ほとんどの判断は、後から修正することが可能です。終わりのない議論よりも、前進することを選ぶ。話すより、動く（Act, don’t talk）——それが私たちのスタンスです。</p>
<h4><strong>Own it（当事者意識を持つ）</strong></h4>
<p>RevenueCatでは、オーナーシップを非常に重視しています。プロダクトマネージャーにとってそれは、「誰かの問題」というものは存在しない、という意味です。私たちは一緒に勝ち、一緒に負けます。もし問題に気づいたら、それが自分の担当領域でなくても、何か行動を起こすことが求められます。</p>
<p>もちろん、プロダクトマネージャーが<em>すべての問題を自分で解決</em>しなければならない、ということではありません。ただしPMは、顧客の課題から解決策の設計、技術的なアプローチまでを横断的に理解している立場であることが多く、結果として問題にいち早く気づける存在でもあります。そして、そのこと自体が期待されています。</p>
<p>RevenueCatのプロダクトマネージャーは、<a href="https://x.com/shreyas/status/1276956836856393728?s=20"><strong>高いエージェンシー</strong></a><strong>（主体的に状況を変えられる力）</strong>を持っています。私たちは、困難な状況であっても変化を起こせると信じています。PMは、目の前の問題に対処するためにできる限りのことを行い、ときにはそれ以上のこともします（たとえば、より良く解決するために新しい知識を学ぶなど）。コードベースを掘り下げてバグの根本原因を探ったり、データをより深く理解するためにデータウェアハウスへクエリを投げたり、顧客の課題をデバッグするために急きょ通話に入ることもあります。</p>
<p>また、AI支援開発の進展により、プロダクトマネージャー自身がコードベースに直接貢献する場面も、今では珍しくありません。変更内容が比較的シンプルな場合、エンジニアにチケットを切って対応してもらうよりも、PMが Cursor や Claude Code を使って自ら修正し、レビューを経てそのまま出荷するほうが、はるかに速いことも多くあります。</p>
<p>まとめると：やることはたくさんあります。そして、これはまさに 全員総出 の仕事です。</p>
<h4><strong>Balance（バランス）</strong></h4>
<p>私たちの<em>バランス</em>という価値観は、おそらく最も誤解されやすいものです。これは「手を抜く」という意味ではありません（むしろその逆で、RevenueCatはいまもスタートアップであり、ここでの仕事は意図的にハードです）。<strong>私たちは、スピードを維持し続けてこそ勝てる</strong>と考えています。</p>
<p>一方で、このバリューは「速く進むこと」と「燃え尽きること」のあいだには、非常に細い境界線があることも思い出させてくれます。意欲の高い人たちとチームを組み、面白く価値のある課題に取り組めているとき、ハードワークは大きなやりがいになります。プロダクトマネージャーは、チームのモチベーションや関心を保つうえで重要な役割を担うことが多く、解いている課題と顧客へのインパクトを結びつけて伝える責任があります。たとえば、顧客からのポジティブな声（いわゆる “good feels”）を共有したり、周囲に伝播するようなワクワク感を示したりすることです。</p>
<p>また、Balance には、他者への共感や思いやり、そして互いを一人の人間として尊重し合える、信頼に基づいたチーム環境を築くことも含まれています。プロダクトマネージャーは、自然とリーダー的な立場に立つことが多いため、こうした振る舞いを自ら体現し、周囲に広げていく上で重要な役割を果たします。</p>
<h3><strong>RevenueCatのタレント・ビジョン</strong></h3>
<p>RevenueCatのタレント・ビジョンは、高い能力を持つメンバーによる「<a href="https://www.revenuecat.com/blog/engineering/engineering-strategy/#h-on-growth">勝てるチーム</a>」をつくることです。そのため、すべてのチームメンバーに高い基準を設けており、採用やパフォーマンスマネジメントのプロセスを通じて、その基準を維持しています。</p>
<p>この考え方は、私たちのプロダクトマネジメントの進め方にもいくつかの影響を与えています。まず、RevenueCatのチームは、比較的シニアでプロダクト志向のエンジニアやエンジニアリングマネージャーで構成されています。そのため、RevenueCatのPMは、プロジェクト管理の細部に深く入り込んだり、非常に詳細なチケットを作成したりする必要はあまりありません。むしろ、<strong>必要な背景情報や課題空間の理解を的確に伝えること</strong>が求められます。そうすることで、エンジニアがPMの意思決定によってボトルネックになることなく、スムーズに開発を進められるようになります。</p>
<p>また、このタレント・ビジョンは、チームが比較的リーンであることも意味しています。私たちは、才能の基準が低い大規模チームよりも、高い能力を持つ少人数のチームの方が、はるかに速く動けると信じています。</p>
<h2><strong>プロダクトマネジメント組織が直面している主な課題</strong></h2>
<p>ここでは、RevenueCatのプロダクトマネージャーとして私たちが直面している主な課題を紹介します。</p>
<h3><strong>やるべきことが多すぎて、時間が足りない</strong></h3>
<p>これはスタートアップに共通する典型的な課題かもしれませんが、RevenueCatでもまさにそのとおりです。私たちは常に、取り組みたいアイデアや解決すべき顧客課題を、実際に対応できるキャパシティ以上に抱えています。そのため、会社としても、各チームとしても、そしてPM個人としても、適切に優先順位を付け、その判断を市場、顧客、社内ステークホルダーにきちんと伝える必要があります。この課題に対しては、戦略策定とプランニングのプロセスを通じて、常に最もインパクトの大きい機会に集中できるようにしています。</p>
<h3><strong>カスタマー・オブセッションと戦略的優先度のバランス</strong></h3>
<p>上記の優先順位付けとも密接に関係していますが、私たちはしばしば、「<em>顧客第一主義</em>」と「戦略的な優先事項」という2つの力に引っ張られます。戦略的な取り組みは成果が出るまでに時間がかかることが多い一方で、カスタマー・オブセッションという価値観は、比較的小さな顧客リクエストにも緊急性を感じさせます。どちらか一方に極端に寄りすぎるのは望ましくありません。長期的な戦略を優先するあまり顧客の声を後回しにすれば、反応が鈍いと見なされ、これまで築いてきた顧客からの信頼や愛着を失うリスクがあります。一方で、顧客要望への対応だけを最優先してしまうと、大きな勝負に出る機会や、市場の変化に乗るチャンス、プロダクトや会社の次の成長を切り開く機会を逃してしまいます。</p>
<h3><strong>成長は、調整コストの増加を意味する</strong></h3>
<p>RevenueCatはここ数年、非常に良い成長曲線を描いてきました。チームの成長は売上の伸びほど速くはありませんが（これも「<em>勝てる</em>チーム」というタレント・ビジョンの一部です）、それでも確実に拡大しており、今後も成長を続ける予定です。EPD（Engineering, Product &amp; Design）チームが大きくなると、プロダクト改善のためのキャパシティは増えますが、その一方で調整や連携に必要なコストも増加します。エンジニアリングチームを2倍にしたからといって、出荷できる変更が単純に2倍になるわけではありません。一部のリソースは、必ず調整作業に使われるからです。また、チームが増えることで、プロダクトの各所で一貫性のない体験が生まれるリスクも高まり、それを防ぐためにもさらなる調整が必要になります。</p>
<h3><strong>マルチプロダクト企業への転換</strong></h3>
<p>私たちが直面している最大の戦略的課題は、シングルプロダクトの会社からマルチプロダクトの会社へと移行することです。RevenueCatは長年にわたり、「アプリにアプリ内課金を実装するための最良の方法」であり続けてきました。その結果、現在では多くのサブスクリプションアプリが、立ち上げ時からRevenueCatを利用しています。しかし、新規サブスクリプションアプリの市場自体には限りがあります。</p>
<p>今後も成長を続けるためには、既存のターゲット市場に対してより多くの価値を提供することと、現在のRevenueCatプロダクトが必ずしも最適ではない顧客にもリーチできるようにすることの両方が必要です。そのためには、マルチプロダクト企業になることが不可欠です。まったく新しいプロダクトを追加するか、既存プロダクトを分解して個別に販売できる形にするか、その両方を検討しています。</p>
<p>これには、プロダクト意思決定のプロセスそのものを根本的に見直す必要があります。プラットフォームの一部だけを使う場合でも意味のある体験を設計し、適切な価格設定や課金モデルを整え、正しいプロダクトにたどり着き、セットアップできるオンボーディングフローを考えなければなりません。</p>
<p>この取り組みはまだ始まったばかりで、当面の間、私たちを忙しくさせ続けることになるでしょう。</p>
<h2><strong>RevenueCatにおける「良いPM」とは</strong></h2>
<p>ここまで読んでくれましたか？ では、RevenueCatでプロダクトマネージャーとして活躍できる人の特徴について見ていきましょう。もしかすると、あなた自身が当てはまるかもしれませんし、思い当たる誰かがいるかもしれません。</p>
<ul>
<li><strong>マネージャーではなく、ビルダー</strong>：RevenueCatのPMは、自分たちを「プロダクトを作る人」だと捉えています。バックログを管理したり、ステークホルダーの調整に追われたりするのが役割ではありません。チームと協働し、最善の解決策を提案し、チームがより速く前に進めるよう支援します。</li>
<li><strong>ミッショナリー</strong>：私たちのミッションは「開発者がより多くの収益を得られるようにすること」です。PMはこのミッションを心から受け入れています。より多くのソフトウェアが世界にとって良いものであり、開発者が成功すれば、より多くのソフトウェアが生まれると信じているからこそ、私たちは顧客に徹底的に向き合います。</li>
<li><strong>徹底したオーナーシップ</strong>：RevenueCatのPMは、顧客の課題を解決し、プロダクトを成功させるために必要なことはすべてやります。誰かを責めたり、責任を転嫁したり、失敗を受け入れて終わりにすることはありません。孤軍奮闘するのではなく、真のチームメンバーとして責任を分かち合いながら、前に進む道を見つけます。</li>
<li><strong>不完全な情報でも決断できる</strong>：スピード感のあるスタートアップでは、完璧な情報がそろうことはほとんどありません。RevenueCatのPMは、意思決定に十分な最低限の情報を集め、素早く判断します。現時点のデータに基づいて行動し、チームを巻き込みながら前進します。そして、新しい情報が入れば、必要に応じて方向転換する柔軟さも持ち合わせています。</li>
<li><strong>深い技術的理解</strong>：RevenueCatは複数のペルソナに向き合うプロダクトですが、その本質は「開発者向けツール」です。そのためPMには、API、分散システム、SDKの制約、データモデルといった技術的な意思決定を理解し、説明し、評価できるレベルの深い技術知識が求められます。</li>
<li><strong>非同期コミュニケーションに強い</strong>：RevenueCatはグローバルなフルリモートチームです。そのためPMは、ドキュメント、Loom、FigJamなどを使った明確で分かりやすい非同期コミュニケーションに長けています。同時に、チームの認識を揃えるために、いつリアルタイムの会話に切り替えるべきかも理解しています。</li>
</ul>
<h2><strong>採用中です！</strong></h2>
<p>RevenueCatでは、プロダクトマネジメントチームをほぼ継続的に拡大しています。意味のあるインパクトを持つ難しい課題を解くことが好きな「ビルダー」で、何万人もの開発者が自分の好きなこと（アプリ開発）で生計を立てられるよう支援したいと考えている方であれば、ぜひお話ししたいです。
<a href="https://jobs.ashbyhq.com/revenuecat">現在募集中のポジションは、キャリアページから</a>ご確認ください！</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[App-to-Web：iOS／Androidアプリにおける外部決済の最新動向と対応ガイド]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/app-to-web-purchase-guidelines</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/app-to-web-purchase-guidelines</guid>
      <pubDate>Thu, 25 Dec 2025 01:59:45 GMT</pubDate>
      <dc:creator><![CDATA[Cameron McAllister]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[App-to-Web に関する判決や規制について知っておくべきすべて]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/223fc94eacd3be11face71d2a84368e3762478f4-2560x1280.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>ここ数年で、Apple と Google はApp-to-Webの道を開き、アプリ内サブスクリプションにおいて外部の購入フローを利用できるようになりました。これにより、<strong>App Store 手数料を回避</strong>しつつ、<strong>価格設定</strong>や<strong>プロモーション</strong>、<strong>チェックアウトの実験</strong>において、より高い柔軟性を持てるようになっています。</p>
<p>この変化の背景には、<a href="https://www.revenuecat.com/blog/growth/apple-anti-steering-ruling-monetization-strategy/">米国における Epic Games 対 Apple の訴訟</a>や、EU の デジタル市場法（DMA） といった司法判断・規制があります。これらによって、Apple と Google は、アプリ内課金（IAP）をめぐる厳格な要件を緩和せざるを得なくなりました。</p>
<p>アプリチームにとって、これは<a href="https://www.revenuecat.com/app-to-web/">App-to-Web</a>の新たな可能性を切り開くものです。しかし一方で、App-to-Web を取り巻く規制は決して単純ではありません。ガイドラインは国やアプリのカテゴリごとに異なり、しかも継続的に追加・変更されているため、「何が許可されていて、何が許可されていないのか」を把握し続けるのは容易ではありません。</p>
<p>そこで本記事では、Apple App Store と Google Play Store の両方について、世界各国における外部決済の最新オプション、利用要件、そして手数料・コミッション体系を整理しました。以下で、知っておくべきポイントをすべて解説します。</p>
<h2><strong>App-to-Webにおける外部決済の仕組み</strong></h2>
<p>ここでは、外部決済がどのように機能するのか、そしてそれをアプリに組み込む主な 2 つの方法について、簡単に整理します。</p>
<p><em>Apple と Google の購入ガイドラインをすぐに確認したい場合は、</em><a href="https://www.revenuecat.com/blog/engineering/app-to-web-purchase-guidelines/#h-in-app-purchases-vs-external-purchases-guidelines-and-regulations-for-apple-and-google"><em>こちら</em></a><em>をクリックしてください。</em></p>
<h3><strong>1. 外部Webリンク</strong></h3>
<p>アプリ内にリンクやボタンを設置し、ユーザーを外部の Web サイト（または WebView）へ遷移させて、そこで購入を完了させる方法です。購入後は、通常バックエンドとの同期によって、その外部購入に基づいてアプリ内のコンテンツや機能をアンロックします。</p>
<p>Apple では、これを <a href="https://developer.apple.com/documentation/storekit/externalpurchaselink">External Purchase Link</a> の利用と呼びます。たとえば、あるストリーミングアプリでは「Web サイトでサブスクライブする」といったボタンを設け、タップすると Web のチェックアウト画面が開くようになっています。支払いが完了すると、ユーザーは新しいサブスクリプションでアプリにログインできる、という流れです。</p>
<h3><strong>2. サードパーティ決済（アプリ内）</strong></h3>
<p>Apple や Google 以外の決済ゲートウェイを、アプリの UI に直接組み込む方法です。購入自体はアプリ内で完結しますが、App Store / Google Play の課金システムは使用しません。これは <strong>代替アプリ内決済（alternative in-app payment）</strong> と呼ばれることもあります。</p>
<p>代表的な例としては、<a href="https://www.revenuecat.com/blog/engineering/can-you-use-stripe-for-in-app-purchases/">アプリ内課金に Stripe を利用</a>したり、App Store の購入ダイアログの代わりに、国別のクレジットカード入力フォームをチェックアウト画面に表示したりするケースがあります。</p>
<p>以前は実装のハードルが非常に高い方法でしたが、Epic Games 対 Apple の判決以降、サードパーティ決済は以前よりも使いやすくなりました。ただし、どちらの方法を選ぶ場合でも、Apple と Google には厳格なルールがあります。</p>
<h4><strong>Apple でサードパーティ決済を実装する場合</strong></h4>
<ul>
<li>いかなる外部購入フローを提供する場合でも、事前に Apple の特別なエンタイトルメントを申請する必要があります</li>
<li>実装内容に応じて、以下のいずれかを使用します</li>
<li>ユーザーを Web チェックアウトへ誘導する場合</li>
<li>アプリ内でサードパーティ決済フローを実行する場合</li>
<li>ユーザーがアプリを離れる、または Apple 以外の方法で支払いを行う前に、Apple が用意した開示用のシートが表示され、App Store で処理される購入ではないことが明示されます</li>
<li>場合によっては、外部購入エンタイトルメントを使用すると、同じ地域・同じストアフロント内で Apple IAP を同時に提供できないことがあります。つまり、そのストアではどちらか一方のみ、という扱いになります</li>
</ul>
<h4><strong>Google でサードパーティ決済を実装する場合</strong></h4>
<ul>
<li>User Choice Billing により、チェックアウト時に Google Play の課金と代替決済手段のどちらかをユーザーが選択できるようになります</li>
<li>この選択肢を提示するために、開発者は Google の代替課金 API を統合する必要があります</li>
<li>External Offers（EEA のみ） では、アプリから直接購入用の Web ページへリンクアウトできます（タップ時に Google から「Play を離れます」という確認表示が出ます）</li>
<li>Apple と同様に、通常の Google Play Billing IAP と外部オファーを同一アプリ内で併用できないケースもあります</li>
</ul>
<h2><strong>アプリ内課金と外部購入の違い：Apple と Google のガイドライン・規制</strong></h2>
<p>Apple App Store および Google Play Store 上のほとんどのアプリは、サブスクリプションやデジタルコンテンツの購入に、各プラットフォームが提供する 標準の課金システム を利用しています。原則として、以下で説明する外部購入プログラムのいずれかに 該当し、かつオプトインしていない限り、アプリ内から別の支払いフローへユーザーを誘導することは認められていません。</p>
<p>通常のアプリ内課金（IAP）では、各ストアが手数料を徴収します。Apple と Google Play の標準手数料はいずれも 30% ですが、IAP 収益が年間 100 万ドル未満の開発者 に対しては 15% に引き下げられます。さらに Google Play では、サブスクリプションの2年目以降の更新分 にも 15% の料率が適用されます。</p>
<p>これらの手数料を回避するために、アプリは 外部購入 を提供することが可能ですが、その場合は以下のガイドラインを遵守する必要があります。</p>
<h3><strong>Apple App Store における外部購入のガイドライン</strong></h3>
<table>
<thead><tr>
<th><p><strong>地域／プログラム</strong></p></th>
<th><p><strong>対象アプリ</strong></p></th>
<th><p><strong>外部決済として許可されている内容</strong></p></th>
<th><p><strong>手数料／コミッション</strong></p></th>
<th><p><strong>補足・参照情報</strong></p></th>
</tr></thead>
<tbody>
<tr>
<td><p>米国：External Purchase Links</p></td>
<td><p>米国 App Store に配信されているすべてのアプリ（ゲームを含む）</p></td>
<td><p>アプリ内に、Web チェックアウトへ遷移する外部決済リンクを設置可能</p></td>
<td><p>0%

App 内課金（IAP）経由で行われた購入については、通常の App Store 手数料（15〜30%）が引き続き適用</p></td>
<td><p><em><a href="https://developer.apple.com/app-store/review/guidelines/#link-to-other-purchase-methods">App Store Review Guidelines（米国）</a></em></p></td>
</tr>
<tr>
<td><p>EU／EEA：オファーの告知・プロモーション（別称／StoreKit External Purchase Link）</p></td>
<td><p>EU または EEA のストアフロントで提供されるすべてのアプリ</p></td>
<td><p>リンクアウト、またはサードパーティ決済による外部購入／支払いが可能</p></td>
<td><p>IAP を使用する場合：

10〜17% のコミッション＋3% の決済処理手数料

外部購入を使用する場合：

2% 初回獲得手数料

＋5〜13%（利用する任意のストアサービスにより変動）

＋年間インストール数が 100 万件を超えた分について、初年度インストールごとに €0.50 の Core Technology Fee</p></td>
<td><p>EU 向け Alternative Terms Addendum へのオプトイン、または EU ストアフロント用の StoreKit External Purchase Link エンタイトルメントが必要

<em><a href="https://developer.apple.com/support/communication-and-promotion-of-offers-on-the-app-store-in-the-eu/">Communication and promotion of offers on the App Store in the EU</a></em></p></td>
</tr>
<tr>
<td><p>EEA：音楽ストリーミングサービス向けエンタイトルメント</p></td>
<td><p>音楽ストリーミングアプリ</p></td>
<td><p>Web サイトへの外部サブスクリプションリンク／ボタンの設置が可能</p></td>
<td><p>最大 約27%（通常の 30% 手数料から、約 3% の決済処理費用を差し引いた水準）

EU Alternative Terms を選択した場合、外部購入には上記 EU の手数料体系（2% + 5〜13% + 追加費用など）が適用され、固定の 27% にはならない</p></td>
<td><p><em><a href="https://developer.apple.com/support/music-streaming-services-entitlement-eea/">Music streaming services entitlement (EEA)</a></em></p></td>
</tr>
<tr>
<td><p>オランダ：出会い系アプリ</p></td>
<td><p>オランダ（NL）ストアフロント専用の出会い系アプリ</p></td>
<td><p>Apple IAP と併用して、代替のアプリ内決済および／または Web 購入への外部リンクが可能</p></td>
<td><p>通常の App Store 手数料 − 3%（例：30% → 27%、小規模事業者／長期サブスクの場合は 15% → 12%）</p></td>
<td><p><em><a href="https://developer.apple.com/support/storekit-external-entitlement/">Distributing dating apps in the Netherlands</a></em></p></td>
</tr>
<tr>
<td><p>韓国：StoreKit External Purchase Entitlement</p></td>
<td><p>韓国 App Store のみで配信され、要件を満たすサードパーティ PSP を利用するすべてのアプリ</p></td>
<td><p>代替のアプリ内決済プロバイダーの利用が可能（Apple IAP は必須ではない）

同一アプリ内で Apple IAP を併用することは不可</p></td>
<td><p>26%</p></td>
<td><p><em><a href="https://developer.apple.com/support/storekit-external-entitlement-kr">Distributing apps using a third‑party payment provider in South Korea</a></em></p></td>
</tr>
<tr>
<td><p>グローバル：リーダーアプリ (External Link Account Entitlement)</p></td>
<td><p>雑誌、新聞、書籍、音声、音楽、動画の提供を主目的とし、既存購入済みコンテンツへのサインインを許可する「リーダー」アプリ</p></td>
<td><p>アカウント作成および管理のために、Web サイトへのリンクを 1 つ設置可能

リンクは必ずブラウザで開く必要あり

同一アプリ内で IAP を提供することは不可</p></td>
<td><p>0%</p></td>
<td><p><em><a href="https://developer.apple.com/support/reader-apps/">Distributing reader apps with a link to your website</a></em></p></td>
</tr>
<tr>
<td><p>日本：モバイル・ソフトウェア競争促進法（MSCA）</p></td>
<td><p>必要なエンタイトルメントを取得した、日本 App Store 上のすべての iOS アプリ（全カテゴリ）</p></td>
<td><p>Out-of-App Offers による App-to-Web 購入（Web チェックアウトへの外部リンク）

Alternative Payment Processing（Apple 以外の PSP）による代替アプリ内決済

Web 購入に関する価格やプロモーションのアプリ内表示

Apple IAP と外部決済オプションを並列で表示・併存させることが必須</p></td>
<td><p>Alternative Payment Processing：21%（軽減ケースでは 10%）

Out-of-App Offers（Web）：15%（軽減ケースでは 10%、更新時にも適用）

Apple IAP：21% ＋ 5% 決済処理手数料（軽減ケースでは 10% ＋ 5%）

代替アプリマーケットプレイス：5% Core Technology Commission</p></td>
<td><p>MSCA に基づく外部決済を、Apple はエンタイトルメント、StoreKit API、開示画面、UI の同等性、既定ブラウザリンク、年齢制限などを通じて実装

<a href="https://www.apple.com/newsroom/2025/12/apple-announces-changes-to-ios-in-japan">Apple の公式発表</a></p></td>
</tr>
</tbody>
</table>
<h3><strong>Google Play Store における外部購入ガイドライン</strong></h3>
<table>
<thead><tr>
<th><p><strong>地域／プログラム</strong></p></th>
<th><p><strong>対象アプリ</strong></p></th>
<th><p><strong>外部決済として許可されている内容</strong></p></th>
<th><p><strong>手数料／コミッション</strong></p></th>
<th><p><strong>補足・参照情報</strong></p></th>
</tr></thead>
<tbody>
<tr>
<td><p>User Choice Billing（UCB）：オーストラリア、ブラジル、インドネシア、日本、南アフリカ、英国、米国、EEA</p></td>
<td><p>オーストラリア、ブラジル、インドネシア、日本、南アフリカ、英国、米国の<em>非ゲーム</em>アプリ

EEA、韓国、インドでは<em>すべての</em>アプリ</p></td>
<td><p>User Choice Billing（UCB）：チェックアウト時に、Google Play の請求システムと代替のアプリ内請求手段のどちらを利用するか、ユーザーに選択肢を提示できる</p></td>
<td><p>Google Play 請求（IAP）を使用する場合：

年間売上 100 万ドルまで：15%

100 万ドル超：30%

外部請求システムを使用する場合：

通常の Google Play サービス手数料から 4% 減（例：15% → 11%、30% → 26%）</p></td>
<td><p><em><a href="https://support.google.com/googleplay/android-developer/answer/13821247">User choice billing on Google Play</a></em></p></td>
</tr>
<tr>
<td><p>EEA：代替請求のみ（Google Play 請求をアプリ内で使用しない）</p></td>
<td><p>EEA のユーザーを対象とし、Google Play Billing を完全に排除して、独自または第三者のアプリ内請求システムのみを使用したいアプリ</p></td>
<td><p>自社（または第三者）の請求システムによるアプリ内取引のみを実施

同一アプリ内で Google Play Billing を併用することは不可</p></td>
<td><p>通常の Google Play サービス手数料から 3% 減（例：15% → 12%、30% → 27%）</p></td>
<td><p><em><a href="https://support.google.com/googleplay/android-developer/answer/14659200?hl=en">EEA alternative‑billing program</a></em></p></td>
</tr>
<tr>
<td><p>EEA：External Offers Program（リンクアウト・プログラム）</p></td>
<td><p>EEA において、アプリ内でオファーを訴求し、購入やサブスクリプションのためにアプリ外（ブラウザ、他ストア、WebView など）へユーザーを送客したいアプリ</p></td>
<td><p>アプリ内にプロモーションユニットやハイパーリンク（リンクアウト）を表示し、
デジタル商品やサブスクリプション購入のために自社サイトなどへ遷移させることが可能</p></td>
<td><p>3% 初回獲得手数料（Initial Acquisition fee）

＋10%（必須）Tier 1 サービス手数料

＋3% / 10%（任意）Tier 2 手数料 (IAP：10%、サブスクリプション：＋3%)

＋アプリカテゴリに応じたインストール単価ベースの可変手数料</p></td>
<td><p>※手数料は加算方式のため、Tier 1 のみの場合でも外部売上に対して 約 13%、Tier 1 + Tier 2 を組み合わせると、オファーによっては 20% 台半ばに達することがあります。

<em><a href="https://support.google.com/googleplay/android-developer/answer/16505463?hl=en">EEA ユーザー向け External Offers Program の変更内容</a></em> (初回獲得率、Tier 1 / Tier 2 手数料、インストール単価手数料表を含む)</p></td>
</tr>
<tr>
<td><p>日本：モバイル・ソフトウェア競争促進法（MSCA）
</p></td>
<td><p>日本向け Google Play に配信されるすべてのアプリ（ゲーム／非ゲーム）、所定のプログラムへの参加が必要
</p></td>
<td><p>User Choice Billing（UCB）：すべてのアプリに対して、Google Play 請求と代替のアプリ内請求を並列表示

App-to-Web 購入：新しい Google Play のリンクアウト・プログラムを通じて Web 購入が可能

Web 購入向けの価格表示やプロモーションをアプリ内で表示可能

Google Play 請求と外部決済オプションは併存可能</p></td>
<td><p>Google Play 請求
年間売上 100 万ドルまで：15%
100 万ドル超：30%

代替アプリ内請求（UCB）
標準サービス手数料から 約 4% 減

App-to-Web 購入
Google プログラムに基づく競争力のある手数料（具体的な率は Google が定義）</p></td>
<td><p>MSCA 対応は、UCB の拡張および新しい App-to-Web プログラムを通じて実施、参加には API、セーフティ／セキュリティ要件の遵守が必要

<a href="https://blog.google/around-the-globe/google-asia/complying-with-mobile-software-competition-act/">Google の公式発表を参照</a></p></td>
</tr>
</tbody>
</table>
<h2><strong>アプリに Web チェックアウトを追加する</strong></h2>
<p>ここまで読み進めているのであれば、App-to-Webの価値についてはすでに納得しているはずです。難しいのは「<em>なぜ</em>やるか」ではなく、どうすれば迅速にリリースでき、コンプライアンスを守りつつ、購入フローを過度に複雑化させずに実装できるかという点です。</p>
<p><a href="https://www.revenuecat.com/blog/company/introducing-revenuecat-billing/">RevenueCat Web</a> は、サブスクリプションアプリに Web チェックアウトを追加するための最もシンプルな方法です。
決済プロバイダー、エンタイトルメント同期、ユーザー識別の紐付け、アナリティクスを個別に組み合わせて構築する必要はありません。すでにモバイルで利用している RevenueCat の構成に、そのまま接続できる 完全な Web 課金スタックを利用できます。ユーザーは Web 上で購入し、iOS や Android アプリですぐにアクセスを解放できます。サブスクライバーのレコードは 1 つ、信頼できる単一のデータソースも 1 つです。</p>
<p>以下は、全体の構成イメージです：</p>
<p><strong>課金エンジンとしての </strong><a href="https://www.revenuecat.com/billing/"><strong>Web Billing</strong></a><strong>： </strong><a href="https://www.revenuecat.com/blog/company/introductory-offers-for-revenuecat-web-billing/">Web Billing</a> は、Web サブスクリプション向けに提供される RevenueCat ネイティブの課金エンジンです。Web 上でのサブスクリプションライフサイクルを管理し、RevenueCat のプロダクト、顧客、エンタイトルメントと完全に統合された状態を保ちます。Web 用に別の課金ロジックを構築・運用する必要はありません。</p>
<p><strong>数分で立ち上げられる Web チェックアウトの表示方法</strong>：Web Billing を有効にすると、複数の方法でユーザーを Web チェックアウトへ誘導できます。</p>
<ul>
<li><strong>アプリ内ペイウォールに </strong><a href="https://www.revenuecat.com/web-purchase-button/"><strong>Web Purchase Button</strong></a><strong> を追加</strong>：任意の RevenueCat Paywall にボタンコンポーネントを追加できます。タップすると Web チェックアウトへ遷移します。</li>
<li><strong>Web Purchase Links</strong>：RevenueCat がホストするチェックアウト用 URL です。<a href="https://www.revenuecat.com/blog/growth/introducing-web-paywall-buttons/">Web Purchase Button</a> の遷移先として使うこともでき、どこにでも配置可能です。追加設定なしで動作し、ログイン済み／匿名のどちらのフローにも対応します。</li>
<li><strong><a href="https://www.revenuecat.com/docs/web/web-billing/paywalls#presenting-a-paywall-from-the-web-sdk">Web SDK を使った Web ペイウォール表示</a></strong>：独自の Web アプリやランディングページがある場合、Purchases.js を使って Web サイト上に RevenueCat Paywall を直接表示し、そのままチェックアウトを完了できます。</li>
</ul>
<p>すべてが一元的に連携。すべては自動的に連携された状態を保ちます。<a href="https://www.revenuecat.com/blog/company/web-overview-dashboard/">Web Overview ダッシュボード</a>では、Web とモバイルの状況を 1 か所で確認できます。Web とモバイルのオファリングは同じカタログ上に存在し、エンタイトルメントは自動で同期され、イベントは共通のアナリティクス基盤に流れ込みます。</p>
<h3><strong>App-to-Webでのコンバージョンを高く保つ方法</strong></h3>
<p>チームがよく懸念するのは、「Web を挟むとネイティブチェックアウトよりコンバージョンが下がるのではないか」という点です。しかし、購入を同一ページ内で完結できる <a href="https://www.revenuecat.com/docs/web/web-billing/paywalls#using-a-paywall-in-a-web-purchase-link">Web ペイウォール</a>にユーザーを送ることで、この問題は簡単に回避できます（いわゆる RevenueCat の Express Purchase ボタンです）。</p>
<p>ブラウザで Apple Pay や Google Pay が利用可能な場合、Web ペイウォール上にウォレットボタンが表示されます。ユーザーは 1 回タップし、ウォレットで確認するだけで購入が完了します。その後、RevenueCat が自動的にアプリ側へアクセス権を同期します。</p>
<p>この仕組みにより、ユーザー体験は非常にシンプルに： アプリ内ペイウォール → Web ペイウォール → ウォレット確認＝アクセス解放</p>
<h3><strong>App-to-Webの活用例</strong></h3>
<ul>
<li><strong>Web オプション付きのアプリ内アップグレード</strong>：アプリ内ペイウォールに「Web で続行」ボタンを表示します。タップすると、同じプランが選択された状態で Web ペイウォールが開き、対応している場合はウォレットボタン（Apple Pay / Google Pay）が表示されます。より速いチェックアウトを求めるユーザーは、ワンタップで購入を完了できます。</li>
<li><strong>復帰（Win-back）向けの割引オファー</strong>：解約済みユーザーに対して、カムバック割引を含むターゲット型のアプリ内ペイウォールを表示します。Web ボタンをタップすると、割引がすでに適用された専用の Web オファーに遷移するため、ユーザーが適切なプランを探し回る必要はありません。</li>
<li><strong>計測可能なキャンペーントラフィック</strong>：UTM パラメータを保持したまま、広告やメールで Web Purchase Link を共有します。購入後はリデンプションのステップでサブスクリプションがユーザーのアプリ内アカウントに紐づけられ、即座にアクセスが解放されます。独自のグルーコードを実装することなく、クリーンなアトリビューションを取得できます。</li>
</ul>
<h2><strong>App-to-Web の実験を始める準備はできましたか？</strong></h2>
<p>App-to-Web を取り巻くガイドラインは今後も変化し続けるため、チェックアウト体験を柔軟かつコンプライアンスに準拠した状態で保つことが、成功の鍵になります。Apple や Google がポリシーを更新するたびに、このガイドも継続的にアップデートしていく予定です。次の App-to-Web 施策を検討する際には、ぜひブックマークしてご確認ください。</p>
<p>独自にチェックアウトコードを実装して試す場合でも、RevenueCat Web に面倒な部分を任せる場合でも、App-to-Web は効率的で柔軟な購入フローを実現できます。健闘を祈ります。ぜひ積極的にテストしてみてください。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[コンテキストが勝敗を分ける：ペイウォールターゲティングにおける“第3の軸”]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/contextual-paywall-targeting</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/contextual-paywall-targeting</guid>
      <pubDate>Wed, 24 Dec 2025 19:21:01 GMT</pubDate>
      <dc:creator><![CDATA[Felix Krause]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[ペイウォールの表示タイミングが摩擦を減らし、コンバージョンを高める理由]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/4d4da53ff314850712efde1bdef804d511621cb7-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>ペイウォールのターゲティングを設計する際、あなたはどのようにユーザーをセグメントしていますか？おそらく多くの場合、「そのユーザーが誰か」、そして「ペイウォールに到達する前に何をしているか」を考えるはずです。しかし、「サブスクライブ」をクリックするかどうかに影響を与える、もう一つのレイヤーがあります。それが<strong>コンテキスト</strong>です。</p>
<p>デモグラフィックは「誰か」を示し、行動データは「何をしているか」を示します。しかし、「<em>いつか</em>」を決めるのはコンテキストです。移動中のユーザーと、ソファでくつろいでいるユーザーとでは、<a href="https://www.revenuecat.com/customers/runna/">Runna</a>のペイウォールに直面したときの意図はまったく異なります。</p>
<p>コンテキストとは、タイミング・動き・心理状態の組み合わせです。ユーザーが「コミットする準備ができている瞬間」を捉えることでもあります。そのタイミングは意図を劇的に左右します。同じユーザーであっても、ある瞬間には「今じゃない」と感じ、1分後には「今ならいける」と感じることがあるのです。すべては<strong>コンテキスト</strong>次第です。</p>
<p>注意が絶えず移り変わり、<a href="https://www.revenuecat.com/state-of-subscription-apps-2025/?#:~:text=82%25%20of%20trial%20starts%20occur%20the%20same%20day%20a%20user%20installs%20an%20app">トライアルの82%が初日に開始</a>される世界では、正しいメッセージを間違った瞬間に出すことが、<a href="https://www.revenuecat.com/blog/growth/fix-onboarding-funnels/">ファネル最大の漏れ</a>になっている可能性があります。</p>
<p>注意と意図がピークに達する、あの貴重な数ミリ秒でペイウォールを表示する方法を学びましょう。そうすれば、「今じゃない」を「サブスクライブ」へと変えることができます。</p>
<h2><strong>タイミングを誤ったペイウォールのコストと、従来型ペイウォール最適化の限界</strong></h2>
<p>毎日、何百万人ものユーザーが「間違った瞬間」にペイウォールに直面しています。電車に乗り遅れそうで急いでいるとき、騒がしい環境で集中しようとしているとき、あるいは単純にサブスクリプションを検討する気分ではないときです。その結果はどうなるでしょうか？フラストレーション、ネガティブなレビュー、そして失われる収益です（しかも、その多くはアプリ側で計測すらされていません）。</p>
<p><strong>その摩擦が、ユーザーをファネルの外へと押し出してしまいます。</strong></p>
<p>この摩擦を解消するために、多くの場合は<a href="https://www.revenuecat.com/blog/growth/offering-customization-examples-targeting/">ペイウォールの最適化</a>に取り組むはずです。一般的に、ペイウォール最適化といえば、デモグラフィックによるセグメント分け、シンプルな行動トリガー、そして大量の A/B テストを指します。しかし、この 2018 年型のアプローチは、もはや通用しなくなっています。<a href="https://www.revenuecat.com/state-of-subscription-apps-2025/?#:~:text=Download%20to%20Paid">State of Subscription Apps report 2025</a>では、平均的なアプリとトップパフォーマーの間に、次のような顕著な差が示されています。</p>
<table>
<thead><tr>
<th><p><strong>指標</strong></p></th>
<th><p><strong>中央値のアプリ</strong></p></th>
<th><p><strong>トップパフォーマーのアプリ</strong></p></th>
</tr></thead>
<tbody>
<tr>
<td><p>35日以内のダウンロード → 有料転換率</p></td>
<td><p>1.9%</p></td>
<td><p>4.6%</p></td>
</tr>
<tr>
<td><p>トライアル → 有料転換率</p></td>
<td><p>34.8%</p></td>
<td><p>51.5%</p></td>
</tr>
</tbody>
</table>
<p>この差の多くは、ペイウォールを<em>いつ</em>表示しているかに起因しています。従来の最適化では、インストール初日のユーザーをすべて同じように扱います。通勤中であろうと、ベッドで横になっていようと、カフェでくつろいでいようと関係ありません。つまり、「<em>いつ</em>」という要素が無視されているのです。</p>
<p>では、ユーザーにとって適切なタイミングでペイウォールを表示するにはどうすればよいのでしょうか。その答えが、<strong>コンテキストターゲティング</strong>です。</p>
<p><a href="https://www.revenuecat.com/feature/targeting/">ペイウォールターゲティング</a>は、特定のセグメントに合わせてペイウォールやオファーを出し分けることを可能にしますが、そこに<em>コンテキスト</em>を加えることで、ユーザーの状況・周囲の環境・その瞬間の行動にまで最適化できるようになります。</p>
<h2><strong>ターゲティングの第3の軸：ユーザーのコンテキスト</strong></h2>
<p>従来のペイウォール最適化は、インストールからの経過時間、利用した機能、デモグラフィック情報、基本的な利用パターンなど、せいぜい5〜10程度のデータポイントに依存しています。しかし、これらのデータだけでは、ユーザーがどんな人物で、どんな生活を送り、どのようにアプリと向き合っているのかを把握するには不十分です。そこで必要になるのが<strong>コンテキスト</strong>です。</p>
<p>スマートフォンは、毎秒<strong>300以上ものコンテキストシグナル</strong>を生成しています。モーションデータ、端末の持ち方、バッテリー残量、周囲の明るさ、接続状況など、その種類は多岐にわたります。</p>
<p>人間のアナリストが同時に意味のある判断を下せる変数は、せいぜい3〜4個程度ですが、機械学習モデルであれば、300以上のシグナルをリアルタイムで分析し、ペイウォールを表示する最適な瞬間を特定できます。もちろん、コンテキスト対応の機械学習が人間の直感を置き換えるわけではありません。人間では処理しきれないスケールのリアルタイムデータによって、その直感を拡張するものです。</p>
<p>これらの追加的なコンテキストシグナルは、デモグラフィックや行動ベースのターゲティングを置き換えるものではありません。それらに第3の次元として加わり、ターゲティングの精度を大きく高めます。たとえば、25歳のビジネスパーソンが理想的な顧客属性だったとしても、会議に向かって移動中で通話をしながらバッテリー残量が5%の状態なのか、ソファでくつろぎながら充電中のスマートフォンでTikTokを眺めているのかによって、コンバージョンの可能性は大きく変わるのです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/84f8827aff9a5e46676c4d3da71c3a8e9dfed229-1600x900.png" alt=""/></figure>
<p>モバイルゲームは、コンテキストターゲティングの効果が特に分かりやすい分野です。没入感は壊れやすく、ユーザーの時間は貴重で、押し付けがましいオファーはゲームのフローを簡単に途切れさせてしまいます。しかし、自然な区切りのタイミングにプロンプトを表示することで、ユーザーのエンゲージメントを損なうことなく、そのコンテキストに寄り添うことができます。その好例が、インディーパズルゲームの Blackbox です。同作は、ペイウォールに表示する「内容」を変えたのではなく、「表示する<em>タイミング</em>」を最適化しただけで、<a href="https://contextsdk.com/case-studies/case-study-blackbox?utm_source=revenuecat&amp;utm_medium=blog&amp;utm_campaign=context-timing-paywalls-2025&amp;utm_content=blackbox-link">ピーク時間帯の収益が50%増加</a>し、その後数か月にわたってコンバージョンの持続的な改善を記録しました。</p>
<h2><strong>ペイウォールのターゲティングを改善する9つの戦略（役割別）</strong></h2>
<p>ペイウォールを表示するタイミングは、返金率や初期チャーンといった下流指標にも影響します。トップアプリ（ダウンロードから有料化まで4.6%）と中央値のアプリ（1.9%）のパフォーマンス差は、価格や機能だけの問題ではありません。<strong>ユーザーが受け入れやすい瞬間</strong>にプロンプトが届いているかどうかが大きく関係しています。コンテキストを意識したタイミング設計を適切に使えば、コンバージョンとユーザー満足度の両方を向上させることができます。目的は<strong>ペイウォールの表示回数を増やすことではなく、より良い瞬間に表示すること</strong>なのです。</p>
<h3><strong>グロースチーム向け：コンテキストを活用したターゲティング戦略</strong></h3>
<p><a href="https://www.revenuecat.com/blog/growth/build-app-growth-team/">グロースチーム</a>は、常に相反する優先事項の中で意思決定を求められています。今四半期の数字を達成しつつ、長期的な<a href="https://www.revenuecat.com/glossary/#lifetime-value-ltv">LTV</a>を最適化し、<a href="https://www.revenuecat.com/glossary/#ltv-cac-ratio">CAC</a>の回収期間を短縮し、そのうえで意味のある実験も回さなければなりません。コンテキストを考慮したタイミング設計は、マネタイズファネル全体の効率を高めることで、こうした課題の解決を後押しします。</p>
<h4><strong>1. A/Bテストを見直す：変数は「タイミング」に置く</strong></h4>
<p>ペイウォールの表示位置に関する<a href="https://www.revenuecat.com/blog/engineering/mobile-app-a-b-price-testing-guide/">A/Bテスト</a>は、結果が出るまでに数週間かかるうえ、本当のリフト要因を見逃してしまうことが少なくありません。注目すべきはどこに出すかではなく、いつ出すかです。表示される「瞬間」に焦点を移し、複数のコンテキストやセグメントに対して小規模な並行実験を行いましょう。その際、必ず真のコントロール群を維持し、評価指標はデイゼロのコンバージョンだけでなく、コホートLTV、返金率、初期チャーンまで含めて判断することが重要です。</p>
<h4><strong>2. その瞬間に合ったプランを提示する</strong></h4>
<p><em>State of Subscription Apps Report 2025</em>によると、1年後のリテンションはプラン種別によって大きく異なります（年額：約44.1%、月額：約17.0%、週額：約3.4%）。であれば、ユーザーのコンテキストに応じて提示するプランを変えるという発想は自然ではないでしょうか。</p>
<p>たとえば、夜の落ち着いた時間帯で、端末が静止しており、セッションも長くエンゲージメントが深い状況では、年額プランや<a href="https://www.revenuecat.com/blog/growth/lifetime-subscriptions/">ライフタイムサブスクリプション</a>を提示する。一方、移動中で短時間のセッションでは、週額や月額といった軽い選択肢を前面に出す。その有効性は、初回コンバージョンだけでなく、リテンションや返金行動を通じて検証すべきです。</p>
<h4><strong>3. あえて「出さない」ことで、より多くを獲得する</strong></h4>
<p>直感に反するように聞こえるかもしれませんが、<a href="https://www.revenuecat.com/blog/growth/first-growth-hire-subscription-app/">グロースチーム</a>が取りうる最も強力な一手のひとつは、マネタイズの提示を抑制することです。たとえば、デーティングアプリのWizzでは、提示回数を約50%削減しつつ、受け入れやすいコンテキストに合わせてオファーを出した結果、<a href="https://contextsdk.com/case-studies/case-study-wizz?utm_source=revenuecat&amp;utm_medium=blog&amp;utm_campaign=context-timing-paywalls-2025&amp;utm_content=wizz-link">主要オファーフローで81%のリフト</a>を達成しました。</p>
<p>教訓はシンプルです。意図が低い状態では抑制し、総表示回数を増やすのではなく、表示する瞬間を再配分する。その結果、ユーザーは中断されている感覚が減り、コントロール感を持てるようになります。実際、上記の実験ではLTVも約20%向上しました。</p>
<h3><strong>プロダクトマネージャー向け：コンテキストを活用したターゲティング戦略</strong></h3>
<p>プロダクトマネージャーは、体験全体のオーナーです。すべてのマネタイズ施策は、「探索を促すこと」と「体験を中断すること」のトレードオフの上に成り立っています。だからこそ、タイミングを単なるルールではなく、プロダクトの一部として扱うことが重要です。そうすることで、ユーザーのフローを守りながら、意図（購入意欲）を的確に捉えることができます。</p>
<h4><strong>4. タイミングをUXの一部として設計する</strong></h4>
<p>優れたプロダクト体験は、まるでユーザーの心を読んでいるかのように、「必要なものを、必要なタイミングで」提示します。</p>
<p>単一のゲートで一律に制御するのではなく、コンテキストを理解するアプリでは、アクセスやプロンプトがその瞬間に応じて変化します。たとえばフィットネスアプリであれば、夜にベッドで横になっているユーザーと、ランニング中のユーザーとでは、適切な体験はまったく異なります。静止しているタイミングでは、プラン詳細を含むフルのアップグレード画面を表示する。一方、移動中であればワークアウト自体はそのまま続行できるようにしつつ、「アップグレードで◯％節約」といった軽いナッジだけを添える。同じ機能でも、タイミングを変えることで摩擦は大きく減らせます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/ef6ba7255d99e16ed851eef8e066dcc2543e1b14-1600x900.png" alt=""/></figure>
<h4><strong>5. コンテキストを尊重したプログレッシブ・ディスクロージャー</strong></h4>
<p>意思決定は、ユーザーがそれに向き合える状態のときに提示しましょう。明らかに検討余地の低い状態（Appleの運転集中モード中、通話中、海外滞在中など）ではあえて表示を控え、セッションが長くなったり、動きが落ち着いたり、エンゲージメントが深まったタイミングでフォローします。これは機会を減らすことではありません。機会を「ふさわしい場所」に配置しているだけです。</p>
<h4><strong>6. 「このアプリ、わかってる」と感じさせる瞬間を設計する</strong></h4>
<p>プロダクト体験の究極形は、ユーザーに「このアプリ、自分のことを<em>ちゃんとわかってる</em>」と思ってもらえる瞬間を生み出すことです。こうした瞬間はロイヤルティを高め、口コミを生み、<a href="http://revenuecat.com/blog/growth/what-is-lifetime-value-ltv-apps/">LTV</a>を押し上げます。たとえば、朝のルーティン中である7時に5分間の瞑想セッションを提案し、夜ベッドに入った10時には睡眠用トラックを勧めてくる瞑想アプリは、ユーザーの生活に自然に寄り添っていると感じられます。まるで<em>最初からそう設計されていた</em>かのように。</p>
<p>ただし、時間は数あるシグナルのひとつにすぎません。セッションの深さ、ユーザーの動き、バッテリー残量、接続状況などを組み合わせて、「いつ」「何を」提示するかを判断することが重要です。こうした小さくても適切な判断を積み重ねることで、信頼が築かれ、アップグレードの提案も“割り込み”ではなく、体験の一部として受け取られるようになります。</p>
<h3><strong>技術リーダー向け：コンテキストターゲティング戦略</strong></h3>
<p>エンジニアリングリーダーが問うのは、「動くかどうか」だけではありません。「信頼できるか」「スケールするか」「継続的に保守できるか」という視点も欠かせません。</p>
<p>コンテキストを考慮したターゲティングは大きな価値をもたらしますが、新しい仕組みを導入する際は、複数の観点から評価することが重要です。具体的には、実装の複雑さ、保守コスト、スケーラビリティ、プライバシーへの影響、そしてプロダクト全体の戦略との整合性といった点を総合的に検討する必要があります。</p>
<h4><strong>7. 既存のデバイスシグナルを活用し、権限リクエストを最小限に抑える</strong></h4>
<p>多くの有用なシグナルは、新たな権限リクエストを必要とせず、標準APIから取得できます。たとえば、時刻、バッテリー残量、デバイスの向き、ネットワーク種別、画面の状態などです。</p>
<p>一方で、特定のモーションデータやフィットネスデータの取得にユーザーの同意が必要な場合は、その境界を尊重し、段階的に機能を縮退（graceful degradation）させる設計が重要です。権限の取得範囲を広げなくても、意味のあるコンテキストは十分に得られます。</p>
<h4><strong>8. レイテンシ・コスト・信頼性を考慮したオンデバイス推論</strong></h4>
<p>Core ML や ML Kit を用いてモデルをオンデバイスで実行することで、意思決定をユーザーの手元に近づけられます。レイテンシはミリ秒単位まで短縮され、セッション中にリアルタイムでタイミングを調整できます。また、中央サーバーではなく端末側で処理を行うため、サーバーコストを抑えられる点も大きな利点です。ネットワーク往復に依存しないため、Wi-Fi・モバイル通信・オフライン環境でも動作し、信頼性も向上します。</p>
<h4><strong>9. リリースと実験を切り離す</strong></h4>
<p>アプリのリリースにタイミング変更を含めると、実装、QA、審査、ストア承認、ユーザーへの配布といった工程がボトルネックになり、単純なテストでも数週間かかることがあります。</p>
<p>そこで、リモート設定やペイウォール管理機能を活用し、タイミングルールやモデル更新をOTA（Over-the-air）で配信しましょう。指標が悪化した場合はロールバックも可能です。この方法であれば、パフォーマンスの低いモデルをアプリ更新なしで24時間以内に検知・修正できます。
結果として、プロダクトチームはコア機能の開発に集中でき、マネタイズ施策は設定レベルで安全に高速イテレーションを回せるようになります。</p>
<h2><strong>直感を超えて：コンテキストは「標準」になる</strong></h2>
<p>手動による従来型のペイウォール最適化は、すでにパフォーマンスの限界に達しています。最も成果を出しているアプリでさえ、ダウンロードから有料化への転換率は5%未満にとどまっている現状を考えると、改善の余地はまだ非常に大きいと言えます。その解決策となり得るのが、コンテキストインテリジェンスです。</p>
<p>現在、<a href="https://www.revenuecat.com/state-of-subscription-apps-2025/?#:~:text=35%25%2B-,Subscriptions%20aren%E2%80%99t%20enough%20anymore%20%E2%80%93%2035%25%20of%20apps%20now%20mix,-subscriptions%20with%20consumables">全体の35%のアプリがサブスクリプションに加えて消耗型課金やライフタイム購入を組み合わせており</a>、AIアプリはすでに他カテゴリを上回る成果を出しています。アプリの未来は<strong>ハイパーパーソナライゼーション</strong>にあり、ペイウォールターゲティングの進化の方向性も明確です。</p>
<ul>
<li><strong>2020–2022</strong>：ペイウォールの文言や表示位置に対する基本的なA/Bテスト</li>
<li><strong>2023–2025</strong>：行動データやデモグラフィックに基づくターゲティング</li>
<li><strong>2026年以降</strong>：機械学習によるリアルタイムなコンテキスト最適化</li>
</ul>
<p>ハイパーパーソナライゼーションが当たり前になるにつれ、ペイウォール最適化の成否は「<em>何を</em>見せるか」から「<em>いつ</em>見せるか」へと重心が移っていきます。セッションが短く、ユーザー獲得コストが高騰するモバイル環境においては、デザインやコピーを微調整すること以上に、ユーザーの意図と合致したタイミングでペイウォールを表示することが、成果を左右する決定的な要因になるのです。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Google Play の「アドオン付きサブスク」完全ガイド：マルチラインサブスクリプション入門]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/subscription-add-ons</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/subscription-add-ons</guid>
      <pubDate>Wed, 24 Dec 2025 17:52:36 GMT</pubDate>
      <dc:creator><![CDATA[Jaewoong Eum]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[マルチラインサブスクリプションとは何かを確認し、効果的に活用するための実践的な戦略を紹介したうえで、Play Billing Library を直接使った実装の詳細を順を追って解説します。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/63177d2870579d1d257a5a66c6e197e29bcd571b-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>Android におけるサブスクリプションのマネタイズは、ここ数年で大きく進化してきました。2022 年にベースプランとオファーが導入されたことで、Google は開発者に対し、サブスクリプション商品をより柔軟に設計できる仕組みを提供しました。そして今回、Google は<strong> Subscription with Add-ons</strong>（マルチラインサブスクリプション、またはサブスクリプション向けマルチプロダクトチェックアウトとも呼ばれます）という新たな大きな一歩を踏み出しました。この機能により、複数のサブスクリプション商品を 1 回の購入にまとめて提供でき、ユーザーと開発者の双方にとって、よりシンプルで分かりやすい体験を実現できます。</p>
<p>この記事では、マルチラインサブスクリプションとは何かを整理したうえで、その効果的な活用戦略を紹介し、Play Billing Library を直接使った実装方法を順を追って解説します。最後に、<a href="https://www.revenuecat.com/">RevenueCat</a> を使うことで、この一連のプロセスをどのようにシンプルにできるのかを見ていきます。</p>
<h2><strong>マルチラインサブスクリプションとは？</strong></h2>
<p>Subscription with Add-ons とは、複数のサブスクリプション商品を 1 つにまとめ、単一のサブスクリプションとして購入・請求・管理できるようにする機能です。ベースとなるサブスクリプションと追加のプレミアム機能を、それぞれ別々に購入させる必要はなく、すべてを 1 回のチェックアウトフローで提供できます。</p>
<p>たとえば、ベースとなる「Premium」プランを提供している音楽ストリーミングアプリを考えてみましょう。これまでは、「HiFi オーディオ」や「オフライン再生」といった追加機能を有料アドオンとして提供する場合、ユーザーはそれぞれを個別に購入・管理する必要がありました。その結果、決済は複数回に分かれ、更新日もバラバラになり、サブスクリプション管理画面には複数の項目が並ぶことになります。Subscription with Add-ons を使えば、ユーザーは「Premium」プランをベースに、必要なアドオンを自由に組み合わせて選択し、1 回の購入で完了できます。表示される価格は 1 つにまとまり、チェックアウトも 1 回だけ、更新日はすべて同一の日付に同期されます。</p>
<p>なお、用語は少し分かりづらいかもしれません。Google では正式名称として 「Subscription with Add-ons」 を使っていますが、1 回の購入に複数の明細（ラインアイテム）が含まれることから 「マルチラインサブスクリプション」、あるいはチェックアウト体験に焦点を当てて 「マルチプロダクトチェックアウト」 と呼ばれることもあります。いずれも、同じ機能を指しています。</p>
<h3><strong>バンドルの仕組み</strong></h3>
<p>ユーザーが Subscription with Add-ons を購入すると、商品リストの先頭にあるアイテムが<strong>ベースアイテム</strong>となり、それ以降に続くすべてのアイテムは<strong>アドオン</strong>として扱われます。この区別は重要で、ベースアイテムがバンドル全体の挙動を決定します。たとえば、ベースとなるサブスクリプションが解約されると、紐づいているすべてのアドオンも自動的に解約されます。アドオンは、ベースサブスクリプションなしでは単独で存在することはできません。</p>
<p>請求サイクルの調整といった複雑な処理は、Google Play が自動的に行います。既存のサブスクリプションに新しいアドオンを追加した場合、Google Play はアドオンの更新日がベースアイテムと一致するように、日割り計算による請求額を算出します。その結果、最初の調整期間が終わると、バンドル内のすべてのアイテムが同じ更新日にまとめて更新されるようになります。同様に、ユーザーがアドオンを削除した場合でも、そのアドオンは現在の請求期間の終了までは引き続き利用できますが、次回の更新は行われません。</p>
<h3><strong>理解しておくべき主な制約</strong></h3>
<p>実装に進む前に、この機能の使い方を左右する重要な制約がいくつかあります。</p>
<ol>
<li>すべてのアイテムは同一の請求期間である必要があります。Subscription with Add-ons に含めるすべてのアイテムは、同じ請求期間でなければなりません。年額のベースサブスクリプションに月額のアドオンを組み合わせる、またはその逆は<strong>できません</strong>。ベースプランが月額課金の場合、すべてのアドオンも月額である必要があります。これは、Google Play がすべてのアイテムの更新日を同期させる必要があるためです。</li>
<li>自動更新サブスクリプションのみ対応しています。この機能は自動更新型サブスクリプションでのみ利用できます。期間が固定され、自動更新されないプリペイドサブスクリプションは、ベースアイテムとしてもアドオンとしても使用できません。</li>
<li>1 回の購入あたり最大 50 アイテムまでという上限があります。Subscription with Add-ons の 1 回の購入に含められるアイテム数は最大 50 件です。多くのアプリではこの上限に達することはありませんが、高度にモジュール化されたサブスクリプション設計を検討している場合は把握しておく必要があります。</li>
<li>すべての地域で利用できるわけではありません。現時点のドキュメントでは、インドと韓国では Subscription with Add-ons がサポートされていません。これらの地域のユーザーには、代替となる購入フローを用意する必要があります。</li>
<li>一時停止と再開はサポートされていません。アドオンを含むサブスクリプションでは、サブスクリプションの一時停止および再開機能を利用できません。アプリがこの機能に大きく依存している場合、アドオンによるメリットがこの制約を上回るかどうかを慎重に検討する必要があります。</li>
</ol>
<h2><strong>マルチラインサブスクリプションの活用戦略</strong></h2>
<p>仕組みを理解することと、この機能を効果的に活用することは別物です。実際に価値を最大化するには、マネタイズ戦略全体を踏まえて考える必要があります。ここでは、Subscription with Add-ons を活用するうえで参考になる、いくつかのアプローチを紹介します。</p>
<h3><strong>モジュール型機能戦略</strong></h3>
<p>最も分かりやすい活用方法のひとつが、ユーザーが必要な機能だけを選んで構成できるモジュール型サブスクリプションです。Basic / Standard / Premium といった事前定義された複数のプランを用意する代わりに、ベースとなるサブスクリプションと、ユーザーが自由に組み合わせられるアドオンの一覧を提供します。</p>
<p>たとえば、生産性向上アプリであれば、タスク管理や基本的なコラボレーション機能を含むベースサブスクリプションを用意し、アドオンとして高度なレポート機能、チーム管理機能、外部サービス連携、ストレージ容量の追加などを提供できます。高度なレポートだけが必要なユーザーはその機能のみを追加し、パワーユーザーは複数のアドオンを組み合わせる、といった使い方が可能です。このアプローチでは、「本当に必要なものにだけ支払っている」という感覚をユーザーに与えられるため、コンバージョン率の向上が期待できます。</p>
<p>この戦略を成功させるうえで重要なのは、ベースサブスクリプション単体でも十分な価値を提供できていることです。ベースが物足りなかったり不完全に感じられると、アドオンが柔軟性ではなく「小刻みな追加課金（ニッケル・アンド・ダイム）」として受け取られてしまう可能性があります。</p>
<h3><strong>プレミアムアップグレード戦略</strong></h3>
<p>もうひとつのアプローチは、アドオンを使ってユーザーを段階的にアップグレードしていく戦略です。まずはベースサブスクリプションで利用を開始してもらい、その後、利用状況やユーザー体験の節目に応じて、アドオンをアップセルとして提案します。</p>
<p>たとえば写真編集アプリの場合、ベースサブスクリプションには標準的な編集ツールを含め、利用が進むにつれて、プロ向けプリセット、高度なレタッチ機能、編集後の写真を保存するためのクラウドストレージといったアドオンを提供できます。従来のプラン階層を切り替えるアップグレードと異なり、アドオンであれば、ユーザーは既存の機能を維持したまま新しい機能を追加できます。そのため、「今のプランを失う」という感覚が生まれにくい点が大きな利点です。</p>
<p>この戦略は、パーソナライズされたレコメンデーションと組み合わせることで、特に効果を発揮します。ユーザー行動を分析することで、そのユーザーが価値を感じやすいタイミングで、適切なアドオンを提示できるようになります。</p>
<h3><strong>バンドル割引戦略（Bundle and Save）</strong></h3>
<p>Subscription with Add-ons では機能を個別に選択できる一方で、魅力的なバンドルを提供するという使い方も可能です。価格設定を工夫することで、アドオンを単体で購入するよりも、まとめて購入したほうがお得に感じられる構成を作れます。</p>
<p>たとえば、ベースサブスクリプションが月額 $9.99、アドオンがそれぞれ月額 $4.99 のものが3つある場合、個別に購入すると合計は $14.97 になります。これを、3つのアドオンをまとめたバンドルとして月額 $11.99 で提供すれば、複数の機能を求めるユーザーにとっては明確にお得な選択肢になります。このように、ユーザーはより多くの機能を割安で利用でき、事業者側は ARPU（ユーザーあたりの平均収益）を引き上げる ことができます。また、1つだけアドオンを購入するユーザーよりも高い収益を確保できる点も、この戦略のメリットです。</p>
<h3><strong>複雑さの管理</strong></h3>
<p>アドオンの活用におけるリスクのひとつは、選択肢が多くなりすぎてしまうことです。あまりにも多くのオプションが並ぶと、ユーザーは何を選べばよいのか分からなくなり、意思決定ができずに購入そのものをやめてしまう可能性があります。そのため、アドオンの数は通常 3〜5個程度の扱いやすい範囲に絞ることを検討するとよいでしょう。また、それぞれのアドオンについて「何が含まれているのか」「どのようなユーザーに向いているのか」を明確に説明することが重要です。さらに、おすすめのバンドルや「すべて選択」といったオプションを用意すれば、フル機能を求めるユーザーにとって、選択の手間を減らしつつ、スムーズに購入へ進めるようになります。</p>
<h2><strong>RevenueCat を使わずに Subscription with Add-ons を実装する</strong></h2>
<p>ここからは、Google Play Billing Library を直接使用して Subscription with Add-ons を実装する方法を順に見ていきましょう。この実装には Play Billing Library v5 以上 が必要です。ただし、すべての機能とセキュリティアップデートに確実にアクセスするために、最新バージョン（現時点では v8） を使用することをおすすめします。</p>
<h3><strong>Google Play Console でプロダクトの設定を行う</strong></h3>
<p>コードを書く前に、Google Play Console でサブスクリプションプロダクトを設定する必要があります。朗報なのは、既存のサブスクリプションプロダクトは特別な設定なしでアドオンとして提供できるという点です。別途「アドオン用」のプロダクトタイプを作成する必要はありません。自動更新サブスクリプションであれば、ベースアイテムにもアドオンにもなり得ます。</p>
<p>プロダクトを作成する際は、バンドルに含めたいすべてのアイテムが同じ請求期間でそろっている必要があることを忘れないでください。月額と年額の両方を提供したい場合は、請求期間ごとに別々のベースプランを作成する必要があります。</p>
<h3><strong>プロダクト詳細を取得する</strong></h3>
<p>実装の最初のステップは、Google Play から利用可能なプロダクトを問い合わせることです。提供したいすべてのサブスクリプションプロダクトの詳細を取得するために、 <code>queryProductDetailsAsync</code> メソッドを使用します。</p>
<pre><code class="language-kotlin">class BillingManager(private val context: Context) {
    private lateinit var billingClient: BillingClient

    private val productIds = listOf(
        &quot;premium_base_monthly&quot;,
        &quot;hifi_addon_monthly&quot;,
        &quot;offline_addon_monthly&quot;,
        &quot;family_addon_monthly&quot;
    )

    fun initialize() {
        billingClient = BillingClient.newBuilder(context)
            .setListener { billingResult, purchases -&gt;
                handlePurchasesUpdated(billingResult, purchases)
            }
            .enablePendingPurchases()
            .build()

        billingClient.startConnection(object : BillingClientStateListener {
            override fun onBillingSetupFinished(billingResult: BillingResult) {
                if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
                    querySubscriptionProducts()
                }
            }

            override fun onBillingServiceDisconnected() {
\/\/ Implement retry logic here
            }
        })
    }

    private fun querySubscriptionProducts() {
        val productList = productIds.map { productId -&gt;
            QueryProductDetailsParams.Product.newBuilder()
                .setProductId(productId)
                .setProductType(BillingClient.ProductType.SUBS)
                .build()
        }

        val params = QueryProductDetailsParams.newBuilder()
            .setProductList(productList)
            .build()

        billingClient.queryProductDetailsAsync(params) { billingResult, productDetailsList -&gt;
            if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
\/\/ Store product details for later use when launching purchase flow
                handleProductDetails(productDetailsList)
            }
        }
    }
}</code></pre>
<p>このクエリは、各サブスクリプションプロダクトに対応する <code>ProductDetails</code> オブジェクトを返します。これらのオブジェクトには、ユーザーに価格を表示したり、購入フローを開始したりするために必要なすべての情報が含まれています。具体的には、利用可能なベースプランやオファー、そのオファーに紐づくオファートークンなどが含まれます。</p>
<h3><strong>複数アイテムを含む購入フローの開始</strong></h3>
<p>ユーザーが希望するサブスクリプション構成（ベースサブスクリプション＋選択したアドオン）を選択したら、複数の <code>ProductDetailsParams</code> オブジェクトを指定して購入フローを起動します。ここで重要なのは、リストの先頭にあるアイテムがベースアイテムとして扱われるという点です。そのため、必ずベースとなるサブスクリプションを最初に追加する ようにしてください。</p>
<pre><code class="language-kotlin">fun launchSubscriptionWithAddons(
    activity: Activity,
    baseProductDetails: ProductDetails,
    baseOfferToken: String,
    addonProductDetailsList: List&lt;Pair&lt;ProductDetails, String&gt;&gt;
) {
    val productDetailsParamsList = mutableListOf&lt;BillingFlowParams.ProductDetailsParams&gt;()

\/\/ Add the base subscription first - this is crucialval baseParams = BillingFlowParams.ProductDetailsParams.newBuilder()
        .setProductDetails(baseProductDetails)
        .setOfferToken(baseOfferToken)
        .build()
    productDetailsParamsList.add(baseParams)

\/\/ Add each selected add-onfor ((addonDetails, offerToken) in addonProductDetailsList) {
        val addonParams = BillingFlowParams.ProductDetailsParams.newBuilder()
            .setProductDetails(addonDetails)
            .setOfferToken(offerToken)
            .build()
        productDetailsParamsList.add(addonParams)
    }

    val billingFlowParams = BillingFlowParams.newBuilder()
        .setProductDetailsParamsList(productDetailsParamsList)
        .build()

    val billingResult = billingClient.launchBillingFlow(activity, billingFlowParams)

    if (billingResult.responseCode != BillingClient.BillingResponseCode.OK) {
\/\/ Handle error - perhaps show a message to the user
        handleBillingError(billingResult)
    }
}</code></pre>
<p>リスト内の各アイテムは 一意である必要があります。同じプロダクト ID を持つ <code>ProductDetailsParams</code> オブジェクトを複数含めることはできません。また、オファートークンは、そのアイテムに対してどのベースプランまたはオファーを使用するかを指定するものです。 <code>ProductDetails.subscriptionOfferDetails()</code> メソッドから取得した 有効なオファートークン を必ず指定する必要があります。</p>
<h3><strong>購入の処理</strong></h3>
<p>ユーザーが購入フローを完了すると、 <code>PurchasesUpdatedListener</code> が結果を受け取ります。Subscription with Add-ons の処理は、基本的には単一のサブスクリプションを処理する場合と同じですが、ひとつ重要な違いがあります。それは、この購入によって 複数のアイテム分のエンタイトルメントが付与される という点です。</p>
<pre><code class="language-kotlin">private fun handlePurchasesUpdated(
    billingResult: BillingResult,
    purchases: List&lt;Purchase&gt;?
) {
    when (billingResult.responseCode) {
        BillingClient.BillingResponseCode.OK -&gt; {
            purchases?.forEach { purchase -&gt;
                processPurchase(purchase)
            }
        }
        BillingClient.BillingResponseCode.USER_CANCELED -&gt; {
\/\/ User canceled the purchase flow
        }
        else -&gt; {
\/\/ Handle other error codes
        }
    }
}

private fun processPurchase(purchase: Purchase) {
\/\/ For Subscription with Add-ons, getProducts() returns all product IDsval purchasedProductIds = purchase.products

\/\/ Verify the purchase with your backend server
    verifyPurchaseWithBackend(purchase) { isValid -&gt;
        if (isValid) {
\/\/ Grant entitlements for all purchased productsfor (productId in purchasedProductIds) {
                grantEntitlement(productId)
            }

\/\/ Acknowledge the purchase if not already acknowledgedif (!purchase.isAcknowledged) {
                acknowledgePurchase(purchase)
            }
        }
    }
}

private fun acknowledgePurchase(purchase: Purchase) {
    val params = AcknowledgePurchaseParams.newBuilder()
        .setPurchaseToken(purchase.purchaseToken)
        .build()

    billingClient.acknowledgePurchase(params) { billingResult -&gt;
        if (billingResult.responseCode != BillingClient.BillingResponseCode.OK) {
\/\/ Handle acknowledgment failure
        }
    }
}</code></pre>
<p><code>purchase.products</code> プロパティには、その購入に含まれるすべてのプロダクト ID のリストが返されます。それぞれのプロダクトに対してエンタイトルメントを付与するとともに、必ずバックエンドサーバーで購入の検証を行ったうえで処理するようにしてください。</p>
<h3><strong>既存の Subscription with Add-ons を変更する</strong></h3>
<p>ユーザーは、既存のサブスクリプションに 新しいアドオンを追加したり、不要になったアドオンを削除したりしたい場合があります。既存の Subscription with Add-ons を変更する際には、現在の購入トークン（purchase token）を指定し、あわせて 置き換えモード（replacement mode） を設定する必要があります。</p>
<pre><code class="language-kotlin">fun modifySubscriptionAddons(
    activity: Activity,
    currentPurchaseToken: String,
    baseProductDetails: ProductDetails,
    baseOfferToken: String,
    newAddonsList: List&lt;Pair&lt;ProductDetails, String&gt;&gt;
) {
    val productDetailsParamsList = mutableListOf&lt;BillingFlowParams.ProductDetailsParams&gt;()

\/\/ Include the base subscription
    productDetailsParamsList.add(
        BillingFlowParams.ProductDetailsParams.newBuilder()
            .setProductDetails(baseProductDetails)
            .setOfferToken(baseOfferToken)
            .build()
    )

\/\/ Include all add-ons (both existing ones to keep and new ones to add)for ((addonDetails, offerToken) in newAddonsList) {
        productDetailsParamsList.add(
            BillingFlowParams.ProductDetailsParams.newBuilder()
                .setProductDetails(addonDetails)
                .setOfferToken(offerToken)
                .build()
        )
    }

\/\/ Configure the subscription updateval subscriptionUpdateParams = BillingFlowParams.SubscriptionUpdateParams.newBuilder()
        .setOldPurchaseToken(currentPurchaseToken)
        .setSubscriptionReplacementMode(
            BillingFlowParams.SubscriptionUpdateParams.ReplacementMode.CHARGE_PRORATED_PRICE
        )
        .build()

    val billingFlowParams = BillingFlowParams.newBuilder()
        .setProductDetailsParamsList(productDetailsParamsList)
        .setSubscriptionUpdateParams(subscriptionUpdateParams)
        .build()

    billingClient.launchBillingFlow(activity, billingFlowParams)
}</code></pre>
<p>サブスクリプションを変更する際は、変更後も有効なままにしたいすべてのアイテムをリストに含める必要があります。たとえば、ベースサブスクリプションと既存のアドオンを維持したまま新しいアドオンを追加したい場合は、その 3つすべてをプロダクトリストに含める必要があります。既存のアドオンをリストから除外すると、そのアドオンは削除されます。</p>
<p>置き換えモード（replacement mode） は、請求の切り替えを Google Play がどのように処理するかを決定します。 <code>CHARGE_PRORATED_PRICE</code> は、新しく追加されたアイテムの更新日がベースサブスクリプションと揃うように、日割り計算による請求を行います。ユースケースに応じて、 <code>CHARGE_FULL_PRICE</code> や <code>WITHOUT_PRORATION</code> といった他のモードを使用することも可能です。.</p>
<h3><strong>サーバーサイドでの検証とリアルタイム通知</strong></h3>
<p>本番環境のアプリでは、バックエンドサーバーで購入を検証し、Real-Time Developer Notifications（RTDN） を処理して、Google Play とエンタイトルメント情報を常に同期させる必要があります。</p>
<p>Subscription with Add-ons に関して注意すべき重要な点があります。複数アイテムを含む購入では、RTDN メッセージに <code>subscriptionId</code> フィールドが含まれません。これは、ひとつの購入に複数のサブスクリプションが含まれるためです。その代わりに、通知に含まれる <code>purchaseToken</code> を使用して Google Play Developer API に問い合わせ、付与されているすべてのアイテムの一覧を取得する必要があります。</p>
<pre><code class="language-kotlin">\/\/ This is for your backend serverfun handleRealTimeNotification(notification: DeveloperNotification) {
    val purchaseToken = notification.subscriptionNotification.purchaseToken

\/\/ Query the Google Play Developer API for full purchase detailsval subscriptionPurchase = playDeveloperApi
        .purchases()
        .subscriptionsv2()
        .get(packageName, purchaseToken)
        .execute()

\/\/ The lineItems field contains all items in the subscriptionval lineItems = subscriptionPurchase.lineItems

    for (item in lineItems) {
        val productId = item.productId
        val expiryTime = item.expiryTime
        val autoRenewingPlan = item.autoRenewingPlan

\/\/ Update your entitlement database based on each item's status
        updateEntitlement(purchaseToken, productId, expiryTime, autoRenewingPlan)
    }
}</code></pre>
<p>API レスポンスに含まれる <code>lineItems</code> リストには、各サブスクリプションアイテムの詳細が含まれています。具体的には、プロダクト ID、有効期限、更新ステータスなどの情報です。これにより、サブスクリプションバンドルを構成する 各アイテムごとにエンタイトルメントを個別に管理・追跡することが可能になります。</p>
<h3><strong>エッジケースの取り扱い</strong></h3>
<p>Subscription with Add-ons を実装する際には、いくつか注意すべきエッジケースがあります。</p>
<p>猶予期間（グレース期間）やアカウント保留は、サブスクリプションバンドル全体に適用されます。更新時の支払いが失敗した場合、どのアイテムで失敗が発生したかに関係なく、すべてのアイテムが同時にリカバリー期間に入ります。なお、猶予期間の長さは、アクティブなアイテムの中で 最も短い猶予期間設定を持つアイテム によって決まります。</p>
<p>一方で、返金や失効（revoke）はアイテム単位で処理可能です。Google Play Developer API を使用すれば、サブスクリプション全体に影響を与えることなく、特定のアドオンのみを取り消すことができます。これは、ユーザーがベースサブスクリプションは継続したまま、特定のアドオンだけの返金を希望する場合に有用です。</p>
<p>価格変更については、単一アイテムのサブスクリプションと同様のルールが適用されますが、複数アイテムで 未承認の価格改定（オプトイン）が存在する場合 は、追加の複雑さが生じます。未処理のオプトイン価格改定は、すべて 同じ更新日時に新価格が適用される必要があります。もし、あるアイテムにユーザーがまだ承認していない価格改定が存在する場合、その改定と整合しない他のアイテムの新たな価格改定は、無視される可能性があります。</p>
<h2><strong>RevenueCat で実装をシンプルにする</strong></h2>
<p>Play Billing Library を使って Subscription with Add-ons を直接実装すれば、確かに細かな挙動まで完全にコントロールできます。しかしその一方で、実装と運用の複雑さ、そして 時間的コスト（これも立派なリソースです） を大きく抱えることになります。請求クライアントのライフサイクル管理、クエリのキャッシュ、購入検証、エンタイトルメント管理、リアルタイム通知、そしてこれまでに触れてきた数々のエッジケースへの対応が必要です。</p>
<p>ここで大きな価値を発揮するのが RevenueCat です。RevenueCat は Play Billing Library の複雑さを抽象化し、複数プラットフォームにまたがるサブスクリプション管理を単一の API で提供します。特に Subscription with Add-ons においては、複数アイテム購入の扱い、エンタイトルメントの追跡、サーバーサイドでの検証といった煩雑な処理を、すべて自動で処理してくれます。</p>
<h3><strong>RevenueCat でのプロダクト設定</strong></h3>
<p>RevenueCat では、ダッシュボード上で <strong>Product</strong> を作成し、それらを <a href="https://www.revenuecat.com/docs/offerings/overview">Offerings</a> に整理することでサブスクリプション商品を設定します。Google Play の各サブスクリプションのプロダクト ID は、それぞれ RevenueCat の Product に対応づけられ、関連するプロダクトをまとめて サブスクリプションの階層やバンドルを表す Offering として構成できます。</p>
<p>Subscription with Add-ons を利用する場合は、ベースサブスクリプション用のプロダクトと、各アドオン用のプロダクトをそれぞれ個別に作成します。そのうえで、RevenueCat の エンタイトルメント（権限）システムを使って、これらのプロダクトをアプリ内の特定の機能に紐づけます。ユーザーが購入を行うと、RevenueCat が アクティブなサブスクリプションに基づいて、どのエンタイトルメントを保有しているかを自動的に追跡してくれます。</p>
<h3><strong>シンプルな購入フロー</strong></h3>
<p>RevenueCat を使えば、購入の開始から結果の処理までを大幅にシンプルにできます。SDK が 請求クライアントの接続管理、購入の検証、エンタイトルメントの更新 をすべて自動で処理してくれます。</p>
<pre><code class="language-kotlin">class SubscriptionManager(private val context: Context) {

    fun initialize() {
        Purchases.configure(
            PurchasesConfiguration.Builder(context, &quot;your_revenuecat_api_key&quot;)
                .build()
        )
    }

    suspend fun getAvailableOfferings(): Offerings {
        return Purchases.sharedInstance.awaitOfferings()
    }

    suspend fun purchaseSubscriptionWithAddons(
        activity: Activity,
        basePackage: Package,
        addonPackages: List&lt;Package&gt;
    ) {
\/\/ RevenueCat handles the complexity of bundling these into a single purchaseval purchaseParams = PurchaseParams.Builder(activity, basePackage)
            .build()

        try {
            val (transaction, customerInfo) = Purchases.sharedInstance
                .awaitPurchase(purchaseParams)

\/\/ CustomerInfo automatically reflects all active entitlements
            updateUIWithEntitlements(customerInfo)
        } catch (e: PurchasesException) {
            handlePurchaseError(e)
        }
    }

    fun checkEntitlements() {
        Purchases.sharedInstance.getCustomerInfoWith { customerInfo -&gt;
\/\/ Check which entitlements are activeval hasPremium = customerInfo.entitlements[&quot;premium&quot;]?.isActive == true
            val hasHiFi = customerInfo.entitlements[&quot;hifi&quot;]?.isActive == true
            val hasOffline = customerInfo.entitlements[&quot;offline&quot;]?.isActive == true

            updateFeatureAccess(hasPremium, hasHiFi, hasOffline)
        }
    }
}</code></pre>
<p>これで完了です。簡単そうに見えますよね？RevenueCat の CustomerInfo オブジェクトは、ユーザーが行ったすべての購入を通じて 現在有効なエンタイトルメントをリアルタイムで把握できるビューを提供します。どのプロダクトがどの機能に対応しているかを手動で管理したり、複数アイテム購入の複雑さを自分で処理したりする必要はありません。購入の検証、レシートの検証、エンタイトルメントの算出といった処理は、すべて SDK と RevenueCat のバックエンドが自動で行います。</p>
<h3><strong>クロスプラットフォームでの一貫性</strong></h3>
<p>RevenueCat の大きな強みのひとつは、Android・iOS など複数のプラットフォームにわたって一貫した API を提供していることです。アプリが複数のプラットフォームで提供されている場合でも、RevenueCat を使えばユーザーは 統一されたサブスクリプション体験を得られます。たとえば、Android でサブスクリプションを開始したユーザーが後に iOS に切り替えた場合でも、そのエンタイトルメントは自動的に認識され、追加の対応なしで同じ権限を利用できます。</p>
<h3><strong>分析とインサイト</strong></h3>
<p>RevenueCat のダッシュボードでは、サブスクリプションのパフォーマンスに関する詳細な分析データを確認できます。これには、サブスクリプションバンドルに特化した指標も含まれます。どのアドオンの組み合わせが最も人気なのかを把握したり、Offering ごとのコンバージョン率をモニタリングしたり、価格戦略を最適化するための改善ポイントを特定したりすることが可能です。</p>
<h3><strong>Webhook とサーバー連携</strong></h3>
<p>サブスクリプションの状態をサーバー側でも把握する必要があるアプリ向けに、RevenueCat はサブスクリプションイベントをサーバーへ通知する Webhook を提供しています。これらの Webhook は、Google Play の RTDN よりも扱いやすいのが特長です。というのも、RevenueCat がデータを正規化し、複数アイテム購入に伴う複雑さも吸収してくれるためです。詳細な実装ガイダンスについては、<a href="https://www.revenuecat.com/docs/getting-started/entitlements/android-products">RevenueCat の Google Play プロダクトに関するドキュメント</a> と、 <a href="https://www.revenuecat.com/docs/subscription-guidance/managing-subscriptions">サブスクリプション管理ガイド</a> を参照してください。</p>
<h2><strong>まとめ</strong></h2>
<p>Subscription with Add-ons は、Android デベロッパーがサブスクリプションを設計するうえで、新たな価値をもたらします。複数アイテムをまとめて購入でき、かつ請求を同期できるようになったことで、Google は 柔軟でユーザーフレンドリーなマネタイズ戦略の可能性を広げました。ユーザーが自分に合った構成を選べるモジュール型サブスクリプションを提供する場合でも、エンゲージメントの高いユーザー向けにアドオンをアップグレード経路として活用する場合でも、あるいは ARPU（ユーザーあたり平均収益）を高める魅力的なバンドルを作る場合でも、この機能はそのビジョンを実現するための土台を提供してくれます。</p>
<p>一方で、Play Billing Library を使ってこの機能を直接実装するには、商品設定、購入フロー管理、エッジケース対応などに細心の注意を払う必要があります。本記事で紹介したコード例はあくまで出発点であり、本番環境では、追加のエラーハンドリングやリトライロジック、十分なテストが不可欠です。</p>
<p>よりスピーディーに進めたいチームや、クロスプラットフォーム対応が必要な場合には、RevenueCat は非常に有力な選択肢となります。多くの複雑さを抽象化しつつ、統合された分析機能やシンプルなサーバー連携といった付加価値も提供します。</p>
<p>実装を計画する際は、まず マネタイズ戦略を明確に定義することから始めてください。どの機能をベースサブスクリプションに含め、どれをアドオンにするのかを整理し、請求期間が正しく揃っているかを確認し、各オプションの価値をユーザーにどう伝えるかを検討することが重要です。丁寧な設計と確かな実装を行えば、Subscription with Add-ons は、ユーザーとビジネスの双方にとって価値のあるサブスクリプション体験を実現する強力な手段となるでしょう。この機能の公式ドキュメントについては、 <a href="https://developer.android.com/google/play/billing/subscription-with-addons">Android Developers の Subscription with Add-ons ガイド</a> および <a href="https://www.revenuecat.com/docs/offerings/overview">RevenueCat Offerings</a> を参照してください。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[動画ペイウォールの完全ガイド]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/video-paywalls</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/video-paywalls</guid>
      <pubDate>Wed, 24 Dec 2025 08:07:31 GMT</pubDate>
      <dc:creator><![CDATA[Daphne Tideman]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[動画を活用して価値を伝え、信頼を築き、ペイウォールのコンバージョン率を高める方法]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/5046ce1391d1aa689304055041c351807570bae5-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>かつて「動画ペイウォール」といえば、コンテンツクリエイターが自分のコースへのアクセスを販売するように、ペイウォールの裏側に動画が置かれている という意味でした。しかし現在、この言葉はより進化した、ワクワクするものへと変わっています。ペイウォールそのものに動画を埋め込む という考え方です。退屈で静的なペイウォールに別れを告げ、数秒で注意を引き、価値を伝えるインタラクティブな体験を迎え入れましょう。</p>
<p><strong>動画は、ペイウォールの成果を高め、価値を明確に伝えるための強力な手段です。</strong>ペイウォール上の動画テストに関するデータはまだ限られていますが、動画というメディア自体が効果的であること は明らかです。短時間で情報を伝え、感情的な記憶を強める力があります。たとえば <a href="https://www.fitnessai.com/">Fitness AI</a> は、App Promotion Summitで、ペイウォールに動画を追加したことで収益が約80%増加したと共有しており、現在もペイウォールに動画を使用し続けています。</p>
<p>私の「<a href="https://www.revenuecat.com/blog/growth/weird-paywalls-drive-subscription-growth/">風変わりなペイウォール</a>」についての記事を読んだことがある方なら、私が少しクセのある、ユニークなデザインに弱いことをご存じでしょう。中でもお気に入りの例が、<strong>Water Llama</strong> という水分摂取を記録するアプリです。このアプリは、遊び心のある機能紹介動画を使い、画面上でかわいらしいラマの水分トラッカーが満たされていく様子を見せることで、ペイウォールに命を吹き込んでいます。</p>
<p>ペイウォールにラマを登場させるのはさすがにやりすぎかもしれませんが、動画を追加すること は、ペイウォールであれオンボーディングであれ、検討する価値のある一手です。</p>
<p>それでは、ビデオペイウォールを検討すべきケース（そしてそうでないケース）、さらに効果的にテストし、実装する方法について見ていきましょう。成功につなげるためのポイントを解説します。</p>
<h2>クイック解説：ペイウォールに動画を追加するメリットとデメリット</h2>
<p>動画は、特定のアプリカテゴリやオーディエンスでより一般的ではありますが、それだけを理由に検討対象から外す必要はありません。最終的に、ビデオペイウォールは4つの重要な目標を達成する手段になり得ます。動画をペイウォールに使うかどうかは、アプリのカテゴリではなく、これらの目標を達成したいかどうか を判断軸にすべきです。ただし、考慮すべきデメリットもいくつか存在します。</p>
<table>
<thead><tr>
<th><p><strong>メリット</strong></p></th>
<th><p><strong>デメリット</strong></p></th>
</tr></thead>
<tbody>
<tr>
<td><p><strong>感情を伝えられる：</strong>動画は、静止画像やテキストよりもはるかに効果的に感情を伝えられます。

<strong>アプリの価値を視覚的に説明できる：</strong>Photo、Video、Health、Wellness系のアプリや、ペイウォールの先にある機能を見せることで価値が伝わるアプリに最適です。

<strong>信頼を構築し、変化を示せる：</strong>アプリを使うことで得られる効果を示し、結果が出ることへの安心感を与えられます。

<strong>注意を引きつけられる：</strong>ユーザーの動きを一瞬止め、集中を促しながらメッセージを伝えられます。</p></td>
<td><p><strong>読み込み時間の増加</strong>がパフォーマンスに影響する可能性

<strong>注意散漫や過剰な情報になり得</strong>、特に、素早く機能的な体験を期待しているユーザーにとっては負担になることがあります。

<strong>高品質な素材が必要</strong>で、制作には追加の時間、スキル、予算が求められます。

<strong>テストの複雑さ</strong>、変数が多いため、動画がコンバージョンを改善しない理由を特定しにくくなります。</p></td>
</tr>
</tbody>
</table>
<p>最終的に、動画ペイウォールがあなたのアプリに適しているかどうかは、オーディエンス、カテゴリ、そして目標によって決まります。ただし、最終判断を下す前にテストする価値は常にあります。この先では、動画ペイウォールがあなたのアプリに本当に適しているのかを、さらに詳しく掘り下げていきます。</p>
<h2>いつペイウォールに動画を追加すべきか？</h2>
<p>私自身の経験から、オンボーディングやペイウォールで動画をテストすることで、トライアル開始数だけでなく、<a href="https://www.revenuecat.com/glossary/#trial-conversion-rate">トライアルから有料へのコンバージョン率</a>も改善できることが分かっています。特に、アプリの本当の価値を理解してもらうための ハウツー動画 は効果的です。</p>
<p>優れた動画はペイウォールの質を引き上げ、コンバージョンを高めますが、間違った動画は表示を遅くしたり、メッセージを分かりにくくしてしまうこともあります。ここでは、あなたのアプリが動画ファーストのペイウォールから恩恵を受けられるかどうかを見極めるポイント を紹介します。</p>
<h3>1. 感情がコンバージョンを左右する場合</h3>
<p>フィットネス、ウェルネス、習慣形成系のアプリは、「機能」ではなく<a href="https://www.revenuecat.com/blog/growth/solve-app-problems-emotionally/">感覚や</a><em><a href="https://www.revenuecat.com/blog/growth/solve-app-problems-emotionally/">気持ち</a></em><a href="https://www.revenuecat.com/blog/growth/solve-app-problems-emotionally/">を売っている</a>ことが多く、動画はそれを捉えるのに最適です。たとえば心拍をトラッキングするアプリ<a href="https://apps.apple.com/us/app/cardi-mate-heart-rate-monitor/id1570842053">Cardi Mate</a>では、アプリが実際に動いている様子をフルスクリーンの背景動画で見せながら、心の落ち着きや心拍をコントロールできている感覚といった、アプリの価値を明確に伝えています。</p>
<p>テキストは最小限に抑えられ、画面下部には控えめなオーバーレイが重ねられており、次の要素を伝えています：</p>
<ul>
<li>ソーシャルプルーフ（登録者数）</li>
<li>トライアル／支払いの設定</li>
<li>アプリの簡単な説明</li>
</ul>
<p>この組み合わせにより、ユーザーはアプリの価値を即座に感じ取ることができ、コンバージョンにつながりやすくなります。「Continue」をタップすると、余分な画面を挟むことなく、そのまま支払い画面へ進めるため、摩擦もありません。もうひとつの優れた例が、睡眠アプリの<a href="https://loona.app/">Loóna</a>です。オンボーディングではリラックスできる音楽が流れ、瞬時に落ち着いた気分を醸成します。ペイウォール上の動画はシンプルで穏やかですが、Loónaがユーザーにもたらす状態を見事に表現しています（もっとも、価格表示における<a href="https://www.revenuecat.com/blog/growth/is-monetization-hurting-your-apps-user-experience/">dark UX</a>は、正直あまり“チル”とは言えませんが）。</p>
<h3>2. 言葉よりもビジュアルのほうが価値を早く伝えられる場合</h3>
<p>「1枚の写真は千の言葉に値する」と言いますが、動画ならジェフ・ベゾスのポートフォリオ以上の価値があるかもしれません。まず分かりやすい例からいきましょう。<strong>写真・動画系アプリです。視覚的なコンテンツに大きく依存するアプリは、機能を見せる手段として、よりビジュアルな表現を使うことで自然と恩恵を受けます。</strong></p>
<p>たとえば、ByteDance（TikTokの親会社）が提供するAI搭載の動画・画像編集アプリ<a href="https://www.capcut.com/tools/desktop-video-editor?download_channel=capcutpc_pmax&amp;utm_medium=pmax&amp;utm_source=googleadwords_int&amp;pid=359289&amp;af_c_id=22895025581&amp;adset_id=&amp;ad_id=&amp;keyword_name=&amp;matchtype=&amp;placement=&amp;targetid=&amp;channel=x&amp;gad_source=1&amp;gad_campaignid=22895028443&amp;gbraid=0AAAAACROvhnoPmjhISKTtp4AA3fAT4Cn7&amp;gclid=CjwKCAjwx-zHBhBhEiwA7Kjq6_w7bYzWQMXM3yVsrN97Fi438RYqwY0TU_QXEmvbyoXJS7Sq5GzJFxoC8dUQAvD_BwE">CapCut</a>。Water Llamaと同様に、CapCutはペイウォール上で動画を使い、主要な機能を強調しています。短いクリップで各機能の動きを順番に表示し、それぞれがどのように機能するのかを一目で分かるようにしています。</p>
<p>動画は、アプリの使い方を実演したり、ダウンロード直後に主要な機能をユーザーに案内したりする場面で、非常に大きな価値を発揮します。</p>
<h3>3. 変化や信頼を証明する必要がある場合</h3>
<p>ここでは、私がビデオペイウォールを調査する中で出会った、少し変わった例を紹介します。私は50以上のアプリをダウンロードしてペイウォールをテストしました。というのも、アプリが最初から動画を表示するかどうかは外から分かりにくいですし、正直なところ、私の記憶も完璧ではないからです。（驚くことに、これまで見た<em>すべての</em>ペイウォールを覚えているわけではありません。）</p>
<p>その中で試したアプリのひとつが、<a href="https://www.retention.blog/p/creative-paywall-inspiration-vo">Jacob Rushfinn氏のニュースレター</a>で知った<a href="https://apps.apple.com/gb/app/dr-kegel-for-mens-health/id1470065487">Dr Kegal</a>です。最初は特に深く考えず、彼が勧めていたアプリを試してみよう、という軽い気持ちでした。ところがこのアプリは、予想外のことをしました。ペイウォールを表示する前に、30秒以上の動画視聴を強制したのです。動画の世界では、かなりの失策と言えるでしょう。</p>
<p>ただし、ここが重要なポイントです。私は今、女性であるにもかかわらず、勃起の持続時間を改善するためのアプリをスマートフォンに入れています……。このテーマは、多くのユーザーにとって話題にしづらかったり、本当に運動で効果があるのか不安を感じたりする分野です。このアプリのペイウォール動画では、実際にアプリの恩恵を受けた複数の男性が登場し、信頼性と説得力を築いています。動画が終わった後も、その映像はペイウォールの上部に残り、ユーザーがサブスクすることを決める前に、ソーシャルプルーフと価値を改めて強調します。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a26586a25ee7eb6ba1cd85d4161c0935aa210de7-1179x2556.jpg" alt=""/></figure>
<p>スクロール可能なペイウォールには、さらに 2本目の動画 が配置されており、アプリの裏にある科学的な仕組みや、どのように機能するのかをより詳しく解説しています。</p>
<p>ユーザーがそのアプリに懐疑的だったり、テーマ自体に不安を感じていたりする場面では、<a href="https://www.revenuecat.com/blog/growth/paywalls-unexpected-uses/">ペイウォール上の動画が、その決定的な瞬間に信頼を築く助け</a>になります。もうひとつの優れた活用例は、競争の激しい市場です。動画を通じて「他とは違う価値を提供している」という信頼を構築することで、差別化につなげることができます。</p>
<h3>4. 読まれない時代に、動画で注意をつかむ</h3>
<p>オーディエンスのタイプは、動画を優先すべきかどうかに影響します。<a href="https://www.askattest.com/blog/research/gen-z-media-consumption">データによると、若い世代は</a> テキストよりも動画による説明を好む傾向があり、こうした層に向けてはビデオペイウォールをテストする価値があります。一方で、<a href="https://civicscience.com/3-key-social-media-trends-among-gen-z-and-millennials">年齢層が上がるにつれてソーシャルメディアの利用時間は減っている</a>にもかかわらず、アプリはますますソーシャルプラットフォームを模倣するようになっています。短尺動画だけでなく、Instagramのストーリーのようなスワイプ形式や、かみ砕いたコンテンツもその一例です。正直なところ、私たちの多くは、もう文章をじっくり読まなくなっています。</p>
<p>このガイドではペイウォール上で動画を使うことに焦点を当てていますが、オンボーディングで動画を使ったり、2ステップのペイウォール（動画 → トライアル／支払い情報を含むペイウォール） を作ったりすることで、支払い画面に進む前に注意と理解をしっかりと獲得することもできます。</p>
<p>グロースコンサルタントであり、ニュースレター「<a href="https://growthgems.substack.com/">Growth Gems</a>」の著者でもある<a href="https://www.linkedin.com/in/sylvaingauchet/">Sylvain Gauchet</a>氏は、最近、<a href="https://subclub.com/episode/how-to-build-more-successful-paywalls-sylvain-gauchet">ペイウォールとオンボーディングの境界が曖昧になりつつある</a>トレンドについて次のように指摘しています。</p>
<p>「最近、特に無料トライアルで、マルチスクリーンのペイウォールを目にすることが増えています。最も冷たい“課金タイムライン”をいきなり見せるのではなく、複数の画面に分けて説明するんです。そうすると、オンボーディングとペイウォールの境界が曖昧になります。ペイウォールの前にある画面はオンボーディングなのか？それともペイウォールの一部なのか？ただ、そのおかげで、価値を見せたり、実際の取引要素をより分かりやすく説明したり、最後のひと押しとなるピッチや要約を提示できるようになります。」</p>
<p>私自身、現在このアプローチをZ世代向けアプリでテストしています。従来の、画像＋テキストによる4つのテンポの速い機能紹介画面を、動画＋テキストの機能紹介画面 に置き換え、ペイウォールへとつなげることで、支払いを求める前にアプリを十分に理解してもらうことを狙っています。</p>
<h2>どのような場合に、ペイウォールで動画の使用を避けるべきか？</h2>
<p>動画は、他のタイプのペイウォールよりも多くの労力を必要とする点を理解しておくことが重要です。特に、テストと検証にかかる負荷が大きい という側面があります。私のおすすめは、まず<strong>メッセージングを検証し、どの機能がユーザーの支払いにつながっているのかを特定</strong>したうえで、初めて動画を導入（そしてテスト）することです。そうすることで、ペイウォールをテストした際に、変化の要因が「動画そのもの」であると判断できます。最初から動画を追加してしまうと、コピーやコア機能を先に最適化した場合と比べて、テストが遅くなり、効果も見えにくく、成功率が下がることがよくあります。</p>
<p>そのため、まだ<a href="https://www.revenuecat.com/blog/growth/product-market-fit-subscription-apps/">プロダクトマーケットフィット</a>を見つけられていない場合や、<a href="https://www.revenuecat.com/blog/growth/customer-validation-subscription-app/">ユーザーが本当に支払う意思があるか</a>を把握できていない段階では、動画の追加は一旦見送ったほうがよいでしょう。ほかにも、動画があまり適さないケースはいくつかあります。</p>
<h3>1. オーディエンスの通信環境が限られている場合</h3>
<p>動画サイズを最適化して読み込みを高速化したとしても（<a href="https://www.revenuecat.com/feature/paywalls/">RevenueCat’s Paywall Builder</a>はこれを自動で行います）、動画が読み込み時間に影響すること自体は避けられません。ユーザーの通信速度が遅い、データ通信量に制限がある、あるいはWi-Fiが不安定な場合、動画ペイウォールは摩擦を生む可能性があります。</p>
<p>「でもDaphne、ユーザーの通信速度なんてどうやって分かるの？」と思うかもしれませんが、私が言いたいのはそういう意味ではありません。アプリがどんな場面で使われるのか、いつ最も利用されるのか を考えてみてください。たとえば、ハイキングやキャンプ中に使われるアプリは、通信環境がほとんどない状況でも機能する必要があります。また、オーディエンスが高齢層であれば、超高速な回線を前提とした Gen Z 向けゲーマーアプリほど通信環境が良くない可能性もあります。さらに、販売対象の市場が地方部に多い、あるいはインターネットインフラが比較的遅い国である場合も、考慮すべき要素です。</p>
<h3>2. アプリのUSPが「シンプルで機能的」である場合</h3>
<p>シンプルなユーティリティ系アプリでは、動画ペイウォールがかえって邪魔になることがあります。ユーザーが重視しているのがスピードである場合、動画は最終目的から注意をそらしてしまう可能性があります。たとえば、パスポートのコピーを素早くスキャンしてアップロードしたいだけの人にとって、最初に動画を見せられるのは、ただのストレスになりかねません。動画が本当にユーザーのコンバージョンを後押しするのか、それとも「効果がありそうだ」と思い込んでいるだけなのかを、慎重に見極める必要があります。ここでも重要になるのがテストです（この後で詳しく触れますので、お楽しみに）。</p>
<h3>3. 高品質な動画を用意できない（または用意できそうにない）場合</h3>
<p>AIによって動画制作のハードルは下がりましたが、効果的な動画を作るには、今なお時間と投資が必要 です。アニメーションであれ実写であれ、品質を妥協することはできません。ペイウォール上に低品質な動画を載せてしまうと、プラスになるどころか、逆効果になる可能性があります。</p>
<p>また、オーディエンスに響く形式を見つけるためには、複数のフォーマットをテストする必要があります。導入を決める前に、必要となる時間やリソースを十分に見積もっておくことが重要です。</p>
<h2>動画ペイウォールのテストと実装</h2>
<p>さて、メッセージングは十分に練り込まれ、ユーザーがそのプロダクトを求めていることも分かっており、ペイウォールに動画を使うのが適切だと判断できたとします。では、ビデオペイウォールをどのようにテストし、ローンチすればよいのでしょうか？</p>
<h3>1. 動画テストの目的を明確にする</h3>
<p>これまで、アプリがペイウォールで動画を使う主な理由を見てきました：</p>
<ol>
<li>感情を伝える</li>
<li>機能を視覚的に説明する</li>
<li>変化を伝え、信頼を構築する</li>
<li>注意を引きつける</li>
</ol>
<p>目的を明確にすることで、どのフォーマットや構成をテストすべきかが判断しやすくなります。たとえば、アプリの内容をより分かりやすく説明することが目的であれば、機能紹介のカルーセル や フルスクリーンの背景動画 をテストするのが適しているでしょう。</p>
<h3>2. 動画フォーマットを決める</h3>
<p>次に、設定した目的に最も適したフォーマットを特定します。これまでの例からも分かるように、ペイウォールに動画を組み込む方法はいくつか効果的な選択肢があります：</p>
<ol>
<li><strong>ペイウォールの最上部に配置：</strong>アプリが実際に動いている様子を見せ、すぐにユーザーの関心を引きつけます。</li>
<li><strong>背景として使用：</strong>動きと奥行きを加え、ペイウォールをよりダイナミックに感じさせます。</li>
<li><strong>縦に長いランディングページ内の1ブロックとして配置：</strong>機能や価値提案をより詳しく説明する必要があるプレミアムアプリに最適で、スクロール型ペイウォールでもユーザーの関心を維持できます。</li>
<li><strong>カルーセル内で使用：</strong>短く分かりやすいクリップで、複数の機能を順番に紹介できます。</li>
<li><strong>ペイウォールの最初の画面として表示：</strong>価格やトライアルの詳細に進む前に、注意と理解を獲得できます。</li>
</ol>
<p>また、Dr. Kegal のように、ペイウォール全体で複数の動画を組み合わせることも可能です。もうひとつの優れた例が、AIによるフェイススワップアプリ <a href="https://reface.ai/">Reface</a> です。Refaceは、ループ再生される背景動画としても機能するカルーセルを使用し、活き活きとしたインタラクティブな体験を生み出しています。</p>
<p>アニメーションを見せたいアプリにとっても、動画は有効な選択肢になります。特に、使用しているペイウォールビルダーがアニメーションに対応していない場合は有効です。<a href="https://www.revenuecat.com/blog/growth/paywall-conversion-boosters/">アニメーションはエンゲージメントを高める優れた手段</a>です。たとえば、語学学習アプリの <a href="https://www.duolingo.com/">Duolingo</a> では、マスコットであるフクロウの Duo の小さなアニメーションをペイウォール上で使用しています。</p>
<p>Refaceのようなアプリは、こうした表現をコードで実装している可能性が高いですが、同様の効果を素早くテストする方法 としては、特にペイウォールビルダーがアニメーションに対応していない場合、短いループ動画やGIFを使う という選択肢があります。ただし注意点として、コードで直接実装されたアニメーションは、一般的に動画よりも読み込みが速い という点は覚えておく価値があります。</p>
<p>また、設定した目的と選んだフォーマットは、動画をどこでテストするか を決める手がかりにもなります。たとえば CapCut のように、紹介している機能がすべてのユーザーに共通して重要である場合、すべてのペイウォールで同じ動画を使っているアプリもあります。一方で、目的が「新規ユーザーにアプリの価値を理解してもらうこと」であれば、最初のペイウォールのみに動画をテストする という選択も考えられます。</p>
<p>たとえば、フィットネスアプリの <a href="https://fitonapp.com/">FitOn</a> では、アップテンポな音楽、点滅するビジュアル、フルスクリーンのエネルギー感あふれる、非常にインパクトの強いペイウォール動画を使用しています。これは新規ユーザーにとっては、アプリが提供する体験を即座に理解し、ワクワク感を与える点で非常に効果的です。しかし、既存ユーザーに毎回同じ動画を強制する となると、刺激的というより煩わしく感じられてしまう可能性があります。</p>
<p>その後、私が再びアプリに戻ったときに表示されたペイウォールは、よりシンプルな機能紹介カルーセル になっていました。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/83f3d6b4a2c8cfa9570bb0eae739313fe5640807-738x1600.png" alt=""/></figure>
<h3>3. 動画に含めるべき内容（そしてペイウォール全体の構成）</h3>
<p>動画コンテンツを設計する際は、次のベストプラクティスを意識してください：</p>
<ul>
<li><strong>動画は短く保つ：</strong>多くの場合、15〜30秒以内が適切です。</li>
<li><strong>音声なしでも成立させる：</strong>ほとんどのユーザーは音をオンにしていません。ここまで紹介してきた例も、Dr. Kegalを除いてすべて無音で機能しています（なお、Dr. Kegalも字幕を併用しています）。</li>
<li><strong>強いビジュアルフックから始める：</strong>特に、アプリの価値を伝える目的で動画を使う場合、冒頭でユーザーの注意をつかむことが重要です。</li>
</ul>
<p>動画、コピー、CTA（行動喚起）を組み合わせると、認知的な負荷はすぐに高くなりがちです。そのため、ほとんどの場合はシンプルさが勝ちます。実例を見ても、動画がより詳細で動きのあるものであるほど、補足するコピーはシンプルかつ最小限に抑えられている傾向があります。</p>
<p>どのような動画をテストすべきか迷っている場合は、アプリの使い方をシンプルに紹介するウォークスルー動画 から始めるのがおすすめです。主要な価値や機能を、分かりやすく魅力的に伝えることができます。</p>
<h3>4. 動画の設定</h3>
<p>動画ペイウォールを設定する際には、いくつかの重要なポイントがあります：</p>
<ul>
<li><strong>ループ再生か、1回再生か</strong>：多くのペイウォール動画はループ再生されています。ユーザーはまずテキストを読んだり、マルチタスクをしていたりして、動画の冒頭を見逃すことがあるためです（あるいは、私のようにADHD気味の場合もあります）。</li>
<li><strong>自動再生か、タップ再生か</strong>：動画を自動で再生するか、それともタップしたときだけ再生するか。自動再生は注意を即座に引けるため、一般的な選択肢です。一方で、ユーザーの声や詳細な機能説明など、任意で視聴するコンテンツ にはタップ再生が向いており、ペイウォールをすっきり保ち、注意散漫になるのを防げます。</li>
<li><strong>ミュートか、音声オンか</strong>：前述のとおり、多くのユーザーはアプリ利用時に音声をオフにしています。突然音が出たり、逆に音が出ないことで内容が分からなかったりすると、フラストレーションにつながることもあります。私のおすすめは、デフォルトはミュート にすることです。動画にセリフがある場合は、ぜひ 字幕を付けてください。<a href="https://www.3playmedia.com/blog/studies-find-captions-improve-engagement/">エンゲージメント</a>、アクセシビリティ、ユーザー体験のすべてを向上させます。</li>
</ul>
<p>もちろん、例外もあります。ここで FitOn の例に戻りましょう。FitOnのエネルギッシュなフルスクリーン動画は、ユーザーを完全に没入させることを目的としているため、ループも自動ミュートもされていません。動画が終わると、スムーズにフェードアウトしながら「Subscribe」ボタンへと視線を導き、唐突な終了ではなく自然な流れを作っています。動画は長く動きも激しいため、このケースではミュートは適さず、ループさせると逆に負担になってしまいます。</p>
<p>さらに、読み込み時間を最適化すること も忘れないでください。アプリ内ではWebほど致命的ではないとはいえ、読み込み時間は依然としてパフォーマンスやユーザー体験に影響します。</p>
<p>RevenueCatの Paywall Builder を使用している場合は、その点も安心です。以下のベストプラクティスに沿って、<a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/components#video-component">動画が自動的に最適化されます</a>：</p>
<ol>
<li><strong>初期ロード：</strong>動画のサムネイルが即座に表示されます。</li>
<li><strong>段階的ロード：</strong>まず低解像度の動画を再生して速度を確保し、その後高画質へと切り替わります。</li>
<li><strong>ローカルキャッシュ：</strong>動画はローカルに保存され、次回以降はより高速に再生されます。</li>
<li><strong>帯域幅の最適化：</strong>データ使用量を最小限に抑え、よりスムーズな体験を実現します。</li>
</ol>
<p>一方で、ネイティブのペイウォールに自前で実装する場合は──ここが見せ場です。開発者ににっこり微笑んで、助けをお願いしましょう……彼らが輝く時間です。</p>
<h3>テストのロードマップ</h3>
<p>あなたが動画をテストしようとしているのには、きっと正当な理由があるはずです（そうであることを願っています）。だからこそ、動画を1本だけテストして、うまくいかなかったからといって、永遠に動画を否定しないでください。そして2年後、目を輝かせた新任のプロダクトマネージャーが「ねえ、ペイウォールに動画を試してみるのはどうでしょう？」と提案した瞬間に、「いや、2年前にテストしたよ。動画はうちには合わない」と即座に却下する──そんな事態にはならないでほしいのです。</p>
<p>1回のテストで、ビデオペイウォールが機能しないと結論づけることはできません。それは単に、「そのバージョンが機能しなかった」というだけです。</p>
<p>目的に基づいて、テストは次の3つの主要要素に集中させましょう：</p>
<ul>
<li><strong>コンテンツ：</strong>動画で何を伝えるか、どのように始まるか、長さはどれくらいか</li>
<li><strong>配置：</strong>動画をペイウォールのどこに置くか（マルチステップの場合は、どの画面か）</li>
<li><strong>設定：</strong>これまでに触れてきた、技術的・挙動的な各種設定</li>
</ul>
<p>この順番でテストすることをおすすめします。多くのアプリ、特に単一画面のペイウォールでは、コンテンツが最も大きな影響を与えます。</p>
<p>以下は、ハイレベルなテスト計画の一例です：</p>
<ul>
<li><strong>ベースライン：</strong>現在の静的なペイウォールから始め、コンバージョン率やエンゲージメント指標を記録する</li>
<li><strong>実験1：</strong>ヒーロー画像を短いループ動画に置き換える（コピーはそのまま）。効果の差分を測定する</li>
<li><strong>実験2：</strong>機能デモ動画と感情訴求のストーリー動画など、異なるタイプをテストし、どちらがよりコンバージョンを生むかを比較する</li>
<li><strong>実験3〜X：</strong>最も成果の良かった動画をベースに、フック、配置、長さを調整してさらなる最適化を行う</li>
</ul>
<h2>あなたのペイウォールに、動画は本当に必要？</h2>
<p>ペイウォールは、まさに成否を分ける瞬間です。その一瞬で、ユーザーはこのアプリに価値があるかどうかを判断します。動画は、その判断を後押しするための もうひとつの次元 を与えてくれます。結果を「感じさせ」、変化を「見せ」、そしてユーザーをもう少しだけその場に留める力があります。</p>
<p>すべてのアプリに動画が必要というわけではありませんが、多くのアプリは 少なくとも一度はテストしてみる価値があります。特に、ペイウォール体験をこれまで以上に引き上げやすい <a href="https://www.revenuecat.com/blog/growth/announcing-revenuecat-paywalls-v2/">RevenueCat Paywalls</a> のようなツールがある今はなおさらです。</p>
<p>うまく設計された動画は、コンバージョンを高め、ブランドを強化し、似たようなペイウォールが並ぶ中で際立つ存在にしてくれます。</p>
<p>ラマが水分補給をしていくアニメーションであれ、ユーザーがフィットネスの可能性を解放する瞬間であれ、本当に価値を加える動画 で、あなたのペイウォールに命を吹き込むことを恐れないでください。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[新しいRevenueCat Figmaプラグインで、Figmaデザインを即座にペイウォールへ変換]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/revenuecat-figma-plugin</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/revenuecat-figma-plugin</guid>
      <pubDate>Thu, 27 Nov 2025 18:52:35 GMT</pubDate>
      <dc:creator><![CDATA[Charlie Chapman]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[ペイウォールのバリエーションを、これまでにないスピードで作成・エクスポート・反復できます。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/8b47431509cc0d0fa24d0f9fb0ff263e049749e1-1920x1080.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>高いコンバージョンを生むペイウォールのデザインは、たいていFigmaから始まります。デザインチームが日常的に作業し、試し、反復している場所だからです。RevenueCatのPaywalls Editorは、そうしたFigmaデザインを素早く、簡単に再現できるように作られていますが──その工程自体をなくせたらどうでしょうか？</p>
<p>今日、まさにそれを実現します。</p>
<p>新しく公開された <a href="https://www.figma.com/community/plugin/1571207414894772119">RevenueCat Figmaプラグイン</a> を利用することで、デザインからライブのペイウォールへ一瞬で移行できるようになりました。Auto Layoutを使用したFigmaフレームを、1回のエクスポートでRevenueCat内の完全編集可能なペイウォールへ直接変換できます。</p>
<h2>FigmaフレームからRevenueCatペイウォールへ</h2>
<p>プラグインをインストールすると、次のことが可能になります：</p>
<ul>
<li><strong>1つのFigmaファイルから複数のペイウォールをエクスポート</strong>：迅速な反復や、A/Bテスト用のバリエーションをまとめて準備するのに最適です。</li>
<li><strong>レイアウトとスタイルを正確に保持</strong>：テキストはテキストとして、画像は画像として、フレームはスタックとして──すべて自動で正しくマッピングされます。</li>
<li><strong>主要コンポーネントを自動検出</strong>：<em>Button、Purchase Button、Package</em> などのレイヤー名は、それぞれ対応するRevenueCat Paywallコンポーネントに変換されます。</li>
<li><strong>デザインをそのままPaywall Editorへ送信</strong>：グロースチームやCXチームは、コピー調整、プロダクト差し替え、ローカライズ、実験のセットアップなどを、追加のデザインやエンジニアリング作業なしで行えます。</li>
</ul>
<p>このワークフローにより、デザイナーはアプリに自然に溶け込む、ブランドらしいリッチなペイウォールをFigmaで自由に作り込みつつ、プロダクトチームはRevenueCat内で素早く反復できる柔軟性を得られます。</p>
<h2>なぜ重要なのか</h2>
<p>多くのチームにとって、ペイウォールの制作はFigmaから始まります。デザイナーは、エンジニアリングやグロースチームが関わるよりも前に、レイアウト、ビジュアルの階層、ブランド表現、コンバージョンを意識したバリエーションを作り込みます。しかしこれまでは、そのデザインをライブのペイウォールに反映するには、Paywall Editorで手作業で再構築する必要がありました。</p>
<p>新しいプラグインは、その工程を完全に取り除きます。</p>
<p>これからは、デザイナーが普段作業している場所であるFigmaのままペイウォールを構築でき、小さなコピー調整から大幅なリデザインまで、あらゆるバリエーションを数秒でエクスポートできます。一方、PMやグロースチームは、エクスポートされたデザインをすぐに実験に変換し、成果を比較し、追加のデザインファイルなしで更新を公開できます。</p>
<p>より速く、よりシンプルで、よりコラボレーションしやすい──そんな新しいペイウォール反復のアプローチです。</p>
<aside class="tip"><strong>Paywalls.comで実際のペイウォール例からインスピレーションを得る</strong><p><a href="https://www.paywalls.com/">Paywalls.com</a>では、実際のペイウォール例を閲覧できます。UI要素、アプリカテゴリ、トレンドや高成長のペイウォールなどでフィルタリングしながら、さまざまなスクリーンを参照できます。</p></aside>
<h2>チュートリアル動画を視聴し、ドキュメントを読む</h2>
<p>フロー全体を最初から最後まで確認したい場合は、完全なウォークスルーをご用意しています：</p>
<p><strong>フル動画チュートリアル</strong></p>
<p><a href="https://www.youtube.com/watch?v=dhUADHmZMjg">Watch on YouTube</a></p>
<p><strong>ドキュメント</strong>
<a href="https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls#importing-from-figma">https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls#importing-from-figma</a></p>
<p><strong>Figma Pluginを入手する</strong>
<a href="https://www.figma.com/community/plugin/1571207414894772119">https://www.figma.com/community/plugin/1571207414894772119</a></p>
<p>高品質でブランドらしいペイウォールを最速で作る方法──それは、デザイナーがすでに使っているツールをそのまま使うことです。プラグインを試し、複数のバリエーションを実験し、これまで以上のスピードでペイウォールを公開しましょう。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[ライフタイムサブスクリプション徹底ガイド：あなたのアプリに適しているのか？]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/lifetime-subscriptions</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/lifetime-subscriptions</guid>
      <pubDate>Thu, 27 Nov 2025 18:37:17 GMT</pubDate>
      <dc:creator><![CDATA[Daphne Tideman]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[ライフタイムオファーがあなたのアプリに適しているかを判断する方法]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/38367e4a67a74b3349afef125ef2b843b8d9af2a-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>私はCalmのライフタイムを購入しました。</p>
<p>アプリのほうであって、気持ちの平穏ではありません。とはいえ、実際の“落ち着き”にお金を払えるなら、かなり払うと思いますが。</p>
<p>数年間、CalmとHeadspaceの間を行ったり来たりしながら、ときどき瞑想してはやめてを繰り返していた頃、どうしても断れないと感じるオファーを見つけました。Calmへの生涯アクセスです。月額料金なし、年次更新なし、支払いは一度だけ、<em>永遠に</em>使える。</p>
<p>完璧に思えました。すでに投資したと分かっていれば、もっと瞑想するようになるはず。サブスクリプションのことを二度と考えなくていいなんて最高では？　頭の中のタスクがひとつ減る。そう思ってしばらく悩んだ末に購入しました。人生で初めてのライフタイムサブスクリプションです。ちなみに2回目のライフタイムは今年の初め、今の夫と結婚したときでした。</p>
<p>数年後の今でもCalmは私のスマートフォンにあります。アップデートされ続け、改善され続け、今も健在です。でもここで大きな疑問が浮かびます。Calmのような巨大アプリが大規模にライフタイムサブスクリプションを提供しているなら…あなたのアプリも提供すべきなのでしょうか？</p>
<p>これまでに私が行ってきたサブスクリプションモデルの深掘り（<a href="https://www.revenuecat.com/blog/growth/annual-subscriptions-apps-pros-cons/">年額サブスクリプションのメリット・デメリット</a>から<a href="https://www.revenuecat.com/blog/growth/weekly-subscriptions/">週次サブスクリプションが理にかなうか</a>どうかまで）と同じように、答えは単純に「はい、やるべき」「いいえ、やめておくべき」のどちらかではありません。顧客にとってもブランドにとっても、利点と欠点があります。そして業種によっては適していません。</p>
<p>ということで、今日はライフタイムサブスクリプションについて深掘りします。取り上げるのは次のポイントです：</p>
<ul>
<li>どの業界でライフタイムオファーがどれほど一般的なのか</li>
<li>顧客とビジネス双方にとってのメリット（とリスク）</li>
<li>ライフタイムサブスクリプションを検討すべきアプリと、そうでないアプリ</li>
<li>成功するライフタイムオファーの構成方法</li>
</ul>
<p>あなたは今これをビジネスの視点で読んでいると思いますが、私はいつも顧客視点からも考えます。ライフタイムサブスクリプションをテストしたいのであれば、顧客の印象や迷いを理解しなければなりません。ライフタイムサブスクリプションは、ほとんどの場合、顧客かブランドのどちらかに有利に働き、両方に同時に有利になることはほぼありません。私がCalmで「最高のお得感」を感じられるなら、Calmは「私から最大の価値を得られた」とは思えないし、その逆もまた同じです。</p>
<aside class="tip"><strong>簡単なメモ</strong><p>ここで言うライフタイムサブスクリプションとは、App Storeの通常のサブスクリプションではなく、継続的なアクセスを付与する“一度きりの非消耗型”アプリ内課金のことを指します。</p></aside>
<p>本当に多くのアプリがライフタイムサブスクリプションを提供しているのか？</p>
<p>私は信頼するデータソース、夜寝る前に読むお気に入りのオタク的読書「<a href="https://www.revenuecat.com/state-of-subscription-apps-2025/">State of Subscription Apps 2025 Report</a>」を開きました。（はい、262ページすべて読んでいますし、毎回役に立っています。）</p>
<p>ほとんどのアプリカテゴリでは、サブスクリプションとライフタイムサブスクリプションを組み合わせて提供する形が、2番目に一般的なマネタイズ方法です。さらに一部のアプリでは、消耗型アイテム（コンシューマブル）を上乗せしています：</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/0306b3d8ebbf5eb3957e1950f95ab606ef596365-1304x670.png" alt=""/></figure>
<p>ライフタイムサブスクリプションが最も一般的なのはどこでしょうか？<strong>Photo &amp; Videoアプリが群を抜いて</strong>おり、このモデルは「永遠のアクセス」というより「一度きりのアップグレード」として扱われることが多いです。また、<strong>Education</strong>や<strong>Travel</strong>でも人気があり、ユーザーが長期的な価値を明確に感じられる領域です。</p>
<p>その他ほとんどのカテゴリでは、サブスクリプションとライフタイムの両方を提供する割合は<strong>アプリの18〜24%</strong>の範囲で推移し、その中にコンシューマブルがセットで含まれることもあります。</p>
<p>大きな例外は？ <strong>Businessアプリ</strong>です。ここではライフタイムアクセスはほとんど理にかなっていません。ユーザー1人あたりの継続コストが高く、プロダクトの進化速度も速いためです。特にB2B領域では、ライフタイムサブスクリプションは現実的ではないことが多いのです。</p>
<h1>ライフタイムサブスクリプションのメリット</h1>
<p>では、なぜ月額や年額のサブスクリプションモデルから、ライフタイムの買い切りモデルへ切り替えることを検討するのでしょうか？ここでは、両方の視点から見ていきます。</p>
<h2>顧客側の視点</h2>
<p>人々はサブスクリプションに疲れています。テレビから歯ブラシまで、あらゆるものが月額料金を求めてきます。管理が難しく、今や何もかもがサブスクリプションのように感じられます。実際、サブスクリプションを管理するためのアプリが存在するほどです。これを“サブスクリプション疲れ”と言わずして、何と言うのでしょうか。</p>
<p>そこで登場するのがライフタイムサブスクリプションです。これには魅力があります：</p>
<ul>
<li><strong>サブスクリプションの積み上がりがなくなる</strong>：新しい請求がひとつ増える代わりに、一度支払ってあとは忘れることができます</li>
<li><strong>投資としての“賭け”ができる</strong>：気に入った新しいアプリを、早い段階から応援できる。多くのスタートアップは、この「長く付き合う覚悟」を促すため、年額プランより魅力的な価格でライフタイムを提供します</li>
<li><strong>長期的な“勝ち”</strong>：アプリを損益分岐点を超えて使い続けると、「圧倒的にお得な買い物をした」と感じられます</li>
</ul>
<h2>ブランド／ビジネス側の視点</h2>
<p>ライフタイムサブスクリプションを提供することには、いくつかの主要なビジネスメリットがあります：</p>
<ul>
<li><strong>まとまった前払い収益</strong></li>
<li><strong>リテンションの向上</strong></li>
<li><strong>早期のキャッシュフロー</strong></li>
<li><strong>コミット度の高いユーザーの獲得</strong></li>
<li><strong>リファラル効果</strong></li>
<li><strong>競合との差別化</strong></li>
</ul>
<p>ライフタイムサブスクリプションは、少なくとも5年分、場合によってはそれ以上の収益を前払いで得られます。もしユーザーがもっと早く離脱していた可能性を考えると？　むしろそれは好都合です。本来得られなかったはずの価値を先に確保できるからです。</p>
<p>アプリが立ち上がったばかりのタイミングで提供すれば、リテンションを高める効果もあります。初期のライフタイムユーザーからはリテンション改善に役立つデータが取れ、さらに早期収益も得られます。</p>
<p>この前払いキャッシュは、特にコンテンツ負荷の高いブランドにとって大きな助けになります。Calmを例にすると、新しい瞑想コンテンツ、著名人のナレーション、音楽、パートナーシップなど、すべて継続的な投資が必要です。ライフタイムサブスクリプションによる収益の波が、成長を支えたり、<a href="https://www.revenuecat.com/blog/growth/mobile-app-funding/">資金調達をせずにブートストラップで拡大する</a>助けになったりします。</p>
<p>ライフタイムサブスクリプションは、戦略的なタイミングで提供することもできます。たとえば、<a href="https://www.revenuecat.com/webinars/holiday-discounts-and-promotions-for-your-app/">ホリデー割引や季節のキャンペーン</a>など、ユーザーがオファーを期待している時期です。私の経験では、割引目当てのユーザーはエンゲージメントが低く、早く離脱する傾向があります。<a href="https://www.digitalcommerce360.com/2024/04/17/study-black-friday-app-installs-airship/">Airshipのブラックフライデー加入者に関する調査</a>もこれを裏付けています。しかし、ライフタイムオファーなら、値引き目当てのユーザーではなく、コミット度の高いユーザーを引き寄せることができます。</p>
<p>さらに、よりニッチなメリットもあります。それがリファラルです。たとえば<a href="https://useorigin.com/">Origin</a>というファイナンスアプリは、3人の友人を紹介するとライフタイムアクセスを付与しています。彼らはこれを巧みに表現しています：「2人紹介で1年分のOriginがカバーされ、もう1人紹介すればライフタイムメンバーシップを獲得できます。」無料の1か月や1年よりもはるかに魅力的で、リファラルを強力な成長エンジンに変えています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/ecd535d1c56087a7148297146cf1a10983fdf765-705x1600.png" alt=""/></figure>
<p>最後に、競争の激しい業界では、ライフタイムサブスクリプションは大手との差別化の手段にもなります。大手の多くが提供していない（Calmは例外的ですが）ためです。たとえば、Duolingoと競争する語学アプリの<a href="https://www.jumpspeak.com/">Jumpspeak</a>は、私の経験ではコミット度の高いユーザーを獲得するために、ライフタイムサブスクリプションを積極的に推しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/e640fdff05ed71961500116a354708ce1270614a-1600x1360.png" alt=""/></figure>
<p>実際にJumpspeakを試したとき、私には合いませんでしたが、アプリを気に入った人ならライフタイムを選ぶのは十分にあり得ると感じました。それはユーザーをJumpspeakに“永続的に”結びつけ（うまくいけば）、ただ試してDuolingoに戻るという流れを防ぎます。Calmのライフタイムが年額の約5倍であるのに対し、Jumpspeakは3.6倍に設定しており、かなり積極的な戦略です。</p>
<h1>ライフタイムサブスクリプションのデメリット</h1>
<p>さて、ここからが本題です。どんな落とし穴があるのでしょうか？</p>
<h2>顧客にとってのデメリット</h2>
<p>私がCalmのライフタイムを購入したとき、細かい注意書きを十分に読んでいませんでした（当時の価格は、現在の約3分の1でした）。ライフタイムサブスクリプションには特定の機能に限定されているものもあり、“ライフタイム”とは通常、プロダクトの寿命、つまり会社が存続している間を意味します。これは特に新しいアプリでは大きな賭けです。</p>
<p>小さなスタートアップのライフタイムを購入して、その会社が1年後に事業を畳んでしまったら、“ライフタイム”は想定よりはるかに早く終わってしまいます。Calmの場合はすでに確立されたブランドだったので心配しませんでしたが、Jumpspeakのような新しいアプリ（しかもあまり使い込んでいなかったもの）には慎重になりました。本当にその価値はあるのか？と。</p>
<p>もうひとつの懸念点として、トライアルの提供が難しいことがあります。ライフタイムサブスクリプションは、App Storeのルール上テクニカルにはサブスクリプション扱いではないため、アプリの無料トライアルを提供できません。これによって、ユーザーがライフタイムにアップグレードする前に数か月または1年分を支払わなければならないケースが発生し、導入が進みにくくなることがあります。</p>
<h2>ブランド／ビジネスにとってのデメリット</h2>
<p>ここからが難しいところです。ライフタイムサブスクリプションは、一般的に年額サブスクリプションの5〜12倍に価格設定され、期待される<a href="https://www.revenuecat.com/glossary/#lifetime-value-ltv">LTV（ユーザー生涯価値）</a>より少し上に位置づけられます。しかし平均値はしばしば誤解を生みますし、ライフタイムサブスクリプションは将来の値上げを考慮していません。</p>
<p>たとえば私の場合、すでに数年間Calmを購読しており、おそらくその後も長く継続していたはずです。このケースだと、Calmはライフタイムアクセスを提供したことで、私から得られたはずの収益が少なくなっている可能性があります。ライフタイム価格の設定が常に綱引きのようになる理由はここにあります。</p>
<p>ちなみに、私がCalmのライフタイムサブスクリプションを購入した価格は £119.99 でした。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/15273158f6236879f5fd99fb331bd9112b97f0eb-960x850.png" alt=""/></figure>
<p>当時、Calmは今よりはるかに安く（私の怪しい記憶では年間約 $29.99）、現在はライフタイムが $399、年額が $79.99 です。つまり、値上げ後の今なら、Calmは私を年額ユーザーのままにしておいたほうが、はるかに高い収益を得られたはずです。</p>
<p>インフレ、マーケットの変化、競合価格の推移、あるいはアプリ運営コストを押し上げる将来の新機能（例：<a href="http://revenuecat.com/blog/growth/ai-subscription-app-pricing/">AI機能</a>）は予測できません。そのため、ある時点では妥当だったライフタイム価格が、数年後にはアプリの価値を大幅に過小評価するものになる可能性があります。</p>
<p>もうひとつのデメリットが アップセル です。<strong>すでにライフタイムを購入したユーザーにアップセルするのは非常に困難です。</strong>新しいプレミアムティアなど、ライフタイムに含まれない要素を打ち出すことはできますが、正直に言って煩雑です。ライフタイムから後でサブスクリプションに戻すことは基本的に不可能です。もしティアアップグレードがマネタイズ戦略の中心なら、ライフタイムは適さないかもしれません。</p>
<p>さらに、運用上の問題 もあります。サブスクリプションからライフタイムに切り替えるには、既存サブスクリプションをユーザーが手動でキャンセルし、その後ライフタイムを購入する必要があります。これは混乱を生み、誤って二重請求になるケースや、返金対応、サポート負荷増加、不満を持ったロイヤルユーザーにつながることがあります。</p>
<p>加えて、前述の重要な技術的ポイントもあります。アプリストア上では、ライフタイムは厳密には“サブスクリプション”ではありません。<strong>非消耗型のアプリ内課金</strong>として扱われ、以下のような影響があります：</p>
<ol>
<li><strong>サブスクリプション機能が使えない：</strong>無料トライアルや通常のアップグレードパスが提供できません</li>
<li><strong>手動での移行が必要：</strong>月額からライフタイムに“アップグレード”するボタンはなく、ユーザーは自分でキャンセルしてから買い直す必要があります。アプリによっては支援したり明確に説明したりしますが、誤解があると二重請求・返金・サポート問題につながります</li>
</ol>
<p>また、将来的なプロダクト構築の悩み もあります。ライフタイム購入者を新しいプレミアムバージョンへ移行させるには、別のプロダクトバージョンを維持する必要があり、再度支払いを促すのも困難です。<a href="https://subclub.com/episode/how-to-not-screw-up-switching-your-app-to-subscriptions-matt-ronge-astropad">AstropadのCEOであるMatt Ronge氏はこれを身をもって経験し</a>ており、継続コストが高い中でライフタイムユーザーをサポートしつつ新機能を開発するのが難しかったと語っています。</p>
<p>彼はSub Clubで「もし過去に戻れるなら、初期ユーザーにもっと寛容にしただろう」と話し、こうアドバイスしています：“ペナルティではなく、ユーザーが自発的にアップグレードしたくなるほどのプロダクトを作れ。”</p>
<p>投資家の視点では、ライフタイムの収益は一度きりの収入であり、サブスクリプションのように予測可能で継続的ではありません。予測可能な収益は時間とともに複利で積み上がり、企業価値を高めます。ライフタイムへの依存が大きすぎると評価額が下がる可能性があり、これがB2B SaaSでライフタイムがほとんど使われない理由です。B2Bでは運用コストが高く、継続課金による評価額の増加が成長の鍵になるためです。</p>
<h1>ライフタイムサブスクリプションの概要</h1>
<p>ここまで多くの内容を取り上げてきたので、さらに深掘りする前に、ライフタイムサブスクリプションの主なメリットとデメリットをまとめておきましょう：</p>
<h3><strong>ライフタイムサブスクリプションの概要</strong></h3>
<table>
<thead><tr>
<th><p><strong>視点</strong></p></th>
<th><p><strong>メリット</strong></p></th>
<th><p><strong>デメリット</strong></p></th>
</tr></thead>
<tbody>
<tr>
<td><p><strong>顧客</strong></p></td>
<td><p>・サブスクリプション疲れがなくなる
・一度支払えば完了
・新しいアプリを早期に応援できる
・長期的に使えば非常にお得</p></td>
<td><p>・会社が倒れた場合のリスク
・「ライフタイム」はプロダクトの存続期間を意味する
・トライアルが提供できない（App Store上は非消耗型として扱われる）
・細かい条件に機能制限がある場合がある</p></td>
</tr>
<tr>
<td><p><strong>ブランド</strong></p></td>
<td><p>・前払いキャッシュを得られる
・離脱しそうなユーザーの価値を確保できる
・コンテンツ制作やランウェイの資金源になる（特にブートストラップ時）
・プロモーションとして有効（ブラックフライデー、年始など）
・リファラル施策や大手競合への対抗に使える</p></td>
<td><p>・LTVの高いロイヤルユーザーの収益を食い潰す可能性
・アップセルやティア追加が難しくなる
・運用が煩雑（手動の解約＋再購入が必要）
・サポート負荷（重複課金・返金対応）が増える
・継続コストがライフタイム収益を上回る場合がある
・投資家にとって魅力が低い（MRR &gt; 前払い収益）</p></td>
</tr>
</tbody>
</table>
<h2>ライフタイムサブスクリプションを提供すべきか？</h2>
<p>判断を簡単にするため、シンプルなチェックリストを用意しました。「はい」が多いほど、ライフタイムサブスクリプションを導入する理由が強まり、「いいえ」が多いほど、テスト前に慎重な評価が必要になります。</p>
<ol>
<li><strong>ユーザー1人あたりの継続コストは低いですか？ </strong>継続コストが高い（例：多くのAIアプリ）場合、ライフタイムサブスクリプションの魅力は下がります。</li>
<li><strong>現在、バリュエーション（企業価値）は優先度が低いですか？</strong> 投資家やイグジットに向けた準備をしていないなら、ライフタイムは賢い選択になることがあります。バリュエーションが重要な場合、投資家は先に入る単発収益より、継続的な収益を高く評価します。</li>
<li><strong>今後の改善やランウェイ確保のために前払いキャッシュが必要ですか？ </strong>ライフタイムサブスクリプションは、開発や成長の資金となる大きなキャッシュブーストを提供できます。</li>
<li><strong>リテンションが弱い、または不確実ですか？</strong> ユーザーが早期に離脱する場合、ライフタイムオファーはリテンション改善に取り組む間の価値確保につながり、学習用のユーザーベースも拡大できます。</li>
<li><strong>ライフタイムサブスクリプションを求めるユーザーセグメントがありますか？</strong> 特に年齢層の高いユーザーやサブスクリプション疲れのある層が継続的に要望しているなら、テストする価値があります。</li>
<li><strong>あなたの業界でライフタイムサブスクリプションは一般的ですか？ </strong>他社をそのまま真似る必要はありませんが、もし珍しいなら理由があるかもしれません。</li>
<li><strong>アップセルや上位ティアがモデルの中心ではありませんか？ </strong>ライフタイムは将来の成長を阻む可能性があります。ユーザーはライフタイム購入後、追加支払いやアップグレードをしにくくなるからです。</li>
</ol>
<p>まだ急いで判断しないでください！ライフタイムサブスクリプションを進めると決めた場合でも、導入前に検討すべき重要なポイントがまだいくつかあります。</p>
<h2>ライフタイムサブスクリプションを計画する際の注意点</h2>
<p>クイズの質問すべてに「はい」と答えた場合でも、ライフタイムサブスクリプションを実際に導入する前に、慎重に検討すべき重要なポイントがまだいくつかあります：</p>
<h2>1. ライフタイムサブスクリプションの価格設定方法</h2>
<p>価格設定は極めて重要です。低く設定しすぎればMRRを損なうリスクがあり、高く設定しすぎれば潜在顧客を遠ざける可能性があります。ライフタイムサブスクリプションの価格はアプリによって大きく異なり、プロダクトや市場によっては年額の2倍からほぼ12倍まで幅があります。</p>
<p>以下は、アプリごとにどのような価格設定をしているかの例です（※価格は定期的に変更され、国によって異なります。ここでは1つの市場における現在の価格を基にしています）：</p>
<table>
<thead><tr>
<th><p><strong>アプリ名</strong></p></th>
<th><p><strong>年額価格</strong></p></th>
<th><p><strong>ライフタイム価格</strong></p></th>
<th><p><strong>ライフタイム価格 ÷ 年額価格</strong></p></th>
</tr></thead>
<tbody>
<tr>
<td><p><strong>Calm</strong></p></td>
<td><p>$79</p></td>
<td><p>$399</p></td>
<td><p>5.0x</p></td>
</tr>
<tr>
<td><p><strong>Jumpspeak</strong></p></td>
<td><p>$69</p></td>
<td><p>$249</p></td>
<td><p>3.6x</p></td>
</tr>
<tr>
<td><p><strong>Moonly</strong></p></td>
<td><p>$28.98</p></td>
<td><p>$59.98</p></td>
<td><p>2.1x</p></td>
</tr>
<tr>
<td><p><strong>Fiit</strong></p></td>
<td><p>£119.99</p></td>
<td><p>£375 (£299 on offer)</p></td>
<td><p>3.1x (2.5x on offer)</p></td>
</tr>
<tr>
<td><p><strong>Placify</strong></p></td>
<td><p>$14.99</p></td>
<td><p>$49.99</p></td>
<td><p>3.3x</p></td>
</tr>
<tr>
<td><p><strong>Waking Up</strong></p></td>
<td><p>$129.99</p></td>
<td><p>$1500</p></td>
<td><p>11.5x</p></td>
</tr>
</tbody>
</table>
<p>ライフタイムサブスクリプションをこの価格帯のどこに位置づけるべきか判断するには、次の点を考慮してください：</p>
<ul>
<li>年額価格</li>
<li>年間チャーン率</li>
<li>粗利率（グロスマージン）</li>
<li>カテゴリ特性とリテンションパターン</li>
</ul>
<p>リテンションが強く、粗利率が低い場合は、一般的に高めの価格設定が可能になります。また、平均値だけでなく、コホート別にLTVを確認することも重要です：</p>
<ul>
<li>直近のユーザーはどれくらいリテンションしているのか？</li>
<li>最もアクティブなユーザーのリテンションはどうか？ そのLTVは？</li>
</ul>
<p>このアプローチにより、低すぎる価格設定によって自らの収益を食い潰してしまうリスクを回避できます。</p>
<p>迷う場合は、<a href="https://www.wakingup.com/">Waking Up</a>（瞑想アプリ）のように、高めの価格設定を選ぶことを私は常におすすめします。Waking Upのライフタイムオファーを見つけるのは難しかったのですが（なぜそれが良いことなのかは後ほど触れます）、彼らはライフタイムサブスクリプションを <a href="https://www.wsj.com/tech/personal-tech/what-are-lifetime-subscriptions-deal-savings-c3c5757b">Wall Street Journalの報道によれば、$1,500 に設定</a>しており、年額価格の 11倍以上 です。これにより、本当にロイヤルなユーザーだけが購入する仕組みとなり、Waking Upにとっても十分に合理的な戦略になっています。</p>
<h2>2. どのオーディエンスを対象にし、どこでプロモーションするか</h2>
<p>ターゲットとなるオーディエンスは、価格戦略と密接に結びついています。私の仮説としては、Waking Upは最もロイヤルなユーザーのコンバージョンを狙っており、一方Calmはライフタイムサブスクリプションをチャーン抑制やホリデー向けオファーとして活用しているため、年額の約5倍という比較的低めの価格設定にしているのだと思います。</p>
<p><strong>ターゲットが誰かを理解していると、そのオファーをどこで宣伝すべきかも決めやすくなります。</strong>多くのライフタイムオファーは、アプリのペイウォールには大きく表示されません。代わりに、メールで送られたり、一度きりの特別オファーとして案内されることが一般的です。</p>
<p>一部のアプリでは、戦略の一環として、意図的にすべてのユーザーへライフタイムサブスクリプションを提供することもあります。これは、<a href="https://placify.co.uk/">Placify</a>のようなユーティリティ系のアプリ（パーソナルマッピングアプリ）でよく見られます：</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/1fdc0c15174febffbe129255f9ba64424a538d09-705x1600.png" alt=""/></figure>
<p>そして、月の満ち欠けとカレンダーのアプリである <a href="https://moonly.app/">Moonly</a> も同様です。価格が比較的低かったり、月ごとに利用頻度が変動しやすいタイプのアプリでは、ライフタイムサブスクリプションは期間限定プロモーションではなく、提供プランの標準的な一部として扱われることがあります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/f87d5ea27f7477629fd68591c7032d1ce5e26c82-705x1600.png" alt=""/></figure>
<p>
実際のところ、私が最も多く目にし、また受け取ってきたライフタイムオファーは、<a href="https://fiit.tv/">Fiit</a>というフィットネスアプリのように メール経由 のものでした：</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/8cb8a4aef38f9c8834ab7b28a38813c0aa65d808-397x1163.png" alt=""/></figure>
<p>このときは、ちょうどサブスクリプションを解約した直後だったため、復帰（win-back）を狙った施策 のように感じました。全体として、ライフタイムオファーを広くプロモーションする前に、まずは 自社チャネル（メール、プッシュ通知、アプリ内通知など） を使ってテストすることをおすすめします。もちろん、アプローチはどのオーディエンスを対象にするかによって変わります。</p>
<h2>3. 利用規約</h2>
<p>最もワクワクする部分ではありませんが、ライフタイムサブスクリプションが裏目に出るのを防ぐためには極めて重要です。（<strong>念のため：これは法的アドバイスではありません！</strong> ここは法務に確認すべき領域です。）</p>
<p>以下の点をしっかり考えておく必要があります：</p>
<ul>
<li>複数のティアがある場合、ユーザーはどのプランに含まれるのか</li>
<li>他の割引と組み合わせ可能かどうか（私は非推奨です）</li>
<li>アプリの将来的な大きな変更をどう扱うのか</li>
<li>サブスクリプションからライフタイムへの移行がどのように行われるのか</li>
</ul>
<p>2つ目のポイントは特に重要です。たとえば、ライフタイムサブスクリプションにファミリープランを適用すると、ユーザーが想定以上の価値を得てしまい、収益を圧迫する可能性があります。</p>
<p>4. テスト戦略を決める</p>
<p>ここまでで、ライフタイムサブスクリプションをテストする際の基本的な戦略の感触はつかめてきたはずです：</p>
<ul>
<li><strong>価格設定：</strong>年額の5倍・8倍・12倍など、異なる倍率のA/Bテストを実施し、コンバージョンだけでなく「誰が」転換しているのかも追跡する</li>
<li><strong>誰に見せるか：</strong>離脱ユーザーやリテンションの低いセグメントから始める</li>
<li><strong>いつ提示するか：</strong>ブラックフライデー、元旦など季節のプロモーションでテストし、常設化するかどうかを判断する</li>
</ul>
<p>しかし、ここで残る最後の重要なポイントがあります：<strong>どう測定すれば成功といえるのか？</strong></p>
<p>ライフタイムを買わなかった場合にそのユーザーがいくら使っていたかを正確に知るのはほぼ不可能で、比較対象のコホートは予測LTVに基づくことになります。</p>
<p>そのため、次の点を見るべきです：</p>
<ul>
<li><strong>コンバージョン率：</strong>他のオファーと比べてどれくらい転換するのか、どのセグメントが転換しているのか</li>
<li><strong>ARPU（ユーザー平均収益）と類似コホートの比較：</strong>従来のサブスクリプションと比べて、収益が増えているのか減っているのか</li>
</ul>
<p>また、次の指標を見る価値もあります：</p>
<ul>
<li><strong>ライフタイム購入者のエンゲージメント：</strong>支払い済みでも利用しないユーザーはプロダクトを推薦しにくい</li>
<li><strong>返金・サポート負荷：</strong>二重課金問題の発生有無、返金リクエスト、サポート量を監視</li>
<li><strong>収益構成の比率：</strong>ライフタイム vs サブスクリプション収益の割合を追跡 — ライフタイム比率が高すぎると、短期キャッシュの代わりに複利で積み上がるMRRが犠牲になる可能性あり</li>
</ul>
<p>最後に、まずは自社チャネルで小規模または期間限定のテストを行いましょう。これにより、初期データから学び、最適化し、本格展開に備えることができます。</p>
<h2>では、Calmのライフタイムサブスクリプションは価値があったのか？</h2>
<p>私にとっては、はい。Calmを“生涯購入”したことで、サブスクリプションがもう一つ増えるという精神的負担がなくなり、数年経った今でも「お得だった」と感じています。ただし、これこそがポイントです。ライフタイムサブスクリプションは、たいてい顧客にとっては“勝ち”に感じられますが、必ずしもブランド側の“勝ち”にはならないのです。</p>
<p>もしCalmが私を年額プランのまま維持していたら、今頃はもっと多くの収益を得られていたでしょう。それでもCalmは、長期的な収益を前払いのキャッシュと引き換えにしたわけで、その時点では新機能、著名人のナレーション、増え続けるコンテンツ制作の資金として合理的な選択だったのかもしれません。</p>
<p>これはすべてのアプリが直面するトレードオフです。<strong>ライフタイムサブスクリプションは、必要なときに資金を得る手段になり、ロイヤルティを高め、小規模アプリが大手と差別化する助けにもなります。</strong>
一方で、最も価値の高いユーザーの収益を食い潰し、アップセルの機会を減らし、長期にわたる運用上の負担を生む可能性もあります。</p>
<p>もしライフタイムサブスクリプションを検討しているなら、数字をしっかり確認し、慎重にテストし、誰のために提供しようとしているのかを明確にしてください。なぜなら、顧客が「すごくお得！」と思っているとき、あなたの側も本当に同じように思えている必要があるからです。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[サブスクリプションアプリの未来：アプリ領域に特化した投資銀行家からのアドバイス]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/eric-crowley-gp-bullhound-sub-club-podcast-2025</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/eric-crowley-gp-bullhound-sub-club-podcast-2025</guid>
      <pubDate>Thu, 27 Nov 2025 17:20:59 GMT</pubDate>
      <dc:creator><![CDATA[David Barnard]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[GP BullhoundのEric Crowley氏が、コンシューマーサブスクリプションの未来、AIが成長をどのように再形成しているのか、そして優れたアプリが買収ではなく“ユーザーに愛されること”を基点に作られている理由について語ります。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/d2a6f4ec19c1ee68cf868a4714403c05fecaeebe-1600x840.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>コンシューマー向けサブスクリプションソフトウェア業界は、投資銀行家の領域としては意外に思えるかもしれませんが、この分野を<a href="http://linkedin.com/in/crowleyeric">Eric Crowley氏</a>ほど深く理解している人は多くありません。<a href="https://www.gpbullhound.com/">GP Bullhound</a>のパートナーとして、エリックはこの6年間、トップクラスのコンシューマーアプリ企業を支援し、業界で最も評価されているレポートの一つを発行してきました。</p>
<p>今週のSub Clubポッドキャストでは、エリックを迎え、彼の最新の「Consumer Subscription Software Report」で明らかになった知見について話を聞きました。コンシューマーサブスクリプションの未来、AIが成長をどのように再構築しているのか、そして優れたアプリが買収目的ではなく“愛されるため”に作られている理由について語り合いました。</p>
<p>https://www.youtube.com/watch?v=IGxuXkPXEco</p>
<p><strong>サブスクリプション疲れという“神話”</strong></p>
<p>サブスクリプション疲れは話題になりがちですが、Eric氏によればこれは大きく誤解されています。消費者は、実際に価値をもたらすプロダクトにはこれまで以上に進んでお金を払うようになっています。サブスクリプション管理ツールによって請求はより透明になり、AIを活用したアプリはまったく新しいユーティリティやエンターテインメントのカテゴリを生み出しています。</p>
<p>Eric氏が説明するように、ユーザーは使っていないサービスを解約することはあっても、“なくてはならない”サービスには支払い続けます。開発者にとってのチャンスは、数を増やすことではなく、ユーザーが本当に価値を感じる少数のアプリを作ることに集中することです。</p>
<p><strong>Runna、Strava、そして“買収されるプロダクト”の作り方</strong></p>
<p>Eric氏は、<a href="https://www.strava.com/">Strava</a>による<a href="https://www.runna.com/">Runna</a>の買収を支援した際の学びについても共有してくれました。彼によれば、この取引がうまくいったのは、両社が合流する前に、それぞれが強力な単独プロダクトを築き、忠実なオーディエンスを獲得していたからです。特定の買い手だけを想定してプロダクトを作るのではなく、創業者はまず“消費者が愛するもの”を作るべきであり、優れたプロダクトには自然と買収オファーが集まるということです。</p>
<p>Stravaにとって、Runnaの買収は“自分をアスリートとは認識していなかったランナー層”にリーチすることで市場全体を拡大させるものでした。創業者にとってこれは、インテグレーションやバンドルが新しいユーザーや新たな収益階層への扉を開く可能性を示す好例です。</p>
<p><strong>AI、アプリストア、そして次の波</strong></p>
<p>AIは、アプリの発見方法からプロダクト開発に至るまで、あらゆる領域を変えつつあります。ユーザーがレコメンデーションのためにチャットボットを利用するようになり、検索トラフィックのパターンが変化しているため、マーケターはSEOやアトリビューションを再考せざるを得ません。しかし同じAI技術が、チームのテスト速度を高め、コンテンツ生成を支援し、リテンションを改善する力にもなっています。</p>
<p>Eric氏は、もう1つの大きな追い風として、アプリストアの“解放”が進んでいる点を挙げています。GoogleとAppleが外部決済に関する制限を緩和したことで、開発者は利益率の15〜20%が自社の収益に戻る可能性があります。さらに、ペットウェルネスやスクリーンタイム管理といった新たなカテゴリに広がる機会も加わり、まだ大きな成長余地が残されていることは明らかです。</p>
<p><strong>まとめ</strong></p>
<p>ここで紹介したのは、Eric氏との対話で取り上げたテーマのほんの一部にすぎません。AI、買収、そしてコンシューマーサブスクリプションの未来についてさらに詳しく知りたい方は、<a href="https://www.youtube.com/watch?v=IGxuXkPXEco">YouTubeやお使いのポッドキャストアプリで、今週のSub Clubポッドキャストのエピソード</a>をぜひお聴きください。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[ウェブ収益を一元管理するオーバービューを紹介]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/web-overview-dashboard</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/web-overview-dashboard</guid>
      <pubDate>Thu, 27 Nov 2025 16:55:07 GMT</pubDate>
      <dc:creator><![CDATA[Niklas Winkels]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[ウェブに関するすべてを1か所に。RevenueCatの新しいオーバービューは、セットアップ、インサイト、パフォーマンスをひとつにまとめます。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/67c574f34e820271581bebba62681ac1635ed784-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>多くのモバイル開発者が、アプリストアの外にいるユーザーへリーチするためにウェブへと進出しています。ユーザー獲得コストが上昇し、アプリストアのポリシーが厳しくなる中で、ウェブは成長のための柔軟なチャネルを提供します。</p>
<p>ウェブは、料金テストの実施、キャンペーンの実行、そしてリンクを置ける場所であればどこでもサブスクリプションを販売できる点が魅力です。</p>
<p>しかしこれまでは、RevenueCatでこれを管理するために、プロダクト設定、購入リンク、インテグレーションの各ページを行き来する必要がありました。</p>
<p>新しいダッシュボードのWebオーバービューは、これを変えます。セットアップ、インサイト、パフォーマンスを1つの場所にまとめ、RevenueCat内でウェブ収益を作成・分析・成長させることができるようになります。</p>
<h2><strong>あなたのウェブビジネス全体をひと目で把握</strong></h2>
<p>ダッシュボードのWebオーバービューは、RevenueCatにおける「ウェブ関連すべての拠点」です。セットアップ、パフォーマンス、最適化を、1つのオーバービューにまとめて表示します。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/b7e3a4ca20d6935056a4e9857f5bb88ff9458f22-4800x2520.png" alt=""/></figure>
<p>最上部には、ウェブ収益、アクティブサブスクリプション、MRRに関する主要指標が表示されます。各チャートはより詳細な分析ページに直接リンクしており、ワンクリックでオーバービューからインサイトへ移動できます。</p>
<p>その下には、すべてのWeb Purchase Linksのオーバービューが表示されます。各リンクには、インプレッション、購入数、収益、コンバージョン率が示されます。これらを並べて比較することで、どのキャンペーンが最も成果を上げているかを確認でき、またメール、ランディングページ、広告用に、新しいリンクを数秒で作成することもできます。</p>
<p>同じビューからWeb Settings/Configsを開き、外観、チェックアウトデザイン、接続設定を調整することも可能です。ページを離れる必要はありません。</p>
<p>ダッシュボードには、オンボーディング、教育コンテンツ、そしてウェブを活用してサブスクライバーを獲得・維持するための事例が組み込まれています。新しい機会を提示し、セットアップを支援し、時間とともにコンバージョン改善を促すよう設計されています。RevenueCat Webを使って新しいオーディエンスにリーチした際に何が可能になるのかを示す実践的な動画、ステップバイステップガイド、カスタマーストーリーも揃っています。</p>
<p>「私たちの目標は、ウェブがiOSやAndroidと同じくらいRevenueCatにとって“ネイティブ”に感じられるようにすることでした。何がうまくいっているかを理解するためにツール間を移動する必要はありません。新しいダッシュボードは、それらすべてを1つのビューにまとめています。」— <a href="https://www.linkedin.com/in/edshelley/">Ed Shelley</a>, Senior Product Manager</p>
<p>あなたがサブスクリプションアプリで、急遽ブラックフライデーキャンペーンを実施している場面を想像してみてください。ダッシュボードでは、各Web Purchase Linkごとのセットアップやコンバージョンを確認でき、メールからのリンク、広告キャンペーンからのリンクなどが一目で把握できます。</p>
<p>ダッシュボードのWebオーバービューは、最初のクリックから継続的なコンバージョンに至るまで、ウェブ収益の全体像を明確に示します。</p>
<h2>今日からダッシュボードのWebオーバービューを使い始めましょう</h2>
<p>より多くの開発者が、アプリストアの外へと拡大し、新しいオーディエンスやユースケースを取り込んでいます。RevenueCat Webを使えば、ペイウォールの公開、キャンペーンの実施、そしてウェブ上での直接販売を安心して行えます。ダッシュボードのWebオーバービューは、これらの機能をより使いやすく、理解しやすくします。</p>
<p>Webオーバービューは、すべてのRevenueCatユーザーにすでに提供されています。今日RevenueCatを開くと、サイドバーに「Web」が表示されているはずです。</p>
<p>すでにウェブで販売している場合は、あなたのセットアップとデータがそのまま反映されています。まずは、コンバージョンを最も牽引しているWeb Purchase Linksを確認し、どのオファーが成果を生み出しているかを見てみてください。</p>
<p>ウェブでのマネタイズが初めての場合は、オンボーディングがセットアップを案内し、最初のリンクを数分で公開する方法を示します。テンプレートやガイド付きフローが用意されており、コードは不要です。</p>
<p>ぜひ今日開いて、オーバービューを確認し、ウェブがより速く成長するためにどのように役立つのかを実際に体験してみてください。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[サブスクリプションアプリのためのOKRとKPI完全ガイド]]></title>
      <link>https://www.revenuecat.com/jp/blog/growth/okrs-kpis-subscription-apps</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/growth/okrs-kpis-subscription-apps</guid>
      <pubDate>Wed, 26 Nov 2025 17:55:35 GMT</pubDate>
      <dc:creator><![CDATA[Daphne Tideman]]></dc:creator>
      <category><![CDATA[[ グロース ]]]></category>
      <description><![CDATA[チームを整合させ、重要な指標を追跡し、戦略を測定可能な成果へとつなげる方法]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/f38baecf47dc9a39fff6236d2c467d7d88d466b3-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>かつて私は、OKR を会社のバリューと同じようなものだと思っていました。チームが設定しても、そのままどこかにしまい込まれ、ほとんど見返されない――いわば、入会しただけで全然通わなかったジムのような存在です。</p>
<p>でも、その認識はOKR を<em>本当に</em>うまく使いこなしている会社で働いたことで一変しました。OKR はただのチェックボックスではなく、<strong>長期的なビジョンを実際のアクションに落とし込む</strong>ための戦略的な仕組みだったのです。単に、これまで私はうまく運用されている OKRを見たことがなかっただけでした。</p>
<p>今では、OKR はどの会社にもおすすめできるフレームワークだと考えています。フォーカスを研ぎ澄まし、チームを揃え、戦略を実行可能な形に変えてくれる。私は OKR を「追加の仕事」としてではなく、明確さ・コラボレーション・実際のインパクトを生み出すためのツールとして使っています。ジムに通い続けたときに得られる長期的な効果のようなものです（数回通っただけで腹筋が割れるわけではありませんが）。</p>
<p>この記事は、私が最近開催した「サブスクリプションアプリのための OKR と KPI」ワークショップをベースにしています。共に登壇したのは、<a href="https://www.linkedin.com/in/rosie-hoggmascall/">Rosie Hoggmascall氏</a>（『<a href="https://growthdives.com/">Growth Dives</a>』著者・<a href="http://fyxer.ai">Fyxer.ai</a> の Growth Lead）と、<a href="https://www.linkedin.com/in/hannagrevelius/">Hanna Grevelius氏</a>（<a href="https://www.brucestudios.com/en">Bruce Studios</a> CPO、元 Golf Gamebook / Fishbrain）。この記事では、彼女たちの実践的な知見――正しい KPI の設定方法から、よくある OKR の落とし穴まで――を紐解きます。データを追いかけるだけの状態から抜け出し、インパクトを生み出すための戦略的なデータ活用へ進むために。</p>
<h2>OKR と KPI の違いとは？</h2>
<p>実践に入る前に、OKR と KPI が全体の中でどのように位置づけられるのかを理解しておくことが重要です。上から順に見ていきましょう。</p>
<ol>
<li>最上位には<strong>会社のビジョン</strong>があります。あなたが何をしているのか、どこへ向かっているのかという「理由」です。</li>
<li>多くの会社は <a href="https://www.revenuecat.com/blog/growth/north-star-metrics-subscription-growth/">North Star Metric</a>（NSM）も定義します。長期間にわたって変わらず最も重要で、全員のフォーカスをそのビジョンに向け続ける指標です。</li>
<li>ビジョンは方向性を示しますが、そこへどう到達するかまでは示しません。<strong>戦略</strong>は長期的なアプローチを示しますが、しばしば抽象的に感じられます…</li>
<li>そこで <strong>OKR</strong> が活躍します。大きな戦略を明確で管理しやすいステップに分解し、何を達成すべきか、そしてその理由を示します。</li>
</ol>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/b08de4175bbccb07503d2efdeb421944cf5b9bc5-844x560.png" alt=""/></figure>
<p>OKR は <strong>objectives and key results</strong>（目標と主要な成果）の略です。</p>
<ul>
<li><strong>Objective は達成したい方向性のゴールです</strong>。例：「ユーザー体験を改善する」。</li>
<li><strong>Key results（KR）は、目標に向けて進んでいるかどうかを示す測定可能な成果</strong>で、追跡する KPI（重要業績評価指標）を定義します。</li>
</ul>
<p>明確な key results のない objective は、ただの漠然とした新年の抱負にすぎません。特にサブスクリプションアプリにおいて、KPI は<strong>成功を定量化する指標</strong>であり、チャーン率、月間経常収益、ユーザーエンゲージメント、アクティベーション率などのメトリクスが挙げられます。これらの数値が、取り組みが効果を生んでいるかどうかを明確にします。</p>
<p><strong>key results と KPI が定義されたら、それを達成するためのさまざまな施策や実験を計画し</strong>、戦略を実行可能なステップへと変えていきます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/009fd6ed69579b525eedf6f474066108a02a2d72-1208x928.png" alt=""/></figure>
<p>ここから少し複雑になりますが、<strong>すべての KPI が OKR に紐づくわけではありません</strong>。OKR で使用される KPI は key results に直接結びつき、定量的で期限があり、戦略に沿った「改善すべき指標」です。</p>
<p>これらと並行して、<strong>ヘルス KPI</strong> を追跡することも一般的です。これは、特定の目標を進めながら、より広い戦略が健全に進んでいるかどうかを確認するための指標です。</p>
<p>たとえば、今四半期のフォーカスが獲得とアクティベーションである場合、目標は新規有料加入者の増加やトライアルから有料へのコンバージョン率の改善になるかもしれません。同時に、初月から 2 か月目の更新率のような指標を見て、質の高いユーザーを獲得できているかどうかを確認する必要があります。見落とされがちなヘルス指標としては返金率があり、獲得を拡大する中で期待値が適切に管理されていない可能性を示します。</p>
<p>情報が多すぎなかったことを願います。次は、OKR と KPI をどのように導き出すかを取り上げます。すでに KPI を持っている場合でも、これらのステップを見直すことで正しい指標を追えているか確認できます。では、コーヒーをもう一杯どうぞ — ここから深掘りしていきます！</p>
<h2>Step 1: North Star Metric を決定する</h2>
<p><strong>効果的な OKR を設定するには、まず North Star Metric（NSM）を明確にする必要があります</strong>。NSM は、あなたが顧客にどのように価値を提供し、ビジネスとしてどのように価値を獲得しているかを最もよく反映する “単一の指標” です。この指標は長期間にわたって一貫しており、すべての行動の指針になります。これを定めたら、逆算することで最も重要で NSM に影響する KPI を特定できます。</p>
<p>たとえば Spotify の NSM は「リスニング時間」であり、これはセッション数や 1 セッションあたりのリスニング時間といった KPI によって影響を受けます。これらは定期的にモニタリングされている指標と考えられます。</p>
<p>サブスクリプションアプリにおける、<a href="https://www.revenuecat.com/blog/growth/north-star-metrics-subscription-growth/">強力な North Star Metric の例</a>として以下の 5 つがあります：</p>
<ul>
<li><strong>Active subscribers：</strong>エンゲージメントとリテンションにフォーカスできる</li>
<li><strong>Core usage metrics：</strong>ワークアウト完了数や再生曲数など、価値を生む主要アクションを測定する</li>
<li><strong>Active users：</strong>エンゲージメントがコンバージョンにつながるフリーミアムモデルに有効</li>
<li><strong>Net returning revenue：</strong>既存加入者からの収益成長を追跡する</li>
<li><strong>Realized LTV per paying customer：</strong>獲得が利益につながっているかを保証する</li>
</ul>
<p>NSM に<em>してはいけない</em>のは “Revenue（売上）” です。売上を NSM にすると、解約導線の隠蔽や過度なディスカウントなど、短期的なテクニックに傾きがちで、長期的な顧客価値を生みません。<strong>NSM はユーザーに真の価値を提供するプロダクトづくりへと導く指標であるべきです</strong>。</p>
<h2>Step 2: グロースモデルの各ステップごとに KPI を特定する</h2>
<p>North Star Metric が定まったら、次はグロースファネルをマッピングする段階です。獲得（acquisition）、アクティベーション（activation）、エンゲージメント（engagement）、リテンション（retention）、マネタイズ（monetization）がどのように流れているのか、そして各ステージでどの指標が重要なのかを整理します。</p>
<p>そこから、グロースダイアグラムのマッピングに進めます。つまり、ファネル（やグロースループ）がどのような構造になっているか、そしてその各ステージで関連する指標が何なのかを洗い出す作業です。
<a href="https://www.revenuecat.com/blog/author/ryan-kotzebue/">Ryan Kotzebue氏</a>が<a href="https://www.revenuecat.com/blog/growth/subscription-metrics-mobile-apps/">サブスクリプションメトリクス</a>に関する記事で説明しているように、サブスクリプションアプリの根幹は本質的に次の 2 つに集約されます：</p>
<ol>
<li>サブスクリプションを販売する（獲得）</li>
<li>加入者を維持する（リテンション）</li>
</ol>
<p>その上に「マネタイズ」が重なり、アプリが持続可能であり続けることを保証します。これらを効果的に追跡するには、ファネルの各ステージに対応した KPI が必要です。「最適な」KPI は、あなたのアプリ、グロースドライバー、そしてビジネスにおいて重要なアクションによって異なります。</p>
<p>ただ、その前に、スタートアップから最もよく受ける質問のひとつに触れておきたいと思います：KPI はグロースステージごとにどう変わるのか？</p>
<h3>グロースステージごとの KPI</h3>
<p>各ステージでは、重点的に見るメトリクスが変わります：</p>
<p><strong>初期段階：</strong>どの指標が重要なのか、まだ手探りの段階です。リテンションはどのように見えるのか？ユーザーに価値をもたらしている要因は何か？プロダクトマーケットフィットを示す指標はどれか？「<em>このプロダクトにユーザーはお金を払うのか？</em>」に答える数字は何か？</p>
<ol>
<li><strong>スケールアップ</strong>：KPI のフォーカスを、エンゲージメントとリテンションへと移していきます。これにより長期的なロイヤルカスタマーを育て、追加の獲得チャネルも開放できます。</li>
<li><strong>後期段階</strong>：十分な基盤が整った段階では、マネタイズと効率性により深く向き合います。たとえば、ARPPU をどう増やすか、拡張収益をどう生み出してチャーンを抑え、LTV を伸ばすか、といった点です。</li>
</ol>
<aside class="tip"><strong>上級者向けヒント</strong><p>初期成長段階では、ビジネスモデルや資金状況によって、ユニットエコノミクスや取扱量（例：マーケットプレイスアプリ）を考慮する必要がある場合もあります。</p></aside>
<p>すべてのステージにおいて指標は重要ですが、KPI として追跡すべきものは、理解したいカスタマージャーニーの部分によって異なります。</p>
<p>それでは、ファネルの各ステージにおける「推奨される KPI」と「推奨されない KPI」を見ていきましょう。</p>
<h3>獲得（Acquisition）の KPI</h3>
<p>獲得に関して、多くのチームはまず基本指標から始めます。たとえば、<strong>獲得単価（CAC）</strong>や<strong>広告費用対効果（ROAS）</strong>です。しかし本当に重要なのは、単に「いくら使っているか」ではなく、利益を生む顧客を獲得できているか、そしてユーザーあたり十分な収益を得て持続的にスケールできているかです。</p>
<p><a href="https://www.revenuecat.com/blog/growth/ltv-cac-subscription-apps-alternatives/">よくある落とし穴が、LTV-to-CAC 比率に頼ることです</a>。サブスクリプションアプリにとってこれは不安定な指標で、ラグがあり、誤った成長感を与えやすいものです。</p>
<p>その代わりに、より顧客の収益性を明確に示す指標に注目するべきです。例として：</p>
<ul>
<li><strong>有料ユーザーあたり平均収益（ARPPU）</strong>：重要なマイルストーン時点（Day 0 / Day 7 / Day 30 / Day 90 など）</li>
<li><strong>回収期間（Payback period）</strong>：CAC を回収するまでに必要な期間</li>
<li><strong>CAC控除後の総利益</strong>：月ごと（3か月、6か月、12か月）で、獲得コストを差し引いた後にどれだけ利益が残っているか</li>
</ul>
<p>多くのアプリが、<strong>クリック単価（CPC）</strong>や<strong>クリック率（CTR）</strong>などのプラットフォーム指標に気を取られてしまいます。これらはチャネル最適化には役立ちますが、<a href="https://www.revenuecat.com/blog/growth/metrics-for-scaling-paid-ads/#h-realized-ltv-per-paying-customer-average-revenue-per-paying-user-arppu">収益性をもってスケールできるかどうか</a>は教えてくれません。</p>
<p>また、Hanna氏がワークショップで指摘したもうひとつの典型的なミスは、総ダウンロード数にフォーカスしすぎることです。広告費を投下すれば簡単に増やせますが、実際の価値を反映しているとは限りません。彼女は、これを示す素晴らしい例えを出していました：「エンゲージメントがないダウンロード数を誇るのは、Tinder で大量のマッチがあると自慢するようなもの。でも、実際には一度もデートに行っていない。」</p>
<h3>アクティベーションの KPI</h3>
<p>ここで見るべきなのは、獲得したユーザーのうち何％がアクティベートするか、という点です。</p>
<ul>
<li><strong>Trial start</strong>：インストールからトライアルを開始した割合</li>
<li><strong>Trial-to-paid</strong>：トライアルから有料へ転換した割合</li>
<li><strong>Download-to-paid</strong>：インストールから有料へ転換した割合</li>
</ul>
<p>これらの指標は、どこで離脱が起きているのかを明確にし、「トライアル開始数が少ないのか」「トライアルからの転換率が低いのか」を見極めるのに役立ちます。 — トライアルを提供していない場合は、なおさら重要になります。</p>
<p><em>補足：これらの指標を獲得（Acquisition）と分類するか、アクティベーション（Activation）と分類するかはアプリによって異なります。チームの担当範囲や、トラフィック品質をどれだけ重視しているかによって変わります。</em></p>
<p>また、「アハ体験」──ユーザーが初めて実際の価値を実感する瞬間──も追跡する必要があります。初期段階では、主要機能へのエンゲージメントを計測し、どの行動が「支払いユーザー」や「継続ユーザー」を最も予測するかを探ることができます。たとえば Fishbrain では、ユーザーが過去の釣果写真をすぐにアップロードできるようにし、価値体験までの時間を短縮してアクティベーションを高めました。</p>
<p>他にも有用なシグナル：</p>
<ul>
<li><strong>アハ体験までの時間</strong></li>
<li><strong>オンボーディング完了率</strong></li>
<li><strong>選択されたプラン</strong></li>
</ul>
<p>これらは、後のマネタイズにも影響を与えるため、非常に価値のある指標です。逆にあまり役に立たないのが、「開始されたトライアル数の合計」を追うことだけに偏ることです。これは量を優先してしまい、質の低いユーザーを増やす結果になりがちです。</p>
<h3>エンゲージメント KPI</h3>
<p>一般的な出発点は、<strong>デイリー・ウィークリー・マンスリーアクティブユーザー（DAU／WAU／MAU）</strong>を追跡することです。しかし、これだけでは多くのインサイトは得られません。「アクティブ」は、アプリを開いただけではなく、意味のある利用を反映しているべきです。</p>
<p>多くのサブスクリプションアプリは、DAU／MAU（利用頻度が低いケースでは WAU／MAU）を割ることで<strong>スティッキネス</strong>も追跡します。これは、アプリがどれだけ効果的にユーザーの習慣を形成しているかを把握するのに役立ちます。</p>
<p>その他の有用な<a href="https://www.revenuecat.com/blog/growth/app-engagement-metrics-subscription-apps/">エンゲージメント指標</a>としては、機能の利用状況に注目するものがあります。これにより、どの機能がユーザーに最も価値を提供しているかを理解できます。ただし、過度に重視されがちな指標にセッションの長さがありますが、多くのアプリでは、これは必ずしも実際の価値や意味のある利用を反映するものではありません。</p>
<p>エンゲージメント KPI の目的は、次の指標を特定することです：</p>
<ul>
<li>利用頻度と、必要に応じて利用時間を捉えること</li>
<li>アプリを開くだけではない、深いインタラクションを反映すること</li>
<li>リテンションへの早期インサイトや、<a href="https://www.revenuecat.com/blog/growth/how-to-spot-churn-before-it-happens/">チャーンの兆候</a>を提供すること</li>
<li>マネタイズやコンバージョンと密接に関連していること</li>
</ul>
<p><strong>ヘルス指標</strong>としてよく追跡される指標に、<strong>平均評価</strong>（iOS と Android）およびレビュー数があります。評価の急落や<strong>レビュー数</strong>の急減は、ユーザー体験上の問題を示す可能性があります。また、<a href="https://www.revenuecat.com/blog/growth/why-ratings-and-reviews-in-aso-are-more-important-than-ever/">ASO を重視している場合、これらは成長と可視性にとって重要です。</a></p>
<h3>リテンション KPI</h3>
<p>リテンションは長期的な成功を示す最も強力な指標のひとつですが、その測り方はサブスクリプションモデルによって異なります。一般的なリテンション期間には、Day 1／Day 7／Day 30／Day 90／Day 365 があり、更新率のパーセンテージも用いられます。</p>
<p>これは特に次の場合に重要です：</p>
<ul>
<li><strong>月額サブスクリプション</strong>：初月の更新率に注目する</li>
<li><strong>年額サブスクリプション</strong>：更新率および初年度更新率を追跡する</li>
</ul>
<p>リテンション指標は、往々にして「遅行指標」であることを念頭に置いてください。そのため、エンゲージメント KPI と組み合わせることで、より早期のインサイトを得ることができます。</p>
<p>もう 1 つ重要な指標が<strong>チャーン率</strong>で、能動的チャーン（ユーザーによるキャンセル）と不随意チャーン（決済失敗）に分けて見る必要があります。この区別によって、どのリテンション施策を優先すべきかが明確になります。</p>
<h3>マネタイズ KPI</h3>
<p>すでに、獲得における <a href="https://www.revenuecat.com/blog/growth/what-is-lifetime-value-ltv-apps/">LTV（ライフタイムバリュー）活用の難しさ</a>について触れましたが、マネタイズに関して重要な指標は<strong>ユーザーあたりの収益</strong>です。一般的に、ARPPU（Average Revenue Per Paying User／課金ユーザーあたり平均収益）は、時間をかけてこれを追跡し、ペイバック期間を算出するうえで有効な指標であり、「<a href="https://www.revenuecat.com/docs/dashboard-and-metrics/charts/realized-ltv-per-paying-customer-chart#:~:text=Realized%20LTV%20(Lifetime%20Value)%20per,of%20customers%20in%20that%20cohort.">Realized LTV per paying user</a>」として言及されることもあります。</p>
<p>収益そのものは強いノーススター指標ではありませんが、多くのアプリは<a href="https://www.revenuecat.com/docs/dashboard-and-metrics/charts/monthly-recurring-revenue-mrr-chart"> MRR（月次経常収益）</a>や <strong>NRR（純収益リテンション）</strong>を追跡しています。これは、リテンション、アップセル、ダウングレードを包括的に捉えられるためです。ただし、OKR においては、これらの指標は範囲が広すぎて具体的なアクションにつながりにくい場合があります。</p>
<p>もうひとつ価値のある指標として、特に後期フェーズのアプリで有効なのが<strong>Expansion revenue</strong> %です。これはアップセルやプランアップグレード、アドオンによる追加収益を追跡します。</p>
<p>最後に、<strong>返金率</strong>は見落とされがちですが、放置すると収益を大きく損なう可能性があるため、監視すべき重要なヘルス KPI です。</p>
<h2>3. KPI を統合してパフォーマンスを測定する</h2>
<p>選んだ KPI が揃ったら、それらを統合する段階です。Rosie氏は、成長モデルをまず手書きで描き、その後 Google シートに移してパフォーマンスを追跡するという、AI 時代にはむしろ新鮮な “超オールドスクール” な方法が好きだと語っていました。</p>
<p>次に、指標を関連ベンチマークと比較します。これには <a href="https://www.revenuecat.com/state-of-subscription-apps-2025/">State of Subscription Report 2025</a> が非常に役立ちます。ただし注意点として、<a href="https://www.revenuecat.com/blog/growth/sub-club-podcast-phil-carter-2025/">ベンチマークがすべてではありません</a>。アプリによって大きく異なるため、自社アプリで何が現実的か判断する際には、過去データや常識的な判断も必ず加味する必要があります。</p>
<p>そのうえで、指標をパフォーマンスに応じて色分けすることを推奨しています。これは私自身も毎四半期、支援しているブランドに対して行っている方法です。</p>
<ul>
<li><strong>Green</strong>：うまく機能しており、いま重点を置かなくてよい</li>
<li><strong>Orange</strong>：機能しているが改善の余地あり</li>
<li><strong>Red</strong>：改善が必要</li>
</ul>
<p>スタートアップの場合、赤が多くても落ち込まないでください。これは完全に普通のことです！ここで戦略の出番です。少し距離を置いて（もう一歩引いても OK）、まず「どの領域を最優先で改善すべきか」「どの変化がファネル全体に最も大きな影響をもたらすか」を自問します。</p>
<p>私がどの指標に集中するか迷うときは、まず「今四半期でどこまで改善可能か」を仮定し、その改善が向こう 1 年にどれほど影響するのかをざっくり計算します。これにより、各領域を客観視し、重点を絞るのに役立ちます。個人でも小規模チームでもすぐ実行でき、計算や前提条件を比較し合うことでさらに有効になります。</p>
<p>忘れないでください：OKR の本質は「フォーカス」です。ファネル全体にまたがる 10 個の KPI をひとつの OKR に詰め込んでも、ほとんど価値はありません。<strong>本当に目的を推進するインパクトの大きい指標に絞り込むほうが、はるかに健全で効果的です。</strong></p>
<h2>4. OKRを確定する</h2>
<p>ここからは OKR の設計に入ります。覚えておいてほしいのは、Objective は「達成したいこと・変えたいこと」であり、Key Results（KRs）は KPI を使って成功を正確に測る指標だということです。KR が示すのは、Objective に向かって前進しているかどうかを示す「成果」であり、タスクや施策のリストではありません。</p>
<p>私の考え方では、<strong>KR を達成できれば、Objective も達成できると確信できる状態</strong>が理想です。単なるタスク一覧では、その確信は得られません。</p>
<p>たとえば、以下のような OKR があるとします：</p>
<p><strong>Objective</strong>：年間サブスクリプション比率を増やす</p>
<ul>
<li><strong>Key result 1</strong>：新規加入者の年間プラン選択率を月間プラン比で 20% 増加させる</li>
<li><strong>Key result 2</strong>：既存ユーザーの年間プランへのアップセル数を 15% 増加させる</li>
</ul>
<p>これらの KR を達成するために試せる施策は数多くあります。すべてがうまくいくわけではありませんが、「新規・既存ユーザーがより多く年間プランを選ぶ」のであれば、その分モネタイズへ確実に良い影響が生まれます。</p>
<p>次のような OKR は効果的とは言えません：</p>
<p><strong>Objective:</strong> 年間サブスクリプション比率を増やす</p>
<ul>
<li><strong>Key result 1</strong>：年間プランを訴求するメールキャンペーンを 5 回実施する</li>
<li><strong>Key result 2</strong>：オンボーディングフローに年間プランのアップセルメールを追加する</li>
<li><strong>Key result 3</strong>：年間プランをデフォルトにしたペイウォールテストを実施する</li>
<li><strong>Key result 5</strong>：年間プランの一回限りの割引をポップアップで表示する</li>
</ul>
<p>これらすべての施策を実施したとしても、年間プラン比率がまったく増えない可能性があります。だからこそ、KR は「測定可能な成果」である必要があるのです。KR が成果に設定されていれば、Objective に向けて本当に前進しているか判断でき、もし成果が出ていなければ軌道修正する柔軟性も持てます。</p>
<h3>Objective を共有しつつ、KPI はチームごとに分ける</h3>
<p>OKR はチーム間で整合させることが重要で、理想的には会社全体で Objective を共有し、複数のチームがそれぞれの KPI で貢献する形が望ましいです。これによりコラボレーションが生まれ、OKR が増えすぎて管理不能になるのを防ぎます。</p>
<p>とはいえ、KPI が互いに競合しないよう注意が必要です。Hanna が優れた例として紹介してくれたのは、Fishbrain が追っていた 2 つの主要指標「広告収益」と「サブスクリプション収益」。両方に注力したことで目標が衝突し、協力ではなく不一致を生んでしまったのです。KPI がチームの足並みを揃えるものであり、競争を生まないものであることを必ず確認してください。</p>
<h3>OKR はチャレンジングであるべき</h3>
<p>OKR を作成するときは、チームを巻き込みながら「これは本当に自分たちを前進させる内容か？」と問いかけてください。OKR は毎四半期すべてを達成することを前提にしたものではありません。一般的な達成指標は 0〜1 のスケールで、メインの 3〜5 個の OKR で平均 0.6〜0.7 を目指します。これにより、目標が十分に野心的で、実際に意味のある進捗を生み出せるようになります。</p>
<h2>5. OKR を社内に共有する</h2>
<p>このステップは本当に重要で、単独で取り上げる価値があります。以前、チームのほとんどとともにワークトリップに参加し、方向性の変更について議論したことがありました。私たちは何時間もブレストし、議論し、次の四半期の OKR を固めました。私は社内でこれを共有できることにワクワクし、意気揚々とチーム全体にプレゼンしました。</p>
<p>ところが問題がありました。プロダクト責任者は任意参加だったそのワークトリップに参加しておらず、OKR の背景にある文脈をまったく共有できていなかったのです。これは私にとって二重のミスでした：</p>
<ol>
<li>OKR の設定と最終決定に、<strong>重要なステークホルダーを巻き込まなかった</strong>こと</li>
<li>なぜその OKR を選んだのかという背景の<strong>ストーリーを伝えず</strong>、そのプロセスに人を巻き込まなかったこと</li>
</ol>
<p>最終的には、彼は非常に価値のあるフィードバックをくれ、完全に納得してくれました。しかし、その話し合いは決して簡単ではありませんでした。彼は自分が飛ばされたことを快く思わず、その大きな方針変更がどこから来たのか理解できなかったのです。</p>
<p>結論として言えるのは、<strong>OKR そのものと同じくらい、OKR の“背景にあるストーリー”を明確に伝えることが重要だ</strong>ということです。Rosie氏は「OKR は、チームの誰もが見なくても口に出せるほど明確であるべき」と強調しています。</p>
<h2>6. OKR のリズムをつくる</h2>
<p>OKR は、<strong>日々の業務の中にしっかり根付かせる</strong>必要があります。四半期ごとに設定するものですが、関連する KPI は<strong>週次</strong>で（多くの場合はダッシュボードを通じて）確認し、<strong>スプリントごとに</strong> OKR の進捗を振り返るべきです。</p>
<p>四半期の終わりには、<strong>OKR をスコアリング</strong>します。主観的に「どの程度オブジェクティブに近づけたか」で評価するチームもあれば、各キ―リザルトを開始時点との比較で<strong>ゼロイチ</strong>ベースで点数化し、その平均を算出するチームもあります。たとえ全てが 1 に到達していなくても、<strong>達成したことをしっかり称えましょう</strong>。すべて 1 を連発する場合は、OKR が簡単すぎた可能性があります。</p>
<p>OKR が本当の力を発揮するのは、数四半期続けて運用した後です。仕事のリズムが整い、振り返りが習慣化し、何が効果的かが見えてくるようになります。各四半期の終わりには KPI を見直し、それらが引き続き適切かどうかを確認しましょう。場合によっては四半期の途中で調整が必要になることもあります。Rosie氏は<strong>「KPIが機能しなくなるまで使い続ける」</strong>ことを推奨しています。アプリが進化するにつれ、かつて重要だった指標が見直しを必要とする場面が必ず訪れるためです。</p>
<h2>神話の検証：KPI編</h2>
<p>成長モデルに KPI を組み込んだり、レビューしたりする前に、次の点を自問してください：</p>
<p><strong>1. それは“正しい”指標か？</strong></p>
<p>Rosie Hoggmascall氏がウェビナーで述べたように、“正直な”指標こそ価値を生みます。操作されたり、人工的に膨らませたりできる指標では意味がありません。</p>
<p><strong>2. シンプルに理解できるか？</strong></p>
<p>説明が難しかったり、ほとんど使われなかったりする複雑な指標は避けましょう。企業は時に、賢そうに見える計算式ベースの指標に気を取られがちですが、本当に必要なのは明確で行動につながる指標です。</p>
<p><strong>3. 先行指標になっているか？</strong></p>
<p>チャーンのような遅行指標は重要ですが、それだけでは不十分です。たとえば「7 日目時点の平均収益」は、将来の LTV 改善を予測する先行指標として役立ちます。</p>
<p><strong>4. データを信頼できるか？</strong></p>
<p>KPI は、その裏にあるデータが正確であってこそ意味を持ちます。チームがトラッキング精度を疑えば、指標そのものも疑われます。定期的にトラッキング環境を監査しましょう。</p>
<p><strong>5. チーム間の足並みを揃えられるか？</strong></p>
<p>KPI はチームをひとつにまとめるべきで、対立を生んではいけません。たとえば、一方のチームを「トライアル開始数」で評価し、別のチームを「トライアル→有料化率」で評価すると、緊張が生まれます。トライアル数を増やすほど、コンバージョン品質が落ちる可能性があるためです。</p>
<p>KPI を追加するときは、このチェックが不可欠です。“測れるから”という理由だけで追うべきではありません。本当に意味のある KPI を少数に絞ることで、よりクリアなシグナルが得られますし、必要になった時にはいくらでも深掘りできます。</p>
<h2>非常に強力なツール… <em>正しく</em>使えば</h2>
<p>OKR は、単なる四半期ごとの “やることリスト” や、作って終わりのスライドではありません。チームの全員が理解し、自分ごととして取り組める<strong>明確で測定可能なステップへと戦略を落とし込む</strong>仕組みです。KPI は、取り組みが本当に効果を生んでいるか、そして正しい方向に向かっているかを示し続けてくれます。</p>
<p>サブスクリプションアプリの成長は、獲得・アクティベーション・エンゲージメント・継続率・収益化のバランスにかかっています。OKR と KPI は、このバランスを支えるための土台となるフレームワークです。<strong>大きなビジョンを見据えながら、一方で本当に進捗を示す指標にフォーカスする</strong>ことができます。</p>
<p>ここで最も重要なのは、「データに溺れない」「見かけ倒しの指標に迷わされない」ことです。意図を持って選びましょう。：</p>
<ol>
<li>自社とユーザーの両方に価値を反映する<strong>North Star metric</strong>を選ぶ</li>
<li><strong>ファネルの各ステージに合わせて KPI </strong>を構築する</li>
<li><strong>四半期ごとに OKR でフォーカスと連携</strong>を生み出す</li>
</ol>
<p>こうした姿勢で取り組むことで、単に数字を追うだけの状態から抜け出し（過去の私が恐れていた OKR チェックインではなく）、<strong>ビジョンへ向けた確かな前進</strong>を積み重ねられるようになります。時間とともに成果が積み上がり、長期的なインパクトを生み出すことができるのです。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[ペイウォールを“売るだけ”で終わらせない：ペイウォールを活用する思いがけない 7 つの使い方]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/paywalls-unexpected-uses</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/paywalls-unexpected-uses</guid>
      <pubDate>Wed, 26 Nov 2025 15:00:51 GMT</pubDate>
      <dc:creator><![CDATA[Daphne Tideman]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[優れたペイウォールは、購入ボタンを超えてユーザーを教育し、信頼を築き、リテンションを高める]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/932c8af318fbff3c679b6eeca39a3642600e0b86-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>私は “<em>paywall</em>” という言葉が少し不思議だとずっと感じてきました。それは「さあ、今すぐ支払って」と告げる壁です。厳しく、冷たく、あなたとやりたいことの間に立ちはだかるレンガの障壁のようなもの。支払わなければ先へ進めず、フリーミアムアプリの場合は、その比喩的な壁を気まずくよじ登らなければならない。しかし、それだけである必要はありません。“<a href="https://www.revenuecat.com/glossary/#paywall">ペイウォール</a>” という言葉自体が、その画面を「支払いのためだけ」と狭く捉えてしまっています。実際には、ペイウォール画面はもっと多くのことができるのです。</p>
<h2>ペイウォールの役割の例（収益化以外）</h2>
<p>ここでは、優れたペイウォールができることを示します――ただし、取引そのものを超えて考えたときに限ります。</p>
<ol>
<li>教育し、価値を伝える</li>
<li>信頼を築く</li>
<li>感情的なつながりを生む</li>
<li>ユーザー行動を導く</li>
<li>進捗を強化する</li>
<li>リテンションを改善する</li>
<li>顧客インサイトを集める</li>
</ol>
<p>これらのアイデアはペイウォール改善のヒントになりますが、まずは<a href="https://www.revenuecat.com/blog/growth/guide-to-mobile-paywalls-subscription-apps/">ペイウォールテスト</a>を設定し、構造化したアプローチで実験することが不可欠です。特に、ユーザーデモグラフィックや行動の面で、iOS と Android の違いを念頭に置く必要があります。</p>
<p>また、ペイウォールが<em>どこ</em>に表示されるか、そしてその時点で何を達成すべきかも考える必要があります。たとえば、オンボーディング直後のペイウォールは教育の必要性がそれほど高くないかもしれません。オンボーディング自体がすでにその役割の大部分を担っているためです。</p>
<p>私は以前、Fyxer AI の Growth であり Growth Dives の著者である <a href="https://www.linkedin.com/in/rosie-hoggmascall/">Rosie Hoggmascall氏</a> に、<a href="https://www.revenuecat.com/blog/growth/how-top-apps-approach-paywalls/">優れたサブスクリプションアプリがペイウォールでうまくやっている点</a>についてインタビューしました。彼女は過去のアプリでの興味深い例を共有してくれました。彼らは次の 3 つのフローをテストしました：</p>
<ul>
<li>A: Welcome 画面 → オンボーディング → ホーム → ペイウォール = トライアル登録率 2%</li>
<li>B: Welcome 画面 → ペイウォール → オンボーディング → ホーム = トライアル登録率 8%</li>
<li>C: Welcome 画面 → 新しい 3 枚のカルーセル → ペイウォール → オンボーディング → ホーム = トライアル登録率 15%</li>
</ul>
<p>このテストが示したのは、文脈が、ペイウォールが“売る以外で何をすべきか”に大きく影響するということです。たとえば、アプリの深い位置にあるペイウォールでは、前置きはそれほど必要なく、ユーザーの進捗を強調したり、感情的なつながりを深めたりすることに集中できます。</p>
<aside class="tip"><strong>Paywalls.com の実例からインスピレーションを得る</strong><p><a href="https://www.paywalls.com/">Paywalls.com</a>では、実際のペイウォール例を閲覧できます。さまざまな UI 要素、アプリカテゴリ、トレンドや高成長のペイウォールでフィルタリングして探すことができます。</p></aside>
<p>それでは、ペイウォールを活用する思いがけない 7 つの方法を、実際の例とともに紹介します。</p>
<h2>1. 教育し、価値を伝える</h2>
<p>ユーザーに支払ってもらいたいのであれば、まずその対価として得られる価値を明確に伝え、<strong>なぜあなたのアプリに支払う意味があるのかを理解してもらう</strong>必要があります。<a href="https://www.revenuecat.com/blog/growth/ugly-paywalls-conversion-testing/?utm_source=chatgpt.com">Golf Gamebook はこの点で特に優れています</a>。彼らのペイウォールでは、ライブリーダーボードやトーナメント作成など、アプリで「実際に何ができるのか」をはっきりと示しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/51bb86c791ad0802a2ff840f4f1e9559f0b03e4e-1183x1256.png" alt=""/></figure>
<p>このアプローチによって、ユーザーは自分が何を達成できるのか、そして支払いがなぜ妥当なのかを直感的に理解できます。別のペイウォールでは “ハンディキャップを 4 倍速く改善” といった、ゴルファーが期待する具体的な成果を明確に提示しています。</p>
<p>Golf Gamebook のペイウォールは、いわゆる「見た目が美しい」タイプではありませんが、Bruce Studios の CPO、<a href="https://www.linkedin.com/in/hannagrevelius/">Hanna Grevelius氏</a> の最近のブログによると、こうしたシンプルで明快な（率直に言えば “ちょっと不格好な”）<a href="https://www.revenuecat.com/blog/growth/ugly-paywalls-conversion-testing/">ペイウォールを検証した結果</a>、ブランド感の強い洗練されたバージョンよりも一貫して高いパフォーマンスを示したとのことです。<strong>要するに、価値をしっかり伝えることのほうが、凝ったデザインよりずっと重要なのです。</strong></p>
<p>もう一つの優れた例として、銀行アプリ Vivid が挙げられます。<a href="https://vivid.money/en-eu/">Vivid</a> は各有料プランに含まれる機能の違いを、非常にわかりやすく提示しています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/55993d9294b4e69410cea2cc42bd68dd853b4884-1664x1257.png" alt=""/></figure>
<p>どのプランが自分に適しているのか、そして支払う価値があるのかを判断するのは難しいものですが、Vivid はそれを簡単にしています。ユーザーはスワイプで主要な違いを比較し、スクロールで詳細を確認し、すぐに得られるメリットを理解できます。</p>
<p><strong><em>補足</em></strong><em>：個人的には </em><a href="https://www.revenuecat.com/blog/growth/jtbd-paywall-optimization/"><em>JTBD（片づけるべき仕事）</em></a><em>よりも機能にフォーカスしている点はやや惜しいところですが、銀行アプリの場合はプランごとの機能差を明確にすることが不可欠なのだろうとも思います。</em></p>
<h2>2. 信頼を築く</h2>
<p>アプリをダウンロードし、少し使ってくれたからといって、自動的に信頼してもらえるわけではありません。紹介経由で来たとしても、ブランドを知っていたとしても、<strong>信頼は依然として築くもの</strong>です。デートのようなもので、1 回うまくいっただけで翌日から100%信頼できる──ということにはなりません。時間が必要です。</p>
<p>ペイウォールは、その信頼構築を 2 つの主要な方法でサポートできます：</p>
<ol>
<li>ソーシャルプルーフ（レビュー、評価、App Store の特集など）</li>
<li>支払い構造の明確さ</li>
</ol>
<p>この好例が、<a href="https://www.enjoybloom.com/">Bloom</a> というセルフガイド形式のセラピーアプリ（現在は Spring Health に買収され提供終了）です。Bloom は 2 段階のペイウォールを使っていました：</p>
<ol>
<li>最初のパートでは、後述する「進捗感」を生みつつ、トライアルの仕組みを正直に、明確に説明し、たとえ解約を忘れても全額返金可能であることを伝えることで信頼を築いていました。<a href="https://www.revenuecat.com/blog/engineering/how-to-build-a-blinkist-style-paywall-using-revenuecat-webhooks-and-zapier/">Blinkist のペイウォールにも似ています</a>が、この点をここまで大胆に打ち出すアプリは多くありません。</li>
<li>次のパートでは、ソーシャルプルーフを前面に出しています：</li>
</ol>
<ul>
<li>200万人に利用されている</li>
<li>本日のおすすめアプリ</li>
<li>21,000 件以上のレビューで 4.8/5</li>
<li>セルフガイドセラピー部門で1位</li>
</ul>
<p>その結果どうなったか？このペイウォールは「売る」だけではなく、アプリへの信頼を大きく高め、ユーザーが正しい選択をしていると安心できる作りになっていました。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/bb94a7cccdd546a517763b7bf351e5b94db0ce1e-1116x1260.png" alt=""/></figure>
<p>信頼構築の重要なポイントは、ユーザーの注目やトラクション獲得のために<a href="https://www.revenuecat.com/blog/growth/black-hat-aso-app-store-optimization/">ブラックハットな手法</a>に頼るのではなく、<a href="https://www.revenuecat.com/blog/growth/is-monetization-hurting-your-apps-user-experience/">倫理的な収益化を徹底</a>することです。料金体系の明確さが必須で、Bloom はこの点を徹底していました：</p>
<ul>
<li>週単位だけではなく、必ず期間全体での価格を提示し、誤解を生まないようにする</li>
<li>年額プランにトライアルが付く場合、月額・買い切りにはトライアルがないことを明示（ただ書かないのではなく “no trial” と明記）</li>
<li>いつ課金され、どのように解約できるかを正確に伝える</li>
</ul>
<p>もうひとつのユニークなアプローチとして、「ユーザー自身が価格を設定する」という方法があります。ペイウォールのリサーチ中に見つけた <a href="https://www.rocketmoney.com/">Rocket Money</a>（旧 Truebill）は、価格を押しつけるのではなく、ユーザーに支払額を選ばせる仕組みを採用していました。これは信頼を強く後押しする方法で、私自身ほかで見たことがありません。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a8bb1edaa0c55ef33397425c2a0f9428bd7997e3-923x1999.jpg" alt=""/></figure>
<p>Rocket Money は“サブスクリプションを管理するためのサブスクリプションサービス”という性質もあり、その分クリエイティブな工夫が必要なのでしょう。ただ、ペイウォール上で信頼を得るあらゆる仕掛けは、最終的にリテンションに良い影響を与えます。400 万人のプレミアム会員というソーシャルプルーフも、このサービスの価値を後押ししています。（もし「値付けテストなのでは？」と思ったとしても、おそらく違います。Truebill 時代から継続されている手法なので。）</p>
<h2>3. 感情的なつながりを生む</h2>
<p>多くのアプリユーザーの背景には、アプリを使う動機となり、また戻ってきたくなるような「<a href="https://www.revenuecat.com/blog/growth/solve-app-problems-emotionally/">感情的ドライバー</a>」が存在します。『<a href="https://hbr.org/2015/11/the-new-science-of-customer-emotions">The New Science of Customer Emotions</a>』によれば、人間の行動には次の 10 の感情的ドライバーがあるとされています：</p>
<ol>
<li>人混みの中で際立ちたい</li>
<li>将来に自信を持ちたい</li>
<li>心地よさを感じたい</li>
<li>自由を感じたい</li>
<li>スリルを感じたい</li>
<li>帰属意識を持ちたい</li>
<li>環境を守りたい</li>
<li>なりたい自分になりたい</li>
<li>安心感を持ちたい</li>
<li>人生で成功したい</li>
</ol>
<p><strong>感情的なつながりを築くには、まずターゲットユーザーに最も響くドライバーがどれかを特定することが重要です。</strong><a href="https://www.revenuecat.com/blog/growth/what-drives-users-to-pay-jobs-to-be-done/">顧客の深い調査</a>を行い、どんな行動原理を持っているのか、なぜあなたのアプリを解決策と見なすのかを深く理解します。</p>
<p>ユーザー理解が進めば、ペイウォールはその感情的なつながりを伝えるのに最適な場所になります。たとえば以下のように表現できます：</p>
<ul>
<li>ユーザーの動機に合った価値提案の言葉</li>
<li>アプリによって達成できる成果を語る</li>
<li>ユーザーを理解していると感じさせるビジュアルやデザイン</li>
</ul>
<p>ワークアウトアプリの <a href="https://www.joinladder.com/">Ladder</a> は、この点で特に優れています。ペイウォールに記載されたシンプルな一文：「ワークアウトの計画なしに、結果を出そう。」 これは 10 番目のドライバー（人生で成功したい）を満たしつつ、多くのユーザーが抱える「ワークアウトの計画が面倒」という痛点を取り除いています。Ladder は<a href="https://subclub.com/episode/boost-conversion-and-retention-with-jobs-to-be-done-daphne-tideman-growth-advisor">ユーザーの JTBD（片づけたい仕事）を深く理解</a>し、そのインサイトを広告から App Store、ペイウォール、アプリ内に至るまで、すべてのタッチポイントで一貫して活かしています。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/31668ffaed5df31f53410600b4f472697775ff19-882x1999.jpg" alt=""/></figure>
<p>これらの優れた例と比べると、多くのペイウォールは驚くほど「普通」です。数百のペイウォールを調査する中で、次のような使い古されたヘッドラインが繰り返し使われていることに気づきました：</p>
<ul>
<li>始めましょうか？</li>
<li>無料トライアルを開始</li>
<li>トライアルの仕組みを確認</li>
<li>プランを選択</li>
<li>全機能を開放</li>
</ul>
<p>これは「わかりにくくしてはいけない」という恐れから来ているのだと思います。しかし、アプリの深い場所でユーザーがペイウォールに再び出会うタイミングこそ、<strong>単純に「支払いをお願いする」ではなく、価値提案にフォーカスを切り替える</strong>べき瞬間です。</p>
<p>このバランスの好例が、カナダの金融アプリ <a href="https://www.koho.ca/">KOHO</a> です。オンボーディング中は、ユーザーに選択肢を教育し、価格を明確に伝えるクラシックなアプローチで、最初のペイウォールの土台を作ります：</p>
<p>しかし後のフェーズ、ユーザーがクレジットスコア改善を検討し始めた頃には、KOHO は「安心感」（9 番目のドライバー）に焦点を移します。ペイウォールはよりビジュアルでシンプルになり、良いクレジットスコアがもたらす成果──ローン審査の通過、新しい車、家の購入など──を描き、<strong>結果とその背後の感情を強調</strong>します。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/17be7aea920d11c421aecc8f57aecb53507347e7-1110x1260.png" alt=""/></figure>
<p>もう一つ、強い感情的つながりを生む方法として、ユーザーが共感できるアイコンや人物、文化的な文脈を取り入れ、アプリに個性を持たせる手法があります。単一の画面で実現するのは難しいため、<a href="https://www.revenuecat.com/blog/growth/weird-paywalls-drive-subscription-growth/">ユニークなペイウォール</a>に挑戦するアプリもあります。</p>
<p>暗号資産アプリの <a href="https://coinstats.app/">CoinStats</a> はその好例です。彼らは定期的にペイウォールを更新・テストし、季節ものやポップカルチャーを取り入れ、常に新鮮で楽しい体験を提供しています。</p>
<p>ある例では、クリプト界で有名な “Giga Chad” をサンタ姿でペイウォールに登場させていました。いつテストされたかは一目瞭然です。こうしたアプローチは、親しみやすさを生み、アプリを人間味のある存在にし、感情的つながりを強化します。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/7899b77367bf29ea99bc72ed110239a2c85ce143-535x1024.jpg" alt=""/></figure>
<p>CoinStats <a href="https://www.businessofapps.com/insights/paywall-optimization-reimagined/">これに関するデータを共有</a>しており、こうした文脈に合わせた遊び心のあるペイウォールは、Android・iOS どちらでもコンバージョン率に良い影響を与えたとのことです。</p>
<p>「ちょっと変」「面白い」を取り入れるのは、ユーザーの心をつかむ効果的な方法になりえます。ただし、ユーザーの状況や文脈に合っていることが前提です。</p>
<h2>4. ユーザー行動を導く</h2>
<p>多くのユーザーは、自分にどのプランが合っているのか、あるいはそもそもサブスクが必要なのかすら分かっていません。<strong>ペイウォールは、最適な選択へと“そっと背中を押す”ことで、この摩擦を減らすことができます。</strong></p>
<p>ペイウォールでよく見かけるユーザーの疑問は、たとえば次のようなものです：</p>
<ul>
<li>月額と年額、どちらを選ぶべき？</li>
<li>トライアルはどういう仕組み？</li>
<li>各ティアで何が得られる？</li>
<li>どのティアが自分に最適？</li>
</ul>
<p>多くのアプリは、プラン間の価格差を分かりやすく示すなど、基本的な方法でこれらの質問に対応しています。これらが依然として最も一般的なのは、意思決定をシンプルにし、不確実性を減らしてくれるからです。語学アプリの <a href="https://www.duolingo.com/">Duolingo</a> やワークアウトアプリの <a href="https://www.fitplanapp.com/">Fitplan</a> もその典型です：</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/56231916456fce1ac7d7ed2eb96cbfe7142284d5-880x1999.jpg" alt=""/></figure>
<p>両アプリがユーザーをうまく導いているポイントは以下のとおりです：</p>
<ul>
<li>各プランの価格を明確に表示</li>
<li>プランに含まれる内容を上部で強調（Fitplan）</li>
<li>トライアル期間を明確に記載（Duolingo は CTA にしている）</li>
<li>週／月あたりの料金を分解して比較しやすくする</li>
</ul>
<p>さらに、それぞれのアプリは異なる方向性で選択を後押ししています：</p>
<ul>
<li>Duolingo は最も人気のあるオプションを強調し、ファミリープランで何人利用できるかを示す</li>
<li>Fitplan は年額プランが “Best Value” であることを明示する</li>
</ul>
<p>どれもシンプルな工夫に見えますが、倫理的に実装すれば、ユーザーを最適な選択へと導く強力な仕掛けになります。</p>
<p>また、私たちはしばしば「情報を増やす」よりも、「ノイズと摩擦を減らす」ことの効果を過小評価しがちです。Flo Health の Growth Managerである<a href="https://www.linkedin.com/in/vahebaghdasaryan/">Vahe Baghdasaryan氏</a>は<a href="https://www.revenuecat.com/blog/growth/paywall-redesigns-case-studies/">人気ペイウォールの 4 つのリデザイン</a>を共有していますが、そのうち 3 つは“シンプルにしただけ”でコンバージョンが改善したと言います。改めて：<strong>シンプルさは明確さを生む</strong>のです。</p>
<p>もう一つの強力な例が、クリエイターから企業まで幅広いユーザーを持つ <a href="https://linktr.ee/s/linktree-app-for-ios-android">Linktree</a> です。彼らのペイウォールは、各プランをシンプルに説明し、さらに詳細を読みたいユーザーには追加情報も提示することで、それぞれに最適なプランを理解しやすくしています：</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/39a982bb26cb9b56e23af1dfb84c34fd9c9a2517-1111x1259.png" alt=""/></figure>
<p>優れたアプリはここからさらに踏み込み、プラットフォーム・国・ユーザージャーニーの段階ごとに、ペイウォールをパーソナライズしています。たとえば居住国やアプリ内での利用状況に応じて、強調すべき機能や使い方を変える、といった形です。</p>
<p>一見大変そうに思えるかもしれませんが、<a href="https://www.revenuecat.com/blog/growth/revenuecat-paywalls-v2">RevenueCat Paywalls</a> のようなツールを使えば意外とシンプルです。国ごとにプロダクトマーケットフィットが異なるため、強調する機能やプランもそれに合わせて最適化することで、コンバージョンを最大化できます。</p>
<aside class="tip"><strong>もっと詳しく</strong><p><a href="https://www.revenuecat.com/blog/growth/guide-to-mobile-paywalls-subscription-apps">ターゲティングを活用する24の方法</a>：カスタムオーディエンス向けに価格設定、パッケージング、ペイウォールを最適化します。</p></aside>
<h2>5. 進捗を強化する</h2>
<p>フィットネス、教育、生産性といったカテゴリのアプリでは、ペイウォール上で進捗を見せることが強力なモチベーションになります。ユーザーに「このアプリは自分を前に進めてくれている」と実感させることができるためです。</p>
<p>先ほど紹介したセルフヘルプアプリ Bloom もこの手法を使っていました。セラピーを始めるのは大きな決断で不安も大きいものですが、登録の最初のステップを「達成済み」と見なすだけで、ユーザーはすぐに達成感を得られ、残りのステップにも取り組みたくなります。</p>
<p>フォーカスアプリ <a href="https://www.opal.so/">Opal</a> も同様のアプローチを採用しています。トライアルの説明に<a href="https://www.youtube.com/watch?v=aJp7m4TYK7E">タイムラインデザイン</a>を用いることで、結果への期待値と価値を明確にしています：</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/d5a4d54d6e89611c050dfd643122c9a43c280862-882x1999.jpg" alt=""/></figure>
<p>Opal のペイウォールが伝えているのはこうです：「今日は“フォーカス診断” を受けました。アプリをブロックすれば、すぐに集中力が改善し、6 日目にはトライアル期間中に結果が見え始めます。」これは価値を伝えるだけでなく、「トライアル期間内にどんな価値が得られるか」を具体的に示しており、実質的に“損をしないトライアル”になっています。さらに「1 週間の無料トライアルで 2 時間以上を取り戻そう」と、教育と価値提示の両方を行っています。（<a href="https://www.revenuecat.com/blog/growth/gamification-in-apps-complete-guide/">Township にどっぷりハマっていた頃に</a> Opal を知っていれば…と少し思います。）</p>
<p>ハイキングアプリ <a href="https://www.alltrails.com/en-gb/">AllTrails</a> も、進捗の前向きな伝え方が素晴らしい例です：</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/7973081dd5d4c19230c1ab6c6f6e969f91649166-473x1024.jpg" alt=""/></figure>
<p>アプリで一度ハイキングをすると、ペイウォールに「AllTrails+ メンバーは 3 倍トレイルに出かけやすくなる」と表示されます。これは「あなたはすでに始めていますよ」という進捗を感じさせつつ、プレミアムの価値も示し、継続利用を後押しします。</p>
<p>銀行アプリ <a href="https://web.meetcleo.com/">Cleo</a> はさらに一歩進んでおり、サブスクリプションの選択が進捗リストの最後のタスクになるよう設計されています。まさか「自分のクレジットスコアを好きになる」ことが可能になるとは…とても新鮮なアプローチです。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/b0f4366df786b7e3a33910402061f105d3f89e50-880x1999.jpg" alt=""/></figure>
<p>進捗を示す他の方法としては、ペイウォールの上下にプログレスバーを表示したり、達成状況を示すラベルを入れる方法があります。たとえば食料品アプリ <a href="https://www.thrivemarket.co.uk/">Thrive Market</a> では、ペイウォールの上部に進行状況バーがあり、プロセスが簡単であると感じさせます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/b98aa3d4a5aebf7d846525d4f32bda167d130aeb-882x1999.jpg" alt=""/></figure>
<p>さらに複雑な例が、減量アプリ <a href="https://www.noom.com/">Noom</a> です。Noom のペイウォールでは「あなたのパーソナライズプランが作成され、確保されています」と強調します：</p>
<p>ランディングページ型のペイウォールでは、スクロールしながら次のような情報を確認できます：</p>
<ul>
<li>減量 journey で達成する進捗の概要</li>
<li>あなた専用プランのメリットや機能</li>
<li>利用規約</li>
</ul>
<p>このアプローチは、サブスクリプション価格帯の上位に位置するNoom（2か月ごとに94.99ポンド）にとって非常に理にかなっており、アプリにおいてより頻繁に見られる<a href="https://www.revenuecat.com/blog/growth/2025-app-monetization-trends/">収益化のトレンド</a>です。即時に結果が出にくい領域だからこそ、「パーソナライズプランは 15 分間だけ確保されています」といった<a href="https://www.revenuecat.com/blog/growth/subscription-pricing-psychology-how-to-influence-purchasing-decisions/#h-principle-3-the-scarcity-bias">価格設定のバイアス</a>を使って緊急性を持たせ、ユーザーを行動へ促しているのです。</p>
<h2>6. リテンションを改善する</h2>
<p>ペイウォールがリテンションに影響を与える最も明確な方法は、ユーザーの<strong>選択を導き、より長いサブスクリプション期間を選んでもらうこと</strong>です。たとえば 5 Minute Journal のように、年額プランの価値を強調したり、トライアルを年額プランにのみ付与したりする方法があります：</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c66bb5f08f048e601160e67f68c6b37ff5e55b96-882x1999.jpg" alt=""/></figure>
<p>ただし、個人的にはこの手法は確かに効果はあるものの、本質的なリテンション向上につながっているとは限らないと思っています。支払いユーザーあたりの平均収益（ARPPU）は向上するかもしれませんが、<a href="https://www.revenuecat.com/blog/growth/annual-subscriptions-apps-pros-cons/">年額サブスクリプション</a>はアプリの実際の利用状況を隠してしまうことがあります。ユーザーが積極的にアプリを使っていなくても、単に年間契約が続いているだけ、というケースがあるためです。</p>
<p>ペイウォールがより良いリテンションにつながるのは、次のようなこれまでに述べてきた要素にフォーカスした場合だと私は考えています：</p>
<ul>
<li>アプリとの感情的なつながりを生む</li>
<li>進捗や、今後得られる進捗の可能性を示す</li>
<li>割引ではなく “顧客価値” を優先する</li>
</ul>
<p>これを正確に測るには、コンバージョン率だけを見るのでは不十分で、90 日 ARPPU やペイウォール別のエンゲージメントなど、リテンション関連の指標を確認する必要があります。追跡は難しく、計測にも時間がかかりますが、これらのメトリクスを分析すれば、どのペイウォールメッセージが質の高いエンゲージドユーザーを生み出すのかが見えてきます。
瞑想アプリ <a href="https://www.headspace.com/app">Headspace</a> のアプローチは、この課題に対する素晴らしい例です。Headspace のペイウォールは「瞑想習慣を築くには時間がかかる」という点を強調し、単なる年額の節約額ではなく、長期的な価値を理解してもらう構成になっています。
これによってユーザーは、瞑想に時間を投資し、1 年間にわたってマインドフルネスを続けたいと思えるようになります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/76c048e08cf95e09fa15985678898b34a7508d23-881x1999.jpg" alt=""/></figure>
<h2>7. 顧客インサイトを集める</h2>
<p>ここまで、ユーザー中心のメリットに注目してきましたが、ペイウォールはアプリやビジネス戦略を強化するうえで、非常に強力な「インサイト取得の場」でもあります。</p>
<p>私はよく、アプリがまず広告や App Store のクリエイティブで<a href="https://www.revenuecat.com/blog/growth/7-meta-ad-testing-frameworks-for-subscription-apps/">異なるメッセージやデザインをテスト</a>し、ターゲットユーザーに刺さる表現を探ることを推奨しています。ただし、これらはあくまでファネルの上流でのテストです。<a href="https://www.revenuecat.com/glossary/#trial-conversion-rate">トライアルから有料への転換率</a>を測定できたとしても、その角度（訴求軸）が本当に正しいかどうかは別問題です。</p>
<p>そこで役立つのが<a href="https://www.revenuecat.com/blog/growth/revenuecat-paywalls-v2/">ペイウォール</a>です。ペイウォールは、こうした訴求軸を 実際の利用文脈の中でテストし、微調整できる場所 でもあります。また、無料ユーザーにペイウォールを見せるタイミング（ファネル下部）と、新規ユーザーに見せるタイミング（ファネル上部）で、どの訴求が機能するかを比較することもできます。</p>
<p>さらに、ただテストするだけでなく、コンバージョンしなかったユーザーから直接フィードバックを得られる のも大きなポイントです。ペイウォール直後に短いアンケートを配置すれば、その場で感じた疑問や抵抗をリアルタイムで収集できます。これらはペイウォール改善だけでなく、アプリ全体の改善にもつながります。</p>
<p>何を質問するかは、知りたいことによって変わります：</p>
<ul>
<li><strong>なぜ購読しなかったのか：</strong>サブスクを選ばなかった主な理由は？</li>
<li><strong>不明点が原因の可能性：</strong>サブスク内容で、答えが見つからなかった質問はありましたか？</li>
<li><strong>価格設定の問題：</strong>このサブスクが価格に見合うと感じるのはどんな場合ですか？</li>
</ul>
<p>このタイミングで聞くことで、ユーザーの「迷いが最大化されている瞬間」のフィードバックをそのまま取得できるのです。</p>
<h2>ペイウォールでこれらすべてを行うべき？</h2>
<p>ここまで見てきたように、ペイウォールは「売る以上のこと」をできる幅広い可能性を持っています。では、これらすべての手法を採用すべきなのでしょうか？</p>
<p>答えはシンプルです：ノー。</p>
<p><strong>重要なのは、あなたのアプリ、ターゲットユーザー、そしてペイウォールが表示されるタイミングに合わせて、優先順位をつけることです。</strong>「売る以上の役割」を持たせることは、「情報を詰め込むこと」ではありません。むしろ、余計な情報はユーザーの認知負荷を高めてしまいます。<em>その</em>ステージで最も重要なことに集中するべきです。</p>
<p>Vaheは最近、<a href="https://www.paywalls.design/">Paywalls.Design</a>で食品アプリのテストに関する<a href="https://www.revenuecat.com/blog/growth/paywall-redesigns-case-studies/">素晴らしいケーススタディ</a>を共有しました：</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/e5b2619e31fae1e48d5b07464994238d91ca8b66-696x464.png" alt=""/></figure>
<p>2 つ目のペイウォールは、インストールからトライアルへのコンバージョン率を 72% 改善 しました。理由はシンプルで、ユーザーにとって<em>関連性</em>の高い要素、「信頼」を高める方向に集中し、強力なソーシャルプルーフ「86% のユーザーが食生活を改善した」という結果データを前面に押し出したからです。この数字は以前のペイウォールでは目立ちにくかったもので、“シンプル = 強い” を示す好例です。</p>
<p>とはいえ、追加情報が常に悪いわけではありません。Noom や植物ケアアプリの <a href="https://greg.app/">Greg</a> のように、ランディングページ型の“多機能ペイウォール”で成功している例もあります。（私も植物をよく枯らすので Greg が必要です…）これらの例が示しているのは、「何が機能するかは事前に決めつけられない」ということです。重要なのは、単に販売するのではなく、<strong>ペイウォールをテストし、情報提供とエンゲージメントに最適化すること</strong>です。</p>
<p>あの非常に長いペイウォールを見てください。それでも、私たちがここまで話してきたすべてをカバーしようとはしていません。代わりに、次の 2 点に集中しています：</p>
<ul>
<li><strong>ユーザー教育：</strong>アプリの価値と、ユーザーが何を達成できるのかを伝える</li>
<li><strong>信頼構築：</strong>明確なトライアル、App Store 特集、レビュー、カスタマーサポートへの導線などを通じて信頼を積み上げる</li>
</ul>
<p>要するに？各ペイウォールが「何を達成すべきか」を明確に定義し、そのメッセージをどう伝えるのが最適かを実験すること。そうすることで、ペイウォールは“売るだけ”ではなく、より大きな役割を果たせるようになります——目的と理由が明確である場合に限って。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[2025年Shippies受賞者発表]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/shippies-2025-winners</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/shippies-2025-winners</guid>
      <pubDate>Wed, 29 Oct 2025 17:41:09 GMT</pubDate>
      <dc:creator><![CDATA[Rik Haandrikman]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[2025年の受賞者をご紹介します。タイムズスクエアを輝かせているのは、6 組の際立ったチームと、ひとりで挑み抜いた情熱あふれるソロ開発者です。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/151c27cd9ca057dc4877d40f111fe0f70623564d-1920x1080.jpg" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>毎年開催される <strong>App Growth Annual</strong> では、サブスクリプションアプリの最前線を讃える時間を設けています。<strong>Shippies</strong> は、創造性、そして効果的なオンボーディング・マネタイズ・リテンションを通じてユーザーに価値を届けるアプリを表彰するものです。</p>
<p>今年の受賞者には、 <s><strong>Golden</strong></s><strong> Chocolate Shippyトロフィー</strong>、永遠の栄誉、そして <strong>タイムズスクエアの巨大ビルボード</strong> (なぜなら、“完璧なオンボーディングを実現した”ということを表すのに、巨大なパンダや豆、フィットネスコーチがマンハッタンを照らすほど説得力のある光景はないからです。)</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/c84467038294e57459a8a604599a6f304e3f4dc5-1920x1080.jpg" alt=""/></figure>
<h2>Anchor’s Away: <strong>Focus Friend</strong> by Hank Green</h2>
<p><strong>Anchor’s Away</strong>（新進アプリ賞）は、明確な目的・完成度・将来性をもって見事にローンチした新しいアプリを称える賞です。</p>
<p><strong>Focus Friend by Hank Green </strong>(そう、あの Hank Green です) は、まさにその理想を体現しました。このアプリは「集中する時間」を、穏やかで気軽な習慣に変えてくれます。笑顔の“豆（Bean）”があなたを応援し、作業を進めるあなたの隣で、静かに励まし続けます。“ちゃんと働かなきゃ”という罪悪感を消し去る、感情的デザインの魔法――それが Focus Friend の本質です。</p>
<p><strong>受賞理由：</strong></p>
<ul>
<li>感情設計の巧みさ：罪悪感ではなく、優しい後押しを与えるデザイン</li>
<li>操作のシンプルさ：複雑な設定なしに「<em>Focus</em>」をタップするだけ</li>
<li>シンプルで穏やかなデザインの美しさ</li>
<li>早期の成果：リリース数週間で Play ストア 50 万ダウンロード超、評価 4.2★</li>
</ul>
<p>一時期、Focus Friend は App Store のチャートで ChatGPT を抜いて 1 位 を獲得。“かわいい豆は AI よりも強い（少なくとも時々は）”ことを見事に証明しました。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/9a46496e4ae5d893e0d0b64d883a3ebe28230d94-1080x1080.jpg" alt=""/></figure>
<h2>Lone Skipper: <strong>ReSubs</strong></h2>
<p><strong>Lone Skipper</strong>（ソロ開発賞）は、たった一人でアプリを構築・リリース・運営しながら、卓越したクラフトマンシップを発揮した開発者に贈られます。</p>
<p><strong>ReSubs</strong> は、ユーザーがすべてのサブスクリプションを管理できるように支援するアプリです。（そして、おそらく 2021 年に登録したままの “無料トライアル” をようやくキャンセルできるようになるかもしれません。）このアプリは、クリーンなデザイン、継続的なアップデート、一貫性のある UX の手本。そして何より、このすべてを一人の開発者 Chris Krueger が構築し、維持しています。</p>
<p><strong>受賞理由：</strong></p>
<ul>
<li>一貫した美しさと完成度の高いデザイン</li>
<li>思慮深く継続的なアップデートサイクル</li>
<li>ソロ開発者によって構築・保守されています</li>
</ul>
<p>ReSubs は、集中力・職人技・そして一杯のコーヒーがあれば、一人でもサブスクリプションビジネスを動かせることを証明しました。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/55c392b8c4e7ceff343ad01c2aabae2b084629e3-1080x1080.jpg" alt=""/></figure>
<h2>Smooth Sailor: <strong>ReciMe</strong></h2>
<p><strong>Smooth Sailor</strong>（オンボーディング賞）は、ユーザーがアプリをダウンロードしてから “なるほど！” と価値を感じるまでの流れが最もスムーズなアプリに贈られます。</p>
<p><strong>ReciMe</strong> は、世界で最も人気のあるレシピ整理アプリ。アプリを開いた瞬間から、あなたが “新しいツールを覚える” のではなく “レシピを保存したい” のだと理解しています。いくつかの簡単な質問に答えると、オンボーディング中にそのままレシピ検索・インポートを促されるという流れ。ダウンロード後 60 秒以内に、「このアプリは言った通りのことを確実に実現している」と証明してみせる大胆な設計です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/d4ff5fefc7c00b76272c3a7564425cea5c194f9a-2816x1494.png" alt=""/></figure>
<p><strong>受賞理由：</strong></p>
<ul>
<li>価値提供までのスピード ― 最初の 1 分で USP が明確</li>
<li>ユーザーに合わせて変化するスマートなオンボーディング</li>
<li>何百万人ものユーザーが愛用する “定番レシピアプリ” としての実績</li>
</ul>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/164f06639a2d7535d3e1e7579e53253f247ff177-1080x1080.jpg" alt=""/></figure>
<h2>Port of Entry: <strong>Wink</strong></h2>
<p>マネタイズとは「いくら取るか」だけではなく、「いつ、どのように取るか」にも関係します。<strong>Port of Entry Award（マネタイズ戦略賞）</strong>は、卓越したペイウォール設計、価格設定、チェックアウト体験を実現したアプリを称えます。</p>
<p><strong>Wink</strong> は今年、思い切った実験を数多く行いました。価格バンドルからアニメーション付きペイウォールまで、幅広くテスト。週末限定のプロモーションだけで収益を 20% 以上増加させ、チャーン（解約）トリガー型オファーやスムーズな Web チェックアウトを導入することで、ユーザーに自然なアップグレード導線を複数設けました。</p>
<p><strong>受賞理由：</strong></p>
<ul>
<li>価格設計と UI デザインの両軸で戦略的な実験を実施</li>
<li>実際に成果を上げたスマートなプロモーション</li>
<li>Web とアプリ内を連携させた、ライフサイクル全体でのマネタイズ</li>
</ul>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/180e9b7eb00902459e60b76987037c3f739e22a5-1080x1080.jpg" alt=""/></figure>
<h2>Life Preserver: <strong>WeWard</strong></h2>
<p>リテンションを維持するのは難しく、ユーザーを継続的にモチベートし続けるのはさらに難しい。<strong>Life Preserver Award（リテンション賞）</strong>は、この両方を見事に実現したアプリに贈られます。</p>
<p><strong>WeWard</strong> は、習慣ループ、社会的モチベーション、そして感情的な強化を組み合わせ、ユーザーを “戻ってこさせ（そして歩かせ）続ける” ことに成功しました。週ごとのリーダーボードや連続記録の祝福機能は、ユーザーの活動を維持するだけでなく、9 か月でチャーン率を 22% 低下 させました。</p>
<p><strong>受賞理由：</strong></p>
<ul>
<li>毎日のエンゲージメントを促す習慣設計</li>
<li>コミュニティランキングによる社会的モチベーション</li>
<li>強化と共有によるチャーン 22% 削減</li>
</ul>
<p>これこそが “持続可能なエンゲージメント” の形です──楽しく、報われ、そしてちょっとした競争心があること。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/b3bc2c15f113a6b953df49bc4183ddbfd569b85a-1080x1080.jpg" alt=""/></figure>
<h2>Treasure Chest: <strong>Ladder</strong></h2>
<p><strong>Treasure Chest Award（ブランド価値賞）</strong>は、ユーザーの意図をビジネスインパクトへと転換し、サブスクリプションだけでなくブランドへの愛着そのものを収益化したアプリを称えます。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/61122b810109102cebedc53ae9e6874397a46b95-2922x1448.png" alt=""/></figure>
<p><strong>Ladder</strong> は、その完璧な実例です。Pro プランではアプリの全機能が利用でき、ダイレクトメッセージなどのソーシャル機能も搭載。オンボーディング中に、あなたがフォローしているコーチからメッセージが届きます。「返信して 1 対 1 で会話したい？」そう感じたら、Elite にアップグレード。さらに、紹介ベースのロイヤルティプログラムで成長するグッズショップを組み合わせることで、スマートかつシームレスなマネタイズを実現しています。</p>
<p><strong>受賞理由：</strong></p>
<ul>
<li>高意欲ユーザーを最大 4 倍の支出で収益化</li>
<li>“人間らしく、文脈に沿った” アップセル設計</li>
<li>スーパーファン向けのグッズ販売による追加収益</li>
</ul>
<p>Ladder は、マネタイズとモチベーションの完璧な一致 を美しく実現して見せました。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/190f157d6e6e2fdc8886e3fce4d8a8f3681e8791-1080x1080.jpg" alt=""/></figure>
<h2>The Golden Shippy moment</h2>
<p>受賞者全員には、象徴的な <strong>Chocolate Shippy</strong>トロフィーが授与されました（荷物超過料金を避けるため、本物の金属製トロフィーは後日郵送！）。さらに、彼らのアプリとロゴが<strong>タイムズスクエア</strong>を輝かせています。これは、1 年間にわたる大胆なアイデアと努力への、まさに夢のようなご褒美です。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/8fc27f3c6f9b6c32db5e3d0d41599fa3bdbdbcdd-1920x1080.jpg" alt=""/></figure>
<h2>来年まで…</h2>
<p>2025年の Shippies は、あらためて私たちに思い出させてくれました。優れたアプリとは、ただ賢いコードや巧妙なオンボーディングでできているのではありません。それは、デザインを大切にし、使う人を喜ばせ、そして本気でユーザーを助けたいと願う人たちによって作られるものです。</p>
<p>だから、今年 “Ship”したすべてのアプリへ――進み続けてください。実験を続けてください。磨き続けてください。</p>
<p>そして、<strong>App Growth Annual 2026</strong> でまたお会いしましょう。 — もしかすると次は、あなたのアプリが あのタイムズスクエアのビルボード に映っているかもしれません！</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Shipaton 2025 受賞者発表]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/shipaton-2025-winners</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/shipaton-2025-winners</guid>
      <pubDate>Wed, 29 Oct 2025 16:59:36 GMT</pubDate>
      <dc:creator><![CDATA[Perttu Lähteenlahti]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[2025年Shipatonの受賞者を発表]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/176c07a2988d252571054176bc37566d0f6b2d75-1920x1080.jpg" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>今年の Shipaton には世界中から数万人が参加し、合計で 812 件のプロジェクトが提出されました。</p>
<p>この結果はあらためて、このコミュニティを特別な存在にしている要素である、高速な反復、創造的なマネタイズ、そして本当にユーザーに届く価値あるプロダクトづくりへのコミットメントを浮き彫りにしました。</p>
<p>そして今、今年のイベントを特徴づけた驚くべき創造性と努力を称えながら、Shipaton 2025 の受賞者を発表する時が来ました――そのうち何組かは、すでに祝賀ムードが公に広がっています。ニューヨークのビルボードに Shipaton のアプリが登場しているのを目にした人もいます。</p>
<h2>Grand Prize: Build &amp; Grow Award</h2>
<h3>審査基準</h3>
<p>Grand Prize は全カテゴリーを通じた最優秀提出物を表彰します。審査員は以下を評価しました。</p>
<ul>
<li><strong>イノベーション</strong>：アプリは市場に新しいアイデア、機能、ユースケースをもたらしているか？</li>
<li><strong>実装</strong>：仕上がりは洗練され、安定しており、ビジュアルに一貫性があるか？</li>
<li><strong>実現可能性</strong>：ハッカソンを超えて、現実的にローンチ・スケールできるか？</li>
<li><strong>連携</strong>：必要な SDK と API を効果的に活用しているか？</li>
</ul>
<p>この賞は“完全なパッケージ”を表します：野心と現実的な可能性のバランスが取れたプロジェクトです。</p>
<h3>1位: <a href="https://revenuecat-shipaton-2025.devpost.com/submissions/762703-payout">Payout</a></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/95b565a8d6595bb0c46d87c3afc97abbb70d60af-805x573.png" alt=""/></figure>
<p><a href="https://apps.apple.com/us/app/payout-claim-make-them-pay/id6748968935?ppid=7cf6e543-88e2-4ef2-96c0-90fc9d7cb9fb">App Store</a>
<a href="https://play.google.com/store/apps/details?id=com.payout.app">Play Store</a></p>
<p>Payout は、技術的大胆さと現実世界での明確なインパクトの両面で、Shipaton 2025 の頂点に立ちました。ユーザーがすでに対象となっているかもしれない集団訴訟の和解金を見つけられるよう支援し、これまで不透明で手続きが煩雑だったプロセスを、透明・自動化・アクセスしやすいものへと変えます。毎年、消費者がその存在を知らなかったり、自分が対象だと気づかなかったりするために、集団訴訟の支払いは何百万ドルも未請求のままです。Payout は、こうした機会を平易な英語で提示し、見込まれる補償額を試算し、新たな和解が公開された際にはリアルタイム通知を送ります。これにより、「集団訴訟のキャッシュをチェックする」ことを、銀行残高を確認するのと同じくらい日常的な行為にします（法律の学位は不要です）。</p>
<p>Payout を際立たせたのは、その作り方でした。アプリ全体（デザイン、コード、アセット）は Claude Code と Cursor を使った AI 支援開発で制作され、人手で書かれたコードは 1 行もありません。</p>
<p>Payout の数字も印象的です。ユーザー数 17,000 超、収益 $30,017、課金ユーザー 1,750 名、そしてソーシャルメディアでの 500,000 を超えるインプレッションに支えられています。</p>
<h2><strong>#BuildInPublic Award</strong></h2>
<h3><strong>審査基準</strong></h3>
<p>#BuildInPublic Award は、自分たちの歩みをオープンに共有し、コミュニティからのフィードバックを使ってアプリを改善したチームを称えます。審査員は以下を評価しました。</p>
<ul>
<li><strong>透明性とストーリーテリング</strong>：プロセス、成功、課題をどれだけうまく伝えたか？</li>
<li><strong>エンゲージメント</strong>：公開によって有益な議論が生まれたり、他者を刺激したりしたか？</li>
<li><strong>学習と反復</strong>：公開から得たフィードバックが、デザイン・機能・メッセージングの改善に有意味な影響を与えたか？</li>
</ul>
<h3><strong>1位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/760246-gurwi-learn-anything">Gurwi – Learn Anything</a></strong></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/532268cf204cd00d4c06985428746441e24f86b8-2048x1087.png" alt=""/></figure>
<p><a href="https://apps.apple.com/app/id6737016341">App Store</a>
<a href="https://play.google.com/store/apps/details?id=com.gurwi">Play Store</a></p>
<p>Gurwi は、コロンビアの厳しい教育事情へのフラストレーションと、創業者の「自分で変える」という決意から生まれました。国内でも最も貧しい地域の一つ、リオハチャで高校を卒業した創業者<strong>Camilo Peñalver</strong>は、大人の生活への準備ができていない自分に気づきます。数年の独学の末に得た決定的なインサイトは、足りないのは意欲ではなくアクセスだということ。教育は明快さ・実用性・スケールの観点で再設計される必要がありました。彼の <a href="https://x.com/camilopenalver/status/1941188493595771127">「なんでも学べるアプリ」を提案する動画</a>はバイラルで200,000 回以上の再生です。その使命は明確になりました。それは、従来のシステムが見落としてきたことを教えるモバイルプラットフォームをつくることです。</p>
<p>Gurwi は学習を、魅力的でビジュアルで多言語の体験に変えます。各レッスンはインタラクティブで、10〜15 分の短いモジュールで構成され、長尺動画や PDF をやめ、ページめくり型のダイナミックな形式に置き換えています。ユーザーは画像・アニメーション・質問が盛り込まれたコンテンツをタップで進め、ポイントや連続記録を獲得。レッスンは読み上げ、ポーズ、速度調整が可能で、スペイン語・英語・ポルトガル語に対応。そのシンプルさの裏側には、大胆なエンジニアリングがあります：レッスン描画用の独自 .gurwi フォーマット、コンテンツエディタ <strong>Gurwi Educators</strong>、そして Flutter・Supabase・PostgreSQL による堅牢なバックエンド。</p>
<p>個人的・経済的に厳しい状況の中、2 人チームで開発された Gurwi は、すでに <strong>13,000 人超のユーザー</strong>に届き、<strong>平均評価 4.9・1,000 件超のレビューを獲得</strong>。Gurwi は Building in Public の到達点です。</p>
<h3><strong>2位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/773491-echo-reminder">Echo Reminder</a></strong></h3>
<p><a href="https://www.youtube.com/watch?v=xGh3FqCjn3U">Watch on YouTube</a></p>
<p><a href="https://apps.apple.com/us/app/echo-reminder-voice-todo-list/id6752544263">App Store</a></p>
<p>Echo Reminder は、移動中の「ひらめき」を記録する方法を再発明しました。開発者 <strong>Luca</strong> は、音声メモと従来のタスクアプリの中間にある、より速く自然なリマインダー設定方法を求めていました。メニューをタップしたり、Siri の不安定な文字起こしに頼ったりする代わりに、Echo ではただ話すだけ。アプリが音声入力を自動で解析し、タイトル・時刻・繰り返しなどの構造化リマインダーに変換します――会話中でも通勤中でも、アイデアの最中でも、手間なく整然と。</p>
<p>クリーンなデザインと直感的な音声 UI は React Native と Expo によって実装され、データ同期は Supabase、バックエンドは Whisper と GPT-5-mini を使った Express。iOS 初リリースながら無事にShipされ、実際の思考・会話フローに合った、速く正確な音声スケジューリングを提供しています。</p>
<p>Echo を際立たせたのは、その透明な開発姿勢でした。Luca と Sydney は <strong>#BuildInPublic</strong> マインドセットを徹底し、 <a href="https://www.tiktok.com/@lukato.io">TikTok</a>・<a href="https://www.instagram.com/lukato.io/">Instagram</a>・<a href="https://www.youtube.com/@lukatoio">YouTube</a>・<a href="https://x.com/KatoLuca">X</a> で、進捗だけでなくプロセス（機能更新やデザインの壁、不安やブレイクスルーの瞬間）を発信しました。オーセンティックな語りはオーガニックな反響を生み、旧友との再会や新たなフォロワー獲得につながりました。</p>
<p>二人は“公共の場で開発する”ことをオフラインにも広げ、カフェで作業しながら実際のユーザーの使い方を観察。キーボードの自動格納が効かない、音声プロンプトがわかりにくいといった小さくも重大な課題が見つかり、オンボーディングやフローの改善へつながりました。</p>
<p>お気に入りの共有コンテンツ 3 本が、彼らの旅の熱量を端的に物語っています：<a href="https://www.instagram.com/reel/DNoLkScJbMC/">Video 1</a>、<a href="https://www.instagram.com/reel/DN4UYIpCTg3/">Video 2</a>、 <a href="https://www.instagram.com/reel/DOxSqYkDqED/">Video 3</a></p>
<h3><strong>3位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/760277-tomo-japan">Tomo Japan</a></strong></h3>
<p><a href="https://www.youtube.com/watch?v=j_n3MH4-bWk">Watch on YouTube</a></p>
<p><a href="https://apps.apple.com/us/app/tomo-japan/id6752227712">App Store</a></p>
<p>Tomo Japan は旅行の相棒であり、同時に個人的なマイルストーンでもあります。5 年のファイナンス業務の後、開発者は iOS を独学し、「日本の旅程アプリを作る」という唯一の目標を掲げました。数年前の最初の試みは UI 段階を超えられませんでしたが、Shipaton が”完遂”させる瞬間になった。結果生まれた Tomo Japan（「友だち」を意味する「Tomodachi」から）は、学習からローンチまでの旅をひとつにつなげる、Swift ネイティブの洗練されたアプリです。</p>
<p>Tomo Japan は、親しみやすくキュレーションされたガイドとして、日本旅行の豊かだが圧倒されがちな情報の海を案内します。厳選スポット、詳細なシティガイド、季節の見どころ、そして一般的なガイドブックには載りにくいローカルな宝物までを収録。</p>
<p>内部では、丹念な技術的クラフトマンシップが光ります。SwiftUI でフル実装し、データ保存・認証・写真は Firebase、検証とコンテンツ管理のレイヤーは Supabase を用い、自動で Firestore に取り込み。さらに、 <a href="https://x.com/tammyho52">X</a> と <a href="https://www.tiktok.com/@tomojapanapp">TikTok</a>での毎日の #BuildInPublic 更新がプロジェクトの成功を後押し。審査員は、<a href="https://medium.com/@th52">開発者がプロジェクトの一環として公開したMediumの投稿</a>も高く評価しました。</p>
<h2><strong>RevenueCat Design Award</strong></h2>
<h3><strong>審査基準</strong></h3>
<p>Design Award はクラフトマンシップと創造性を称えます。審査員は以下を重視しました。</p>
<ul>
<li><strong>イノベーション</strong>：UX やビジュアルシステムの新規性</li>
<li><strong>審美性</strong>：美しく直感的でワクワクする UI</li>
<li><strong>体験</strong>：滑らかなジェスチャ、気持ちよいアニメーション、明快なフィードバックループ</li>
</ul>
<h3><strong>1位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/760256-dayloop-everyday-timelapse">Dayloop: Everyday Timelapse</a></strong></h3>
<p><a href="https://www.youtube.com/watch?v=vGQ2Mi9RiFc">Watch on YouTube</a></p>
<p><a href="https://apps.apple.com/app/id6740197860">App Store</a></p>
<p>Dayloop は日々の瞬間を、編集スキル不要でシネマティックなタイムラプス動画に変えます。1 年の自撮り、フィットネスの変化、妊娠の経過、ペットの成長まで。自動顔位置合わせ、フレーミング用のゴースト写真オーバーレイ、遊び心あるタイムラインスライダーなどを備え、パーソナルなビジュアルストーリーテリングを手軽に。</p>
<p>Swift と SwiftUI で構築し、Apple の Vision Framework を活用。精度・プライバシー・楽しさに注力し、写真はデバイス内に留まり、データは外部へ出ません。見た目の美しさの裏には、向きのバグやメモリ管理、画像アライメントの微調整など、体験をシームレスに保つための膨大な時間があります。</p>
<p>ローンチ以来、Dayloop はフィットネス愛好家から保護者、日常を記録するクリエイターまで幅広く共感を獲得。次の焦点はグロースです――ニッチなマーケティングのテスト、カメラ・書き出し機能の拡張、新言語対応。</p>
<h3><strong>2位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/777541-skillme">SkillMe</a></strong></h3>
<p><a href="https://www.youtube.com/watch?v=GM9jR3jWIko">Watch on YouTube</a></p>
<p><a href="https://apps.apple.com/de/app/skillme-learn-any-skill/id6749891663">App Store</a></p>
<p>SkillMe は「毎日のチャレンジ」でどんなスキルでも学べるようにします。料理からコーディング、逆立ちまで。AI が目標を細かなステップの演習に分解。ユーザーは目標を設定し、簡単な自己評価の後、日々のチャレンジ、進捗トラッキング、モチベーション通知を備えた学習計画を即座に受け取ります。各チャレンジには明確な手順、難易度、期待される成果があり、着実な上達を後押し。</p>
<p>iPhone 向けに SwiftUI で構築。AI はチャレンジを動的に生成し、ペイウォール文面もユーザーの目標に合わせて最適化します――「次のゴードン・ラムジーに近づく努力を止めないで」や「世界を逆さにするまであと 1 日のチャレンジ」といった文脈的な後押しで促します。</p>
<h3><strong>3位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/760353-pitchlab-professional-grade-baseball-pitch-tracking">PitchLab: Professional-Grade Baseball Pitch Tracking</a></strong></h3>
<p><a href="https://www.youtube.com/watch?v=gZITndtsZbo">Watch on YouTube</a></p>
<p><a href="https://apps.apple.com/us/app/pitchlab-baseball/id6738223162">App Store</a></p>
<p>PitchLab は iPhone をプロレベルの投球トラッキングシステムに変えます（従来は $20,000 のレーダー装置に限られていた分析を提供）。メジャー到達のためにそうしたツールに頼ってきたプロ投手が開発し、すべてのレベルの選手にエリート級データへのアクセスを民主化します。単一カメラだけで、球速・スピンレート・スピン軸・誘導変化量・コースを、レーダーに迫る精度で測定。</p>
<p>内部では、コンピュータビジョン・深層学習・物理モデリングを融合したリアルタイム処理。独自学習のニューラルネットが飛行中のボールをトラッキングし、物理エンジンが 3D 軌道を再構成、CoreML が最大 60fps のオンデバイス推論を実現。精度の証として、すでに大学チーム、トレーニング施設、MLB 組織で利用されています。</p>
<h2><strong>Buzziest Launch Award</strong></h2>
<h3><strong>審査基準</strong></h3>
<p>このカテゴリは、最も創造的で勢いのあるローンチを称えます。審査員は以下を評価しました。</p>
<ul>
<li><strong>可視性</strong>：複数チャネルでどれだけ効果的にプロモーションしたか</li>
<li><strong>クリエイティビティ</strong>：注目を集めた独創的な仕掛け、動画、ストーリーテリングの活用</li>
<li><strong>エンゲージメント</strong>：ハッカソンコミュニティ内外での話題や反響（定量・定性的）</li>
</ul>
<h3><strong>1位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/785932-readhim">ReadHim</a></strong></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/7a0582981717f780e3a1111e10e0e949a8e182d3-806x538.png" alt=""/></figure>
<p><a href="https://apps.apple.com/us/app/readhim/id6751736922">App Store</a></p>
<p>ReadHim は、Shipaton 2025 で最も“バズる”ローンチを目指して設計されました。1 か月足らずでアイデア出し・開発・マーケを行い、初の App Store リリースに挑んだ共同創業者 Jay と Joseph は、議論を巻き起こすと確信するアイデアに全振り。アプリは、女性が恋愛のテキスト会話をデータドリブンに読み解けるようにします。トーン、パターン、レッドフラグを分析し、相手の本当の意図を理解する手助けをします。スクリーンショットをアップロードすると、OCR と微調整した GPT-OSS-120B モデルが、操作的なパターンの検出、恋愛意図の解釈、さらには次に送るべきテキストの提案までを含むレポートを生成。</p>
<p>バイラルマーケティングにより、Instagram のミームアカウントで 520 万超の再生を獲得、230 万超のフォロワーを持つ TikTok インフルエンサーとの提携も実施。スーパーカーとロボット犬を使った街頭プロモーションというクリエイティブな仕掛けも展開。わずか 10 日で月次経常収益（MRR）$1,100 を達成しました。</p>
<h3><strong>2位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/797661-shutter-declutter-photo-cleaner">Shutter Declutter: Photo Cleaner</a></strong></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/6182ecbb722e393a3c245ab1c15de00c23fc3ac3-806x537.png" alt=""/></figure>
<p><a href="https://apps.apple.com/us/app/shutter-declutter-pic-cleaner/id6745152835">App Store</a></p>
<p>Shutter Declutter は、写真整理を“毎日の習慣”に変えます。開発者が「iPhone のストレージが一杯です」という見慣れた通知に直面し、何千枚も一気に削除するのは現実的でないと気づいたことが発想の起点でした。</p>
<p>Shutter Declutter は、カメラロールの片付けをシンプルで楽しいものにします：その日付の“過去年”の写真を毎日見せ、いらないものをスワイプで削除―まるで写真版 Tinder のように。</p>
<p>ローンチはブレイク。SNS 投稿、コールドメール、街中のポスター、さらには The Verge での紹介といった草の根の施策が功を奏し、アクティブユーザーは数千人、課金ユーザーは 1,000 人超に到達。成長の多くは口コミのオーガニックな広がりに支えられました。</p>
<h3><strong>3位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/811645-memolune">MemoLune</a></strong></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/bcf74ff9d8a2b3cbe9dd0074a3c877aa89f2959d-1998x1052.png" alt=""/></figure>
<p><a href="https://apps.apple.com/jp/app/%E3%83%A1%E3%83%A2%E3%82%8B%E3%82%93-memolune/id6752797808">App Store</a></p>
<p>MemoLune は、メッセージを送るような自然さでメモを書き留められるシンプルさを捉えます。開発者は、友人が“一人用グループチャット”を自分メモに使っているのを見て、あまりに自然で、より良いノートアプリの正しいモデルだと感じたことから着想。100 日連続開発で、プロセス自体をストーリー化しました。</p>
<p>出来上がったのは、音声入力・OCR・チャット風デザインを組み合わせ、アイデアを手間なく記録できる軽量な多言語メモアプリ。話す・撮る・打つのいずれでも入力でき、即座に文字起こしとテキスト抽出。カレンダービューで振り返り、任意の日の思考を再発見できます。</p>
<p>PyCon JP での開発者の基調講演中にライブリリースされ、すぐにユーザーを獲得。初週で 4 件の登壇依頼が届き、ローンチの裏側を語るラジオ出演も決定しました。</p>
<h2><strong>HAMM Award</strong></h2>
<h3><strong>審査基準</strong></h3>
<p><strong>Help Apps Make Money（HAMM） Award</strong> は、最も強力なマネタイズ戦略を表彰します。審査員は以下を評価しました。</p>
<ul>
<li><strong>戦略の明確さ</strong>：収益源はターゲット市場に対して明確かつ現実的か？</li>
<li><strong>クリエイティビティ</strong>：ハイブリッドや非定型の収益モデルに挑戦しているか？</li>
<li><strong>財務的持続性</strong>：長期的な事業や競争優位を支えうるか？</li>
</ul>
<h3><strong>1位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/767760-vector-guard">Vector Guard</a></strong></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/71c2a6970d348512044fa5efe76b9507a93ebbcf-806x537.png" alt=""/></figure>
<p><a href="https://apps.apple.com/us/app/vector-guard-bug-identifier/id6749871217">App Store</a></p>
<p>Vector Guard は、公衆衛生データを“保護”に変え、研究と生活の距離を埋めます。CDC の監視データの複雑さを、誰でもすぐにマダニや蚊などの病原体媒介生物を特定できる、オフラインファーストのプラットフォームへと変換。</p>
<p>中核のイノベーションは 1:50 Justice Model。$2.99 のプレミアム購読 1 件ごとに、高リスクの ZIP コードに 50 アカウントを自動で無償提供（申請不要、広告なし、ネット不要）。Swift 製で、CDC のオープンデータ、AI 画像認識、多言語アクセシビリティを組み合わせ、必要とする人に予防ツールを直接届けます。Vector Guard は、思慮深い設計と公正なマネタイズが、公的データを“公共善”へと変換し、疾病予防を特権ではなく人権にすることを示しています。</p>
<h3>2位: <a href="https://revenuecat-shipaton-2025.devpost.com/submissions/812011-napkinmatic-ai3d">Napkinmatic AI3D</a></h3>
<p><a href="https://www.youtube.com/watch?v=fuaEaOllXds">Watch on YouTube</a></p>
<p><a href="https://apps.apple.com/us/app/napkinmatic-ai3d/id6590601686">App Store</a>
<a href="https://play.google.com/store/apps/details?id=com.ai3d.napkinmatic">Play Store</a></p>
<p>Napkinmatic AI3D は、紙ナプキンの落書きをデジタルの魔法に―デジタルアート、インタラクティブな 3D モデル、アニメ動画へと変換します。カフェや教室で誰もがする「走り書き」を、最も自発的な創造の再発明に。ユーザーはナプキンの写真を撮るだけ。数秒で、AI による変換結果が立ち上がります。</p>
<p>React Native と Unity/Three.js で実装し、モバイルの手軽さと没入的レンダリングを両立。バックエンドは Python の AI サービス。マネタイズは RevenueCat を活用したハイブリッド型で、“Napkin Credits” を購入して Coins に変換、もしくは月次のクリエイティブバンドルにサブスクライブ。</p>
<h3><strong>3位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/767091-kigaru-talks">Kigaru Talks</a></strong></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/42d2d16f8088b1acca163a0f516caec3191c4bcf-2178x1066.png" alt=""/></figure>
<p><a href="https://apps.apple.com/jp/app/kigaru-talks/id6749827005?l=en-US">App Store</a>
<a href="https://play.google.com/store/apps/details?id=com.kigarutalks.conversations">Play Store</a></p>
<p>Kigaru Talks は、日本語を“正しさ”だけでなく“自信”を持って話せるようにします。日本に駐留する米軍関係者への長年の指導経験から、筆記試験は満点でも会話で固まってしまうというインサイトを得て誕生。気楽で無批判な相棒として、実際の会話を通じた流暢さを育てます。</p>
<p>リアルタイム音声認識、JLPT レベルに調整した AI 対話、誤りをフラッシュカード化して復習する優しい訂正ループ。会話は能力と進捗に自然に適応し、記憶機能がセッションをまたいだ継続性を担保。安全性とパーソナライズを重視し、点数化や評価は行わず、自分のペースでの練習を促します。</p>
<h2><strong>RevenueCat Peace Prize</strong></h2>
<h3><strong>審査基準</strong></h3>
<p>Peace Prize は、社会的インパクトを生むテクノロジーを称えます。審査員は以下を評価しました。</p>
<ul>
<li><strong>インパクト</strong>：重要な社会・コミュニティ課題にどれほど効果的に取り組んでいるか？</li>
<li><strong>実現可能性</strong>：利用可能な技術とスケールで、目標を現実に達成できるか？</li>
<li><strong>リーチ</strong>：多くの人々、もしくは小さな集団に深く、生活を改善しうる潜在性？</li>
</ul>
<h3><strong>1位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/789701-heartbeat-hero">Heartbeat Hero</a></strong></h3>
<p><a href="https://www.youtube.com/watch?v=RYn1gSTS30o">Watch on YouTube</a></p>
<p><a href="https://apps.apple.com/us/app/heartbeat-hero/id6736655661">App Store</a></p>
<p>Heartbeat Hero は iPhone / iPad を CPR（心肺蘇生）のコーチに変え、正確なリズムと深さで自信を持って胸骨圧迫できるように教えます。学習者、学生、そして“いざという時”に備えたいすべての人のために設計。Learn、Rhythm、Depth、AI Call Simulation（999/911）、Real AED Map という 5 つのトレーニングモードを備え、すべてオフラインで動作し、信頼性とプライバシーを確保。学生はフルアクセスが無料、主要な学習ツールは誰にでも開放。</p>
<p>WWDC Swift Student Challenge 2024 の Distinguished Winner として始まり、その後パブリックリリースに向けて全面再構築。消防士の叔父が CPR で命を救った実体験に触発され、誰もが実行できる知識と自信を提供するために開発。ブレイクスルーは Depth Practice―ARKit、IMU 融合、適応フィルタリングを組み合わせ、専用ハード不要で胸骨圧迫の深さをミリ単位で計測。アクセシビリティも中心に据え、音声ガイダンス、触覚フィードバック、ライト点滅、ADHD・失読症・読字困難に配慮した Focus Mode を搭載。</p>
<h3><strong>2位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/803648-hearing-buddy">Hearing Buddy</a></strong></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/88e06d61313f871a4b902c7927c5a26974a7c188-2048x1030.png" alt=""/></figure>
<p><a href="https://apps.apple.com/us/app/live-transcribe-hearing-buddy/id6747363502">App Store</a>
<a href="https://apps.apple.com/us/app/hearing-buddy-everywhere/id6752637457">Mac App Store</a></p>
<p>Hearing Buddy は、聴覚に課題のある人が会話についていけるよう、正確・プライベート・手頃なキャプションをリアルタイムで提供。Apple の最新オンデバイス音声認識を活用し、シンプルで強力な“隣で聴く”相棒として、即時に文字起こししてつながりを支えます。</p>
<p>開発者は、難聴のパートナーがグループ会話で苦労する様子を見て本アプリを制作。内部では iOS 26 の新しい Apple Speech フレームワークで高速・オフラインの文字起こしを実現し、CoreML の話者識別で声の違いを判別します。</p>
<h3><strong>3位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/781146-moodhaven">MoodHaven</a></strong></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/4635af8cb0f1a7730b12669d3c80a518f7a428ad-2048x1063.png" alt=""/></figure>
<p><a href="https://apps.apple.com/us/app/moodhaven-mood-tracker/id6752584907?uo=4">App Store</a></p>
<p>MoodHaven は、保護者が子どもの気分・睡眠・投薬・行動事象をトラッキングし、より良いケアと専門家との明確な対話につながるパターンを明らかにします（断片的なメモや疲弊した記憶を、家族が頼れる整理されたインサイトに変換）。</p>
<p>出発点は家庭。開発者の 7 歳の息子は長年重いメンタルヘルスの課題に直面し、まだ言語化が難しい子どもをしばしば取りこぼすシステムの中でもがいていました。診察は短すぎ、診断は揺れ、投薬は誰も追えない速さで変わる。必要だったのは明確さ（リアルでデータ駆動の文脈）。Swift と、Cursor や Codex などの AI ツールの助けで、思慮深いデザインと手に取りやすい技術を組み合わせて構築しています。</p>
<h2><strong>Best Vibes Award</strong></h2>
<h3><strong>審査基準</strong></h3>
<p>この賞は、開発やデザインを高める“vibe-coding” ツールのAI とクリエイティブプラットフォームの活用による創造性を称えます。審査員は以下を評価しました。</p>
<ul>
<li><strong>連携と適用</strong>：AI ツールやパートナープロダクトがワークフローや UX をどれだけ改善したか</li>
<li><strong>クリエイティビティ</strong>：予想外で楽しく革新的な使い方をしたか</li>
<li><strong>実装</strong>：最終プロダクトの品質と磨き込み</li>
</ul>
<h3><strong>1位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/803724-otter-day-weekday-guesser">Otter Day: Weekday Guesser</a></strong></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/6e1760d3651d9f7d31440ebdc51b428f09aa3d6e-806x537.png" alt=""/></figure>
<p><a href="https://apps.apple.com/us/app/otter-day-weekday-guesser/id6747994124">App Store</a>
<a href="https://play.google.com/store/apps/details?id=fpdigitallabs.otter&amp;pli=1">Play Store</a></p>
<p>Otter Day は、昔ながらの“曜日当て”心算トリックを、インタラクティブで物語性のある学習ゲームに変えます。数分で、歴史上のどの日付でも曜日を言い当てられるように――1776 年 7 月 4 日？木曜日。あなたの 70 歳の誕生日？金曜日。</p>
<p>本作はソロ開発。対話とビジュアルに Perplexity Pro、ラッコのアニメに KlingAI、ボイスオーバーに ElevenLabs。AI ツールを創作の相棒として使い、アート・ストーリー・UI を磨きながら、手作り感のトーンを保っています。</p>
<h3><strong>2位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/810475-dripped">Dripped</a></strong></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/6ced7609ad1f65b1f8b3dcb72f9258122b3449e4-806x453.png" alt=""/></figure>
<p><a href="https://apps.apple.com/in/app/dripped-personal-stylist/id6749790183">App Store</a></p>
<p>Dripped は永遠の問いに答えます：「今日、何を着ればいい？」自称“服が苦手”な作者が、毎朝の優柔不断とミスマッチにうんざりし、色合わせを ChatGPT に頼る日々から、クローゼットを理解し、自動でコーデ提案し、毎日を節約する“個人 AI スタイリスト”を作ることに。</p>
<p>SwiftUI・Metal・Bun バックエンドで動作。特筆すべきは、PR ドリブンの vibe coding ワークフロー：Claude Code をタグ付けした GitHub Issue を立てると、機能や修正を実装した Pull Request が生成され、CodeRabbit が Lint レビュー、最後にカスタム GitHub Action が Xcode Cloud を起動して TestFlight ビルドを配信。</p>
<h3><strong>3位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/806435-maestlog-your-personal-symphony-journal">MaestLog: Your Personal Symphony Journal</a></strong></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/bf41f358f5acd49710e7f50fc9d2003e18e47e1e-806x537.png" alt=""/></figure>
<p><a href="https://apps.apple.com/en/app/maestlog/id6752569728?l=en-US">App Store</a></p>
<p>MaestLog は、クラシック音楽愛好家が“聴取の旅”を保存するための、上品なコンサート日誌。ライブの記憶は驚くほど早く薄れるという気づきが出発点でした。バイオリニストのパートナーと無数の公演に通ううち、日付・楽団・曲目といった詳細がこぼれ落ちていくことに気づいたのです。MaestLog では、日付・会場・演奏者・演目の詳細まで記録し、感想や評価も添えて、音楽の記憶を生きたアーカイブに。</p>
<p>モバイル開発経験ゼロから、Swift を学び、フル iOS アプリを構築、RevenueCat のサブスクリプションを統合までわずか 3 週間。Claude Code、CodeRabbit、Codex などのツールを使い、人と AI のコラボ学習として一歩ずつ進めました。</p>
<h2>OneSignal Boost Award</h2>
<h3>審査基準</h3>
<p>OneSignal Boost Award は、OneSignal API のベストプラクティス活用を示したチームを称えます。審査員は以下を評価しました。</p>
<ul>
<li><strong>連携の品質</strong>：OneSignal がクリーンかつ安定的に実装されているか？</li>
<li><strong>体験への寄与</strong>：通知がリテンション、エンゲージメント、使い勝手をどう改善したか？</li>
<li><strong>クリエイティビティ</strong>：パーソナライズや高度なセグメントなど、巧みな通知活用があるか？</li>
</ul>
<h3>1位: <a href="https://revenuecat-shipaton-2025.devpost.com/submissions/777760-cooked-this-cooking-diary-and-tracker">Cooked This: Cooking Diary and Tracker</a></h3>
<p><a href="https://www.youtube.com/watch?v=2hbY4qjEmwg">Watch on YouTube</a></p>
<p><a href="https://apps.apple.com/gb/app/cooked-this/id6749899791?platform=iphone">App Store</a></p>
<p>Cooked This は、料理を測定可能でモチベーションが続く習慣へ――“キッチン版フィットネストラッキング”として再発明。家庭の料理人が食事を記録し、バラエティを可視化し、マイルストーンを祝えるようにし、日常のタスクを報酬のある実践に変えます。</p>
<p>OneSignal SDK の活用は、行動デザインとしてのリッチ通知が際立ちました。ユーザーに食事の記録、連続記録の維持、小さな達成の祝福を促します。恣意的な指標に頼らず、新しい料理に挑む、頻度を保つ、今日も台所に立つといった“実際の進歩”を報いる設計。リマインダーやマイルストーンは疲労を避けるよう繊細に調整され、励ましと自律のバランスを取っています。</p>
<h3>2位: <a href="https://revenuecat-shipaton-2025.devpost.com/submissions/798523-voicetree-ai-meeting-notes-for-work-study">Voicetree – AI Meeting Notes for Work &amp; Study</a></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/9807609a66055efb2f14947120bf993a94842737-806x532.png" alt=""/></figure>
<p><a href="https://apps.apple.com/us/app/id6747253996">App Store</a></p>
<p>Voicetree は、会議を終えるとすぐ「何を決めたんだっけ？」を忘れてしまうという普遍的なフラストレーションから誕生。複数のプロダクトを抱える 2 人のインディー開発者にとって、これは日常の痛みでした。</p>
<p>Voicetree は、音声を録音またはアップロードし、リアルタイムで文字起こし、構造化された編集可能なメモへ変換する AI 会議アシスタント。さらに要約、ブログ記事、メール下書きの生成、トランスクリプトとのチャットによるインサイト抽出まで、会話に集中しながら明瞭さを得られます。React Native と Expo で実装し、Apple Watch、Siri インテント、ライブアクティビティ、ウィジェット向けにカスタム Swift 連携も。</p>
<p>技術的洗練に加え、明確な MVP、ユーザー信頼の優先、早期のトラクション検証（数週間で 1,000 インストールと $2,000 の収益）など、強いプロダクト思考も評価。メール・プッシュ通知の使い分け、アプリ内メッセージの実験、関連ブログ記事など、ユーザージャーニーも高く称賛されました。</p>
<h3>3位: <a href="https://revenuecat-shipaton-2025.devpost.com/submissions/788499-friendy">Friendy+</a></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/602f931e783e3a7f535e801e0380b99cc64167a5-806x537.png" alt=""/></figure>
<p><a href="https://apps.apple.com/us/app/friendy/id6752370787">App Store</a></p>
<p>Friendy+ は現代のネットワーキングの課題から生まれました。イベントで多くの人に出会っても、数週間後には何をしている人か、どこで会ったか、なぜフォローアップしたかったかを忘れてしまう…こうした“弱いつながり”は、実は最も価値があるのに、維持が難しい。Friendy+ は、新しい出会いを記録し、瞬時に思い出し、意図的に関係を保てるよう設計された、シンプルで上品なアプリです。</p>
<p>審査員が最も感銘を受けたのは、OneSignal のジャーニーとトランザクションメッセージの活用。ペルソナに基づくメッセージングでフォローアップを促し、Outcomes でエンゲージメントを測定。</p>
<p>6 本の YouTube 連載でプロセス・方向転換・学びを公開。初期のオーディエンス（親しい友人）は適合しないと早期に判明し、迅速に“職業上の知人”へとピボットしました。</p>
<h3>4位: <a href="https://revenuecat-shipaton-2025.devpost.com/submissions/778789-studient">Studient</a></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/ecb86045ea0bd0e0f533229729aaa63590e53929-792x573.jpg" alt=""/></figure>
<p><a href="https://apps.apple.com/us/app/studient-ai/id6751546811">App Store</a>
<a href="https://play.google.com/store/apps/details?id=com.daya.studient&amp;hl=en_GB">Play Store</a></p>
<p>Studient は、勉強をもっとスマートに、速く、ずっとラクに。Shipaton のために 7 日で作られ、PDF を構造化した学習素材「フラッシュカード、クイズ、要約」へ変換する AI 学習コンパニオンです。深夜の単純な苛立ちから生まれた発想：「AI がコードやデザインを作れるなら、個人向け学習ツールも自動生成できるはず」。</p>
<p>技術面では、Flutter によるマルチプラットフォームと OneSignal のフレンドリーな学習リマインダー。Journeys の活用と磨き込まれた UX が高評価でした。</p>
<h3>5位: <a href="https://revenuecat-shipaton-2025.devpost.com/submissions/772561-camp-notes">Camp Notes</a></h3>
<p><a href="https://www.youtube.com/watch?v=DLPU1-HE7WI">Watch on YouTube</a></p>
<p><a href="https://apps.apple.com/us/app/camp-notes-camping-journal/id6749878726">App Store</a></p>
<p>Camp Notes は、最高のサイトを記録し、悪いサイトを避け、アウトドア体験を共有する手助けをします。きっかけは、開発者が妻といくつかのキャンプに出かけたあと、良し悪しを簡単に記録する手段がないと気づいたこと。</p>
<p>写真、メモ、評価、同行者などを含む詳細な滞在記録を残し、キャンプ場のクラウドソースデータベースに貢献。SwiftUI ネイティブで、Firebase によるリアルタイム同期。オンボーディングやリエンゲージメントのためのオムニチャネルメッセージングが特に高評価でした。</p>
<h2>Kotlin Multiplatform Reach Award</h2>
<h3>審査基準</h3>
<p>この賞は、<strong>Kotlin と Compose Multiplatform</strong> を使って卓越したクロスプラットフォームアプリを構築したチームを表彰します。審査員は以下を評価しました。</p>
<ul>
<li><strong>技術的実装</strong>：iOS と Android の双方で安定し、機能が充実しているか？</li>
<li><strong>デザインの一貫性</strong>：プラットフォームごとのネイティブ性と、統一ブランドの両立？</li>
<li><strong>コミュニティ貢献</strong>：Kotlin 開発者のために学び・課題・リソースを公開したか？</li>
</ul>
<h3>1位: <a href="https://revenuecat-shipaton-2025.devpost.com/submissions/764218-momental-meditate-sleep-focus">Momental</a></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/5834b89a43aa851ef9887b06c54d387751d44265-806x341.png" alt=""/></figure>
<p><a href="https://apps.apple.com/app/id6749689590?pt=127554842&amp;ct=website_homepage&amp;mt=8">App Store</a>
<a href="https://play.google.com/store/apps/details?id=ai.momental&amp;utm_source=website&amp;utm_medium=referral&amp;utm_campaign=website_download&amp;referrer=utm_source%3Dwebsite">Play Store</a></p>
<p>Momental は、デジタルノイズに満ちた中で静けさを探す作者の旅から生まれました。ネパールの寺院で瞑想を学んだ平穏は、帰国後すぐに通知・ログイン・過剰に作り込まれた瞑想アプリにかき消される…その経験から明確な設計哲学が生まれました。瞑想に必要なのは、より多くのコンテンツやコミュニティ機能ではなく、“摩擦の無さ”。</p>
<p>結果として生まれたのは、「1 ページ、1 タップ、それだけ」という原則に基づく、美しいミニマルな瞑想・睡眠・集中アプリ。AI 生成とオープンソースの音源を編集して最高の品質に。ログインなし、広告なし、オンボーディングなし。</p>
<p>シンプルでも、初月で 4,000 回超のセッションを記録し、教師が生徒の集中を助けるケースから、耳鳴りに悩む人の安らぎまで、想定外のユースケースが広がっています。</p>
<h3>2位: <a href="https://revenuecat-shipaton-2025.devpost.com/submissions/760712-posturely">Posturely</a></h3>
<p><a href="https://www.youtube.com/watch?v=zSK9wxqGyWc">Watch on YouTube</a></p>
<p><a href="https://apps.apple.com/in/app/posturely-sit-straight/id6752023992">App Store</a>
<a href="https://play.google.com/store/apps/details?id=com.mobil80.posturely">Google Play</a></p>
<p>Posturely は、コーディングや仕事、パズルに没頭する長時間が、姿勢・集中・エネルギー・自信をじわじわ蝕むという観察から始まりました。スマホカメラ、ラップトップのウェブカメラ、AirPods の傾きセンサーまでを組み合わせ、リアルタイムで姿勢を検知し、不快になる前に優しく調整を促します。</p>
<p>リアルタイム検知、パーソナライズされたフィードバック、ガイド付きエクササイズを提供。愛らしいキリンのマスコットで、医療的でなく親しみやすい体験に。進捗は姿勢の連続記録やレポートで確認でき、エクササイズ完了まで気を散らすアプリをブロックすることも可能。Kotlin Multiplatform で iOS・Android・デスクトップを単一コードベースでサポート。Supabase による同期、そして“姿勢データは端末内”というプライバシーファースト。3 プラットフォーム対応と創意工夫が高評価でした。</p>
<h3>3位: <a href="https://revenuecat-shipaton-2025.devpost.com/submissions/768624-steps-share">Steps Share</a></h3>
<p><a href="https://www.youtube.com/watch?v=78NuHU3vP7Q">Watch on YouTube</a></p>
<p><a href="https://apps.apple.com/us/app/steps-share-pedometer/id6751459595">Apple store</a>
<a href="https://play.google.com/store/apps/details?id=com.itdeveapps.stepsshare">Google Play</a></p>
<p>「シェアすれば運動は楽しくなる」は、Steps Share の根本思想です。友人が WhatsApp グループで歩数スクショを交換しているのを見て、最初のタップから“責任感”が組み込まれたトラッカーを作ることに。リアルタイムのリング表示や “Friend Duels” で、日々の歩行をフレンドリーな競争に。</p>
<p>Kotlin Multiplatform によって Firebase 経由で同期し、Google Fit と Apple HealthKit の両方と連携。現在ベータで、少なくとも 1 人の友人とつながったユーザーは日々の歩数が 22% 増加。これは、小さな社会的動機づけが現実の成果を生む証拠です。</p>
<h3>4位: <a href="https://revenuecat-shipaton-2025.devpost.com/submissions/809450-drawit-a-multiplatform-draw-guess-game">DrawIt: A Multiplatform Draw &amp; Guess Game</a></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/4c4fe0cc191f9c76e4c4f390ff215e0fb6ef6d21-806x524.png" alt=""/></figure>
<p><a href="https://apps.apple.com/in/app/draw-it/id6751777472">App Store</a>
<a href="https://play.google.com/store/apps/details?id=com.guessink.game">Google Play</a></p>
<p>DrawIt は、定番の“お絵かき伝言ゲーム”をクロスプラットフォーム時代向けに再構築。プライベートルーム作成、友人招待、リアルタイムでの描画と回答、リーダーボードで競争。キビキビ動く体験に、滑らかなアニメ、心地よい効果音、モバイルにもデスクトップにも馴染む遊び心ある UI を詰め込みました。</p>
<p>iOS・Android・デスクトップをシームレスに跨ぎ、Apple Pencil 入力にも対応。Firestore・Cloud Functions・Cloud Run を組み合わせたリアルタイムバックエンドで、ゲーム進行・単語選定・リーダーボード更新を管理。</p>
<h3><strong>5位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/812028-clipugc">ClipUGC</a></strong></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/a3dba6b6bcecdc8dfc4964dc6c6fd94a2899e3bd-806x537.png" alt=""/></figure>
<p><a href="https://play.google.com/store/apps/details?id=com.measify.clipugc">Play Store</a>
<a href="https://apps.apple.com/pk/app/clipugc-ai-ugc-video-maker/id6752866581">App Store</a></p>
<p>ClipUGC は、インディー開発者がよく抱える悩みを解決します。プロダクトはShipできるが、高コンバージョンの“インフルエンサー風フック動画”の制作は手が届かない。代理店は高価、AI ツールは企業向けに最適化され価格も企業並み。ClipUGC は、クリエイターが実際に必要とする機能に絞り込みました。</p>
<p>ワークフローは明快。テキストプロンプトから AI インフルエンサーを生成・カスタマイズし、デモ動画をアップロード、フックを統合すれば、人の好奇心を引く洗練イントロが完成。UI には紙吹雪のフィニッシュや、タップで解放される隠し要素などの小さな喜びも。インディー、スタートアップ、中小企業が、数分で“自社らしい”フック動画を作るための実用ツールです。</p>
<h2><strong>Staff and Sponsors Award</strong></h2>
<h3><strong>審査基準</strong></h3>
<p>RevenueCat 社員とスポンサーによるチームを対象に、最優秀の社内プロジェクトを表彰します。審査員は以下に注目しました。</p>
<ul>
<li><strong>コンセプトの独自性</strong>：新規性があるか、未解決の問題に挑んでいるか？</li>
<li><strong>実装とデザイン</strong>：プロダクション品質で、使って楽しいか？</li>
<li><strong>マネタイズ</strong>：思慮深い、または実験的な収益設計があるか？</li>
</ul>
<h3><strong>1位: </strong><strong><a href="https://revenuecat-shipaton-2025.devpost.com/submissions/779955-crystal-abyss">Crystal Abyss</a></strong></h3>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/1ca25e8c14f6a74b6fc733a2ac5d8f2a6e2c11b0-2048x1046.png" alt=""/></figure>
<p><a href="https://apps.apple.com/us/app/crystal-abyss/id6751184987">App Store</a></p>
<p>Crystal Abyss は、クラシックな Columns パズルを、Monument Valley の静謐なミニマリズムと、ダンテ『神曲』の幽玄な深みで再解釈。プレイヤーは地獄の 9 圈を象徴するステージに、輝く宝石のスタックを落とし、マッチで消しながら、混沌の下に潜む瞑想的リズムを見出します。各レベルはダンテの環界――静謐な“辺獄”から、自己相似の狂騒“裏切り”まで。</p>
<p>SpriteKit と SwiftUI で構築し、アートディレクションと滑らかな物理挙動を融合。落ちる宝石の連なりや、完成時の発光まで、超越感を呼ぶアニメーションを丁寧に作り込みました。舞台裏は AI 支援開発のケーススタディでもあり、Claude と Codex を用いた vibe coding でゲーム全体を構築しています。</p>
<h2>Shipaton 2025、いよいよ出航です</h2>
<p>この2か月、皆さんは本当にすごい成果を出してくれました。初めてアプリをローンチしたソロビルダーから、AI とマネタイズの可能性を押し広げた熟練開発者まで、Shipaton 2025 で私たちが目にした創造性と決意は、ただただ刺激的でした。わずか 8 週間で、参加者はアイデアを現実に――磨き込まれ、独創的で、ハートに満ちたプロジェクトをShipしました。</p>
<p>最後に、RevenueCat チーム一同より：受賞者の皆さん、おめでとうございます！そして、貢献し、メンターし、誰かの“Ship”を後押ししてくれたすべての人に、ありがとう。</p>
<p>Shipaton 2025 はこれで一区切りですが、皆さんのアプリはここからが始まりです。これからどこへ進むのか、見るのが待ちきれません。</p>
<p>Shipaton をどう感じましたか？楽しめましたか？こうしてほしかった、という点はありましたか？</p>
<p>ぜひご意見を聞かせてください。 <a href="https://x.com/RevenueCat">Twitter</a> や <a href="https://www.linkedin.com/company/revenuecat/">LinkedIn</a> で知らせてください。参加者全員にアンケートもお送りしますので、そちらもチェックしてください。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[アプリはどのようにして「買う価値のあるもの」になるのか？─BlueThroneが量から質へとシフトしたことから学ぶ教訓]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/josh-peleg-bluethrone-sub-club-podcast-2025</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/josh-peleg-bluethrone-sub-club-podcast-2025</guid>
      <pubDate>Mon, 27 Oct 2025 15:38:50 GMT</pubDate>
      <dc:creator><![CDATA[David Barnard]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[BlueThroneのJosh Peleg氏が語る、現代のアプリ買収で買い手が本当に重視するポイント──予測可能な継続収益から、7桁規模のエグジットを生み出すマーケティングの強みまで。]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/312076ab373cecb5f67cc797ebcee4a9b3590bdc-1600x840.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<h3>今アプリを開発しているなら、「いつかは売却する」ということを考えたことがある人も多いでしょう。</h3>
<p>しかし、実際に買い手にとって魅力的なアプリとは何なのか？そして、どんなミスが取引を台無しにするのか？</p>
<p><a href="https://subclub.com/episode/buying-vs-building-scaling-beyond-a-single-app-josh-peleg-bluethrone">今週のSub Clubポッドキャスト</a>では、世界有数のアプリ買収企業のひとつである <a href="https://bluethrone.io/">BlueThrone</a> の事業開発・M&amp;A責任者<a href="https://www.linkedin.com/in/joshpeleg/"><strong>Josh Peleg</strong></a>氏 に話を伺いました。Josh氏は、BlueThroneが「数百もの小規模ユーティリティアプリを買収する戦略」から、「少数の高パフォーマンスなカテゴリリーダーに集中する戦略」へと進化した経緯、そしてその過程から創業者が学べることについて語ってくれました。</p>
<p><a href="https://www.youtube.com/watch?v=T3YIc-clWo0">Watch on YouTube</a></p>
<h2><strong>「横展開」戦略の落とし穴</strong></h2>
<p>初期のBlueThroneは、「横展開」アプローチを取っていました。つまり、懐中電灯アプリやQRスキャナーなど、シンプルなユーティリティアプリを数多く買収する戦略です。このモデルは短期的にはすぐにキャッシュを生み出しましたが、内容の浅いアプリはすぐに勢いを失ってしまいました。</p>
<p>この経験を経て、Josh氏が「BlueThrone 2.0」と呼ぶ新たな方向性が生まれました。それは、<strong>量ではなく深さを重視</strong>した、より焦点を絞ったモデルです。現在の同社は、プロダクトマーケットフィットが実証されており、オーガニック成長と高いリテンションを備えたアプリのみを買収対象としています。</p>
<h2><strong>プレイブックを進化させる</strong></h2>
<p>Josh氏は、<em>買収される</em>価値のあるアプリとは何かについても共有してくれました。最大のポイントは、<strong>予測可能な継続収益</strong>です。買い手は常に、広告収益型や単発購入型のモデルよりも、毎月安定して更新されるサブスクリプションモデルを高く評価します。</p>
<p>また、Josh氏は、売却前に数字を「盛る」ような行為──たとえば、短期的なプロモーションを実施して一時的に収益を押し上げるような手法──に警鐘を鳴らしました。こうした戦術は、買収監査時に裏目に出ることが多いからです。買い手が求めているのは、一時的なスパイクではなく、持続的で再現可能なパフォーマンスです。</p>
<h2>数字を超えて</h2>
<p>AIの進化によって開発スピードが加速し、技術的な参入障壁が低くなった今、<strong>マーケティングこそが新たな競争優位性</strong>となっています。今日、実際に大きなエグジットを達成している創業者たちは、優れた開発者であるだけでなく、コミュニティを築き、オーガニック成長を促進する方法を理解しているマーケターでもあります。</p>
<p>また、Josh氏とDavid氏は、ゲーム業界から着想を得た<strong>ハイブリッド型マネタイズ</strong>の台頭についても議論しました。たとえば、消費型アイテム、日次利用権、報酬型広告といった仕組みを取り入れ、サブスクに登録しないユーザーからも価値を引き出すという考え方です。このアプローチは、次世代のコンシューマーアプリを定義しつつある新しいプレイブックになりつつあります。</p>
<h2>まとめ</h2>
<p>あなたが初めてのエグジットを目指すインディー開発者であっても、長期的な価値を最適化しようとするグロースステージの創業者であっても、今回のエピソードは、現代のアプリ買収が実際にどのように行われているのか、そして買い手が無視できないビジネスを構築するために何が必要なのかを知る貴重な視点を提供してくれます。</p>
<p>Listen on: <a href="https://www.youtube.com/watch?v=T3YIc-clWo0">YouTube</a> · <a href="https://open.spotify.com/show/6jmxautTyDTjwqRYyg9BXF">Spotify</a> · <a href="https://podcasts.apple.com/us/podcast/feed/id1538057974?ls=1">Apple Podcasts</a></p>
<p>Listen on: <a href="https://open.spotify.com/show/6jmxautTyDTjwqRYyg9BXF">Spotify</a> · <a href="https://podcasts.apple.com/gb/podcast/sub-club-by-revenuecat/id1538057974">Apple Podcasts</a> · <a href="https://www.youtube.com/@SubClubPodcast">YouTube</a></p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[バイラル広告を追いかけるのはやめよう——スケールできるクリエイティブテストシステムを構築せよ]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/subscription-app-creative-testing</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/subscription-app-creative-testing</guid>
      <pubDate>Mon, 27 Oct 2025 14:45:01 GMT</pubDate>
      <dc:creator><![CDATA[David Vargas]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[あらゆる予算規模に対応できる、体系的なクリエイティブテストによって再現可能な成長を設計する方法]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/11a9245fd06855d06639ae1a13c9a7da02986c75-1600x800.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>クリエイティブはグロースのための最も強力なレバーのひとつです——そしてAIがもたらすスピードと可能性によって、その重要性はさらに高まっています。<a href="https://www.revenuecat.com/blog/growth/creative-volume-meta-ad/">より多くのクリエイティブを制作すれば、成功するものを見つけられる確率が上がる</a>ことは誰もが知っています。ですが、ひとつ問題があります。</p>
<p>それは<strong>ノイズ</strong>が多すぎるということです。LinkedInを開けば、「クリエイティブプロセスを100倍にする」と謳う新しい複雑なAIシステムが次々と紹介されています。私のフィードは「週に数千件のクリエイティブをテストした」という投稿であふれています。確かに聞こえはすごいですが、疑問も浮かびます——競争するためには本当に<strong>ボリューム</strong>が必要なのか？</p>
<p>解決策は、クリエイティブを自動化して一度に数百件の広告を量産することなのでしょうか？それとも、これもまたAIブームの一過性の話なのでしょうか？</p>
<p>この記事では、<strong>クリエイティブテストにおいて本当に重要なこと</strong>に焦点を当てます：</p>
<ul>
<li>成長に直結するクリエイティブを特定すること</li>
<li><a href="https://www.revenuecat.com/blog/growth/7-meta-ad-testing-frameworks-for-subscription-apps/">広告テスト戦略</a>を予算と整合させること</li>
</ul>
<h2><strong>テストのための制作をやめよう—</strong><em><strong>スケール</strong></em><strong>のための制作を始めよう</strong></h2>
<p>成功するクリエイティブを特定し、その成果を再現できるようにするためには、まず自分たちのニーズに合い、かつ予算制約にも対応できる適切なセットアップを整える必要があります。</p>
<p>ここでは、私が実際に試し、効果を確認してきたセットアップを紹介します。この方法を使えば、成功したクリエイティブにより多くの予算を割り当てることで、<a href="https://www.revenuecat.com/blog/growth/high-velocity-creative-testing-framework-apps-meta/">クリエイティブの成果をスケールさせる</a>ことが可能になります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/77b62559296f71448f50271dcda780aa6a21aee4-1536x579.png" alt=""/></figure>
<p>しかし、スケールに対応できるセットアップはこれだけではありません。</p>
<p>もし制約がより厳しい場合は、次の2つの質問を自分に投げかけて、<a href="https://www.revenuecat.com/blog/growth/meta-ads-cac-creative-testing/">クリエイティブテスト</a>に最適なセットアップを見極めてください。</p>
<p><strong>1. すでに成果を出しているクリエイティブがあるか、それともゼロからテストを始める必要があるか？</strong></p>
<p>この質問は、初期セットアップを決定します。すでにキャンペーンを実施し、どのタイプのクリエイティブが良い成果を出すか把握している場合は、そのアイデアをもとに新しいキャンペーンを始めることができます。一方で、そうでない場合は、成長を引き出すコンセプトを発見するまで、セットアップを継続的に調整していく必要があります。</p>
<p><strong>2. 1日にどれくらいの金額を使えるか？</strong></p>
<p>この答えによって、ターゲットとする地域やプラットフォーム、最適化すべきイベント、そして実行に適したキャンペーン数・広告グループ数・クリエイティブ数が決まります。この質問に答えるための数値的な分析に入る前に、まずは<strong>どのような指標で「勝ちクリエイティブ」を判断するのか</strong>を明確にしておきましょう。</p>
<h2><strong>識別すべき3種類の広告クリエイティブ</strong></h2>
<p>人生のあらゆることと同じように、広告の成功も白黒はっきり分かれるものではありません。単純に「勝ち」と「負け」があるわけではなく、その間にはグレーゾーンが存在します。</p>
<p>一般的に、<a href="https://www.revenuecat.com/blog/growth/informed-empathy-user-interviews-ad-creatives/">広告クリエイティブ</a>は次の3つのタイプに分類されます。</p>
<p><strong>Winning creatives（勝ちクリエイティブ）</strong>は、あらゆる面でパフォーマンスを大幅に改善するクリエイティブです。予算を増やしても成果が落ちず、効果が薄れるまでの期間も長いのが特徴です。</p>
<p><strong>Poorly-performing creatives（低パフォーマンスのクリエイティブ）</strong>は、説明するまでもなく、必要な水準に達することのないクリエイティブです。</p>
<p><strong>Average creatives（平均的なクリエイティブ）</strong>がグレーゾーンです。平均的なクリエイティブは、ある程度の予算を割り当てるとそこそこの成果を出します（勝ち広告よりは劣るものの）。ただし、積極的にスケールさせることは難しいタイプです。それでも重要な存在であり、広告グループ内に多様性を加え、勝ちクリエイティブの効果が落ち始めたときに支出を分散する役割を果たします。</p>
<p>このグループには、次のような誤検知（false positives）と見逃し（false negatives）も含まれます：</p>
<ul>
<li><strong>False positives（誤検知）</strong>：少額の支出時には良いパフォーマンスを示すが、アルゴリズムがより多くの支出を行うと成果が悪化するもの。</li>
<li><strong>False negatives（見逃し）</strong>：勝ちクリエイティブと同じグループにあると支出が割り当てられないが、別の広告グループで単独で扱うと良い成果を出すもの。</li>
</ul>
<p>要約：クリエイティブに割り当てられる<strong>支出やトラフィック</strong>は、その広告に対して取るべき最適なアクションを判断する上で極めて重要な変数です。</p>
<h2><strong>アプリグロースにおける「勝ちクリエイティブ」とは？</strong></h2>
<p>この記事の核心は、「勝ちクリエイティブ」とはどのようなものかを明確に示すことです。そして私は実際のデータから学ぶことが最も有効だと考えているので、ここでは実際のデータをもとに、平均的なクリエイティブと比較したときに「勝ちクリエイティブ」がキャンペーンにもたらす成果を紹介します。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/9879eb9a4dbdd4fa3015e1da6140da02fb8d4718-1170x733.png" alt=""/></figure>
<p>すごいですよね？このクリエイティブでは、イベント単価（Cost-per-Event）を65％削減しつつ、割り当てた予算をすべて吸収できました。さらに、CPI（インストール単価）、CTR（クリック率）、フック率、ホールド率といったファネル上部の指標でも優れたパフォーマンスを示しました。</p>
<p>これこそが、真の「勝ちクリエイティブ」を定義するものです：</p>
<ul>
<li>最適化の目的となる指標だけでなく、エンゲージメント関連のファネル上部指標でも<strong>パフォーマンスを大幅に向上</strong>させる。</li>
<li>[他のクリエイティブよりも]<strong>長期間にわたって</strong>安定した成果を出し続ける。</li>
<li><strong>より高い支出額</strong>*でも成果を維持できる。</li>
</ul>
<p><em>*上記の例では期間が短く見えますが、これらの勝ちクリエイティブは独立した広告グループに移動されたためです（この点については後ほど詳しく説明します）。</em></p>
<h3><strong>勝ちクリエイティブを見極めるためのベースラインを確立する方法</strong></h3>
<p>クリエイティブを定義したら、次に重要なのはそれらをどのように評価し、ランク付けするかです。 つまり、広告の成果を測定し、次のアクションを計画するために使用する<a href="https://www.revenuecat.com/blog/growth/metrics-for-scaling-paid-ads/">各広告指標やKPI</a>のベースラインを設定する必要があります。このベースラインとなるKPIが、次のクリエイティブに“勝ち”の可能性があるかどうかを判断する指標になります。</p>
<p>このベースラインは<strong>「勝ちクリエイティブ」</strong>によって決定されるべきです。つまり、過去に優れたパフォーマンスを発揮したクリエイティブがあるなら、同等の品質で再現することが可能ということを意味します。</p>
<p>私が確認する項目は、優先度の高い順に次のとおりです。</p>
<ul>
<li><strong>CAC（顧客獲得コスト）／CPA（コンバージョン単価）：</strong>最適化の対象となる主要アクションが「北極星指標（north-star metric）」です。ビジネスの経済性に基づき、このコストを目標値以下に維持します。</li>
<li><strong>支出額（Spend）：</strong> 勝ちクリエイティブは通常、1日の支出の<strong>80〜95％</strong>を占めます。2日経っても予算の<strong>50％未満</strong>しか使われていない場合、そのクリエイティブは負けまたは誤検知（false positive）の可能性が高いです。</li>
<li><strong>インストールからコンバージョンイベントまでの率：</strong>勝ちクリエイティブは、最適化目標へのコンバージョンがより速いペースで進みます。この指標は、ユーザーがインストールしたのにターゲットアクションを完了しない理由を特定するのに役立ちます。</li>
<li><strong>CPI（インストール単価）：</strong>必ずしも最も低い必要はありませんが、高パフォーマンスのクリエイティブは平均より良いCPIを示す傾向があります。</li>
<li><strong>CTR（クリック率）：</strong>ユーザーの意図と、クリエイティブがどれほど効果的に注意を引けているかを示します。</li>
<li><strong>インストール率（Install rate）：</strong>クリックしたユーザーが実際にアプリをインストールする効率を測定します。勝ちクリエイティブは平均的なものより高いコンバージョン率を示すべきです。</li>
<li><strong>フック率（Hook rate）：</strong>初期段階のポテンシャルを示す重要な指標で、勝ちクリエイティブでは通常かなり高くなります。</li>
<li><strong>ホールド率（Hold rate）：</strong>ユーザーがどのくらいの時間アプリに関与し続けるかを測定します。変動はありますが、クリエイティブの品質やリテンションの強いシグナルとなります。</li>
<li><strong>IPM（1000表示あたりのインストール数）：</strong>勝ちクリエイティブは一貫してより高いIPMを示す傾向があります。</li>
<li><strong>広告スコア（Ad score）：</strong>ソーシャル上でのエンゲージメントを総合的に評価し、どのクリエイティブが有意義な反応を引き出しているかを判断します。計算式：<em>(リアクション数 × 2) + (コメント数 × 5) + (保存／シェア数 × 10)</em></li>
</ul>
<p><strong>💡 CAC／CPAに関する注意点</strong></p>
<p>キャンペーンが<em>どのイベント</em>を最適化対象にしているかを考慮することが重要です。もし登録やトライアル開始といったファネル上部のアクションを最適化している場合、CPA（獲得単価）が非常に低く見えるクリエイティブがあるかもしれません。しかしその後の有料サブスクリプションへの転換率が極めて低いというケースもあります。</p>
<p>これはしばしば、アルゴリズムが18〜24歳の若年層ユーザーに過剰に広告を配信してしまうことで発生します。この層はアプリに興味を持って試す傾向はありますが、実際にサブスクライブすることはほとんどありません。</p>
<p>このような場合は、そのクリエイティブによって引き寄せられているオーディエンスが、実際のターゲットセグメントと一致しているかを確認してください。一致していない場合は、コンバージョン率を注意深くモニタリングしましょう。下降傾向が見られる場合、それはパフォーマンスの高いクリエイティブが“間違ったユーザー”を惹きつけているだけである可能性があります。</p>
<p>たとえば、以下は私のMetaアカウントのスナップショットです：</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/b85e5760bb794fcbe9b67cd04308ce79fa38b942-1329x648.jpg" alt=""/></figure>
<p>頻度（Frequency）、CPM（インプレッション単価）、1,000アカウント到達あたりのコスト、6秒視聴あたりのコストなど、他の指標を確認することもできます。ただし、上記で挙げた指標こそが、成果を一貫して測定するためのベースラインとして活用することを推奨する主要指標です。</p>
<h2><strong>予算規模に応じたクリエイティブ広告最適化：3つのテストフレームワーク</strong></h2>
<p>勝ちクリエイティブを指標で見極める方法は理解できたとして、では予算の段階ごとにどのように最適化へ取り組むべきか？</p>
<h3><strong>$0〜$500の場合</strong></h3>
<p>テストに使える余裕は少ないですが、それでも効果的に進めることは可能です。この段階では、<strong>1つのプラットフォーム</strong>（通常はiOS）と<strong>1つの地域</strong>（通常は米国）に絞り込み、メインイベント（例：トライアル開始や、ハードペイウォールを採用する場合は直接購入）を最適化対象に設定することをおすすめします。

セットアップはできるだけシンプルにします。<strong>1つのキャンペーン</strong>と、1つのメインイベントに集中した<strong>広告グループを1つだけ</strong>。広告グループを分割してしまうと、1日に十分なイベント数を生成できず、学習フェーズを完了できないため、パフォーマンスが大きく低下します。</p>
<p>クリエイティブの数は8〜10本が目安です。その内訳は、前述の質問への答えによって変わります：</p>
<ul>
<li>すでに成果の出ているクリエイティブがある場合は、過去の勝ちクリエイティブを3〜4本、そして新しくテストしたいコンセプトを2〜3本用意します。</li>
<li>ゼロから始める場合は、制作できる範囲で最もクオリティの高いクリエイティブに投資します。</li>
</ul>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/bfea724b621b9dab2826ea3a2b5abf47c9516c19-933x410.png" alt=""/></figure>
<p>MetaやTikTokのようなチャネルを運用している場合、テスト中のコンセプトが勝ちクリエイティブかどうかは数日以内に判断できます。これらのネットワークは、パフォーマンスが最も高い広告に迅速に支出を集中させる仕組みになっているためです。</p>
<p>もちろん、<strong>誤検知（false positives）や見逃し（false negatives）</strong>は発生しますが、新しいコンセプトを投入しても支出が割り当てられない場合、現在最も支出されているクリエイティブよりも良い成果を出す可能性はほぼないと判断できます。

ゼロから始める場合でも、既存の勝ちクリエイティブを使う場合でも、<em>必ず</em>2〜3日ごとに<strong>支出がつかないクリエイティブをローテーション</strong>する必要があります。そうしなければ、パフォーマンスが上がることはありません。</p>
<p>また、<strong>KPIが時間とともに悪化し始めたら、勝ちクリエイティブもローテーション</strong>してください。テスト中のコンセプトが勝ちに転じるのと同じように、勝ちクリエイティブも <a href="https://www.revenuecat.com/blog/growth/detect-ad-fatigue-mobile-apps/">広告疲れ（ad fatigue）</a>によって負けクリエイティブに変わることがあります。最終的に、常に新しいテストのための枠は確保されることになります。それは、前回のテストが支出されなかった場合か、あるいは勝ちクリエイティブが広告疲れを起こした場合です。</p>
<h3><strong>$500〜$5,000の場合</strong></h3>
<p>この予算帯は私のお気に入りのステージです。というのも、広告グループをテスト目的で分割しながらも、パフォーマンスを管理しつつ、予算の大部分を最も成果の高いアセットに投下できるからです。</p>
<p>この段階では、すでに<strong>目標に最も効果的なコンセプトを把握</strong>しているはずです。</p>
<p>私が推奨するセットアップは次のとおりです。<strong>1つのキャンペーンにつき</strong>、<strong>3つのテスト用広告グループ</strong> と<strong>two BAUs for each campaign</strong>（Business as Usual／運用中の通常広告グループ）を用意します（iOSキャンペーンをSKANレポート付きで運用している場合を想定）。これにより、<strong>週あたり最大30〜50本のクリエイティブ</strong>をテストしながら、最大<strong>20本の勝ちクリエイティブ</strong>に予算の大半を吸収させることが可能になります。

テスト中のアセットの中には、多くの支出を獲得しながらも、BAUアセットよりも高いCAC／CPAを示すものが出てくるでしょう。この場合、それらは<strong>すべて“負けクリエイティブ”とみなして</strong>一時停止し、ローテーションさせます。ただし、エンゲージメント指標を分析・比較することを忘れないでください。そこからアイデアをブラッシュアップし、真の勝ちアセットを見つけ出せる可能性もあります。</p>
<figure><img src="https://cdn.sanity.io/images/c3qnx9b0/production/f6bb8314b4e7edbf08a432c0113ac1a6992388ec-3235x1743.png" alt=""/></figure>
<p><em>注記：画像内では見やすさのため、実際に推奨している広告数よりも少なく表示しています。</em>

このセットアップを使うことで、独立した広告グループを用いて誤検知（false positives）と見逃し（false negatives）を二重に確認できるようになります。多くの<strong>誤検知</strong>が発生するのはごく普通のことです。この場合、考えられるのは次の2つの可能性です。</p>
<ol>
<li><strong>そのアセットがBAU（通常運用アセット）より良い成果を出した場合</strong>は、独立した広告グループを作成します（既存キャンペーンに空きがない場合は新しいキャンペーンを作成します）。そして、十分な支出をかけたときにどのようにパフォーマンスが変化するかを確認します。もし継続的にBAUより良い成果を出し続けるなら、それは真の勝ちアセットです。その場合は、独立した広告グループで最大限活用しましょう。</li>
<li><strong>すぐにBAUよりもはるかに悪いCACを示した場合</strong>は、誤検知（false positive）であることを意味します。ただし、そのコンセプト自体に勝ちアセットの可能性がないかを確認するため、各指標の確認を怠らないようにしてください。</li>
</ol>
<p>また、この段階では<strong>見逃し（false negatives）</strong>も現れ始めます。最も効果的な方法は、同じ戦略を取ることです。つまり、それらを新しい広告グループに分離し、1〜2日間様子を見ることです。通常、支出を強制的に増やすとパフォーマンスが悪化して見えることがあります。</p>
<h3><strong>$5,000〜無制限の場合</strong></h3>
<p>このレベルの予算帯になると、運用は一気に複雑になります。大量のアセットを同時にローテーションし、二重確認し、スケールさせる必要があるためです。</p>
<p>通常、この段階では<strong>複数の地域（GEO）</strong>を対象とし、<strong>各GEOごとに複数のキャンペーン</strong>を運用することになります。<strong>4〜5個のBAU（通常運用）広告グループ</strong>、<strong>10〜15個のテスト用グループ</strong>、そして誤検知・見逃しを二重確認するための<strong>5〜10個の独立グループ</strong>を持つ構成が一般的です。</p>
<p>BAUとして機能する広告グループの数は、パフォーマンスによって決まります。私の経験では、1キャンペーンにつき3つのBAU広告グループを持つ5つのキャンペーンを運用できたアカウントもあれば、勝ちクリエイティブが早く広告疲れ（ad fatigue）を起こしてしまい、より頻繁にローテーションせざるを得なかったアカウントもあります。当然、その場合はBAUの数を減らさざるを得ませんでした。</p>
<p>この段階では膨大な手作業が必要になりますが、その分、クリエイティブ制作プロセスも比例して加速します。このフェーズで最も重要なのは、<strong>BAU広告グループのパフォーマンスを安定させること</strong>です。なぜなら、BAUグループが予算の大部分を消化しているためです。</p>
<p>もしこれらの広告グループでCAC（顧客獲得コスト）の上昇傾向が見られる場合は、<strong>BAU広告グループの数を減らし</strong>、追加のテストグループを導入する前にパフォーマンスの最適化に集中すべきです。そうしないと、CPA／CACの上昇を招き、セットアップ全体の論理的バランスを崩すリスクがあります。</p>
<h2><strong>完璧な広告成功の公式は存在しない</strong></h2>
<p>ここまでで、広告を最適化するためのいくつかの詳細なセットアップと、成功を測定する方法を紹介しました。</p>
<p>しかし、あらゆるケースに対応できる完璧なセットアップを提供できる人は世界のどこにもいません。人によって、KPIの計算式であったり、AIツールであったり、広告を成功させるための手法はさまざまです。ただし、アプリはそれぞれ独自性を持っているということを忘れてはいけません。</p>
<p>あなたのアプリとクリエイティブには、それぞれ固有の複雑さと特徴があります。ですから、この戦略を自分の状況に合わせて柔軟に調整することを恐れないでください。たとえば、アセットを二重確認するだけの予算がないかもしれませんし、あるいはあなたの勝ちクリエイティブが平均より長く良い成果を出し続けるため、頻繁にローテーションしなくてもパフォーマンスを維持できるかもしれません。</p>
<p>クリエイティブの量にこだわるのをやめましょう。理解しないまま勝ち広告を追いかけるのもやめましょう。まずは基本から始めて、そこから学び続けてください。最も優れた教師は、実際のデータと、リアルな実験なのです。</p>]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[『Subway Surfers』の45億ダウンロードが示す、アプリに共通する成功のヒント]]></title>
      <link>https://www.revenuecat.com/jp/blog/engineering/subway-surfers-mathias-gredal-norvig-sub-club-2025</link>
      <guid isPermaLink="false">https://www.revenuecat.com/jp/blog/engineering/subway-surfers-mathias-gredal-norvig-sub-club-2025</guid>
      <pubDate>Mon, 27 Oct 2025 08:38:53 GMT</pubDate>
      <dc:creator><![CDATA[David Barnard]]></dc:creator>
      <category><![CDATA[[ エンジニアリング ]]]></category>
      <description><![CDATA[世界で最も人気のあるエンドレスランナーにおける、収益とユーザー信頼のバランス]]></description>
      <enclosure url="https://cdn.sanity.io/images/c3qnx9b0/production/6b473b7f6c7cd664caa06e7fa0cd774344541637-1600x840.png" length="0" type="image/*"/>
      <content:encoded><![CDATA[<p>史上最も成功したアプリと聞いて思い浮かべるもののひとつに、 <a href="https://apps.apple.com/us/app/subway-surfers/id512939461">Subway Surfers</a> があるでしょう。デンマークのゲームスタジオ <a href="https://sybogames.com/">SYBO</a> によって2012年にリリースされたこのエンドレスランナー型モバイルゲームは、世界的な人気と長寿命を誇り、これまでに45億回以上ダウンロードされています。</p>
<p>今週の Sub Club Podcast では、SYBOのCEOである <a href="https://www.linkedin.com/in/noervig/">Mathias Gredal Nørvig</a> 氏 に話を伺いました。彼とチームがどのような戦略を用いて、収益化と優れたユーザー体験の両立を実現し、ユーザーが繰り返しプレイしたくなるフリーミアム型モバイルゲームを築き上げてきたのかについて語ってもらいました。</p>
<p><a href="https://www.youtube.com/watch?v=nKBjv5viero">Watch on YouTube</a></p>
<h2><strong>バイラルの波に乗る</strong></h2>
<p>サブスクリプションアプリのビジネスを構築するうえで、大きな判断のひとつは広告予算のどれだけを有料広告に割くかという点です。意外に思われるかもしれませんが、SYBOは有料広告にほとんど費用をかけていません。その代わりに、優れた社内クリエイティブマーケティングチームを育成し、バイラルの波を生み出し、それに乗るためのオーガニック広告を継続的に制作しています。たとえば、2021年にNetflixの人気番組『イカゲーム』が配信された際、SYBOチームはその一場面をもとに、『Subway Surfers』のロゴを巧みに重ね合わせた <a href="https://www.tiktok.com/@subwaysurfers/video/7017099009055575302">TikTok 動画</a> を制作しました。すべてのキャンペーンがヒットするわけではありませんが、成功したものは数百万回の再生を獲得し、検索数やダウンロード数を大きく押し上げました。</p>
<p>広告費について尋ねられた際、Mathias氏は次のように語っています。「簡単に言えば、私たちは何も支出していません。支払っているのは“給与”だけです。つまり、すべてオーガニックです。ただし、公平に言えば、コンテンツがバイラル化し始めたときに少額の予算で後押しすることはあります。」有料広告に大きく投資するのではなく、人材への投資を選んだことで、SYBOは規模以上の成果を生むコンテンツマーケティングの好循環（フライホイール）を作り上げました。「彼らは非常に俊敏で、生産性が高い」とMathias氏は述べています。「これまで私たちを支えてくれた、そして今も支えてくれているコンテンツマーケティングのチームメンバーは、本当に“金に値する”存在です。」</p>
<h2><strong>正しい広告のあり方</strong></h2>
<p>フリーミアムモデルにおける永遠の課題は、ユーザーにとってストレスのない体験を保ちながら、どのように収益を生み出すかということです。多くの無料プレイ型モバイルゲームと同様に、『Subway Surfers』には報酬型広告が含まれており、ユーザーはお金ではなく注意を使ってゲームに「支払う」ことができます。これらの広告により、サブスクライブすることのないかもしれない第2層・第3層市場のプレイヤー（tier-two、tier-three markets）も、無料のアプリ体験を楽しみながら価値を提供することができます。</p>
<p>しかし、Mathias氏と彼のチームは、広告ネットワークが『Subway Surfers』のプレイヤーにどのようなコンテンツを配信しているかを慎重に監視しています。ユーザーベースの大部分が未成年であることを踏まえ、SYBOチームは特にこの層のユーザーが、不快または有害とみなされる可能性のある広告を目にしないように保護する仕組みを導入しています。「ゲームをインストールするとき、年齢を入力します。そして、もしあなたがその国での法的年齢未満であれば、私たちが“copper”セグメントと呼んでいるグループに分類されます」とMathias氏は述べました。「そして、もしあなたが“copper”グループにいる場合……“copper”に準拠しないものは一切表示されません。しかし、（成人ユーザーであっても）ギャンブル、銃、ポルノ、またはR指定のコンテンツの広告を見ることはできません。なぜなら、私たちはそれがビジネスを行うべき方法ではないと考えているからです。」</p>
<h2><strong>オールアクセスパス？</strong></h2>
<p>Sub Clubポッドキャストではこれまでにも、アプリビジネスが標準的なサブスクリプション階層を超えて、代替的またはハイブリッドなマネタイズ戦略を活用できる方法について話してきました。よく考えてみると、完全に無料のアクセスと、年間99ドルの有料サブスクリプションの間にはかなり大きなギャップがあります。そしてギャップがあるところには、たいていチャンスが存在します。世界中に何百万人ものプレイヤーがいるモバイルゲーム業界は、マネタイズの最前線に立ってきました。そしてアプリビジネスがそこから学べることのひとつは、サブスクリプションモデルが必ずしも理にかなうとは限らないということです。Mathias氏が指摘するように、「誰にでも、使っていないものに思っていたより100ドル多く支払ってしまっていたと気づく瞬間があります。昨年の3月以来使っていないものに対してです。そしてそれは不快な気分になります。」</p>
<p>一部のアプリにとって、デイパスやシーズンパスは素晴らしいマネタイズ戦略になり得ます。特に、標準的なサブスクリプションアプリの型にはまらないアプリにとってです。たとえば、ユーザーがあるタスクを達成するために一度だけ使えばよいドキュメントスキャンアプリや、スキーシーズンのピーク時だけ必要とされるスキーアプリなどを考えてみてください。「シーズンパスは、“この期間にこの金額を支払えば、これらのものが得られる”という非常に明確な概要を提供します」とMathias氏は述べました。「そして、それはアプリやゲームと関わることを必要とし、それを得るためにプレイすることを必要としますが、別の報酬トラックをアンロックします。」ユーザーにワンタイム消費型アイテム、デイパス、シーズンパスなど複数の支払いオプションを提供することにより、サブスクリプションによるマネタイズが難しいアプリでも、収益を生み出しつつ、より良いユーザー体験を提供することができます。</p>
<h2><strong>まとめ</strong></h2>
<p>モバイルゲームアプリは、ユーザー獲得とリテンションに関して常に時代の先を行っています。報酬型広告動画によって実現される無料アクセスや、シーズンパスのようなハイブリッド型マネタイズ戦略を優先することで、『Subway Surfers』のようなモバイルゲームは（言葉遊び的に言えば）“長期戦”をプレイしているのです。つまり、ユーザーが何度も戻ってきたくなる、楽しくて手軽なフリーミアム体験を提供しているのです。では、他のモバイルアプリはこの成功から何を学べるでしょうか？Mathias氏の言葉を借りれば、「マネタイズとゲーミフィケーションとは……いかにしてユーザーのジャーニーを可能な限りスムーズにするかを見極めることです。」</p>]]></content:encoded>
    </item>
  </channel>
</rss>