Install GeoEngage on any website
Add the GeoEngage tag to any site that serves HTML: Vue, Angular, SvelteKit, Astro, Laravel, Rails, Django or static pages.
If your site serves HTML, GeoEngage works on it. Paste the tag once into the layout or template your pages share, inside <head> and above your content:
<!-- GeoEngage — place in <head>, above your content.
Do not add async/defer: the widget must run before the page paints. -->
<script
src="https://cdn.geoengage.app/ge.js"
data-api-key="YOUR_API_KEY"
data-require-consent="false"
></script>
Where <head> lives
| Built with | Put the tag in |
|---|
| Vue, Svelte, Solid or Preact on Vite | index.html in the project root |
| Angular | src/index.html |
| SvelteKit | src/app.html |
| Nuxt | nuxt.config.ts, see Nuxt |
| Astro | Your shared layout, see Astro |
| Laravel | Your main Blade layout, often resources/views/layouts/app.blade.php |
| Ruby on Rails | app/views/layouts/application.html.erb |
| Django | Your base template, often templates/base.html |
| Hand-written HTML | Every page's <head>, or the include your pages share |
Nuxt
Nuxt builds <head> from its config. Add the tag to app.head in nuxt.config.ts:
export default defineNuxtConfig({
app: {
head: {
script: [
{
src: 'https://cdn.geoengage.app/ge.js',
'data-api-key': 'YOUR_API_KEY',
'data-require-consent': 'false',
},
],
},
},
});
Astro
Add the tag to the <head> of your shared layout. is:inline tells Astro to leave it exactly as written instead of bundling it:
<script
is:inline
src="https://cdn.geoengage.app/ge.js"
data-api-key="YOUR_API_KEY"
data-require-consent="false"
></script>
Single-page apps
If your site changes pages without a full reload, as Vue Router, Angular Router and SvelteKit do, the widget follows along by itself. See Single-page apps.
Check it's working
Open a page in a private window, then follow the checks.