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.
Snippet
Section titled “Snippet”- 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_IDplaceholders 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
asyncordefer, anddata-grona-af-bgmatches 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.
Verification
Section titled “Verification”- 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.jsandmain.jsload without errors, and a preview link shows the variation. See Preview and QA a variation.
Security and privacy
Section titled “Security and privacy”- Your Content-Security-Policy allows
cdn.grona.aiinscript-src,connect-srcandimg-src,api.grona.aiinconnect-src, and'unsafe-inline'instyle-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.
Your site
Section titled “Your site”- All traffic reaches one canonical host and scheme (for example
https://shop.example.com), so each visitor keeps one id. See Domains and subdomains. - If your site is a single-page app, it routes with the History API, not
#fragments, and the elements you change are not redrawn after load. See Single-page applications and Server rendering and hydration. - The pages you edit are reachable from the public internet without a login, so the visual editor can open them. See Visual editor requirements.
- If a campaign uses page-variable targeting, the page variable is set as a string in an inline script above the snippet. See Target visitors by page variable.
Measurement
Section titled “Measurement”- Goals are set up and fire on the right pages. See Track conversions and custom events.
- You measure page speed with real-user monitoring, not Lighthouse or PageSpeed Insights, which Grona treats as bots. See Performance.
- Your visitors’ browsers are supported. See Supported browsers.