Skip to content

Implementation checklist

Work through this list before a campaign goes live on real traffic. Each item links to the page that explains it. Most problems it catches are silent: the page loads, but visitors see the original or are not counted.

  • The snippet is at the top of <head>, above every other script, on every page template where campaigns run or goals are measured. See Install the Grona script.
  • Both YOUR_WORKSPACE_ID placeholders are replaced with your workspace id.
  • There is exactly one copy per page, loaded from cdn.grona.ai, not bundled or self-hosted.
  • The anti-flicker script has no async or defer, and data-grona-af-bg matches your page background. See Prevent flicker.
  • Cache and optimisation plugins exclude both Grona scripts from delaying, combining and minifying.
  • The snippet is not added through a tag manager, or you accept the flicker that causes. See Google Tag Manager.
  • The dashboard check shows “Verified Successfully!”, or the API check returns present, for each page you target. See Verify your installation.
  • In a normal browser, antiflicker.js and main.js load without errors, and a preview link shows the variation. See Preview and QA a variation.
  • Your Content-Security-Policy allows cdn.grona.ai in script-src, connect-src and img-src, api.grona.ai in connect-src, and 'unsafe-inline' in style-src. See Content Security Policy.
  • You have chosen a consent mode, and your privacy notice covers the storage keys Grona writes. See Consent and storage.
  • If you use Wait for consent, your consent tool is one Grona reads, or it sends a Google Consent Mode update. See Consent platforms.