Title: WP Bannerize Pro
Author: gfazioli
Published: <strong>28 de novembre de 2016</strong>
Last modified: 23 de setembre de 2026

---

Cerca extensions

![](https://ps.w.org/wp-bannerize-pro/assets/banner-772x250.png?rev=3503931)

![](https://ps.w.org/wp-bannerize-pro/assets/icon-256x256.png?rev=3503931)

# WP Bannerize Pro

 Per [gfazioli](https://profiles.wordpress.org/gfazioli/)

[Baixa](https://downloads.wordpress.org/plugin/wp-bannerize-pro.2.0.0.zip)

[Previsualitza](https://ca.wordpress.org/plugins/wp-bannerize-pro/?preview=1)

 * [Detalls](https://ca.wordpress.org/plugins/wp-bannerize-pro/#description)
 * [Ressenyes](https://ca.wordpress.org/plugins/wp-bannerize-pro/#reviews)
 *  [Instal·lació](https://ca.wordpress.org/plugins/wp-bannerize-pro/#installation)
 * [Desenvolupament](https://ca.wordpress.org/plugins/wp-bannerize-pro/#developers)

 [Suport](https://wordpress.org/support/plugin/wp-bannerize-pro/)

## Descripció

Bannerize is a WordPress plugin for creating and managing advertising banners with
built-in analytics. Create image, HTML, or text banners, organize them into campaigns,
and track impressions, clicks, and click-through rates to measure the effectiveness
of your advertising.

For full documentation, visit the [Bannerize website](https://bannerize.vercel.app).

### Banner Types

 * **Image Banners** — Upload from your WordPress media library or link to external
   image URLs
 * **HTML Banners** — Use the rich text editor to create custom HTML, embed third-
   party ad code, iframes, or video players
 * **Text Banners** — Simple text-based banners with full formatting support

### Display Methods

 * **Gutenberg Block** — Native block editor integration with campaign and banner
   selection
 * **Shortcode** — `[wp_bannerize_pro]` with filtering by campaign, order, layout,
   device, and geolocation
 * **Widget** — Dedicated sidebar widget with all configuration options
 * **PHP Function** — `wp_bannerize_pro()` and `get_wp_bannerize_pro()` for theme
   templates

### Analytics

 * **Impressions Tracking** — Records every banner view with timestamp, referrer,
   IP, and user agent
 * **Clicks Tracking** — Records every banner click with the same contextual data
 * **CTR Calculation** — Automatic click-through rate computation
 * **Trend Charts** — Visualize performance over time (hourly, daily, weekly, monthly)
 * **Top Performers** — Rankings of best-performing banners and campaigns
 * **Export** — Download analytics data in CSV or SQL format
 * **Auto Cleanup** — Configurable data retention policies

### Advanced Features

 * **Campaigns** — Organize banners into campaigns for grouped display and filtering
 * **Scheduling** — Set start and end dates for time-limited promotions
 * **Performance Limits** — Set maximum impressions and clicks per banner
 * **Drag & Drop Sorting** — Reorder banners with ease
 * **Device Targeting** — Show banners only on mobile or desktop
 * **Geolocation** — Target banners by visitor country (via IPStack)
 * **User Roles** — Three built-in roles: Banners Manager, Campaigns Manager, Campaigns
   Viewer
 * **Custom Templates** — Override banner and campaign archive templates

### Dashboard Widget

A compact dashboard widget showing key banner performance metrics at a glance.

## Captures

[⌊Add new banner by local media library⌉⌊Add new banner by local media library⌉[

Add new banner by local media library

[⌊Add new banner text⌉⌊Add new banner text⌉[

Add new banner text

[⌊Real time preview⌉⌊Real time preview⌉[

Real time preview

[⌊Date range rules⌉⌊Date range rules⌉[

Date range rules

[⌊Enable impressions and click for single banner⌉⌊Enable impressions and click for
single banner⌉[

Enable impressions and click for single banner

[⌊Banner campaigns⌉⌊Banner campaigns⌉[

Banner campaigns

[⌊Analytics overview⌉⌊Analytics overview⌉[

Analytics overview

[⌊Single report with filters⌉⌊Single report with filters⌉[

Single report with filters

[⌊Settings⌉⌊Settings⌉[

Settings

[⌊Widget⌉⌊Widget⌉[

Widget

## Blocs

Aquesta extensió proporciona 1 bloc.

 *   Bannerize Display a list of banners in accordance with the settings below.

## Instal·lació

 1. Upload the entire content of plugin archive to your `/wp-content/plugins/` directory.
 2. Activate the plugin through the ‘Plugins’ menu in WordPress (deactivate and reactivate
    if you’re upgrading).
 3. Done. Enjoy.

For detailed instructions, see the [installation guide](https://bannerize.vercel.app/docs/getting-started/installation).

## PMF

### 1. What is Bannerize?

Bannerize is a WordPress banner management plugin with built-in analytics. It helps
you create, organize, and track the performance of advertising banners on your site.

### 2. Where can I find the documentation?

Full documentation, guides, and release notes are available at [bannerize.vercel.app](https://bannerize.vercel.app).

### 3. What banner formats are supported?

Bannerize supports three types: local images (from your media library), remote images(
external URLs), and HTML/text banners (custom HTML, ad code, iframes).

### 4. How do I display banners?

You can display banners using a Gutenberg block, shortcode (`[wp_bannerize_pro]`),
sidebar widget, or PHP function (`wp_bannerize_pro()`).

### 5. Can I track banner performance?

Yes. Bannerize tracks impressions, clicks, and click-through rate (CTR) for every
banner. View analytics in the Bannerize dashboard and export data in CSV or SQL 
format.

### 6. Can I customize the HTML output?

Yes. Use the `wp_bannerize_classes` filter to add custom CSS classes, or configure
custom templates in Settings. See [Customize Output](https://bannerize.vercel.app/docs/display-banners/customize-output).

### 7. Does Bannerize support geolocation?

Yes. With an IPStack API key, you can target banners by visitor country using the`[
wp_bannerize_pro_geo]` shortcode or the widget geo field.

### 8. Can I request a new feature?

Yes! Please submit feature requests at [the support forum](https://wordpress.org/support/plugin/wp-bannerize-pro/).

### 9. Can I report a bug?

Yes! Please report bugs at [the support forum](https://wordpress.org/support/plugin/wp-bannerize-pro/).

## Ressenyes

![](https://secure.gravatar.com/avatar/4fa1e64c99d05cd03a3bdc1ed601e3d3a19d8c21b707f33545fd3f8c98c517cf?
s=60&d=retro&r=g)

### 󠀁[Really easy to use and works flawlessly](https://wordpress.org/support/topic/really-easy-to-use-and-works-flawlessly-2/)󠁿

 [tondosusanto](https://profiles.wordpress.org/tondosusanto/) 20 de octubre de 2022

Really easy to use and works flawlessly. After trying various plugins I finally 
found a really good one, simple and very easy to use. Thank you for creating this
plugin and hope that this plugin will continue to be developed and become one of
the default plugins for wordpress

![](https://secure.gravatar.com/avatar/ab54cb3392947e878772b5a8853d61c918dcca220342a04046c39bc6e4d4ae9f?
s=60&d=retro&r=g)

### 󠀁[Thanks for this easy plugin, works like a charme!](https://wordpress.org/support/topic/error-and-warnings-after-1-6-6-update/)󠁿

 [hellmute](https://profiles.wordpress.org/hellmute/) 27 de juliol de 2022 13 respostes

After testing under PHP 8.0 & WP 6.0.1 – i've got some errors and warnings in the
backend, when i visit the 'Analytics Overview' and 'Analytics Report'. It still 
works by the way. If i switch back to php 7.4.1 the errors & warnings are gone. 
Thanks again for this great plugin!

![](https://secure.gravatar.com/avatar/dc0c4663f654efad28badbf08dcf36beec82f94dbc5609bac62503326e6da271?
s=60&d=retro&r=g)

### 󠀁[Simple and OK](https://wordpress.org/support/topic/simple-and-ok-3/)󠁿

 [trillebar](https://profiles.wordpress.org/trillebar/) 14 de desembre de 2019

Missing impressions when using iframe-ads. Would be nice to be able to see the impressions(
number of times the iframe is loaded).

![](https://secure.gravatar.com/avatar/a470e32231e03d9f5d65746f8afba730ea1b75ee89b92d1df279ab00eae5bf9e?
s=60&d=retro&r=g)

### 󠀁[Great Plugin, great support!](https://wordpress.org/support/topic/great-plugin-great-support-1114/)󠁿

 [Soela](https://profiles.wordpress.org/soela/) 13 de desembre de 2019

This is a plugin that reliably does what it promises in a straightforward way. Plus
the author provides a real five star support: before I even could try out his workaround
for a question I had, it was turned into a new feature in a plugin update, all this
within less than 24 hours. Wow! I don't have the slightest need to try out any other
banner plugin. Thanks a bunch!

![](https://secure.gravatar.com/avatar/e6ea3e266fc2e4b1124b8131d86ce76bfc4d77634cf5bfab080082795b05c322?
s=60&d=retro&r=g)

### 󠀁[Highly optimized plugin](https://wordpress.org/support/topic/highly-optimized-plugin/)󠁿

 [peperompe](https://profiles.wordpress.org/peperompe/) 15 de febrer de 2019

The new mobile function is the best. It is also light and perfect for a fast wordpress.

![](https://secure.gravatar.com/avatar/b82e2ed11457b47ee625b66bdae08bae2f81f0daa252ff8ef0dd29a7223bc4fa?
s=60&d=retro&r=g)

### 󠀁[Great Plugin for Advertisement Banners](https://wordpress.org/support/topic/great-plugin-for-advertisement-banners/)󠁿

 [virgilio27](https://profiles.wordpress.org/virgilio27/) 8 de febrer de 2019

Best plugin for add banners. I've used it on my website and it has options that 
others don't have. Also it's optimized and compatible with the latest versions of
Wordpress

 [ Llegiu totes les 10 ressenyes ](https://wordpress.org/support/plugin/wp-bannerize-pro/reviews/)

## Col·laboradors i desenvolupadors

«WP Bannerize Pro» és programari de codi obert. La següent gent ha col·laborat en
aquesta extensió.

Col·laboradors

 *   [ gfazioli ](https://profiles.wordpress.org/gfazioli/)

“WP Bannerize Pro” s’ha traduït a 2 configuracions regionals. Gràcies als [traductors](https://translate.wordpress.org/projects/wp-plugins/wp-bannerize-pro/contributors)
per les seves aportacions.

[Traduïu «WP Bannerize Pro» a la vostra llengua.](https://translate.wordpress.org/projects/wp-plugins/wp-bannerize-pro)

### Interessats en el desenvolupament?

[Navegueu pel codi](https://plugins.trac.wordpress.org/browser/wp-bannerize-pro/),
baixeu-vos el [repositori SVN](https://plugins.svn.wordpress.org/wp-bannerize-pro/),
o subscriviu-vos al [registre de desenvolupament](https://plugins.trac.wordpress.org/log/wp-bannerize-pro/)
per [fisl de subscripció RSS](https://plugins.trac.wordpress.org/log/wp-bannerize-pro/?limit=100&mode=stop_on_copy&format=rss).

## Registre de canvis

### 2.0.0

**Requires PHP 8.1 and WordPress 6.6.** WordPress does not offer this update to 
sites on older versions: they stay on 1.13.4, which carries every security fix of
this cycle.

 * Breaking: PHP 8.1 or later is required (was 7.4). Bannerize now runs on version
   2 of its framework, WP Bones, which requires it
 * Breaking: WordPress 6.6 or later is required (was 6.2). The admin apps and the
   block are built with the current WordPress build tools, whose scripts depend 
   on the JSX runtime WordPress ships from 6.6
 * Chore: WP Bones framework 2.0.7 (was 1.9.6)
 * Chore: the assets are built with webpack through @wordpress/scripts 31 instead
   of gulp; file names, script handles and translations are unchanged
 * Fix: no PHP deprecation notice for banners without a MIME type (text and HTML
   banners) on PHP 8.1 and later

### 1.13.4

 * Security: the `order` argument of the shortcode and of `wp_bannerize_pro()` only
   accepts ASC or DESC. Other values reached the database query unchanged, which
   let a user who can write posts (Contributor and above) run SQL of their own
 * Security: the HTTP Basic Authentication handler inherited from the framework 
   defaults is off — Bannerize never used it, and it accepted a username and password
   on every request of the site
 * Security: the click and impression tracking requests record at most 50 banners
   each, and only published banners with tracking enabled
 * Security: reordering banners requires the permission to edit other users’ banners
   and only affects banners; two unused admin actions were removed
 * Security: the ipstack API key is only returned to users who can manage banners
 * Security: banner image checks no longer contact private or local network addresses
 * Security: CSV exports write cells that would start a spreadsheet formula (=, 
   +, -, @) as text
 * Fix: a banner with a maximum number of impressions or clicks is shown from the
   start; before, it stayed hidden until the banner list was opened in the admin,
   and disappeared again after every analytics cleanup
 * Fix: analytics cleanups no longer reset the impression and click counters used
   by those limits, and deleting single records only adjusts the banners they belong
   to
 * Fix: deleting a banner removes its impressions and clicks whatever the way it
   is deleted — including the automatic emptying of the trash
 * Fix: the banner description (used as the image’s alt and title text) is saved
   as text, no longer turned into a slug
 * Fix: the Importer page and three admin strings are translatable; translations
   updated for all five bundled languages
 * Chore: bump «Tested up to» to WordPress 7.1

### 1.13.3

 * Fix: naming a campaign that could not be found rendered an empty container rather
   than nothing at all, with no notice and no log entry — indistinguishable from
   a campaign with no banners. It now renders nothing, and names the unknown campaigns
   in an HTML comment and a `_doing_it_wrong()` notice
 * Fix: campaigns migrated from the legacy WP Bannerize plugin never matched. The
   importer keeps the old group as the term name while prefixing its slug, so every
   migrated shortcode resolved to nothing. Campaign names are now accepted alongside
   slugs
 * Fix: a campaign id matching no term no longer reaches the query, and a value 
   like `007` is treated as a campaign slug instead of as id 7
 * Fix: the legacy `group` attribute is accepted as an alias of `campaigns`, and
   the legacy `[wp_bannerize]` shortcode is registered when no other plugin owns
   that tag, so content migrated from the old plugin renders instead of showing 
   the raw shortcode
 * Fix: a campaign named `0` was treated as no campaign at all
 * Fix: deprecated attributes raised their notice twice, and were ignored entirely
   when passed to `select()`
 * Thanks to @emanueleemolo for the report and for diagnosing it down to the query
   builder

### 1.13.2

 * Fix: the Importer page died with a fatal error on PHP 8 (`Uncaught Error: Undefined
   constant "importer"`) — a missing `$` on the «Total enabled» row of the summary
   table. The page now renders and the import from the legacy WP Bannerize plugin
   works again. Thanks to @emanueleemolo for the precise report

### 1.13.1

 * Feature: add Italian (`it_IT`), Spanish (`es_ES`), French (`fr_FR`), German (`
   de_DE`), and Brazilian Portuguese (`pt_BR`) translations — 5 locales now bundled
 * Chore: bump «Tested up to» to WordPress 7.0
 * Chore: regenerate POT and per-locale PO/MO/JSON files

### 1.13.0

Feature, Security & Compatibility Update

#### New Features

 * Added WebP image format support for local and remote banners
 * WebP banners can now be uploaded from the media library or linked via external
   URLs
 * Updated remote image validation to accept image/webp content type

#### Security

 * Hardened analytics queries: campaign and banner ID filters now use $wpdb->prepare()
   placeholders instead of string interpolation
 * Fixed invalid SQL placeholder (%1s) in analytics cleanup LIMIT clause, replaced
   with %d
 * Hardened meta key JOINs in banner query builder with $wpdb->prepare() for all
   meta_key values
 * Fixed SQL export using unescaped table name in INSERT statements
 * Added capability check (manage_banners) to admin error notice display
 * Used esc_html__() for translatable admin notice output

#### Bug Fixes

 * Fixed PHP 8.0+ function str_starts_with() usage that broke compatibility with
   PHP 7.4
 * Fixed duplicate entries in image MIME types array
 * Fixed uninitialized $width and $height variables when image size detection fails
 * Fixed potential fatal error when mime type is not detected during banner save
 * Fixed string-to-integer comparison in banner list column for max impressions/
   clicks
 * Fixed Gutenberg block missing «type» field for orderby attribute in block.json
   causing REST API warnings
 * Fixed fatal error «read property ID on null» in getBannerClasses() when banner
   post is null
 * Fixed esc_attr() used instead of esc_html() for impressions/clicks column output
 * Fixed incorrect sanitization order (absint on esc_attr result) in pagination 
   input

#### Improvements

 * Redesigned horizontal layout with modern flexbox and responsive 2-column grid
   on wide screens, single column on mobile
 * Vertical layout now uses flexbox with consistent gap spacing
 * Banner images are fully responsive with max-width: 100% and auto height
 * Refactored banner query meta key JOINs from repetitive code to loop-based construction
 * Removed dead code: commented-out create_function() reference
 * Refreshed readme.txt with structured description, expanded FAQ, and documentation
   links
 * Rewrote README.md with badges, features, tech stack, and project structure

### 1.12.0

Security, Bug Fixes & Improvements

#### Security

 * Fixed SQL injection vulnerabilities in analytics queries (impressions, clicks,
   CTR trends)
 * Fixed SQL injection in the legacy importer controller
 * Fixed XSS in banner rendering: added proper escaping for image src, alt, title,
   link href, and target attributes
 * Fixed XSS in text banner rendering: added escaping for width/height style attributes
 * Fixed stored XSS risk: sanitized IP address and User-Agent before saving to the
   database
 * Fixed SSRF in image size detection: replaced raw cURL and getimagesize() with
   wp_remote_get()
 * Fixed SSRF in remote image validation: replaced raw cURL with wp_remote_head()
 * Hardened options update endpoint with schema validation, key whitelist, and sanitize_file_name()
   for template paths
 * Hardened wp_loaded banner endpoint: added post type check, ID validation, null
   safety, and wp_kses_post() output filtering
 * Removed full plugin options exposure from public frontend
 * Used wp_json_encode() for all inline script output to prevent script injection

#### Bug Fixes

 * Fixed Gutenberg block not filtering by campaign
 * Fixed banner layout always forced to vertical regardless of the layout parameter
 * Fixed banner preview meta box not appearing in the editor
 * Fixed analytics data not deleted when a banner is permanently removed
 * Fixed cron cleanup events not cleared when tracking is disabled or plugin is 
   deactivated
 * Fixed N+1 query issue: banner click/impression counts with value 0 no longer 
   trigger unnecessary COUNT queries
 * Fixed resetOptions calling a non-existent AJAX action
 * Fixed DataTable crash when a banner has no campaigns assigned
 * Fixed CSV export using incorrect escape sequence instead of RFC 4180 standard

#### Improvements

 * Replaced remove_all_filters(‘parse_query’) with explicit suppress_filters
 * Replaced deprecated get_terms() positional arguments with array syntax
 * Replaced date() with gmdate() for WordPress coding standards
 * Aligned all SQL queries to use %i placeholder for table identifiers
 * Removed all debug error_log() calls and console.log() from production code
 * Migrated CPT meta box registration to registerMetaBoxes()

### 1.11.0

Security & Enhancement Updates

#### Security

 * Added SSRF protection for external banner image URLs
 * Added wp_bannerize_is_remote_image() validation method
 * Only allows JPEG, PNG, and GIF formats from external sources
 * Added admin error notice when invalid image URLs are submitted

#### Improvements

 * Standardized code formatting and indentation
 * Added user-friendly error messages for invalid banner image URLs

## Meta

 *  Versió **2.0.0**
 *  Darrera actualització **fa 5 dies**
 *  Instal·lacions actives **800+**
 *  Versió del WordPress ** 6.6 o posterior **
 *  Provada fins a **7.1.2**
 *  Versió del PHP ** 8.1 o posterior **
 *  Idiomes
 * [English (US)](https://wordpress.org/plugins/wp-bannerize-pro/), [Italian](https://it.wordpress.org/plugins/wp-bannerize-pro/),
   i [Portuguese (Brazil)](https://br.wordpress.org/plugins/wp-bannerize-pro/).
 *  [Traduïu a la vostra llengua](https://translate.wordpress.org/projects/wp-plugins/wp-bannerize-pro)
 * Etiquetes
 * [ads](https://ca.wordpress.org/plugins/tags/ads/)[advertising](https://ca.wordpress.org/plugins/tags/advertising/)
   [analytics](https://ca.wordpress.org/plugins/tags/analytics/)[banner](https://ca.wordpress.org/plugins/tags/banner/)
   [campaign](https://ca.wordpress.org/plugins/tags/campaign/)
 *  [Vista avançada](https://ca.wordpress.org/plugins/wp-bannerize-pro/advanced/)

## Valoracions

 4.9 sobre 5 estrelles.

 *  [  9 valoracions de 5 estrelles     ](https://wordpress.org/support/plugin/wp-bannerize-pro/reviews/?filter=5)
 *  [  1 valoració de 4 estrelles     ](https://wordpress.org/support/plugin/wp-bannerize-pro/reviews/?filter=4)
 *  [  0 valoracions de 3 estrelles     ](https://wordpress.org/support/plugin/wp-bannerize-pro/reviews/?filter=3)
 *  [  0 valoracions de 2 estrelles     ](https://wordpress.org/support/plugin/wp-bannerize-pro/reviews/?filter=2)
 *  [  0 valoracions de 1 estrelles     ](https://wordpress.org/support/plugin/wp-bannerize-pro/reviews/?filter=1)

[La vostra ressenya](https://wordpress.org/support/plugin/wp-bannerize-pro/reviews/#new-post)

[Visualitza totes les ressenyes](https://wordpress.org/support/plugin/wp-bannerize-pro/reviews/)

## Col·laboradors

 *   [ gfazioli ](https://profiles.wordpress.org/gfazioli/)

## Suport

Problemes resolts durant els darrers dos mesos:

     1 de 1

 [Visualitza els fòrums de suport](https://wordpress.org/support/plugin/wp-bannerize-pro/)

## Feu una donació

Voleu ajudar a què l'extensió millori?

 [ Feu una donació a aquesta extensió ](https://www.paypal.com/donate/?hosted_button_id=L77YYA8AVH2UW)