---
title: Measure persistent CTA interactions in GA4 | Barrava
description: Set up and check Barrava CTA events in GA4, then read clicks beside eligible visits and real outcomes. Includes a worked reporting example and common traps.
image: https://www.barrava.com/hubfs/barra-seo/persistent-cta-analytics-cookie-featured.png
---

[Skip to content](https://www.barrava.com/blog/measuring-persistent-cta-interactions-ga4#main-content)

 Close

- [Home](https://www.barrava.com/)
- [Blog](https://www.barrava.com/blog)
- [Pricing](https://www.barrava.com/pricing)
- [Interactive demo](https://www.barrava.com/interactive-demo)

[Get Started](https://app.barrava.com/signup)

[Login](https://app.barrava.com/login)

[![Barrava logo](https://www.barrava.com/hs-fs/hubfs/Barrava_logo_Green_no_BG-1.png?width=1462&height=324&name=Barrava_logo_Green_no_BG-1.png)](https://www.barrava.com)

- [Home](https://www.barrava.com/)
- [Blog](https://www.barrava.com/blog)
- [Pricing](https://www.barrava.com/pricing)
- [Interactive demo](https://www.barrava.com/interactive-demo)

[Get Started](https://app.barrava.com/signup)

[Login](https://app.barrava.com/login)

![A persistent call-to-action sending interaction events through a measurement funnel to an outcome dashboard](https://www.barrava.com/hs-fs/hubfs/barra-seo/persistent-cta-analytics-cookie-featured.png?width=300&name=persistent-cta-analytics-cookie-featured.png)

[Rich Tank](https://www.barrava.com/blog/author/rich-tank)20 Jul 269 min read

# How to measure persistent CTA interactions in GA4

[Previous](https://www.barrava.com/blog/persistent-mobile-actions-without-covering-content)

<https://www.barrava.com/blog>

[Next](https://www.barrava.com/blog/audit-conversion-surface-before-increasing-ad-spend)

The new “Book a demo” action is visible at the bottom of your site. On Monday, the team asks how it performed. One report shows 140 clicks. Another shows 22 bookings. Neither tells you whether the action helped, or even whether the two numbers describe the same visitors.

Start with the journey. Was the bar available on the pages that matter? Which action did people use? Did the booking page work? Did anyone complete a booking? Each step needs a separate answer. **Google Analytics 4 (GA4)** can help you connect the steps in your site's wider reporting. Barrava supplies named interaction events to an existing Google tag setup; it does not install GA4 or turn a click into a booking.

This guide is about configuring and reading Barrava's **current** events. If your team first needs to agree names for all website actions, make that a separate measurement plan. Here we will get one persistent action working and make its report honest.

## Decide what “working” means before opening GA4

A **persistent CTA**, or call to action, remains available while someone moves around the page. It might be a “Book a demo” button in a bottom bar. Persistence solves one problem: the visitor does not need to scroll back to find the next step. It does not tell you whether that step was right for them.

Write one sentence before changing settings: “For pricing-page visitors, the demo action should make booking easier without covering content or producing poor-quality enquiries.” That sentence gives the report a job. Use three layers:

| Layer | Useful question | Example signal | Limit |
| --- | --- | --- | --- |
| Availability | Did the Barrava bar load for an eligible visit? | `Barra_Loaded` | A load does not prove the CTA was in view or noticed. |
| Interaction | Which action did someone select? | `Barra_Click_Book_A_Demo` | A click is not a completed booking. |
| Outcome | Did the valuable next step actually happen? | A confirmed booking or valid `generate_lead` event owned by your booking or form system | A later outcome is not automatically caused by Barrava. |

Add a **guardrail**: a signal that would make you reconsider even if clicks rise. On mobile, that might be content obscured by the bar; operationally it might be failed loads or duplicate events. You may need a simple page review as well as analytics, because GA4 cannot tell you whether a sticky element covers a form field.

## See which events Barrava actually provides

Barrava can report to your site's existing GA4 setup when that path is enabled and a compatible Google tag or data layer is present. Its current names include `Barra_Loaded` when the widget loads, `Barra_Load_Blocked` for the supported blocked-load signal, and `Barra_Click_<Visible_Label>` for a module interaction. For example, a visible label “Book a demo” becomes `Barra_Click_Book_A_Demo`. The label is turned into words separated by underscores. Change the label and you may create a **new event name** in the report, so record the rename date. This is verified in [Barrava's installation and analytics reference](https://www.barrava.com/blog/install-website-toolbar-gtm-direct-script) and the current runtime configuration; it is a product-specific naming rule, not a GA4 standard.

Keep visible labels short and stable. GA4 treats uppercase and lowercase event names as different and does not process names longer than 40 characters. A long label can therefore make the generated `Barra_Click_...` name unusable, while a copy edit can split one action's history across two names. Check the exact name in your test session and note any rename date. [Google Analytics: event naming rules](https://support.google.com/analytics/answer/13316687); [event collection limits](https://support.google.com/analytics/answer/9267744).

These events say what Barrava did or what someone selected. Barrava currently sends the customer GA4 **event name**, not a ready-made set of placement, campaign and CTA-ID parameters. An event is one recorded action or state. A **parameter** is an extra detail attached to it, such as which section of a page held the action. If you need those details, your site analytics owner must design and test them separately; do not assume they arrive with every Barrava event.

The bar also has native operational analytics in Barrava Admin. Those data and GA4 can differ because they use different collection and reporting paths. Reconcile them before treating a discrepancy as visitor behaviour.

## Choose one GA4 delivery route

First, confirm that the **correct GA4 property** is connected to the website. A property is the reporting space where your organisation's site events land. Barrava uses the site's existing Google tag or data layer. It does not create a new property or measurement ID for you.

If your site already exposes Google's `gtag` function, Barrava can send an event command through it. If your site uses **Google Tag Manager (GTM)**, the container can receive events through its data layer. A data layer is a shared place where page scripts pass messages to GTM; a **trigger** is the rule that tells GTM when to act on one of those messages. Google documents both [Google tag and GTM event setup](https://developers.google.com/analytics/devguides/collection/ga4/events).

Ask the tag owner which route sends `Barra_` events into GA4. Do not add a second GA4 Event tag merely because an event also appears in the data layer. If the direct Google tag path and a GTM forwarding rule both send the same interaction to the same property, your “140 clicks” may really be 70 interactions counted twice. Barrava's optional **Send data layer events** setting is for a defined GTM use, not a requirement for the ordinary GA4 route.

Use this small hand-off with the tag owner:

1. Record the GA4 property and the page where the published Barrava bar is active.
2. Pick one action and its exact visible label. Note the expected `Barra_Click_...` name.
3. Confirm which single path sends that event to GA4 and whether a GTM rule forwards it again.
4. Decide who owns the separate booking, lead or sale event at the destination.
5. Record consent rules and the date of any tag or label change.

Google's [recommended events](https://support.google.com/analytics/answer/9267735) include `generate_lead` when someone submits an enquiry and `sign_up` when an account is created. These require deliberate setup at the completed action. Do not rename a button click `generate_lead` just to make the dashboard look encouraging.

## Test one real journey, once

Do a controlled check on the **published site and saved domain**, not just Barrava Admin preview. Open the page as a visitor, check the bar appears, activate the chosen action and follow it through to its destination. Note the time and device. Then ask the analytics owner to check the exact event in **DebugView**, GA4's device-level test stream, or **Realtime**, its recent activity report. Google's [event setup](https://developers.google.com/analytics/devguides/collection/ga4/events) and [troubleshooting guidance](https://developers.google.com/analytics/devguides/collection/ga4/troubleshoot) explain those checks.

Verify the event fires once for one activation. If GTM owns the route, use its Preview view to see which tag fired. Check the event name and page context, then repeat on one mobile page. If the button opens another domain, confirm the booking provider really records the final outcome and whether it can be linked to the originating visit. A click on an external calendar is not a calendar booking.

If nothing appears in GA4, check in a useful order: was the current Barrava config published; did the bar load; was GA4 reporting enabled; did the site expose the right tag or data layer; did consent or a blocker limit collection; did the event go to the expected property; did GTM publish the correct container version? A missing event is not automatically a broken button. Equally, `Barra_Loaded` is not a promise that every visitor sees the CTA.

## Build a report with a denominator you can defend

A **denominator** is the group you divide by to make a rate. “140 clicks” alone has no denominator. Dividing by all site pageviews can also be misleading if the bar was absent on half the pages. Dividing by bar loads can be useful for an operational rate, but one person may load several pages or click more than once. State exactly which count you are using.

Here is an *illustrative* one-week review, not Barrava or customer data. On a defined set of pricing pages, 2,000 consented sessions were eligible for the published bar. `Barra_Loaded` appeared in 1,800 of them; 90 sessions had at least one demo-action interaction; the booking system recorded 24 confirmed meetings; 15 were later judged relevant by sales.

| Question | Calculation for this example | What to investigate |
| --- | --- | --- |
| Did the bar load? | 1,800 / 2,000 eligible sessions = 90% | Why did 200 eligible sessions lack a confirmed load? Check rules, consent, tags and technical failures. |
| Did people use the demo action? | 90 / 1,800 sessions with a loaded bar = 5% | Compare page, device and campaign cohorts before changing the CTA. A load is only an opportunity, not proof of sight. |
| Did meetings happen? | 24 confirmed meetings | Check whether booking records can be reliably connected to the measured sessions. Do not silently divide unrelated totals. |
| Were the meetings useful? | 15 sales-accepted meetings | A higher click rate with fewer suitable meetings may be a worse result. |

This example uses **sessions**, which are periods of site activity, and counts a session once at each step. If your report instead uses total event counts, label it “click events per bar-load event”, not “percentage of visitors who clicked”. Compare like with like: same date range, page group, devices and consent scope. Google's [GA4 reporting schema](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema) keeps event counts, users and sessions as different measures for good reason.

The 90-to-24 gap suggests a booking hand-off worth checking. It does not prove the bar caused the meetings, nor does it prove people abandoned the calendar: consent, cross-domain tracking and unrelated bookings can break that inference. For a causal question—whether the bar added incremental meetings—you need a valid comparison with a genuinely different experience and the same outcome measured in both groups.

## Read the gaps before redesigning the button

If loads are lower than expected, investigate targeting, publishing, blockers and domain config. If interactions are low but the bar loaded, inspect the page: did the visitor see enough evidence before being asked for a meeting, and does the action match the traffic promise? If interactions are healthy but bookings are weak, inspect the destination, form and appointment supply before changing button colour.

GA4's built-in `scroll` event can show a visit reaching 90% of page depth when enhanced measurement is enabled. It is **not** a full record of what the person read, and its automatic outbound `click` event does not cover every internal CTA. Google's [enhanced measurement guide](https://support.google.com/analytics/answer/9216061) is clear about both limits. [Measure attention before optimising CTAs](https://www.barrava.com/blog/measure-attention-before-optimising-ctas) takes this diagnosis further.

Keep privacy in the design. Google prohibits sending names, email addresses and other personally identifiable information into Analytics, including through event names and URLs. Consent choices and browser limits can create valid gaps in the dataset. Record them beside the numbers rather than claiming GA4 sees every visitor. [Google Analytics: avoid personal information](https://support.google.com/analytics/answer/6366371); [Google consent mode](https://support.google.com/analytics/answer/10000067).

Choose one important Barrava action, make one clean test journey and produce a one-page report with its exact denominator, the downstream outcome and the biggest known gap. That is enough to make the next website decision better. If you want to see the toolbar and current event options before planning your implementation, [book a Barrava demo](https://www.barrava.com/book-a-demo).

![avatar](https://www.barrava.com/hs-fs/hubfs/2024%20profile%20pic%20sq.jpg?width=290&name=2024%20profile%20pic%20sq.jpg)

[Rich Tank](https://www.barrava.com/blog/author/rich-tank)Rich Tank is a founder, consultant and product-minded marketer with experience across growth, CRM, digital strategy and user experience. He has spent his career helping businesses improve how they attract, convert and support customers online. He writes about digital experience, website journeys, marketing technology and the broader challenge of creating websites that are both effective and easy to use. Based in London, Rich is particularly interested in the intersection of user behaviour, conversion and product thinking.

## RELATED ARTICLES

[![logo](https://www.barrava.com/hs-fs/hubfs/Barrava_logo_Green_no_BG-1.png?width=1462&height=324&name=Barrava_logo_Green_no_BG-1.png "logo")](https://www.barrava.com)

 Streamline your website with Barrava's unified bottom bar, enhancing user engagement, compliance, and conversions through customisable features like scroll to top and feedback.

© 2026. All rights reserved. Barrava Limited. Company Number: 17014429

- [Cookie Policy](https://www.barrava.com/legal/cookie-policy)
- [Privacy Policy](https://www.barrava.com/legal/privacy-policy)
- [Terms of Service](https://www.barrava.com/legal/terms-of-service)

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Rich Tank",
    "url" : "https://www.barrava.com/blog/author/rich-tank"
  },
  "dateModified" : "2026-07-11T21:31:58.346Z",
  "datePublished" : "2026-07-20T09:00:00.000Z",
  "headline" : "Measure persistent CTA interactions in GA4 | Barrava",
  "image" : [ "https://www.barrava.com/hubfs/barra-seo/persistent-cta-analytics-cookie-featured.png" ],
  "mainEntityOfPage" : {
    "@id" : "https://www.barrava.com/blog/measuring-persistent-cta-interactions-ga4",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://www.barrava.com/hubfs/Barrava_logo_Green_no_BG-1.png"
    },
    "name" : "Barrava Limited"
  }
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://www.barrava.com/#organisation",
  "@type" : "Organization",
  "name" : "Barrava Limited",
  "url" : "https://www.barrava.com/"
}
```