.png&w=3840&q=75)
今回の記事は Shopify App Store で提供されている、「ページごとにポップアップを出し分けできる」アプリについての記事です。
ポップアップは、訪問者の画面上に重なって表示される告知ウィンドウのことです。クーポン配布、セール告知、メール登録、購入後のアップセルなど、狙ったタイミングで“ひと押し”できるのが強みです。
「ページごとに表示を分ける」ことが重要で、たとえば同じ10%OFFでも、
のように文脈に合わせるだけで反応が変わります。
ポップアップは雑に出すと嫌われますが、ページごとに出し分けると“邪魔”が“案内”になります。主なメリットは以下です。
コンバージョンの底上げ
購入直前のページ(商品・カート)で、背中を押す訴求ができます。
クーポンのムダ打ち削減
どのページで、誰に出すかを絞ることで「割引しすぎ」を防げます。
回遊と滞在の改善
コレクションやブログで「関連商品」「人気ランキング」などを見せやすいです。
メール・SMSなどのリスト獲得
ブログやトップで登録導線を作ると、広告以外の資産が増えます。
A/Bテストが回しやすい
ページ単位で訴求を変えると、改善点がはっきりします。
「ページごとに表示」目的で選ぶなら、次の観点をチェックするのがコツです。
「まずは1つのポップアップを特定ページに出したい」のか、「複数キャンペーンをページ別に回したい」のかで、最適解が変わります。

ページごとにポップアップを出し分けたい人向けの“特化型”。余計な機能がいらないならまず候補。
アプリ名:シンプルページ毎のポップアップ|特定画面内ポップアップ
価格設定:月額 $6.99(無料体験あり)
評価:0.0(0レビュー)
開発者:UnReact Inc.
言語:英語、日本語 ほか多数
カテゴリー:ポップアップ
主な機能:
ページごとにポップアップを出し分けたい人にとって、このアプリはまさに特化型という印象です。ホーム・商品・コレクションなど対象ページを細かく選択できるだけでなく、デスクトップとモバイルで別画像を設定できる点が実用的。ページの文脈とデバイスの表示特性を両立できるので、訴求のズレを最小化できます。
特にキャンペーン告知や初回クーポンは、ページごとに内容を変えるだけで反応が大きく変わるため、専用アプリの価値は高いです。再表示間隔を調整できるので、しつこさを避けながらテスト運用できるのも安心材料。画像バナー型のため短いコピーとビジュアルで訴求したいストアに向き、複雑な設定が不要な点も魅力です。

無料で、複数ポップアップとスケジュール運用までやりたいなら強い。
アプリ名:Dakaas マルチ製品販売ポップ
価格設定:無料
評価:5.0(19レビュー)
開発者:Dakaas
言語:日本語ほか
連携対象:Shopify 管理者ページ
カテゴリー:バナー / ポップアップ
主な機能:
Dakaas はシンプルに販売通知を出したい店舗に向いています。複数のポップアップを同時に運用でき、スケジュール設定も可能なため、特定画面でキャンペーンを展開したいときに便利です。例えばコレクションページではセール通知、商品ページではカウントダウンといった分け方ができます。
ライブプレビューがあるので、公開前に表示イメージを確認できるのも運用しやすいポイント。CSS でのカスタマイズにも対応しているため、デザインにこだわりたい場合にも柔軟です。無料で使えるので「まずは特定ページのポップアップを試したい」というショップにおすすめです。

ポップアップだけでなく、バー・アップセル・メール収集までまとめて触りたい人向け。
アプリ名:Attrac Popup, Announcement Bar
価格設定:無料プランあり(無料体験あり)
評価:4.9(631レビュー)
開発者:Attrac(by AppHero)
言語:英語ほか
連携対象:Shopify 管理者ページ、Mailchimp ほか
カテゴリー:ポップアップ / バナー
主な機能:
Attrac はポップアップだけでなくアナウンスバーやアップセルまで一括で管理できるのが特徴です。ページごとに告知内容を変えることで、特定画面に最適な施策を展開できます。例えば商品ページではクロスセル提案、カートページでは送料無料バーを表示するなど、柔軟に使い分けられる点が魅力。
メールや SMS 収集も一緒に行えるため、売上施策とリスト獲得を同時に進められます。日本語未対応というハードルはありますが、UI は比較的直感的。多機能でありながら無料プランがあるため、まず試してみて必要に応じて拡張する運用がしやすいと感じました。

