Skip to content

Forward events to your analytics

Living Page keeps its own read analytics. But if you already run your own analytics, you can have your flipbooks’ reader events land there too — in your own property, under your own domain, next to the rest of your funnel.

This is an Agency plan and up feature.

The connector forwards to any of these — whichever you already have on the page:

Service Custom properties
Google Analytics 4 (gtag.js) ✅ Yes
Google Tag Manager (dataLayer) ✅ Yes
Plausible ✅ Yes
Piqo ✅ Yes
Segment ✅ Yes
Umami ✅ Yes
Fathom ⚠️ Event name only — Fathom’s one extra field is a revenue value (in cents), so the flipbook_* details can’t be attached

Running something else? The events are also available as a raw postMessage, so any script on your page can read them — see Advanced: the raw events.

When someone reads a flipbook you’ve embedded on your site, the reader (inside the iframe) announces each event to the page around it. A small connector script you paste on your site listens for those announcements and forwards them into whatever analytics you already have loaded.

Because the connector calls your existing analytics — your gtag, your plausible, your Tag Manager — the events arrive as first-party hits on your own domain. There are no IDs to copy and nothing to keep in sync. One script covers every flipbook you embed, now and later.

Forwarding applies to embeds — flipbooks inside an iframe on your site. A standalone share link opens on read.livingpage.app with no page of yours around it, so those reads stay in Living Page’s own analytics.

  1. Go to Settings → Integrations and switch on Analytics forwarding.
  2. Copy the connector script and paste it once onto your site, alongside your existing analytics tag. Site-wide (in your <head> or footer) is ideal — it then covers every embed.
<script async src="https://client-connect.livingpage.app/v1/connector.js"></script>

That’s the whole setup. The connector detects the analytics already on each page and forwards to it — GA4, Plausible, Piqo, Tag Manager, Segment, Umami or Fathom — so there’s nothing to configure and nothing to pick.

Already added it, or not sure? Enter your site’s address under Check your site and we’ll tell you whether the connector is present and which analytics we detected on the page — so you can confirm the pairing, or skip the paste step if it’s already there. (If you installed it through Tag Manager it won’t show in your page source, but it still works once your container is published.)

Because the connector reads whatever analytics is on each page, one script is safe to reuse across every client site even when they run different tools — nothing to tailor per site.

If a site runs two analytics tools and you want events to go to only one, add a data-provider attribute — ga4, plausible, piqo, gtm, segment, umami or fathom:

<script async src="https://client-connect.livingpage.app/v1/connector.js" data-provider="ga4"></script>

It stays safe: if that tool isn’t on a given page, the connector falls back to whatever is there (and notes the swap in the browser console), so it never silently drops events.

Three events, with stable names — the flipbook’s identity travels in the event’s properties, not the name:

Event Fires when Extra property
flipbook_view the flipbook is opened
flipbook_page_view each page is reached flipbook_page
flipbook_read_time the reader leaves flipbook_read_seconds

Every event also carries:

  • flipbook_title — the flipbook’s name
  • flipbook_slug — its stable slug
  • flipbook_id — its id
  • flipbook_client — the client workspace it belongs to (if any), so a multi-client agency can break down “views by client” in one account

Both GA4 and Plausible collect custom properties straight away, but won’t show them in reports until you register them once:

  • GA4 — register flipbook_title, flipbook_page and the rest as custom dimensions (Admin → Custom definitions). Paste the connector below your GA4 tag.
  • Plausible — add the flipbook_* keys under your site’s Custom properties. Paste the connector after your Plausible script.
  • Piqo — paste the connector after your Piqo script; events arrive via piqo(name, { props }) with the flipbook_* keys attached, the same as Plausible.
  • Google Tag Manager — add the connector as a Custom HTML tag. Events are pushed to the dataLayer as flipbook_view / flipbook_page_view / flipbook_read_time, ready for your own triggers and tags.
  • Segment — paste the connector after your analytics.js snippet; events arrive via analytics.track.
  • Umami — paste the connector after your Umami script; the flipbook_* keys arrive as event data via umami.track.
  • Fathom — paste the connector after your Fathom script. Fathom’s only extra event field is a revenue _value (in cents), which doesn’t apply to a reader event — so you’ll get flipbook_view / flipbook_page_view / flipbook_read_time counts via fathom.trackEvent, without the per-flipbook breakdown.

Under the hood, the embedded reader posts each event to the parent window. The connector is just a small listener on top of it — if your tool isn’t in the list above, any script on your page can listen for the same messages:

window.addEventListener('message', (e) => {
if (e.origin !== 'https://embed.livingpage.app') return;
const m = e.data;
if (!m || m.source !== 'livingpage') return;
// m.event → 'flipbook_view' | 'flipbook_page_view' | 'flipbook_read_time'
// m.props → { flipbook_title, flipbook_slug, flipbook_id, flipbook_client, flipbook_page, flipbook_read_seconds }
yourAnalytics.track(m.event, m.props);
});

Always check e.origin is https://embed.livingpage.app before trusting a message.

Only what’s needed to identify the flipbook: its title, slug, id, the page number, the read time, and the client name. No reader is identified — the connector forwards the same anonymous, cookieless events Living Page measures, into a tool you control. What it does with them is up to your own analytics setup and privacy policy.

Read analytics — what Living Page measures on every plan, and what stays private.