Paste an ID. The tag waits for consent.

Paste an ID, pick nothing else, and the tag is on your site — switched off until the visitor agrees to it. Nothing a vendor ships runs, or is even fetched, before the visitor has said yes to that category. When they do, the tag starts on the spot, without a reload.

Google Analytics 4Tag Manager & Google AdsMeta, Microsoft, LinkedIn, TikTok, Pinterest, HotjarGoogle Consent Mode v2WP Consent APIA Test tab for three visitors

Free, with nothing held back. It sets no cookies of its own, records no visitor data and sends no telemetry.

10

vendor tags from an ID alone — each one behind a consent category.

⏸️
Inert until yesPrinted as type=“text/plain”, so the browser neither runs nor fetches it.
▶️
Starts without a reloadThe moment the visitor agrees, the tag runs on the page they are on.
🧪
See it before your visitors doThe Test tab lists every tag against three kinds of visitor.

Why Lynbro Tags

Nothing loads before yes

Every tag is printed as an inert placeholder, so the browser neither runs it nor fetches anything from it. The only scripts that run straight away are the plugin’s own: the Consent Mode default and the small script that switches tags on after consent.

Works with the consent plugin you have

Lynbro Cookie Consent is used natively — its stored choice, its event, and only the categories its banner actually asks about. Any other consent plugin that supports the WP Consent API works too. Without a consent plugin, statistics and marketing tags do not load at all unless you tick Load without a consent plugin, which is off by default.

IDs are checked as you save

A lower-case g-ab12… is fixed, a pasted vendor snippet is reduced to its ID, and something that is not an ID is refused with the reason — the previous value stays.

Everything you need — included, free

No "Pro" tier, no nag screens. The features other plugins paywall are here from day one.

📊
Google Analytics 4

Measurement ID (G-…). Statistics by default.

🏷️
Google Tag Manager

Container ID (GTM-…). Marketing by default, because a container can hold anything.

🎯
Google Ads

Conversion ID (AW-…), with an optional conversion label and a one-line JavaScript call to count a conversion — which does nothing until the visitor has given marketing consent.

📣
Every pixel you are likely to need

Meta Pixel, Microsoft Advertising (UET), LinkedIn Insight Tag, TikTok Pixel and Pinterest Tag as marketing; Microsoft Clarity and Hotjar as statistics. The category can be changed per tag.

🟢
Google Consent Mode v2

When a Google tag is configured, the default — all four signals denied — is printed before it, and each choice is sent as an update. If Lynbro Cookie Consent already prints a default, it is not printed twice.

🧪
The Test tab

Every configured tag against three visitors — no consent, statistics only, statistics and marketing — worked out by the same function the front end uses.

↩️
Consent withdrawn means denied

Consent Mode is updated to denied straight away. Tags that already started on the current page keep running until the next page load, where they no longer start.

🛠️
For theme developers

On templates that do not call wp_head(), wp_body_open() or wp_footer(), lynbro_tags_output() prints each place once per request — never twice.

Requirements

6.2+WordPresstested up to 7.1
7.4+PHP
GPLv2+License
2Languages

FAQ

Does anything load before the visitor consents?

No. Every tag is printed as an inert placeholder (type=“text/plain”), so the browser neither runs it nor fetches anything from it. The only scripts that run straight away are this plugin’s own: the Consent Mode default and the small script that switches tags on after consent.

Which consent plugin do I need?

Lynbro Cookie Consent, or any consent plugin that supports the WP Consent API.

What about visitors without JavaScript?

They cannot answer a consent banner, so they get no tags. The Tag Manager <noscript> fallback is only printed when you load tags without a consent plugin.

What happens when a visitor withdraws consent?

Consent Mode is updated to denied straight away. Tags that already started on the current page keep running until the next page load, where they no longer start.

Does it send Meta Conversions API events from my server?

Not yet. The fields are there but reserved: they are stored, and no request is made to Meta from your server.

Is there a paid version?

No. Everything described here is in the plugin, free.