Grip Popup Banner

説明

Grip Popup Banner を使えば、ノーコードでポップアップバナー (モーダル、フローティング、帯) を作成し、ページ URL、タイミング (即時/スクロール時/滞在後/離脱意図時)、デバイスごとにサイト上へ表示できます。バナーは単体で動作し、アカウントは不要です。外部サービスの grip space と連携すると、連携済みバナーが grip を通じて配信・計測 (表示回数、クリック、コンバージョン) され、上位プランでは業種や地域でバナーをターゲティングできます。

  • 組み込みエディタを使って、コードを書かずにポップアップバナーを作成できます。
  • 表示ルール: ページ URL (完全一致または前方一致)、タイミング、表示期間、デバイス。
  • モーダル、フローティング、帯のレイアウトに対応。カウントダウンタイマーオプションも利用できます。
  • 単体で動作します。grip space と連携 (任意) すれば、連携済みバナーの配信・計測が可能です。
  • データが grip space に送信されるのは、明示的に連携したバナーについて、かつアクセス計測が有効なときのみです。

サイト運営者は、訪問者の個人データの取り扱い (以下のサービスへの委託を含む) について、自社のプライバシーポリシーに適切に記載してください。

外部サービス

本プラグインは以下のサードパーティ/外部サービスに依存しています。該当する機能を使用しない限り、訪問者データは送信されません。

grip space (バナー配信・計測・アカウントサービス)

grip space は、本プラグインがアカウント作成・バナー配信・計測のために連携するサービスです。株式会社アイビス・スタジオ (ibis studio K.K.) が提供しています。API エンドポイントは https://n246.grip.space/api/v1 (アカウント、バナー配信および計測) と https://api-db.grip.website (業種マスターリスト) です。

  • サインアップ/連携時 (管理画面からアカウントを登録または連携するとき): 入力した会社名、メールアドレス、電話番号、およびサイト URL が grip space に送信され、アカウントの作成または連携が行われます。
  • バナーを grip に連携するとき (バナーごとのオプトイン): バナーのデザイン (画像、テキスト設定、表示ルール) が grip space にアップロードされ、grip の計測タグを通じて配信できるようになります。
  • アクセス計測が有効なとき (初期状態ではオフ。バナーを連携すると自動的にオンになります): 挿入された計測タグが、訪問者のアクセスデータ (ページビュー、リファラー、ユーザーエージェント、IP から推定した企業/地域) を grip space に送信し、そこで保存されて連携済みバナーの配信・計測に使用されます。
  • レポート画面: 管理画面が連携トークンを使って、grip space から自社の集計済みレポートデータ (表示回数、クリック、コンバージョン) を取得します。
  • 業種ターゲティング (管理画面のみ): 連携済みバナーに業種ターゲティングを設定すると、管理画面が https://api-db.grip.website/api/industries.json から業種マスターリストを取得します。これは読み取り専用のリクエストであり、個人データやサイトデータは一切送信しません。

利用規約: https://grip.website/terms — プライバシーポリシー: https://grip.website/privacypolicy

サードパーティライブラリ

本プラグインは、管理画面でのみ使用する以下のオープンソースライブラリ (公式配布ビルド) を同梱しています。

  • Fabric.js (MIT License) — キャンバス方式のバナーエディタ。https://github.com/fabricjs/fabric.js
  • Chart.js (MIT License) — レポートのグラフ。https://github.com/chartjs/Chart.js

    assets/banner-templates.js はコンパイル済みファイルやサードパーティ製ファイルではありません。プラグイン独自の組み込みバナーテンプレート定義を、素の JavaScript データ (テンプレートのメタデータとデフォルトデザインからなる window.GRIP_BANNER_TEMPLATES 配列) として含んでいます。このファイル内で直接記述・保守されており、別途のビルド工程やミニファイ (縮小化) はありません。

インストール

  1. プラグインをアップロードして有効化します。
  2. WordPress 管理画面の「Grip Banner」メニューを開きます。
  3. 「バナー」「新規追加」からバナーを作成し、エディタでデザインします。表示ルール (ページ URL、タイミング、デバイス) を設定して公開してください。バナーはプラグイン自体で配信され、grip space アカウントは不要です。
  4. (任意) grip space を通じてバナーを配信・計測するには、「連携」画面から連携し、バナーを連携してください。バナーを連携すると、アクセス計測が自動的にオンになります。

FAQ

バナーを表示するのに grip space アカウントは必要ですか ?

