We are looking for an experienced WordPress developer who understands how GA4 tracking works under the hood (including cookies, identifiers, and client-side vs server-side data flows) to implement a reliable data-capture layer for form submissions on the website.
• **Goal***
When a Contact Form 7 form is submitted on a WordPress website, a structured payload must be sent to a Zapier webhook (used as a trigger for downstream automation).
The payload must include the following data groups:
1. Form & submission data (required) - Data that represents what was submitted and which form it came from
- All submitted form fields (raw form response data; varies per form)
- CF7 form ID (numeric)
- CF7 form title
- Unique submission identifier (submission_uuid)
• Must be present on every submission
2. Page & request context (required) - Data that explains where, when, and under what conditions the submission happened
- Page URL
- Page title
- Page referrer
- submitted_at_utc
- submitted_at_unix_ms
- User agent
- User IP address
• Required for attribution and logic in downstream automation
3. Marketing & attribution identifiers (capture when available) - Data used for conversion attribution and analytics reconciliation
3.1. Google Ads identifiers:
- gclid
- gbraid
- wbraid
3.2. GA4 identifiers (best-effort, but reliable when present):
- ga_client_id
- ga_session_id
3.3. UTM parameters:
- utm_source
- utm_medium
- utm_campaign
- utm_term (optional)
- utm_content (optional)
• Must be captured when available, but must not block form submission
The solution must:
- Capture data from the correct source (URL parameters, first-party cookies, GA4 cookies, JS context)
- Capture all required identifiers (including GA4 client/session identifiers and Google Ads identifiers) reliably and at the correct time (before or at the moment of form submission), without relying on post-submit or timing-dependent workarounds.
- Work consistently in real-world conditions (multiple pageviews, delayed submits, different browsers/devices, consent mode)
- Separate client-side data collection from server-side processing where appropriate
- Send a clean, structured JSON payload to a Zapier webhook
• **Important note***
We already attempted an implementation, but GA4 client/session identifiers are not consistently captured.
Your task is to implement this properly and reliably, using best practices.
• **Who should apply***
Please apply only if you have real, hands-on experience with:
- Advanced Contact Form 7 integrations (beyond default form handling)
- JavaScript and PHP used for data capture and form-submit handling in WordPress
- GA4 tracking internals, including cookies and identifiers (_ga, _ga_*, client and session IDs)
- Google Ads click identifiers (gclid, gbraid, wbraid) and how they are captured and persisted
- Google Tag Manager (GTM) and basic client-side vs server-side tracking concepts
- Building and sending structured JSON payloads to webhooks (Zapier / n8n)
- Debugging attribution, cookie availability, and timing-related issues
This is not a basic WordPress or GTM task. A solid understanding of how GA4/Google Ads tracking identifiers are collected on the client side and forwarded server-side via a webhook is required.
Apply Now
Apply Now