Full Picture – Privacy-Focused Tag Manager & Cookie Notice


Full Picture is a privacy-focused tag manager for marketers, data-driven site owners and people who are not happy with GTM⭐


  • Easily add any script (choose from 17 ready integrations or add your own script)
  • Setup analytics & cookie banner 100x faster than in GTM and GTM4WP!
  • Truly GDPR-compliant cookie notice without monthly fees
  • Ready-to-use privacy-related functions
  • Track broken links without an extra plugin
  • Easily track clicks, post categories and tags
  • 20+ unique features (see below)


Our integrations make other analytics plugins look like demos. They are easy to set up, collect better quality data and respect visitors’ privacy out-of-the-box.

  1. Google Analytics UA
  2. Google Analytics 4
  3. Google Ads
  4. Google Optimize
  5. Google Tag Manager
  6. Microsoft Clarity
  7. Microsoft Advertising
  8. Meta / Facebook Pixel
  9. Linked In Insight Tag
  10. Plausible Analytics
  11. Twitter Ads
  12. TikTok Pixela
  13. Pinterest Conversion tag
  14. Hotjar
  15. Crazy Egg
  16. Inspectlet
  17. Splitbee

Or add any other script!


Do not waste time setting up GTM*. Use Full Picture and get:

  1. Blazingly fast setup of all marketing tools you need… and a cookie notice!
  2. Higher-quality data (see section “unique features” below).
  3. Save your clients money – give them a truly GDPR-compliant cookie notice without a monthly bill
  4. Use 20+ unique features out-of-the-box – time savers and quality-of-life improvements

*Psst. Full Picture also integrates with GTM if you got used to it but you probably won’t need it.


Choose Full Picture and:

  1. Get analytics data you can trust.
  2. Easily try out multiple tracking tools to see which one works for you best.
  3. Save on monthly fees for GDPR-compliant cookie notice. Use one for free.
  4. Sleep well knowing that your cookie management solution works according to privacy rules.
  5. Have a snappy website by using a single, modular plugin rather than multiple ones.


Full Picture comes with 20+ unique features. Here are some of the more interesting ones.

  • πŸ‘€ FP has the simplest and most reliable method of telling your site NOT to track you and your employees (even when they are not logged in).
  • β›“ Track broken links without an extra plugin.
  • 🌍 Load scripts and integrations only in chosen countries.
  • πŸ–± Track link-clicks with middle mouse button.
  • πŸ– Prevent tracking multi-clicks (only the first one is tracked).
  • πŸ‘» Do not track pages that were opened but never viewed (like in tabs).
  • ✍ Display in your privacy policy an always-current list of tracking tools enabled in Full Picture.


Are you paying for cookie banners to comply with privacy laws? Keep the cash!

Full Picture complies with privacy and cookie laws (and it does not require scanning your site to do this)!

Plus it also…

  • shows the notice only in countries that require it (with geolocation)
  • is fully translation-ready – supports WPML and Polylang
  • is fully customizable – you can change colors, buttons, banner position and more


Full Pictue Premium gives you more insights on your traffic.

  • Automatically track WooCommerce purchases, additions to cart and wishlist, views of products and product list items and more.
  • Track custom fields / custom meta
  • Track form submissions
  • Track file downloads
  • Track how long people are engaged with your content
  • Track when important page elements become visible, e.g. popups, notifications, ads, etc.
  • Track how many visitors use ad blocks
  • Track affiliate links (works with all affiliate links and affiliate plugins), outbound links and contact links
  • Track WordPress data (page types, page ids, categories, tags, page language, etc.)
  • and more

…and adds these unique features:

  • User engagement time tracking
  • Track how many of your visitors use adblock
  • Track JavaScript errors
  • Prevent tracking accidental form submissions
  • Prevent tracking scrolls if the visitor is quickly skimming the page, and more…

Full Pictue FREE vs Premium


  • Dashboard
  • Cookie management settings
  • Cookie banner styling
  • Tracking exclusion
  • Google Analytics settings
  • Custom scripts settings
  • Global settings


Is Full Picture NOT compatible with any plugins or solutions?

