On this page

What it does

One box per tool

Google Analytics, Google Tag Manager, Google Ads, Meta Pixel, Microsoft Clarity, HubSpot and Cloudflare Web Analytics. Paste the ID, or the whole code the tool gave you, and the ID is picked out of it. A wrong ID is explained in plain words.

A cookie banner that comes with the tools

A sheet across the bottom of the screen asks “Can we use cookies?” and says what each kind is for. Accept all and Reject all look exactly the same, so no answer is pushed; a quieter Choose opens switches for Analytics and Marketing, off until the visitor turns them on, with the tools listed under each. It works from the keyboard and follows light and dark. Colours: your theme’s, one of five ready-made sets with a dark version each (the same as in Popups), or your own.

Nothing before consent

No script from a tracking company is requested until the visitor allows its category. Google gets Consent Mode v2 signals; Clarity and HubSpot get the answer through their own consent settings.

Changing your mind

After an answer, a small round Cookies button in a bottom corner reopens the choice. So does any link to /#cookie-settings, such as a Cookie settings item in your footer menu or a link on your privacy page, with no code. Taking consent back tells the tools, deletes their cookies and reloads the page without them.

Who is asked

Where the law says ask first (the EU, EEA, UK and Switzerland, the default), those places plus India, everyone, or no one when another consent tool asks instead. Global Privacy Control is always respected. The answer is remembered for 6 or 12 months and asked again when the list of tools changes.

Enquiries counted

Clicks on phone and email links, and forms sent through the official forms plugin, are counted as leads in Google Analytics and Meta. Only the kind of enquiry is sent, never what was typed.

Status, and proof of consent

The Status tab ticks each tool and says what it waits for, with a link to its own numbers and to Google’s Tag Assistant. It says who is asked and when the last answer came in, shows the last 30 days’ answers as a chart, and lets an admin download the consent log: one line per answer from the last 12 months, with no IP address or name.

Check what loads

One button looks at your home page and up to four more for tracking code pasted in outside the plugin, such as a second Google tag, and for videos, maps, booking boxes and social posts that set cookies before a visitor answers. Each finding comes with a plain fix.

Install

How to install a plugin on EmDash: the registry or npm

A developer adds it once, in the site’s code:

npm install @moorage/plugin-analytics
// astro.config.mjs
import { analyticsPlugin } from "@moorage/plugin-analytics";
import emdash from "emdash/astro";

export default defineConfig({
  integrations: [emdash({ plugins: [analyticsPlugin()] })],
});

Then open Analytics, under Marketing in the admin, and paste the IDs of the tools you use. Your theme needs nothing more than EmDash’s own head component, which every EmDash template already has.

This site uses it for Google Analytics and Microsoft Clarity. The privacy page says what that means here.

Screenshots

The Status tab: each tool ticked, who is asked, how visitors answered, and the consent log to download.
The Status tab of Analytics & Cookies, with the tabs Status, Tools, Banner and Advanced. Under Tracking, ticks for Google Analytics and Microsoft Clarity, each on and waiting for visitors in Europe and the UK to accept Analytics cookies, and for enquiries counted, with buttons to open Google Analytics, Clarity and Tag Assistant. Under Cookie consent, a yellow note, Consider asking every visitor, because Microsoft Clarity records visits; ticks for asking visitors in Europe and the UK first, the privacy policy link and the Cookies button; the last answer received 11 minutes ago; three tiles for the last 30 days, Accepted all 295, Rejected all 132 and Chose some 8; a bar chart per day; and Download the consent log (CSV). Under What loads on your site, Not checked yet and a Check what loads button.
The Banner tab, with Colours open: your theme’s colours, five ready-made sets, or your own.
The Banner tab of Analytics & Cookies: who sees the cookie banner, with Where the law says ask first chosen; the privacy policy page /privacy; the banner heading Can we use cookies? and its text; Where it appears, with Across the bottom of the screen chosen; Light or dark; the switch for a small Cookies button and its corner, bottom left; Ask again after 6 months; and Save banner. Below, Colours is open, with seven choices: Your theme’s colours (recommended), five ready-made sets from Warm cream with brown buttons, which is chosen, to Dark with gold buttons, and My own colours; and a Save colours button.

What it does not do

  • It is not certified by Google as a consent tool and has no IAB TCF support. That matters only if you show Google ads on your own pages (AdSense, Ad Manager). Measuring your own Google Ads campaigns works.
  • Installing it does not make a site GDPR compliant. The banner follows the European data protection board’s cookie banner report and the UK ICO’s guidance; what your tools do with the data is still yours to describe in your privacy policy.
  • No dashboards or visitor reports: read your numbers in each tool.
  • Not a full cookie scanner: Check what loads knows the common tools and embeds, not every one. No cookie wall and no consent by scrolling.
  • Not yet: custom code snippets, banner text per language.

Permissions

It is a native plugin: it runs in your site’s own process, like any package your site uses, because adding scripts to pages is not something a sandboxed plugin is allowed to do. It reads none of your content; Check what loads fetches only your own site’s pages, as a visitor gets them. It keeps its settings, a record of consent answers with no IP address, and the last check’s result in your site’s database.

Questions

Is it free?

Yes, on any number of EmDash sites, with no account and no licence key. It is open source under the MIT License; the licence page says in plain words what you may do with it.

Can I use Google Tag Manager with it?

Yes. Paste your container ID in the Tag Manager box. By default the container loads only after the visitor accepts at least one category; a second setting loads it at once, for containers whose tags all wait for consent themselves.

Do I need the banner if I only use Cloudflare Web Analytics?

No. It sets no cookies, so no banner is shown.

Why does my own visit not show up?

A browser that has signed in to the EmDash admin is treated as staff and never tracked, so your numbers are your visitors’. Test in a private window.

How do I add a “Cookie settings” link?

In the admin, open Menus, edit your footer menu and add a custom link called “Cookie settings” with the URL /#cookie-settings. A link to /#cookie-settings on your privacy page works too. Clicking it opens the cookie choices on the page the visitor is on, and the small Cookies button steps aside while the link is on screen. Type the slash in front: the menu editor refuses a link that starts with #. This needs version 0.3.0 or newer.

Can I show that visitors were asked?

Yes. On the Status tab, an admin can press Download the consent log (CSV): one line per answer from the last 12 months, with the time, country, answer and a random reference kept in the visitor’s browser. It holds no IP address and no name.

Why is it not in the EmDash registry?

The registry only takes sandboxed plugins, and sandboxed plugins cannot add scripts to pages. Adding the tools and the banner is this plugin’s whole job, so it is added in code instead.

What is the line at the foot of the plugin’s page?

Only admins see it: “Help · More free plugins · by Moorage”. Help opens the plugin’s setup guide; editors never see the line. To hide it, switch on “Hide the help line at the foot of this page” at the bottom of the Advanced tab and press Save.

Where do I report a problem?

Open an issue on GitHub. If it is a security problem, write to security@moorage.dev instead.

Report a problem on GitHub: what happened, and your EmDash and plugin versions.

What should we make next?

Tell us the job you would like a plugin to do. We read every answer and use your email only to reply to it; release emails come only if you tick the box.