Google Ads conversion tracking without the Google tag
Last checked:
You can send conversions to Google Ads without installing the Google tag. Keep the ad click ID, attach it to the event you measure, then upload that event from your server. Google calls this offline conversion import. It does not, by itself, make consent unnecessary.
Our own campaign pipeline separates a click to a partner store from commission confirmed later. That distinction matters more than the choice of upload tool: bidding on a store click is different from measuring a sale. The steps below work with your own backend or CRM. You do not need a Savri account.
1. Define the event and the permission to send it
Choose one observable event: a submitted enquiry, a completed purchase, or an outbound store click. Give it a precise name. In our implementation, expected earnings attached to an outbound click are an estimate; confirmed commission is a separate conversion action.
Before collecting identifiers, establish where they will be stored and when they may be shared. Google’s EU user consent policy addresses local storage where consent is required and personal data used for ad personalization. The relevant question is what your implementation does with data.
The API’s consent object is optional in the request format. Its values describe the user’s choice. Do not turn an unknown choice into granted consent just because your site has no cookies. Resolve any uncertainty about sending the data before uploading it.
2. Create an offline conversion action
In Google Ads, open Goals and Summary, then create a conversion action using an offline source. Follow Google’s setup instructions to choose the category and data source. A conversion action alone does not start an import.
We recommend observing the new action before letting it steer bids. Use a separate action for each meaning, rather than labelling both a store click and a sale as a purchase. Note the receiving account ID and the numeric conversion action ID. The API destination used here requires an UPLOAD_CLICKS action, as specified in Google’s destination guide.
3. Keep the Google click ID through the journey
Check Auto-tagging under Admin and Account settings. When enabled, auto-tagging adds GCLID to ad URLs. Your redirects must preserve it. Test the exact landing page, including any move between www and the bare domain.
https://example.com/landing?gclid=TeSter-123This is a synthetic parameter. Try it on your own URL and inspect the redirect chain in the browser Network panel. Finding it at the destination proves parameter preservation only. It is not a Google ad click and must not become a reported business conversion.
Next, make your backend or CRM retain the real click ID with the corresponding lead or event. Include an event timestamp and a stable record ID. Test that the later conversion retrieves the same record. If you cannot establish that link, leave the event unmatched instead of assigning a nearby visitor’s click.
Our analytics script sends the page URL to the server, where the click ID is associated with the visit. A separate part of our affiliate tracking can also keep a click ID in browser localStorage. That is why “no cookies” is an incomplete description of storage across the whole journey.
4. Set up the Data Manager API connection
For a custom integration, enable Data Manager API in your Google Cloud project, configure authentication with its access scope, and grant the authenticating account access to the Ads destination. Use Google’s access setup. Keep credentials on the server.
Prepare one event from your source record. This example describes a fictional enquiry, not campaign results. See the events.ingest reference for the request fields.
| Field | What to supply |
|---|---|
adIdentifiers.gclid | The real click ID retained with this enquiry. |
eventTimestamp | 2026-10-08T14:30:00+02:00, the enquiry’s actual submission time. |
eventSource | WEB for this website event. |
transactionId | lead-example-001, retained across retries. |
| Value and currency | Leave monetary value out if you do not have a defensible value for the event. |
5. Validate the request before an actual import
Open Google’s offline event walkthrough and use its API Explorer with your destination and event fields. Start with validateOnly: true. This checks the request without importing the event; passing validation does not demonstrate an ad match.
Once the account, event and data-sharing conditions are checked, submit the genuine conversion. Keep its receipt and per-record outcome. Do not upload the synthetic click ID above. Our own job runs daily, but that schedule is an implementation choice.
6. Reconcile the import with the original record
Retain the import’s requestId and follow Google’s diagnostics workflow. After the initial waiting period, use RetrieveRequestStatus to inspect the destination’s status, errors and warnings. Validation-only requests do not produce these import diagnostics.
Check upload errors and warnings, the receiving action, and the conversion report in Google Ads. Compare the same time zone and conversion date. A successful HTTP response alone does not establish a matched conversion or prove that a purchase happened.
Google’s import guidelines set a 90-day limit after the associated last click for standard offline imports, and 63 days for enhanced conversions for leads. Keep the time of the event separate from the time you upload it.
Where consent mode v2 and enhanced conversions for leads fit
Consent mode changes the behaviour of Google tags and SDKs based on consent. It is distinct from this server import. Enhanced conversions for leads adds hashed customer information, such as email collected through a form. Our described GCLID pipeline does not send that email data.
What this pipeline does not give you
- Our GCLID-only implementation provides no separate evidence of conversions following an ad impression alone.
- It cannot recreate a missing click ID or a broken link between visit and conversion.
- An outbound click does not reveal what someone later bought from a partner.
- There is no promise of more conversions or lower acquisition costs.
Questions about offline conversion import
Can Google Ads track conversions without gtag?
Yes. Offline conversion import links a recorded event to a real ad click using its Google click ID. Your own system must preserve that link and send the conversion to Google.
Does consent mode v2 apply to a server import?
Consent mode controls Google tags and SDKs. Data Manager has separate consent fields for uploads. Neither a server request nor the absence of cookies establishes permission to share data. Consent values must describe the user’s actual choice.
Is GCLID import the same as enhanced conversions for leads?
No. Enhanced conversions for leads uses hashed customer information, such as an email address collected with a lead. This guide describes a click-ID pipeline without that additional matching data.
Can I follow this without an analytics subscription?
Yes. Your own backend or CRM can hold the click ID and conversion record. The API route needs Google Ads access and someone able to configure server authentication. An analytics subscription is not a prerequisite.
All linked Google documentation was checked on 9 October 2026.