いいえ。バナーはプラグイン自体で作成・表示され、アカウントがなくても動作します。grip space との連携が必要になるのは、連携済みバナーを grip で配信・計測 (表示回数、クリック、コンバージョン) したい場合や、業種・地域でターゲティングしたい場合のみです。

grip space にデータを一切送信したくない場合はどうすればよいですか ?

grip space と連携しないか、バナーを未連携のままにしてください。アクセス計測は初期状態ではオフで、バナーを連携したときにのみオンになります。オフの間は計測タグが挿入されず、データも送信されません。

どのテーマでも動作しますか ?

はい。バナーのマークアップは標準の wp_footer フックで追加され、スタイル/スクリプトも適切にエンキューされるため、wp_footer() を呼び出す標準的なテーマで動作します。

プラグインを削除するとデータはどうなりますか ?

削除前に連携を解除すると、grip space のトークンが無効化されます。アンインストール時、プラグインは一時キャッシュ (transient) のみを削除し、バナーや連携設定はそのまま保持されます。

評価

このプラグインにはレビューがありません。

貢献者と開発者

Grip Popup Banner はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“Grip Popup Banner” は1ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“Grip Popup Banner” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。

変更履歴

1.0.13

  • 管理画面: 別の grip プラグイン (Chatbot/Contact Form) が異なる grip アカウントまたはサイトに連携している場合に警告を表示するようにしました。すべての grip プラグインは共有された 1 つの計測タグを読み込むため、アカウント/サイトが混在すると一部の連携計測がカウントされなくなります。この通知は、すべてを同じアカウントとサイトに連携するよう促します。

1.0.12

  • WordPress.org レビュー対応: すべての組み込みテンプレート画像を assets/tpl/ 配下にローカル同梱しました (リモートサーバーから画像を読み込むことはなくなりました)。同梱していた翻訳ファイル (.po/.mo/.json) と load_plugin_textdomain() の呼び出しを削除し、翻訳は translate.wordpress.org で扱うようにしました。保存するテンプレート JSON は、格納前に wp_json_encode() でデコードおよび再エンコードするようになりました。

1.0.11

  • WordPress.org レビュー対応: エディタから外部の Google Fonts リクエストを削除しました (バナーテキストはシステムフォントを使用するようになりました)。残っていたインラインの管理画面 <style> ブロック (テンプレート選択とバナー一覧) を、エンキューするスタイルシートに移動しました。バナーの画像/リンク URL を esc_url() で出力するようにしました。業種リストのエンドポイント (api-db.grip.website) を「外部サービス」に記載しました。アップロードパスの解決がサブディレクトリインストールに対応するようになりました。

1.0.10

  • コード品質: WordPress Plugin Check のエラーと警告をすべて解消しました (出力のエスケープ、heredoc の不使用、DB パラメータのエスケープ、nonce 検証のアノテーション)。エディタと連携一覧のスタイルは、インラインブロックではなく CSS ファイルとしてエンキューするようにしました。

1.0.9

  • バナー: 連携済みバナー専用の「連携済みバナー」画面を追加しました (EC-CUBE 版に合わせたもの)。各バナーの表示回数、クリック、CTR、コンバージョンを日次の推移グラフとともに表示します。メインのバナー一覧には未連携のバナーのみが表示されるようになりました。

1.0.8

  • 計測とバナー配信が動作しない不具合を修正: 計測ローダー (ma_tool.js) は、公式タグが読み込み前に定義するグローバルの BASE_URL 変数から API のベース URL を読み取ります。プラグインがこの変数を定義するようにした (ローダーの前にインライン設定スクリプトで定義) ため、アクセス計測と grip のバナー配信が再び動作するようになりました。これがないと、すべての計測/配信リクエストが未定義の URL に送られ、何も表示されずに失敗していました。

1.0.7

  • バナー一覧: 名前列を狭くし、アクション列の折り返しを防ぐことで、アクションボタンを 1 行に収めるようにしました。
  • grip 連携: バナーの連携に失敗した場合や連携が許可されていない場合 (プラン上限に到達、プランが連携を許可していない、未連携) に、管理画面に通知を表示するようにしました。これは EC-CUBE 版およびフォームプラグインの挙動に合わせたものです。従来は何も表示されずに失敗していました。

