Grip Popup Banner

Description

Grip Popup Banner lets you build no-code popup banners (modal, floating or bar) and display them on your site by page URL, timing (immediately / on scroll / after a stay / on exit intent) and device. Banners work on their own — no account required. When you connect the external service grip space, linked banners are delivered and measured (views, clicks, conversions) through grip, and higher plans can target banners by industry and region.

  • Build popup banners without writing code, using a built-in editor.
  • Display rules: page URL (exact or prefix), timing, display period and device.
  • Modal, floating and bar layouts, with a countdown timer option.
  • Works standalone. Connect grip space (optional) to deliver and measure linked banners.
  • Data is sent to grip space only for banners you explicitly link, and only when access measurement is enabled.

Site owners should appropriately describe the handling of visitor personal data (including entrustment to the services below) in their own privacy policy.

External services

This plugin relies on the following third-party/external services. No visitor data is sent unless the relevant feature is used.

grip space (banner delivery, measurement and account service)

grip space is the service this plugin connects to for account creation, banner delivery and measurement. It is provided by ibis studio K.K. The API endpoints are https://n246.grip.space/api/v1 (account, banner delivery and measurement) and https://api-db.grip.website (industry master list).

  • On sign-up / connect (when you register or link an account from the admin): the company name, email address, phone number you enter, and your site URL are sent to grip space to create or link the account.
  • When you link a banner to grip (opt-in, per banner): the banner’s design (image, text settings and display rules) is uploaded to grip space so it can be delivered through the grip measurement tag.
  • When access measurement is enabled (off by default; it turns on automatically when you link a banner): the inserted measurement tag sends visitor access data (page views, referrer, user agent, IP-derived company/region) to grip space, where it is stored and used to deliver and measure linked banners.
  • Report screens: the admin fetches your own aggregated report data (views, clicks, conversions) from grip space using a connection token.
  • Industry targeting (admin only): when you set up industry targeting for a linked banner, the admin fetches the industry master list from https://api-db.grip.website/api/industries.json. This is a read-only request that does not send any personal or site data.

Terms of Service: https://grip.website/terms — Privacy Policy: https://grip.website/privacypolicy

Third-party libraries

This plugin bundles the following open-source libraries (official distribution builds), used only in the admin:

  • Fabric.js (MIT License) — canvas banner editor. https://github.com/fabricjs/fabric.js
  • Chart.js (MIT License) — report charts. https://github.com/chartjs/Chart.js

    assets/banner-templates.js is not a compiled or third-party file: it contains the plugin’s own built-in banner template definitions as plain JavaScript data (a window.GRIP_BANNER_TEMPLATES array of template metadata and default designs). It is authored and maintained directly in that file; there is no separate build step or minification.

Installation

  1. Upload and activate the plugin.
  2. Open the “Grip Banner” menu in the WordPress admin.
  3. Create a banner from “Banners” “Add New” and design it in the editor. Set the display rules (page URL, timing, device) and publish it. Banners are delivered by the plugin itself; a grip space account is not required.
  4. (Optional) To deliver and measure a banner through grip space, connect from the “Connection” screen and link the banner. When you link a banner, access measurement turns on automatically.

FAQ

Do I need a grip space account to show banners?

No. Banners are created and displayed by the plugin itself and work without any account. A grip space connection is only needed if you want grip to deliver and measure linked banners (views, clicks, conversions) or to target by industry/region.

What if I do not want to send any data to grip space?

Do not connect grip space, or keep banners unlinked. Access measurement is off by default and only turns on when you link a banner. When it is off, no measurement tag is inserted and no data is sent.

Does it work with any theme?

Yes. Banner markup is added via the standard wp_footer hook and the styles/scripts are enqueued, so it works with standard themes that call wp_footer().

What happens to my data when I delete the plugin?

Disconnecting before deletion revokes the grip space token. On uninstall, the plugin only removes its transient cache; your banners and connection settings are kept.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Grip Popup Banner” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Grip Popup Banner” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.0.13

  • Admin: warn when another grip plugin (Chatbot / Contact Form) is connected to a different grip account or site. Because all grip plugins load one shared measurement tag, mixing accounts/sites would leave some linked measures uncounted; the notice prompts you to connect them all to the same account and site.

1.0.12

  • WordPress.org review compliance: bundled all built-in template images locally under assets/tpl/ (no images are loaded from remote servers anymore); removed the bundled translation files (.po/.mo/.json) and the load_plugin_textdomain() call so translations are handled by translate.wordpress.org; the saved template JSON is now decoded and re-encoded with wp_json_encode() before storage.