Yes. If you use any solution that combines Javascript files then you should disable this feature. It disrupts how FP’s files are loaded.

In my analytics reports I still see some traffic coming from countries that I specifically excluded from tracking. Why?

This happens because of 2 reasons.

  1. Your visitor’s location wasn’t recognized. In such a case all tracking tools are loaded as usual.
  2. Your visitor changed his location (moved to a different country or used a VPN) from a country where your tracking tool worked to one where it shouldn’t. In such case the first location takes precedence.

Will Google Analytics run if a visitor doesn’t agree to marketing cookies?

GA only requires statistical cookies to run. Full Picture automatically disables optional parts of Google Analytics depending on the user’s cookie choices.

Will my site comply with ALL cookie and privacy regulations just by using Full Picture?

No. Privacy and cookie regulations cover many areas of business and running a website. Full Picture helps you handle only a part of it so you still need to be aware and act accordingly to be fully compliant with the rest of them.

Do I have to use the cookie notice? I want to use only the tracking tools

You don’t need to use the cookie notice. Integrations with tracking tools will work just fine without it. Please mind however that some countries require the use of the notice so if any of your visitors browse from those countries consider using it. You can always use geolocation wo show the notice only in specific countries.

I live in the EU but I want to start tracking visitors right after they visit the page. Can I do this?

Technicaly you can. Legally you can’t. Full Picture can be configured to start tracking visitors in all countries even before they agree to cookies but you should be aware that you can be fined for doing that.

I use my own cookie notice. Can I use it instead of Full Picture’s but still make use of FP’s conditional cookie loading?

Yes. You will just need to point Full Picture at the “agree” and “decline” buttons in your notice. This way Full Picture will know when visitors agreed to cookies and when to trigger tracking.

In what ways can I modify the notice to fit my website?

You can change the texts in the notice, its placement, colors, buttons, button placements, overlay and many other things.

My site is in multiple languages. Can I translate texts in the cookie notice with WPML or Polylang?

Yes. Full Picture has been tested and works with multilingual plugins WPML and Polylang. It is possible that it also works with other plugins but we haven’t tested them.

How long will visitors’ cookie choices be remembered for?

They will be remembered for 6 months as required by the EU Data Protection autohorities.

Does Full Picture work with WooCommerce?

Full WooCommerce support is available in Full Picture PRO

Does Full Picture generate product feeds for Google Shopping or Facebook?

No. Full Picture concentrates on tracking and privacy. To generate a product catalog you can use one of multiple plugins from WordPress repository.

Does Full Picture come with a dashboard (show traffic statistics) for Google Analytics or any other platform?

Yes, but only to Plausible Analytics. It gives you exactly the same statistics in WordPress admin as in their own panel.

Does Full Picture support Google’s consent mode?

There is no need to. Full Picture’s script loading solution basically does the same thing as Google’s consent mode but for all the tools that it integrates – not only Google’s products.

What skills do I need to set up Full Picture?

It all depends on the tools and features you choose to use. Both a newbee and an analytics superhero will find something for themselves.