定番どころ。ノーコードで作って、ページ別に配信して、メール/SMSも取りたいなら強い。
アプリ名:Pop Convert ‑ Pop Ups, Banners
価格設定:無料プランあり(無料体験あり)
評価:4.9(8,631レビュー)
開発者:CartKit
言語:英語、スペイン語
連携対象:Shopify Flow、Shopify 管理者ページ
カテゴリー:メールマーケティング / ポップアップ
主な機能:
Pop Convert は高評価と実績のある定番アプリです。ページ単位のターゲティングを使えば、商品ページでは割引クーポン、ブログではメール登録など、文脈に合わせた出し分けが可能。ドラッグ&ドロップエディターでデザインを作れるため、ノーコードで手軽に調整できます。
スマートバーやバナーも併用できるので、同じキャンペーンを複数の表示形式でテストできるのも便利。無料プランでも十分な機能があり、初めてポップアップを導入するストアにとって安心感があります。メールや電話番号の取得を強化したい場合、まず候補に入れたいアプリです。

行動トリガーとページ別出し分けで、まず“小さくテスト”したい人にちょうどいい。
アプリ名:Popup Wizard
価格設定:無料プランあり(無料体験あり)
評価:4.9(55レビュー)
開発者:Vector Technologies
言語:英語
連携対象:Shopify 管理者ページ
カテゴリー:ポップアップ
主な機能:
Popup Wizard はシンプルな UI でポップアップを作成できるため、初期設定が楽です。特定ページの表示制御や行動トリガーの設定も可能で、例えば商品ページで割引を提示し、カートページでは追加購入の案内を出すといった運用ができます。
特に CTA ボタンのカスタマイズがしやすく、購入や問い合わせへの導線を作るには便利。ターゲティングの精度を上げるほど効果が出やすいので、段階的に条件を増やして運用できる点も安心です。無料プランでも 1 つのポップアップが作れるため、まずは小規模に試して効果を確認する使い方に向いています。
アプリを使うのが一番早いのは事実ですが、「まずは1つだけ」「完全に自由に出し分けしたい」場合は、テーマ側で軽いポップアップを作る方法もあります。ここでは、特定URLだけに表示し、一定期間は再表示しない簡易版を紹介します。
Shopify 管理画面で「オンラインストア > テーマ > … > コードを編集」から、snippets/page-popup.liquid を作成して貼り付けます。
{%- comment -%}
ページごとポップアップ(簡易版)
- 表示対象:URLに /products/ が含まれるページ(例:商品ページ)
- 再表示:cookieで7日間抑制
{%- endcomment -%}
{%- assign show_popup = false -%}
{%- if request.path contains '/products/' -%}
{%- assign show_popup = true -%}
{%- endif -%}
{%- if show_popup -%}
<div id="pagePopupOverlay" class="pp-overlay" aria-hidden="true">
<div class="pp-modal" role="dialog" aria-modal="true" aria-labelledby="ppTitle">
<button type="button" class="pp-close" aria-label="閉じる" data-pp-close>×</button>
<p id="ppTitle" class="pp-title">本日限定:10%OFF クーポン</p>
<p class="pp-text">今見ている商品に使えます。カートで自動適用ではないので、コピーして使ってください。</p>
<div class="pp-code">
<span class="pp-code-label">クーポンコード</span>
<button type="button" class="pp-code-btn" data-pp-copy="WELCOME10">WELCOME10</button>
</div>
<a class="pp-cta" href="/collections/all">人気商品を見る</a>
<p class="pp-note">※ 7日間は再表示されません</p>
</div>
</div>
<style>
.pp-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:9999;padding:16px}
.pp-modal{width:min(520px,100%);background:#fff;padding:18px 18px 16px;border-radius:12px;position:relative}
.pp-close{position:absolute;top:10px;right:12px;border:none;background:transparent;font-size:22px;cursor:pointer}
.pp-title{font-size:18px;font-weight:700;margin:0 0 8px}
.pp-text{margin:0 0 12px;line-height:1.7}
.pp-code{display:flex;gap:10px;align-items:center;margin:0 0 12px}
.pp-code-label{font-size:12px;opacity:.7}
.pp-code-btn{border:1px dashed #333;background:#fafafa;padding:8px 10px;border-radius:8px;cursor:pointer;font-weight:700}
.pp-cta{display:block;text-align:center;padding:10px 12px;border-radius:10px;background:#111;color:#fff;text-decoration:none}
.pp-note{margin:10px 0 0;font-size:12px;opacity:.7}
</style>
<script>
(function () {
var overlay = document.getElementById('pagePopupOverlay');
if (!overlay) return;
var COOKIE_KEY = 'pp_hidden_until';
var HIDE_DAYS = 7;
function getCookie(name) {
var m = document.cookie.match(new RegExp('(?:^|; )' + name.replace(/([$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + '=([^;]*)'));
return m ? decodeURIComponent(m[1]) : null;
}
function setCookie(name, value, days) {
var d = new Date();
d.setTime(d.getTime() + days * 24 * 60 * 60 * 1000);
document.cookie = name + '=' + encodeURIComponent(value) + '; expires=' + d.toUTCString() + '; path=/; SameSite=Lax';
}
var hiddenUntil = getCookie(COOKIE_KEY);
if (hiddenUntil && Date.now() < Number(hiddenUntil)) return;
function openPopup() {
overlay.style.display = 'flex';
overlay.setAttribute('aria-hidden', 'false');
document.documentElement.style.overflow = 'hidden';
}
function closePopup() {
overlay.style.display = 'none';
overlay.setAttribute('aria-hidden', 'true');
document.documentElement.style.overflow = '';
setCookie(COOKIE_KEY, String(Date.now() + HIDE_DAYS * 24 * 60 * 60 * 1000), HIDE_DAYS);
}
overlay.addEventListener('click', function (e) {
if (e.target === overlay) closePopup();
});
overlay.querySelectorAll('[data-pp-close]').forEach(function (btn) {
btn.addEventListener('click', closePopup);
});
overlay.querySelectorAll('[data-pp-copy]').forEach(function (btn) {
btn.addEventListener('click', function () {
var code = btn.getAttribute('data-pp-copy');
navigator.clipboard?.writeText(code);
btn.textContent = 'コピーしました';
setTimeout(function(){ btn.textContent = code; }, 1200);
});
});
// 例:3秒後に表示(必要なら調整)
setTimeout(openPopup, 3000);
})();
</script>
{%- endif -%}
layout/theme.liquid の </body> の直前に以下を追加します。
{% render 'page-popup' %}
「コレクションページだけ」「ブログ記事だけ」など増やしたい場合は、スニペット上部の条件を増やします。
{%- assign show_popup = false -%}
{%- if request.path == '/' -%}
{%- assign show_popup = true -%} {# トップだけ #}
{%- endif -%}
{%- if request.path contains '/collections/' -%}
{%- assign show_popup = true -%} {# コレクション #}
{%- endif -%}
{%- if request.path contains '/blogs/' -%}
{%- assign show_popup = true -%} {# ブログ #}
{%- endif -%}
この「URLで出し分ける」考え方は、アプリでページターゲティングを設定するときも同じです。まずはトップ・商品・カートの3つに分けるだけでも、十分に効果検証が回ります。
「ページごとに出し分け」目的での、ざっくり目安です。
とにかく最小コストで始めたい
Dakaas(無料)
ページ特化でシンプルに運用したい
シンプルページ毎のポップアップ:$6.99/月
多機能(バー・アップセル・収集)もまとめてやりたい
Attrac:無料〜
Pop Convert:無料〜
ポップアップを段階的に増やしたい
Popup Wizard:無料(1つ)→ $3.99/月(5つ)→ $9.90/月(無制限)
日本語サポートは、運用の詰まりを減らす意味でも重要です(特にポップアップは細かい調整が多いので)。
日本語対応あり
シンプルページ毎のポップアップ
Dakaas
日本語未対応(または英語中心)
Attrac
Pop Convert
Popup Wizard
「ページごとのポップアップ」を最短で実現したいなら、私はまず シンプルページ毎のポップアップ|特定画面内ポップアップ を推します。理由はシンプルで、目的に対して機能が絞られていて、迷いにくいからです。
一方で、無料で試しながら運用を作りたいなら Dakaas、メール/SMS収集まで一気にやるなら Pop Convert や Attrac、という選び方がしっくりきます。
今回は、Shopify で「ポップアップをページごとに表示できるアプリ」を5つ紹介しました。
ポップアップ施策は、“誰に、どのページで、何を言うか”が勝負です。ページごとの出し分けを始めるだけで、同じオファーでも成果が変わります。
また、アプリを入れずにまず試したい場合は、この記事の「コーディング実装」も参考にしてみてください。
ここまでお付き合い頂き、誠にありがとうございました。