Overview of the process
For each incoming lead (from any ad platform):- Capture ad metadata (campaign, ad, platform).
- Build a synthetic landing page URL using UTMs.
- Generate a Google Client ID (UUID).
- Send both fields (
landing_page,google_client_id) to your CRM. - Send a synthetic lead event to GA4 using the same client ID.
- Once implemented, SegmentStream can automatically stitch GA4 events, CRM leads, and campaign costs — even for leads collected inside the platforms without website visits.
Why this works
Even though the user never lands on your site, the synthetic landing page and UUID create a virtual session. This lets analytics systems register a visit with proper UTMs and connect it to your CRM record, providing a unified, channel-attributed view of lead generation performance.Step 1: Generate a Google Client ID (UUID)
Instead of simulating GA4’s native client ID, simply use a UUID for clarity. This makes it evident that the session was artificially generated.google_client_id, and reuse the same value when sending the GA4 event.
Step 2: Create synthetic landing pages
For each lead, construct a synthetic landing page URL in this format:Example
landing_page.
Step 3: Send synthetic event to GA4
Use the GA4 Measurement Protocol endpoint:Step 4: Send data to CRM
Your CRM (HubSpot, Pipedrive, Salesforce, etc.) should include at least the following custom fields:| Field | Description |
|---|---|
landing_page | Synthetic URL with UTMs |
google_client_id | UUID shared with GA4 |
source_platform | Platform name (Meta, LinkedIn, TikTok, Google) |
campaign_name | From ad metadata |
ad_name | From ad metadata |
Step 5: Platform-specific implementation
Meta (Facebook and Instagram Lead Ads)
Metadata available:ad_id, ad_name, adset_name, campaign_name, platform
UTM formula:
- Trigger: New Lead in Facebook Lead Ads
- Generate
google_client_id(UUID) - Build
landing_pageURL - Send both to CRM
- Post synthetic
lead_submissionevent to GA4 via webhook
LinkedIn Lead Gen Forms
Metadata available:campaignName, adGroupName, creativeId, leadGenFormName, platform
UTM formula:
- Trigger: New LinkedIn Lead
- Generate
google_client_id - Construct
landing_pageURL - Push to CRM
- Send event to GA4
Google Ads Lead Form Extensions
Metadata available:campaign_name, ad_group_name, form_id
UTM formula:
- Trigger: New Google Lead Form Submission
- Generate
google_client_id - Build synthetic
landing_pageURL - Send to CRM
- Push to GA4
TikTok Instant Forms
Metadata available:campaign_name, adgroup_name, ad_name, platform
UTM formula:
- Trigger: New TikTok Lead
- Generate
google_client_id - Build synthetic
landing_pageURL - Send both to CRM
- Send GA4 event via webhook
Summary
| Step | Action |
|---|---|
| 1 | Capture ad metadata |
| 2 | Generate UUID as google_client_id |
| 3 | Construct synthetic landing_page with UTMs |
| 4 | Send to CRM |
| 5 | Send synthetic GA4 event via Measurement Protocol |