February 28, 2021
Tons of features, well documented, all major (and a few I've never heard of) analytics tools covered! What more could you ask for? πŸ™‚
Read all 3 reviews

Contributors & Developers

“Full Picture – Privacy-Focused Tag Manager & Cookie Notice” is open source software. The following people have contributed to this plugin.



3.4.2 (01-04-2022)

[FIX] Added a check to prevent PHP notice in custom scripts footer php file
[Other] Added some new explainer videos
[Other] Removed extra styling from buttons to make them uniform with other buttons in WP panel

3.4.1 (27-03-2022)

[Removed] [Free] Freemius deactivation popup form
[Added] [Free] Custom deactivation popup info
[Removed] Removed admin notification about clearing cache in order not to confuse non-techies

3.4.0 (22-03-2022)

[New] Added iframe blocking (so far as an experimental feature)
[New] Added ipdata geolocation method
[New] You can now save full geolocation response in fpdata JavaScript object and use it for your website development
[Update] Improved method of loading custom scripts for an easier addition of scripts
[Update] Set up a custom event to fire after custom cookie notice buttons are clicked
[Fix] Fixed a bug that caused special characters in a custom script to be encoded when the script was saved more than once
[Fix] Added a check in the custom head/body script loading for empty values
[BUGS ADDED!] ADDED 3 typos of files integrating google services to prevent litespeed cache from ommiting them while combining js

3.3.0 (11-03-2022)

[New] Added a safeguard in order not to trigger location check when bots visit the site
[New] Added a custom event “fupi_popup_closed” fired on “document” when cookie notice popup is closed
[Improvement] UX – side menu now contains links to settings pages of all enabled modules
[Improvement] UX – sticky section with “save settings” button

3.2.1 (07-03-2021)

[Fix] Cookie notice didn’t load when the user didn’t save default cookie notice settings
[Fix] Fixed a misplaced apostrophe that caused FP not to load when the user didn’t save default cookie notice settings
[Fix] Added a “nooptimize” tag around FP’s JS (added directly to HTML in head) to prevent Autoptimize from breaking it

3.2.0 (07-03-2021)

[New] You can now restrict loading tools & custom scripts to certain countries
[New] Added support of 2 new geolocation services
[Fix] [Woo] [Hotjar] Fixed a bug that didn’t send product details as tags
[Fix] [GAds] Fixed a bug that didn’t allow to create more than 1 repeater field for affilaite links, etc.
[Update] [GAds] [Pro] Added a “gads conv id” variable to the list of recognized vars in FP.set() object
[Update] [Pin] Updated data sanitization rules
[Other] Cloudflare geolocation for non-CF-users is no longer an experimental function
[Other] Freemius SDK updated to the latest version

3.1.0 (20-02-2022)

[New] You can now add any script
[New] Added a notification that shows up on first plugin activation reminding users to enable automatic updates for Full Picture
[Fix] Added a check to make sure that “Cache cleared” notice doesn’t show up twice
[Fix] Intro popup no longer shows up after refresh / saving settings
[Update] New tools settings pages are now highlighted in menu until the notice is hidden
[Update] Updated links in the plugin settings
[Other] [Twitter] Improved description in WooCommerce section
[Other] Tiny fixes and updates

3.0.0 (07-02-2022)

[New] TikTok integration added (with WooCommerce support)
[New] New Tracking API is now much more flexible, easier to use and less error-prone than the old one
[Removed] Custom Event shortcodes are no longer available due to the changes in FP’s Tracking API
[Removed] [GTM] Page url is no longer sent with scroll events
[Improved] Complete design overhaul of Full Picture’s settings pages in the WP admin panel
[Improved] Engagement timer no longer resets after user clicks a contact link or email link (it is paused instead)
[Improved] Scroll tracking delay now takes into consideration how long the user was engaged with the content
[Improved] Checkign whether a page is refreshed now takes into consideration sessions and new tabs
[Improved] [Inspectlet] Removed unnecessary check for pagetype
[Improved] [Inspectlet] Joined multiple tag events into a single one to speed up sending
[Improved] Removed unused scripts from FP library
[Improved] Checking if the user is blocking ads / tracking scripts
[Improved] [GA UA] Added event actions
[Improved] [GA UA] Vitual pageviews now send to GA all the parameters (like in the original page view)
[Improved / Changed] [GA UA] Categories of all “click” events sent to GA are now changed to “clicks” (from previous “anchor”, “outbound”, etc.)
[Improved] Some JS notifications no longer show up when debug mode is off
[Improved] [Plausible] Tracking scripts no longer wait for the fp_load_scripts function and no longer check for isAllowedToLoad (which always resulted in true)
[Improved] [Plausible] Tracking scripts no longer wait for the fp_load_scripts function and no longer check for isAllowedToLoad (which always resulted in true)
[Changed] Feature list for the free version. Some features were removed while others were added
[Changed] Pointer notifications on admin screen are now replaced with admin notices
[Changed] Site admins now specify which terms they want to track instead of stating which they don’t
[Changed] When enabled, page labels are tracked both as page types and terms of “fupi_page_labels” taxonomy
[Changed] [GTM] When page gains or loses focus it no longer pushes to the dataLayer value ‘window visibility state’ but ‘page in focus’ with a boolean value of either true or false
[Fix] [Cookie notice] Removed a bug that caused permanent scroll-lock
[Fix] [Cookie notice] Scroll lock now correctly blocks the scroll on the front end
[Fix] [Google Analytics 4 & UA] When viewed elements tracking was defined in both GAs all element views could be sent to both of them
[Fix] [Inspectlet] Identyfying logged in user by email didn’t always work
[Fix] Activity timer now correctly stops when the window loses focus
[Fix] Cookie notice now hides when it was closed in a different tab
[Fix] [Cookie notice] Geolocation with Cloudways now works as expected
[Other] Dropped support for Internet Explorer
[Other] Tagging in HotJar is still using older “tagRecording” declaration to prevent errors that show up in the latest HotJar API
[Other] Multiple other small tweaks

2.3.0 (04-10-2021)

[New] You can now filter the list of tools to view only free ones
[Improved] Small UX changes, new pointers system and field descriptions tweaks
[Improved] Some JS notifications no longer show up when debug mode is off
[Fix] Cookie notice now hides when it was closed in a different tab
[Removed] Deprecated functions and irrelevant notifications

2.2.0 (23-09-2021)

[Improved] Clearing cache – increased number of supported caching plugins
[Improved] [GTM] GTM now sends info on chosen cookie types when cookie notice buttons are clicked
[Fix] Fupi DB version is now correctly saved in the options
[Fix] % symbol in some filed’s descriptions no longer causes fatal errors on some configurations
[Fix] [GTM] Clicks in cookie notice buttons are now correctly recognized
[Removed] Modifications to deactivation popup questions
[Removed] [Plausible] Removed deprecated functions
[Removed] [Google Analytics UA] Removed deprecated functions

2.1.1 (17-09-2021)

[Fix] Missing file in the last update
[Fix] Removed duplicated dookie notice settings

2.1.0 (15-09-2021)

[New] Added LinkedIn Insights tag to the Free version
[Improved] Keyword in the URL for disabling tracking is no longer present in FP’s JavaScript vars
[Fix] Excluding users from tracking by roles did not work when global settings were not saved
[Fix] PHP warning on db update when cookie notice had no settings
[Fix] Noscript tags now work as intended

2.0.1 (12-09-2021)

[Fix] Deactivation bug
[Fix] Twitter Ads was incorrectly marked as being available in the free version

2.0.0 (12-09-2021)

[New] [Plausible] View statistics inside WordPress dashboard
[New] [CrazyEgg] You can now tag recordings by user actions
[New] [Plausible] Better support for self-hosted Plausible and clearer field descriptions
[New] [Plausible] You can now track clicks in “decline cookies” button in a custom cookie notice
[New] [Splitbee] A separate setting to easily enable tracking cookie notice buttons
[Fix] [Crazy Egg] User identification function now works correctly
[Fix] [Plausible] Tracking clicks in “decline cookies” button now works correctly
[Fix] Error when trying to deactivate the plugin with “remove settings in the database after deactivate” option switched on
[Fix] [MS Clarity] Fixed tracking user roles
[Improved] UX and field descriptions
[Improved] Page types reported by plugin have now unified formatting (Camel Case) and correctly give singular names, e.g. Post, instead of “Posts”
[Improved] Full Picture moved to top-level menu
[Improved] Tracking elements that get in view
[Improved] Outbound link tracking
[Removed] Fathom integration
[Removed] Easy / Standard / Advanced mode switcher
[Removed] Some deprecated tracking methods
[Other] [Plausible] Added notice about removal of deprecated settings in the next version
[Other] Bumped required minimal PHP version to 7.2
[Other] Plugin’s file and folder structure changed

1.7.0 (25-05-2021)

[Improved] Major UX redesign and tutorial new videos
[New] GTM now sends an event when the tab gets focus
[Fix] Plausible – fixed tracking file downloads
[Fix] GTM now always loads with the pageload, without wiating for cookie consent
[Fix] Tracking clicks in cookie notice buttons
[Improved] Opt-in to tracking usage statistics and config data
[Improved] More deactivation reasons in deactivation form

1.6.0 (24-04-2021)

[New] Added an option to label pages and later track those labels
[New] “Privacy & security” global settings
[New] Hotjar – added tagging screen recordings with the visibility of elements
[New] Inspectlet – added tagging screen recordings with the visibility of elements
[Fix] “New” label on “Cookie notice” tab now hides when intended
[Improved] Descriptions of sections and fields
[Improved] Inspectlet – stronger field sanitization
[Other] Limited questions in the plugin deactivation survey to the most important ones

1.5.3 (19.04-2021)

[Fix] Cookie notice – background got “blur out” after clicking cookie buttons even when blur was not set up
[Update] Language translation filess
[Tweak] Changed order of Google Analytics 4 & UA in tools section
[Tweak] Added “Feedback” link to top menu
[Tweak] Small UX changes

1.5.2 (17-04-2021)

[Copyright issue] Removal of Facebook logo from the banner and version bump

1.5.1 (15-04-2021)

[Check] WordPress 5.7.1 compatibility check
[Tweak] Small UX tweaks
[Tweak] Readme file and icons

1.5.0 (12-04-2021)

[New] Google Tag Manager integration
[New] Cookie notice – Alternative button layouts
[Improved] Anchor links are now targetted more accurately
[Improved] Mechanism loading footer scripts is now faster and doesn’t timeout
[Improved] Facebook Pixel – form tracking event now sends to Facebook location of the form
[Improved] Super tiny improvement to form targetting script
[Fix] Tracking file downloads
[Fix] Polyfills didn’t load in IE after prefix change from fp to fupi
[Fix] Cookie notice – Gradient overlay did not hide on Internet Explorer

1.4.0 (12-03-2021)

[New] You can now redirect 404 pages to any page you like
[New] Splitbee has “no-cookie” mode now
[New] Cookie notice – you can now blur content before user consent
[New] Plausible integration now lets you track file downloads
[Improvement] We made descriptions of settings fields even clearer
[Improvement] We tweaked UX to make using the plugin more straightforward
[Fix] Cookie notice settings – Link to privacy policy is now dynamically added to the main cookie description
[Fix] Google Analytics – page load performance metric – fixed event data object
[Fix] Cookie notice – highlighting a link made with now {{…}} works correctly
[Fix] URL parameters no longer show up in reports in the names of downloaded files
[Update] Plugin translation files

1.3.0 (08-03-2021)

[New] New setup wizards
[New] Easy mode for non-techies
[New] New WP admin notices which show only when necessary
[New] Plausible – added support of event properties
[New] Plausible – added new tracking features
[Fix] Crazy Egg – identifying users by ID now works correctly
[Fix] Corrected title and description of broken link tracking setting
[Fix] Google Analytics – page load performance metric – fixed event data object
[Fix] Splitbee – Fixed problem with not loading script for A/B tests
[Update] Resetting cookies is no longer possible via Magic URL – it can be done only via clicking the icon
[Update] Logo in admin is now an svg
[Update] Global Tracking Settings – default double-click time increased to 300ms
[Update] FP Settings – CSS selectors in repeater fields are now trimmed before saving in the database


[New] Tracking broken links
[New] Cookie Notice – you can now choose a color for switches
[New] Added a link to settings page in plugin’s entry on plugins list
[New] Added thumbs-up/down buttons for easier feedback and support
[Fix] Facebook Pixel – fixed JS error on scroll
[Update] Language files
[Change] Freemius opt-in is automatically skipped on 1st time plugin activation


[New] MS Clarity – tagging sessions with adblock use
[New] Added language files for translating the plugin
[Fix] GTM and FB Pixel – “Track scroll after time” is now respected
[Improved] UX – added “play” button to thumbs with tutorial videos
[Improved] Added extra descriptions in settings panel
[Improved] Fathom – Added repeater fields in settings
[Improved] MS Clarity – added sections with tagging settings
[Removed] Hotjar – removed tagging with referral – Hotjar also has this function


[Tweak] Large improvements in settings panel
[Tweak] Clearer descriptions of some options
[Fix] Occasional problems with repeater field not saving data properly


Initial release