
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.
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.
What's New
- Secure iframe-to-parent
postMessagebridge with origin, source-window, envelope, and schema validation. - Dealership
asc_datalayer.eventsforwarding, GTMdl_*dataLayerevents, and optional parentgtagusing the parent page URL aspage_location. - Standardized ASC payload mapping. Vehicle
item_*parameters are copied from the dealerasc_datalayer.items[0](VIN-matched when present) so they match the website provider; Carvia VIN/MSRP mapping is fallback only when the host item is missing those fields. - PII-safe handling: customer name, email, phone, and free-text comments never enter ASC events.
- In-page VDP widgets do not fire
asc_pagevieworasc_item_pageview— the dealer site already owns those. - Duplicate prevention for the parent listener; share-form engagement is
starton the first field andengageon later fields. - In-carousel Vini chat emits
asc_comm_engagementwithout utterance text, and Connect with our team usesform_name=connect_with_team.
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.
Implemented Event Families
Only interactions Carvia owns are tracked:
asc_cta_interactionfor explicit CTAs, outbound links, and opening Vini chat.asc_menu_interactionfor carousel tabs, pagination, swipe between report slides, and suggested Q&A Learn more.asc_element_configurationfor accordions, EV controls, and cost-view toggles.asc_comm_engagementfor in-carousel Vini chat (comm_type=chat, first shopper messagestart, laterengage). Utterance text is never sent.asc_form_engagement,asc_form_submission, andasc_form_submission_salesfor Get My Full Report and Connect with our team after confirmed success. In-chat usesform_name=connect_with_team.
Voice, video call, click-to-call, special-offer popups, media galleries, and retail/finance/trade flows are not claimed. Chat transcript text never enters ASC events.
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.
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.