# AdGrove: consolidated public documentation
Generated from AdGrove's canonical documentation records. Source of truth: https://adgrove.io
# Install AdGrove on your website
AdGrove is a rewarded video ad network. Publishers add one script tag and one gate
element; viewers choose to watch a short ad that always plays to its final frame,
then the gated content unlocks.
Canonical page: https://adgrove.io/docs/install
## The installation, end to end
1. Create a free AdGrove publisher account.
2. Register your website in AdGrove.
3. Verify that you own the domain, with a meta tag in the site head or a TXT record added at your domain provider.
4. Create a placement, which is the ad slot your earnings are attributed to.
5. Add the AdGrove player script to your site and gate the content or action you want to reward.
6. Test the gate on your published site: the ad plays to the very last frame, then the content unlocks.
7. Watch impressions and earnings appear in your AdGrove dashboard.
## The universal snippet
```html
```
## The unlock event
```javascript
document.addEventListener('adgrove-unlock', (event) => {
// The ad played to the end. Reveal the content or run the action.
const { receipt, impressionId } = event.detail;
document.getElementById('premium-content').style.display = 'block';
});
```
## Verification
Meta tag:
```html
```
Or, when the head cannot be edited, a TXT record on the host
`_adgrove-verify` containing the value shown in your AdGrove dashboard. Add that record
wherever the domain's DNS is managed, normally the domain registrar or DNS host rather
than the website builder.
## Full platform guides
- [Custom HTML](https://adgrove.io/docs/install/custom-html) (Markdown: https://adgrove.io/docs/install/custom-html.md): Yes. This is the simplest AdGrove installation: one script tag before the closing body tag and the gate markup wherever you want the reward button.
- [Framer](https://adgrove.io/docs/install/framer) (Markdown: https://adgrove.io/docs/install/framer.md): Yes. AdGrove installs on Framer through Project Settings, Custom Code, with the gate added as an Embed component on the page.
- [Hostinger](https://adgrove.io/docs/install/hostinger) (Markdown: https://adgrove.io/docs/install/hostinger.md): Yes. On Hostinger Website Builder AdGrove goes in the builder's custom code settings, and on Hostinger hosting with your own site you add it directly to your HTML or CMS.
- [Lovable](https://adgrove.io/docs/install/lovable) (Markdown: https://adgrove.io/docs/install/lovable.md): Yes, and AdGrove runs a dedicated programme for Lovable builders. Ask Lovable to add the player script to index.html and render the gate in a component.
- [Next.js](https://adgrove.io/docs/install/nextjs) (Markdown: https://adgrove.io/docs/install/nextjs.md): Yes. Load the AdGrove player with next/script using the afterInteractive strategy, then render the gate inside a client component.
- [React](https://adgrove.io/docs/install/react) (Markdown: https://adgrove.io/docs/install/react.md): Yes. Add the AdGrove player script to index.html or load it from a component, then render the gate element in your JSX.
- [Shopify](https://adgrove.io/docs/install/shopify) (Markdown: https://adgrove.io/docs/install/shopify.md): Yes, on storefront pages. AdGrove installs by editing theme.liquid, and can gate blog articles, product pages and custom pages. Shopify checkout pages cannot be customised this way.
- [Squarespace](https://adgrove.io/docs/install/squarespace) (Markdown: https://adgrove.io/docs/install/squarespace.md): Yes, on Squarespace plans that include Code Injection. The AdGrove player goes in the Footer injection field and the gate goes in a Code Block on the page.
- [Webflow](https://adgrove.io/docs/install/webflow) (Markdown: https://adgrove.io/docs/install/webflow.md): Yes. AdGrove installs on Webflow through Site settings, Custom code, with the gate added as a Code Embed element. Custom code requires a paid Webflow site plan.
- [Wix](https://adgrove.io/docs/install/wix) (Markdown: https://adgrove.io/docs/install/wix.md): Yes. AdGrove works on Wix sites on a paid (upgraded) plan, using Wix Custom Code for the player and the Advanced SEO panel or Custom Code for the verification meta tag.
- [Wix Studio](https://adgrove.io/docs/install/wix-studio) (Markdown: https://adgrove.io/docs/install/wix-studio.md): Yes. AdGrove installs on Wix Studio through the site dashboard Custom Code panel, the same way as Wix, with Studio's own menu paths.
- [WordPress](https://adgrove.io/docs/install/wordpress) (Markdown: https://adgrove.io/docs/install/wordpress.md): Yes. AdGrove installs on WordPress with a header and footer snippet plugin, a Custom HTML block, or a small addition to the theme through the wp_head hook.
## Shorter platform guides
- [Angular](https://adgrove.io/docs/install/angular) (Markdown: https://adgrove.io/docs/install/angular.md): Yes. Add the AdGrove player script to index.html and render the gate in a component with CUSTOM_ELEMENTS_SCHEMA.
- [Astro](https://adgrove.io/docs/install/astro) (Markdown: https://adgrove.io/docs/install/astro.md): Yes. Add the AdGrove player script to your base layout and render the gate in a page or component.
- [Base44](https://adgrove.io/docs/install/base44) (Markdown: https://adgrove.io/docs/install/base44.md): Yes, where the app allows custom code or an HTML embed. Add the AdGrove player script to the page shell and render the gate in an embed.
- [Bolt](https://adgrove.io/docs/install/bolt) (Markdown: https://adgrove.io/docs/install/bolt.md): Yes. Bolt generates standard web projects, so add the AdGrove player script to index.html and render the gate in a component.
- [Carrd](https://adgrove.io/docs/install/carrd) (Markdown: https://adgrove.io/docs/install/carrd.md): Yes, on Carrd Pro. Embed widgets and custom code are Pro features, so a free Carrd site cannot run the AdGrove player.
- [Gatsby](https://adgrove.io/docs/install/gatsby) (Markdown: https://adgrove.io/docs/install/gatsby.md): Yes. Add the AdGrove player script with the Gatsby Script component and render the gate in a React component.
- [Nuxt](https://adgrove.io/docs/install/nuxt) (Markdown: https://adgrove.io/docs/install/nuxt.md): Yes. Register the AdGrove player through app.head in nuxt.config, or with useHead, then render the gate in a component.
- [Replit](https://adgrove.io/docs/install/replit) (Markdown: https://adgrove.io/docs/install/replit.md): Yes. Replit apps are ordinary web apps, so add the AdGrove player script to your HTML template and render the gate in your markup.
- [SvelteKit](https://adgrove.io/docs/install/sveltekit) (Markdown: https://adgrove.io/docs/install/sveltekit.md): Yes. Add the AdGrove player script to src/app.html and render the gate in a route or component.
## No guide for your platform?
https://adgrove.io/docs/install/other
---
# How to install AdGrove on Custom HTML
> Official AdGrove installation guide for plain HTML and static websites: the script tag, the gate element, the unlock event and domain verification.
Canonical page: https://adgrove.io/docs/install/custom-html
Last reviewed: 2026-08-31
Also known as: plain HTML, static site, hand-coded website, HTML and CSS
To install AdGrove on a plain HTML site, add the verification meta tag to the head, add the AdGrove player script just before the closing body tag, and put the gate markup where the unlock button should appear. No build step and no dependencies are involved.
## Does AdGrove work with Custom HTML?
Yes. This is the simplest AdGrove installation: one script tag before the closing body tag and the gate markup wherever you want the reward button.
## What you need before installing
- An AdGrove publisher account. Creating one is free.
- Your website registered in AdGrove, so AdGrove can issue the site-specific values used below.
- A placement created for that website, which is where your ad slot settings and earnings live.
- Access to the part of your website where custom code or a meta tag can be added.
## How the AdGrove integration works on Custom HTML
The AdGrove player is a single external JavaScript file. Loading it registers the gate element and the player UI.
The gate is a custom element. When a viewer activates it, the player takes over the screen, plays the ad to its last frame, and then dispatches an unlock event.
You decide what unlocking means: reveal a hidden section, start a download, enable a button. Listen for the unlock event and do whatever your page needs.
## Installation steps for Custom HTML
### 1. Add the AdGrove verification meta tag to the head
Paste the AdGrove verification meta tag inside the head of every page you want AdGrove to serve on, or at minimum on the homepage so verification can pass.
Verification meta tag:
```html
```
### 2. Add the AdGrove player script before the closing body tag
Load the player at the end of the body so it never blocks rendering. The async attribute is already set for you.
AdGrove player script:
```html
```
### 3. Add the gate where the reward button belongs
Paste the gate markup into the page. Anything you want revealed after the ad goes inside the gated container.
Gate markup:
```html
```
### 4. Handle the unlock in your own code, if you need to
For anything beyond revealing markup, listen for the adgrove-unlock event. It fires only after the ad has completed.
Unlock handler:
```javascript
document.addEventListener('adgrove-unlock', (event) => {
// The ad played to the end. Reveal the content or run the action.
const { receipt, impressionId } = event.detail;
document.getElementById('premium-content').style.display = 'block';
});
```
## Where your real values come from
- `YOUR_WEBSITE_API_KEY`: Issued per website when you register that website in AdGrove. It identifies the site the impression belongs to and is safe to appear in your page source.
- `YOUR_PLACEMENT_KEY`: Issued per placement. It tells AdGrove which ad slot on your site served the impression, so earnings are attributed correctly.
- `YOUR_VERIFICATION_TOKEN`: Issued when you add a website and shown on that website in your AdGrove dashboard. It proves you control the domain and is used once, during verification.
## How to verify your Custom HTML domain
1. Add the AdGrove verification meta tag to the site head, or add the TXT record to your DNS if your platform will not let you edit the head.
2. DNS records are added wherever your domain's DNS is managed: usually your domain registrar or DNS host, not inside your website builder. Some platforms host the domain themselves, in which case the DNS editor lives in that platform.
3. Publish the site so the tag or record is live on the public domain.
4. Open the website in your AdGrove dashboard and start verification. AdGrove fetches your public domain and looks for the tag, then falls back to a DNS lookup.
5. Once verification succeeds, your placement can serve ads. Verification only has to pass once per website.
6. Upload the page containing the verification meta tag to your live domain before starting verification.
7. If you cannot edit the HTML head, use the TXT record instead, added at your domain registrar or DNS host.
## Troubleshooting AdGrove on Custom HTML
### Why is my AdGrove gate rendering as plain text?
The player script has not loaded, so the gate element is unrecognised. Open the browser console, check for a failed request to the AdGrove player URL, and confirm the script tag is present before the closing body tag.
### Does AdGrove need a build step or npm package?
No. AdGrove is one script tag. There is nothing to install, bundle or update: the player is versioned and served by AdGrove.
## What happens after you sign up
Once your website is registered, AdGrove's Integration Assistant inspects your actual site, detects how it was built and gives instructions written for that specific site, with your real values already filled in.
The public guides here are deliberately generic. The Integration Assistant is the personalised version, and it is available to every publisher at no extra cost.
## Rules that hold on every platform
- AdGrove serves rewarded ads only. The viewer chooses to watch, so there are no interruptive placements and skipping is disabled.
- The ad always plays to its final frame before the content unlocks.
- If no suitable ad is available, AdGrove unlocks the content anyway rather than leaving a viewer stuck.
- The player is loaded from AdGrove and updates itself. You never have to replace the snippet to receive player updates.
- One player script per page is enough, however many gated items that page contains.
## Related guides
- [React](https://adgrove.io/docs/install/react)
- [WordPress](https://adgrove.io/docs/install/wordpress)
- [Shopify](https://adgrove.io/docs/install/shopify)
## Official Custom HTML references
- [MDN: the script element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script)
---
# How to install AdGrove on Framer
> Official AdGrove installation guide for Framer: adding the player script in custom code, embedding the gate, and verifying your domain.
Canonical page: https://adgrove.io/docs/install/framer
Last reviewed: 2026-08-31
Also known as: Framer site, Framer sites
To install AdGrove on Framer, open Project Settings, Custom Code, add the verification meta tag to the head and the AdGrove player script to the end of the body, then add the gate markup to the page with an Embed component. Custom code runs on the published Framer site, not in the canvas.
## Does AdGrove work with Framer?
Yes. AdGrove installs on Framer through Project Settings, Custom Code, with the gate added as an Embed component on the page.
## What you need before installing
- An AdGrove publisher account. Creating one is free.
- Your website registered in AdGrove, so AdGrove can issue the site-specific values used below.
- A placement created for that website, which is where your ad slot settings and earnings live.
- Access to the part of your website where custom code or a meta tag can be added.
- A Framer project you can publish, with access to Project Settings.
## How the AdGrove integration works on Framer
Framer custom code is added per project and injected into published pages, either in the head or at the end of the body, with a choice of running once or on every page visit.
Framer can also scope custom code to a single page, which is useful when only some pages are gated.
The gate itself is markup, so an Embed component holds it wherever the unlock button belongs in the layout.
## Installation steps for Framer
### 1. Open custom code in Framer
Open Project Settings, select the Custom Code tab in the left sidebar, then click Add Script, or the plus icon if you already have scripts. Give each script a recognisable name so future you knows what it is.
### 2. Add the AdGrove verification meta tag to the head
Add a script entry containing the AdGrove verification meta tag and set its placement to the start of the head. Set it to run on every page visit so it is present on every published page.
Verification meta tag:
```html
```
### 3. Add the AdGrove player script to the end of the body
Add a second entry containing the AdGrove player script, placed at the end of the body and set to run on every page visit, so the player is available on each page a visitor navigates to.
AdGrove player script:
```html
```
### 4. Add the gate with an Embed component and publish
On the Framer canvas, insert an Embed component where the unlock button should appear and paste the gate markup into it. Publish the site, then test on the published URL, because custom code does not execute on the canvas.
Gate markup:
```html
```
## Where your real values come from
- `YOUR_WEBSITE_API_KEY`: Issued per website when you register that website in AdGrove. It identifies the site the impression belongs to and is safe to appear in your page source.
- `YOUR_PLACEMENT_KEY`: Issued per placement. It tells AdGrove which ad slot on your site served the impression, so earnings are attributed correctly.
- `YOUR_VERIFICATION_TOKEN`: Issued when you add a website and shown on that website in your AdGrove dashboard. It proves you control the domain and is used once, during verification.
## How to verify your Framer domain
1. Add the AdGrove verification meta tag to the site head, or add the TXT record to your DNS if your platform will not let you edit the head.
2. DNS records are added wherever your domain's DNS is managed: usually your domain registrar or DNS host, not inside your website builder. Some platforms host the domain themselves, in which case the DNS editor lives in that platform.
3. Publish the site so the tag or record is live on the public domain.
4. Open the website in your AdGrove dashboard and start verification. AdGrove fetches your public domain and looks for the tag, then falls back to a DNS lookup.
5. Once verification succeeds, your placement can serve ads. Verification only has to pass once per website.
6. Framer applies custom code at publish time. Publish before starting verification in AdGrove.
## Troubleshooting AdGrove on Framer
### Why is AdGrove not running on my Framer canvas?
Framer custom code executes only on the published site. Publish the project and test the live URL.
### Why does the AdGrove script run only once in Framer?
Framer lets you choose between running a script once and running it on every page visit. Framer sites navigate client-side, so set the AdGrove script to run on every page visit.
## What happens after you sign up
Once your website is registered, AdGrove's Integration Assistant inspects your actual site, detects how it was built and gives instructions written for that specific site, with your real values already filled in.
The public guides here are deliberately generic. The Integration Assistant is the personalised version, and it is available to every publisher at no extra cost.
## Rules that hold on every platform
- AdGrove serves rewarded ads only. The viewer chooses to watch, so there are no interruptive placements and skipping is disabled.
- The ad always plays to its final frame before the content unlocks.
- If no suitable ad is available, AdGrove unlocks the content anyway rather than leaving a viewer stuck.
- The player is loaded from AdGrove and updates itself. You never have to replace the snippet to receive player updates.
- One player script per page is enough, however many gated items that page contains.
## Related guides
- [Webflow](https://adgrove.io/docs/install/webflow)
- [React](https://adgrove.io/docs/install/react)
- [Custom HTML](https://adgrove.io/docs/install/custom-html)
## Official Framer references
- [Framer: how to add custom code](https://www.framer.com/help/articles/how-to-add-custom-code/)
- [Framer Academy: custom code](https://www.framer.com/academy/lessons/custom-code)
---
# How to install AdGrove on Hostinger
> Official AdGrove installation guide for Hostinger, covering both Hostinger Website Builder sites and standard Hostinger hosting.
Canonical page: https://adgrove.io/docs/install/hostinger
Last reviewed: 2026-08-31
Also known as: Hostinger Website Builder, Hostinger Horizons, Hostinger AI builder
To install AdGrove on a Hostinger Website Builder site, add the verification meta tag and the AdGrove player script through the builder's custom code settings, then place the gate with an embed element. On standard Hostinger hosting you are editing your own files, so follow the custom HTML guide or the guide for your CMS.
## Does AdGrove work with Hostinger?
Yes. On Hostinger Website Builder AdGrove goes in the builder's custom code settings, and on Hostinger hosting with your own site you add it directly to your HTML or CMS.
## What you need before installing
- An AdGrove publisher account. Creating one is free.
- Your website registered in AdGrove, so AdGrove can issue the site-specific values used below.
- A placement created for that website, which is where your ad slot settings and earnings live.
- Access to the part of your website where custom code or a meta tag can be added.
- Access to your Hostinger account and the site you want to monetise.
## How the AdGrove integration works on Hostinger
Hostinger is two products in one brand. Website Builder is a hosted builder with a custom code panel, while Hostinger hosting simply runs whatever site you upload.
On Website Builder, AdGrove is added through the builder's integrations or custom code settings and applies to the published site.
On Hostinger hosting, there is no Hostinger-specific step at all: install AdGrove the way the underlying site is built, whether that is plain HTML, WordPress or something else.
## Installation steps for Hostinger
### 1. Identify which Hostinger product your site uses
If you build pages by dragging elements in Hostinger Website Builder, follow the builder steps below. If you upload files, use File Manager, or run WordPress on Hostinger hosting, follow the custom HTML or WordPress AdGrove guide instead.
### 2. Add AdGrove custom code in Hostinger Website Builder
In the builder, open the site settings and find the custom code or integrations section. Add the AdGrove verification meta tag to the head, and the AdGrove player script to the body, then save and publish.
Head: verification meta tag:
```html
```
### 3. Add the AdGrove player and gate to the page
Add the AdGrove player script to the body custom code, then place the gate markup using the builder's embed or custom HTML element, positioned where the unlock button should appear. Publish and test the live domain.
Player and gate:
```html
```
### 4. On Hostinger hosting, edit the site directly
Open File Manager or connect over FTP, add the verification meta tag to the head of your HTML, add the AdGrove player script before the closing body tag, and place the gate markup where the unlock button belongs. If the site runs WordPress, follow the AdGrove WordPress guide instead of editing files.
## Where your real values come from
- `YOUR_WEBSITE_API_KEY`: Issued per website when you register that website in AdGrove. It identifies the site the impression belongs to and is safe to appear in your page source.
- `YOUR_PLACEMENT_KEY`: Issued per placement. It tells AdGrove which ad slot on your site served the impression, so earnings are attributed correctly.
- `YOUR_VERIFICATION_TOKEN`: Issued when you add a website and shown on that website in your AdGrove dashboard. It proves you control the domain and is used once, during verification.
## How to verify your Hostinger domain
1. Add the AdGrove verification meta tag to the site head, or add the TXT record to your DNS if your platform will not let you edit the head.
2. DNS records are added wherever your domain's DNS is managed: usually your domain registrar or DNS host, not inside your website builder. Some platforms host the domain themselves, in which case the DNS editor lives in that platform.
3. Publish the site so the tag or record is live on the public domain.
4. Open the website in your AdGrove dashboard and start verification. AdGrove fetches your public domain and looks for the tag, then falls back to a DNS lookup.
5. Once verification succeeds, your placement can serve ads. Verification only has to pass once per website.
6. Because you control DNS at Hostinger, the TXT record route is straightforward: add a TXT record on the host _adgrove-verify in the Hostinger DNS zone editor.
## Troubleshooting AdGrove on Hostinger
### My Hostinger site was generated by AI. Can I still install AdGrove?
Yes. An AI-generated Hostinger site is still a normal published website. Use the builder's custom code settings for the script and an embed element for the gate. If you exported the site or run it on hosting, follow the custom HTML guide.
### Why does my Hostinger site not show the AdGrove script?
Check that you published after saving custom code, and clear the Hostinger cache if your plan has caching enabled. Then view the page source of the live domain and search for the AdGrove player URL.
## What happens after you sign up
Once your website is registered, AdGrove's Integration Assistant inspects your actual site, detects how it was built and gives instructions written for that specific site, with your real values already filled in.
The public guides here are deliberately generic. The Integration Assistant is the personalised version, and it is available to every publisher at no extra cost.
## Rules that hold on every platform
- AdGrove serves rewarded ads only. The viewer chooses to watch, so there are no interruptive placements and skipping is disabled.
- The ad always plays to its final frame before the content unlocks.
- If no suitable ad is available, AdGrove unlocks the content anyway rather than leaving a viewer stuck.
- The player is loaded from AdGrove and updates itself. You never have to replace the snippet to receive player updates.
- One player script per page is enough, however many gated items that page contains.
## Related guides
- [Custom HTML](https://adgrove.io/docs/install/custom-html)
- [WordPress](https://adgrove.io/docs/install/wordpress)
- [Squarespace](https://adgrove.io/docs/install/squarespace)
## Official Hostinger references
- [Hostinger: Website Builder, how to add custom code](https://support.hostinger.com/en/articles/4455931-website-builder-how-to-add-custom-code)
---
# How to install AdGrove on Lovable
> Official AdGrove installation guide for Lovable projects: the exact prompt to use, where the script goes, and how to gate a page.
Canonical page: https://adgrove.io/docs/install/lovable
Last reviewed: 2026-08-31
Also known as: Lovable app, lovable.dev, Lovable site
To install AdGrove on a Lovable app, ask Lovable to add the AdGrove player script to index.html and render the gate element in the component you want gated. Because Lovable projects are React and Vite, the React installation applies directly.
## Does AdGrove work with Lovable?
Yes, and AdGrove runs a dedicated programme for Lovable builders. Ask Lovable to add the player script to index.html and render the gate in a component.
## What you need before installing
- An AdGrove publisher account. Creating one is free.
- Your website registered in AdGrove, so AdGrove can issue the site-specific values used below.
- A placement created for that website, which is where your ad slot settings and earnings live.
- Access to the part of your website where custom code or a meta tag can be added.
## How the AdGrove integration works on Lovable
Lovable projects are React and Vite applications with a real index.html, so AdGrove installs exactly as it does in any React app.
The fastest route is to give Lovable the instruction rather than editing files by hand: it will place the script tag and wire up the unlock listener.
AdGrove has a specific offer for publishers building on Lovable, described at https://adgrove.io/monetise-your-lovable-site.
## Installation steps for Lovable
### 1. Ask Lovable to install the AdGrove player
Paste the prompt below into Lovable. It contains everything Lovable needs: the script URL, the placement, and the gate behaviour.
Prompt for Lovable:
```text
Add the AdGrove rewarded ad player to this project.
1. In index.html, before the closing