ASC GA4 Standard v1.2 — Dealership Analytics Without a Separate Session
Platform updatev1.2

Platform update

ASC GA4 Standard v1.2 — Dealership Analytics Without a Separate Session

Carvia widgets emit ASC GA4 v1.2 events through a secure iframe-to-parent postMessage bridge into window.asc_datalayer.events, GTM dataLayer as dl_<event> + eventModel, and parent gtag when already present — on by default, without extra pageviews on injected VDPs.

~6 min read
01

Release Overview

Carvia widgets now support the Automotive Standards Council (ASC) GA4 Standard v1.2 without creating a separate analytics session inside the iframe.

Interactions that Carvia actually owns — report navigation, configuration, CTAs, and the Get My Full Report lead form — are mapped to canonical ASC events and forwarded through a secure parent-page SDK listener. Events are written to window.asc_datalayer.events with the real asc_* name. GTM receives { event: "dl_<asc_event>", eventModel } so ASC GTM-5FC28SQ tags can listen without double-counting GA4. If the dealer page already loaded gtag, the parent SDK also forwards the event with existing dealer Measurement IDs as send_to. Carvia never invents those IDs or loads gtag.js inside the iframe. Your consent and attribution stay in place. Carvia's first-party carvia_* widget analytics is unchanged and is not renamed to ASC.

Standard: ASC GA4 Standard v1.2  ·  Default: On for all widget clients  ·  Unsupported dealer pages: No-op, widgets still load  ·  Measurement IDs: Optional — used only if the dealer page already defines them

02

What's New

  • Secure iframe-to-parent postMessage bridge with origin, source-window, envelope, and schema validation.
  • Dealership asc_datalayer.events forwarding, GTM dl_* dataLayer events, and optional parent gtag using the parent page URL as page_location.
  • Standardized ASC payload mapping (VIN, year/make/model, condition, MSRP when known).
  • PII-safe handling: customer name, email, phone, and free-text comments never enter ASC events.
  • In-page VDP widgets do not fire asc_pageview or asc_item_pageview — the dealer site already owns those.
  • Duplicate prevention for the parent listener; share-form engagement is start on the first field and engage on later fields.
  • Persistent compliance documentation and Cursor rule so future widget features are checked against the ASC catalog.

An earlier unused v1.1 mapper that required Carvia to own dealer Measurement IDs is replaced. The parent SDK only reads IDs the dealer page already published on asc_datalayer.


03

Implemented Event Families

Only interactions Carvia owns are tracked:

  • asc_cta_interaction for explicit CTAs and outbound links.
  • asc_menu_interaction for carousel tabs, pagination, and swipe between report slides.
  • asc_element_configuration for accordions, EV controls, and cost-view toggles.
  • asc_form_engagement, asc_form_submission, and asc_form_submission_sales for Get My Full Report after confirmed success.

Voice, chat, video call, click-to-call, special-offer popups, media galleries, and retail/finance/trade flows are not claimed — Carvia does not currently own those experiences.


04

Privacy & Duplicates

Form engagement fires on each distinct field — comm_status=start for the first, engage after that — not when the modal appears and not on every keystroke. Submission fires only after the Carvia backend confirms success and returns a lead id. See Verified Details is a single asc_cta_interaction with event_action_result=popup|form. Widget injection on an existing VDP does not emit ASC pageviews.


05

Enablement

Disable globally with WIDGET_ASC_ENABLED=false, per client from the admin client overview (ASC tracking toggle), or per embed with CarviaWidgets.mount({ asc: false }). See docs/standards/asc-v1.2.md for the full catalog and GTM fallback snippet.