GOOGLE ADS INTEGRATION: Conversion Postbacks with Snippets & DNI
Location: Integrations → Google Ads → Overview / Configuration; Integrations → Snippets; Reporting / Call Tracking
Use Case: Upload eligible Moja call conversions back to Google Ads using Upload Targets, Traffic Rules, and an unmatched-call routing policy
Summary
Moja can upload eligible call conversions to Google Ads when a call can be tied back to a Google Ads click. For website call attribution, this requires Moja to capture a Google click identifier from the visitor session and connect that session to the phone call.
In practice, customers should use the Moja website snippet with Dynamic Number Insertion (DNI). The snippet captures supported Google click identifiers, and DNI connects the visitor session to the dynamically inserted Moja tracking number.
Related guide: DNI, Tracking Tags/Snippets, and Number Pools
Why This Matters
Google Ads conversion postbacks help customers optimize campaigns based on real call outcomes instead of clicks alone.
This integration enables customers to:
Send eligible call conversions from Moja back to Google Ads
Attribute website calls to the original Google Ads click
Route conversions to the correct Google Ads account and conversion action through Upload Targets and Traffic Rules
Troubleshoot missing conversions by checking whether a click identifier was captured
The key requirement is attribution: Moja must have a supported Google click identifier on the call before it can upload the conversion.
What's Included
Google Ads conversion postbacks — upload eligible Moja call conversions to Google Ads
Upload Targets — linked Google Ads accounts and conversion actions that may receive conversions; each target can require a minimum Connected call length
Traffic Rules — route eligible calls to one or more Upload Targets using URL
moja_ga_routevalues or supported snippet matches; show each target’s Connected call length condition and preview eligibility for an example call lengthUnmatched-call routing policy — choose No Default Destination (fail closed) or Send Unmatched Calls to a Default Destination (with ownership confirmation for multi-account defaults)
Paused until routing is reviewed — new and migrated integrations stay Paused until Configuration is reviewed and ready
Historical Call Recovery — frozen preview of eligible historical calls, then confirm and queue within Google’s 90-day upload window
Supported click identifiers —
gclid,gbraid, andwbraidMoja snippet support — capture landing-page visitor session data
DNI attribution — connect the visitor session to a dynamically inserted Moja number
Per–Upload Target delivery reporting — routing source and Traffic Rule context, with independent results and Google errors per target; skipped targets (below Connected call length) listed separately from Google upload failures
Delayed upload processing — process eligible conversions on a scheduled basis
Automatic retries — retry failed uploads up to the configured retry limit
How It Works (End-to-End)
Visitor clicks a Google ad — Google sends the visitor to the landing page with a supported click identifier such as
gclid,gbraid, orwbraid.The Moja snippet loads — The snippet captures the visitor session and available click identifier from the landing-page URL.
DNI replaces the phone number — The visitor sees a dynamically inserted Moja tracking number from the configured number pool.
The visitor calls — The call is associated with the snippet session and the captured click identifier.
Moja evaluates the conversion — If the call is eligible, Moja applies Traffic Rules and the unmatched-call routing policy to select the Upload Target or Targets, then uploads only to targets whose Connected call length minimum the completed call meets.
Moja uploads to Google Ads — Uploads are delayed and processed automatically on a schedule to each selected Upload Target. Failed uploads are retried when possible. Unmatched calls stay unroutable when No Default Destination is selected.
Feature Details
Google Ads Click Identifiers
What Are Click Identifiers?
Click identifiers are values Google uses to connect a website visit back to an ad click. Moja needs one of these identifiers on the call before it can upload a Google Ads click conversion.
Supported identifiers include:
gclidgbraidwbraid
If none of these identifiers are present, the call cannot be uploaded as a Google click conversion.
Moja Snippets
What the Snippet Does
The Moja snippet runs on the customer’s website and captures visitor-session data from the landing page. This is what allows Moja to preserve Google Ads attribution before the caller places the call.
Why the Snippet Matters
Without the snippet, Moja usually cannot see the website session or the Google click identifier. That means the resulting call may appear in Moja but still be ineligible for Google Ads upload.
DNI / Dynamic Number Insertion
What DNI Does
DNI replaces website phone numbers with Moja tracking numbers from a configured number pool. This lets Moja connect the visitor session captured by the snippet to the actual inbound call.
Why DNI Matters
Static-number calls usually do not carry the website visitor session or Google click identifier needed for Google Ads click conversion uploads. Use Moja snippets and DNI when customers want website calls attributed and uploaded to Google Ads.
Upload Targets
Upload Targets are the linked Google Ads accounts and conversion actions that may receive Moja call conversions. Create one or more Upload Targets so multi-account setups can control exactly which account and conversion action receives each eligible call.
Each Upload Target can require a minimum Connected call length before that conversion is uploaded. Connected call length is the time after the buyer answers — the same Call Length value on the call log, and the same length used for conversion and payout.
Only the targets a completed call meets are uploaded. Targets below the minimum are skipped with a reason; they are not treated as Google upload failures. Set Connected call length in minutes and seconds when adding a target or editing an existing target’s condition. 0:00 means no minimum (previous behavior). Use the up/down controls or type the length; 0:59 rolls to 1:00.
The condition applies to completed calls that have not been processed yet, including recent calls still waiting. Calls already processed keep their existing upload decisions. Changing a minimum does not retract conversions Google already accepted.
Traffic Rules
Traffic Rules route eligible calls to one or more Upload Targets. Rules can match URL moja_ga_route values or supported snippet matches. Each rule selects the Upload Target or Targets that should receive matching calls.
Traffic Rules show each target’s Connected call length condition. Enter an example call length to preview which targets would be eligible or below the minimum.
Unmatched-call routing policy
Choose how Moja handles eligible calls that do not match a Traffic Rule:
No Default Destination — unmatched calls stay unroutable (fail closed). Moja uploads only calls that match a Traffic Rule.
Send Unmatched Calls to a Default Destination — select the intended Upload Target for unmatched calls. Multi-account defaults require an ownership confirmation and are not used as failover after a rejected upload.
Routing changes apply to new calls from their activation time. Older calls are not released automatically.
Paused until routing is reviewed
New and migrated Google Ads integrations remain Paused until routing has been reviewed and is ready. Use Overview to check readiness, Enhanced Conversions for Leads status, and reconnect, permission, account-access, or temporary-error guidance before relying on uploads.
Historical Call Recovery
Historical Call Recovery recovers earlier eligible calls without auto-releasing them. In Configuration → Historical Call Recovery:
Choose a required date-and-time range within Google’s 90-day upload window.
Optionally enter Exact Call IDs.
Select Preview Historical Calls. Review the frozen preview of eligible calls, Traffic Rules, Upload Targets, default-routed calls, and unroutable results. Calls that already have an active or successful delivery are excluded.
Confirm the exact scope, then select Queue This Historical Scope.
Nothing is queued until you confirm the frozen preview.
Preview and execution apply the same Connected call length check as live uploads. Delivery stats and the historical-recovery preview list skipped targets separately from Google upload failures.
How to Set It Up
Setting Up Google Ads Conversion Postbacks
Enable Google Ads auto-tagging, or make sure supported Google click identifiers are preserved on landing-page URLs.
In Moja, go to Integrations → Google Ads and open the integration.
On Overview, confirm connection health, Active or Paused status, Enhanced Conversions for Leads readiness, and any reconnect, permission, account-access, or temporary-error guidance.
Open Configuration. Create or review Upload Targets for the linked Google Ads accounts and conversion actions that may receive conversions. When adding or editing a target’s condition, set Connected call length (minutes and seconds); 0:00 means no minimum.
Create Traffic Rules for URL
moja_ga_routevalues or supported snippet matches, then select the Upload Target or Targets for each rule. Use Traffic Rules to see each target’s Connected call length condition and preview which targets an example call length would meet.Under the unmatched-call routing policy, choose No Default Destination to upload only calls that match a Traffic Rule (fail closed), or choose Send Unmatched Calls to a Default Destination and select the intended Upload Target. Confirm account ownership when prompted for a multi-account default. Multi-account defaults are not used as failover after a rejected upload.
New and migrated integrations stay Paused until routing has been reviewed and is ready. Activate only after Configuration is correct.
Go to Integrations → Snippets.
Create or edit a snippet for the landing page.
Copy the snippet code and paste it into the
<head>section of the landing page.Configure the snippet fields, including Snippet Name, Campaign (Default) Number, Number to Replace, and Number Pool.
Confirm Enable Number Replacement is turned on for the snippet.
Place a test call from a URL containing a supported click identifier and confirm the call has attribution data in Moja and routes to the expected Upload Target.
Configuring Phone Number Replacement
The snippet can be configured to control which phone numbers are replaced. In the Snippets table and edit screen, use the visible fields to confirm the replacement setup:
Snippet Name — the label used to identify the snippet
Number to Replace — the static website number that should be replaced
Number Pool Name / Number Pool — the pool of Moja tracking numbers used for DNI
Enable Number Replacement — whether DNI replacement is active
If the customer uses multiple domains, review Linked Domains in the snippet configuration to help maintain visitor IDs across sites.
Where This Lives in the UI
Google Ads integration → Integrations → Google Ads
Overview → Integrations → Google Ads → Overview (status, readiness, reconnect / permission guidance)
Configuration → Integrations → Google Ads → Configuration (Upload Targets, Traffic Rules, unmatched-call routing policy, Historical Call Recovery)
Snippets / DNI → Integrations → Snippets
Snippet Code → Edit Snippet → copy code into the landing page
<head>sectionNumber Pool Assignment → Edit Snippet → Number Pool
Cross-Domain Tracking → Edit Snippet → Linked Domains
Google Ads Attribution Reporting → Reporting / Call Tracking
Verifying Google Ads Attribution in Reporting
After calls begin flowing, use Reporting / Call Tracking to confirm whether Google Ads attribution is being captured and uploaded.
Useful reporting labels include:
WITH GCLID — calls with a captured Google click ID
CONVERSIONS — calls counted as conversions
UPLOADED — conversions uploaded back to the ad platform
Tracking IDs — table column showing captured tracking identifiers
Conversion Value | Type — table column showing conversion value and conversion type
Troubleshooting
Calls Are Showing in Moja but Not Uploading to Google Ads
Check whether the call has a captured Google click identifier:
gclidgbraidwbraid
If none are present, the call cannot be uploaded as a Google click conversion.
Calls Have No Google Click ID
Common causes include:
Google Ads auto-tagging is not enabled
The landing-page URL is losing query parameters
The Moja snippet is not installed on the landing page
The snippet loads after the visitor has already called
The phone number was not replaced through DNI
The visitor called a static number instead of the dynamically inserted number
Static Numbers Are Not Uploading
That is expected in most cases. Static-number calls usually do not carry the website visitor session and Google click identifier needed for Google Ads click conversion uploads.
Use Moja snippets and DNI if those calls should be attributed and uploaded.
The Wrong Number Is Being Replaced
Review the snippet’s phone replacement configuration. Make sure the snippet is replacing the correct phone number and ignoring any numbers that should stay static.
Eligible Calls Are Not Uploading (Unmatched or Paused)
Confirm the integration is Active on Overview. New and migrated integrations stay Paused until routing is reviewed.
Confirm Traffic Rules match the call’s
moja_ga_routeor snippet.If the routing policy is No Default Destination, unmatched calls stay unroutable by design.
If using a Default Destination, confirm the selected Upload Target and any required ownership confirmation for multi-account defaults.
Review per–Upload Target delivery reporting for routing source, Traffic Rule context, and Google errors.
If a target was skipped for Connected call length, that appears separately from Google upload failures — confirm the call’s Call Length meets the target’s minimum.
Upload Timing & Retry Behavior
Moja does not upload conversions instantly.
Uploads are delayed to respect Google Ads requirements and configured upload delays.
Eligible conversions are processed automatically on a scheduled basis.
If Google Ads is temporarily unavailable or an upload fails, Moja retries automatically up to the configured retry limit.
Backward Compatibility & Safety
Existing call tracking continues to function unchanged.
Static numbers can still receive and track calls in Moja.
Google Ads uploads only apply when the call has the required attribution data.
Upload Targets with Connected call length 0:00 keep the previous behavior (no minimum).
Snippet and DNI configuration should be tested before relying on uploads for campaign optimization.
In short: for automatic Google Ads call conversion uploads from website visitors, Moja Snippets + DNI are required.