1.0.6

  • grip 連携: 設定画面またはバナー画面を開いたときに、連携済みアカウントのプランを grip から更新するようにしました (1 時間ごとにキャッシュ)。これは EC-CUBE 版の挙動に合わせたものです。従来はプランが連携時にのみ保存されていたため、後でアップグレード (例: フリー スタータ) してもバナー連携の上限が引き上げられず、再連携するまで「grip に連携」コントロールが非表示のままでした。

1.0.5

  • エディタツールバー: FontAwesome (wp-admin では読み込まれない) の代わりに WordPress の dashicons を使用するようにし、レイヤー順、テキスト揃え、その他のツールバーアイコンが正しく表示されるようにしました。
  • エディタ: 矢印などのグループ化されたパーツにも色が適用されるようになりました (塗りつぶしがグループの子要素に伝播され、装飾用の白いパーツは保持されます)。
  • エディタ: 「表」パーツで行数と列数を入力できるようにしました。
  • エディタ: 「フォーム」パーツは grip と連携している場合 (スタンダードプラン以上) にのみ選択可能で、それ以外では無効な状態で表示されます。
  • 画像ライブラリ: ライブラリ経由でアップロードした画像のみを一覧表示し、書き出されたバナーの PNG エクスポートを除外するようにしました。

1.0.4

  • 画像ライブラリ: 「アップロード済み」リストが常に空に見える不具合を修正しました。リスト取得リクエストが REST nonce (X-WP-Nonce) を送信するようになりました。これは WordPress が REST の Cookie 認証でログイン中ユーザーを認証するために必要なもので、これがないとリクエストが拒否され、ファイルが正しくアップロードされていても画像が返されませんでした。
  • エディタ: 本当にクロスオリジンな画像に対してのみ crossOrigin を付与するようにしました。これにより、同一オリジンのアップロード画像やサムネイルは通常どおり認証情報を送信し、ステージングサイトで HTTP Basic 認証プロンプトが発生しなくなりました。
  • アップロードしたバナー画像を、専用の uploads/grip-banner/ フォルダに保存するようにしました。
  • アップロードした画像の URL を再び絶対 URL に戻しました (1.0.2 のルート相対への変更を取り消し)。これにより、デザイン JSON がこれらの画像 URL を参照する grip 連携済みバナーが、grip による配信時に正しく描画されるようになりました。

1.0.3

  • 画像ライブラリ: アップロード済みバナー画像の一覧表示時に、年月のアップロードサブフォルダ (uploads/YYYY/MM/) も検索するようにしました。従来は uploads のルートのみを走査していたため、月別アップロードフォルダを使うサイト (WordPress のデフォルト) では、アップロードに成功してもライブラリが常に空に見えていました。
  • エディタツールバー: 図形の輪郭 (線) のカラーピッカーがすぐに閉じてしまい、色を選択できない不具合を修正しました。ネイティブのカラーピッカーが開いている間はツールバーが再構築されなくなり、ピッカーが閉じた時点で変更が取り消し履歴に確定されます。

1.0.2

  • エディタ: アップロードした画像や画像ライブラリの項目を、同一オリジン (ルート相対) の URL として返すようにしました。これにより、HTTP Basic 認証下のステージングサイトで、画像プレビューやライブラリのサムネイルが認証情報なしでクロスオリジン読み込みされなくなりました (従来はこれが Basic 認証プロンプトを引き起こし、ライブラリが空のままになっていました)。

1.0.1

  • カウントダウン: タイマーを左揃えにし、締め切りが近づいて「日」/「時間」の単位が消えたときに右にずれて見えないようにしました。
  • エディタ: 画像のアップロード/ライブラリ/保存で同一オリジンの REST URL を使用するようにしました。これにより、HTTP Basic 認証下のステージングサイトで認証情報の再入力を求められなくなりました (従来はこれが原因でアップロードが失敗し、画像がライブラリに保存されませんでした)。
  • エディタ: 「独自のバナー画像をアップロード」テンプレートから作成したバナー向けに、専用の単一画像エディタを追加しました。

1.0.0

  • 初回リリース: ノーコードのポップアップバナービルダー (モーダル/フローティング/帯)。ページ URL、タイミング、期間、デバイスのルールとカウントダウンオプションに対応。配信・計測・業種/地域ターゲティングのための grip space 連携 (任意) も利用できます。
  • すべてのスタイルとスクリプトは wp_enqueue_style() / wp_enqueue_script() でエンキューされます。プラグインは生のインライン <script><style> を出力しません。アクセス計測は初期状態でオフ (オプトイン) です。外部サービス (grip space) については上記に記載しています。