1.0.11

  • WordPress.org review compliance: removed the external Google Fonts request from the editor (banner text now uses system fonts); moved the remaining inline admin <style> blocks (template picker and banner list) into an enqueued stylesheet; banner image/link URLs are now output with esc_url(); documented the industry-list endpoint (api-db.grip.website) under External services; upload-path resolution now handles subdirectory installs.

1.0.10

  • Code quality: resolved all WordPress Plugin Check errors and warnings (output escaping, no heredoc, escaped DB parameters, nonce verification annotations). Editor and linked-list styles are now enqueued as CSS files instead of inline blocks.

1.0.9

  • Banners: linked banners now have their own “Linked banners” screen (matching the EC-CUBE version), showing each banner’s views, clicks, CTR and conversions with a daily trend chart. The main Banners list now shows unlinked banners only.

1.0.8

  • Fix measurement and banner delivery not working: the measurement loader (ma_tool.js) reads its API base URL from a global BASE_URL variable that the official tag defines before loading it. The plugin now defines that variable (via an inline configuration script before the loader) so access measurement and grip banner delivery work again. Without it, all measurement/delivery requests went to an undefined URL and silently failed.

1.0.7

  • Banners list: keep the action buttons on a single line by narrowing the Name column and preventing the Actions column from wrapping.
  • grip linking: show an admin notice when linking a banner fails or is not permitted (plan limit reached, plan does not allow linking, or not connected), matching the EC-CUBE and form plugin behavior. Previously it failed silently.

1.0.6

  • grip connection: refresh the connected account’s plan from grip when opening the Settings or Banners screen (cached hourly), matching the EC-CUBE behavior. Previously the plan was stored only at connection time, so upgrading later (e.g. Free Starter) did not raise the banner-linking limit and the “Link to grip” control stayed hidden until reconnecting.

1.0.5

  • Editor toolbar: use WordPress dashicons instead of FontAwesome (which is not loaded in wp-admin) so the layer-order, text alignment and other toolbar icons display correctly.
  • Editor: colors now apply to grouped parts such as arrows (the fill is propagated to the group’s children; decorative white parts are preserved).
  • Editor: the “Table” part now lets you enter the number of rows and columns.
  • Editor: the “Form” part is only selectable when connected to grip (Standard plan and above); otherwise it is shown disabled.
  • Image library: list only images uploaded via the library, excluding the baked banner PNG exports.

1.0.4

  • Image library: fix the “Uploaded” list always appearing empty. The list request now sends the REST nonce (X-WP-Nonce), which WordPress requires to authenticate the logged-in user for REST cookie authentication; without it the request was rejected and no images were returned even though the files had been uploaded correctly.
  • Editor: only add crossOrigin to genuinely cross-origin images, so same-origin uploaded images and thumbnails send credentials normally and no longer trigger an HTTP Basic authentication prompt on staging sites.
  • Uploaded banner images are now stored in a dedicated uploads/grip-banner/ folder.
  • Uploaded image URLs are absolute again (reverting the root-relative change from 1.0.2) so that banners linked to grip — whose design JSON references those image URLs — render correctly when delivered by grip.

1.0.3

  • Image library: also search the year/month upload subfolders (uploads/YYYY/MM/) when listing uploaded banner images. Previously only the uploads root was scanned, so on sites that use month-based upload folders (the WordPress default) the library always appeared empty even after a successful upload.
  • Editor toolbar: fix the shape outline (line) color picker closing immediately so a color could not be chosen. The toolbar is no longer rebuilt while the native color picker is open; the change is committed to undo history once the picker closes.

1.0.2

  • Editor: return uploaded images and image-library entries as same-origin (root-relative) URLs so that, on staging sites behind HTTP Basic authentication, image previews and library thumbnails no longer load cross-origin without credentials (which triggered a Basic auth prompt and left the library empty).

1.0.1

  • Countdown: align the timer to the left so it no longer appears to shift right when the “days”/”hours” units drop off as the deadline approaches.
  • Editor: use same-origin REST URLs for image upload / library / save so that staging sites behind HTTP Basic authentication no longer re-prompt for credentials (which previously caused uploads to fail and images not to be stored in the library).
  • Editor: add a dedicated single-image editor for banners created from the “upload your own banner image” template.

1.0.0

  • Initial release: no-code popup banner builder (modal / floating / bar) with page-URL, timing, period and device rules and a countdown option; optional grip space connection for delivery, measurement and industry/region targeting.
  • All styles and scripts are enqueued via wp_enqueue_style() / wp_enqueue_script(); the plugin does not print raw inline <script> or <style>. Access measurement is off by default (opt-in). External services (grip space) are documented above.