← Back to all Flat Fee outputs

Read-only local campaign artifact

ghl-conversion-tracking-input-gate.md

direct-measurement-wave-1/ghl-conversion-tracking-input-gate.md

# GHL conversion tracking: input gate

**State:** `PARTIAL`  
**Target:** `https://flatfeehousecleanerssarasota.com/`

## What was actually checked

The retained Flat Fee homepage text was searched for `leadconnector`, `gohighlevel`, `locationId`, `__NUXT_DATA__`, iframe markup, and a GHL origin domain. None is present in that text capture. This does **not** prove the current site lacks a GHL form. The text capture is not the original DOM and cannot expose an iframe that was not retained.

## Inputs needed for a real target-specific implementation

| Required input | Why it is needed |
|---|---|
| Exact GHL embed HTML or the current page DOM | Extract the actual `locationId` and permitted origin domain |
| Read-only GTM container evidence | Confirm the real GA4 measurement-ID variable and avoid duplicate tags |
| Read-only GA4 DebugView or Realtime evidence | Verify the event reaches the intended property |
| Owner approval to modify and publish GTM | Required before any production tag change |

## Implementation contract once inputs exist

Use a Custom HTML listener that only accepts the supplied GHL origin or approved GHL domains and only accepts the supplied location ID. On a verified submission, it may push:

```javascript
window.dataLayer.push({
  event: 'lead_form_submission',
  form_name: 'ghl_form',
  page_path: window.location.pathname
});
```

Then a `lead_form_submission` custom-event trigger may fire a GA4 event tag. This snippet is a generic template, not installed code, and deliberately contains no invented GHL domain, location ID, or GA4 ID.

## Completion test

GTM Preview must show exactly one listener event and exactly one GA4 event after a controlled non-production test submission. GA4 DebugView must receive the event with the approved non-PII parameters. This wave made no form submission and no GTM or GA4 change.