Your website tag records the purchase at checkout, but your backend may hold the version of the transaction you actually want Google Ads to learn from: more complete customer information and the amount after an upsell, refund, or final order adjustment.
If both records carry the same transaction ID, Google Ads can use the backend record to improve the tagged conversion instead of forcing you to accept whatever was available in the browser. The implementation is less about uploading more data than establishing a reliable join between two versions of the same business event.
What offline gap filling changes – and what it does not
Google Ads’ multi-source conversions beta can match an offline record to a website conversion through its transaction ID. Once Google finds that match, the offline record can supply user-provided data that the tag did not capture, including an email address, phone number, or address.
The same mechanism can correct the conversion value. If the tag sent an initial amount and your backend later has the finalized order total, upsell, or refund adjustment, the uploaded amount replaces the value attached to the matching tagged transaction.
Think of this as a database join, not a second copy of the sale. One conversion action can receive information from the website tag and the offline system. That distinction helps you avoid three common implementation mistakes:
- Do not assume every offline row enriches a tagged event. The gap-filling path depends on Google finding the corresponding transaction ID. An unmatched record cannot fill fields on a tagged conversion it has not been connected to.
- Do not expect the offline row to overwrite every tag field. The supplemental data is primarily used for missing user-provided information and conversion-value updates.
- Do not use an uploaded GCLID as a repair mechanism for a matched transaction. Google ignores GCLIDs from the supplemental record in this scenario, so they do not replace the information associated with the tag event.
Multi-source reporting may also contain additional conversions from the offline source. Treat those separately in your validation plan. “Conversions added” and “tagged conversions supplemented” are different outcomes, even if they appear under the same conversion action.
The capability is documented as a beta. Confirm that it is available in your account before making it a dependency of your measurement design.
Make the transaction ID your dependable join key

The transaction ID is the bridge between the browser event and the backend record. If the two systems generate unrelated identifiers, drop the value, or transform it differently, the rest of the upload can be accurate and still fail to improve the original conversion.
A clean data path should work in this order:
- Your site completes the conversion and assigns its transaction ID.
- The Google tag sends the conversion with that ID and the data available at that moment.
- Your order system, CRM, or other backend retains the identical ID while customer details and the final value are confirmed.
- Google Ads Data Manager or the Data Manager API sends the supplemental record.
- Google uses the shared ID to associate the offline information with the tagged transaction.
Rules for a durable transaction ID
- Generate the ID once and persist it across the browser, order database, CRM, and upload pipeline.
- Use an ID that represents the actual conversion rather than creating a separate Google Ads-only identifier later.
- Keep it unique to the business event. Reusing an ID across orders makes reconciliation ambiguous.
- Do not embed an email address, phone number, or other personal data in the ID.
- Retain the ID in your integration logs so you can trace a reported mismatch back to the tag payload and backend record.
- Avoid trimming, reformatting, or replacing the ID in only one part of the pipeline.
Before connecting an offline source, take a sample of real conversions and trace each transaction ID from the site event to the backend export. If you cannot follow the same value across that entire path, fix the ID lineage first. Adding more customer fields will not repair an uncertain join.
User-provided data also deserves a separate governance check. Confirm that the information is accurate, that your organization is permitted to send it, and that access to the upload pipeline is appropriately controlled. Matching performance does not justify sending data your business should not use.
Build the offline feed around information that arrives later
Your offline feed should have a narrow job: supplement the browser event with authoritative information that became available elsewhere. It should not become an undifferentiated export of every field in your CRM.
The following controls belong in the internal feed design. Some are upload fields; others are operational metadata that helps you decide whether a record is ready to send.
| Data item | Preferred internal origin | Control to apply |
|---|---|---|
| Transaction ID | The system that created or persisted the conversion | Confirm that it is identical to the ID sent by the website tag. |
| Email, phone number, or address | The approved backend customer or order record | Send only accurate, permitted information intended to fill a field the tag missed. |
| Conversion value | The authoritative order, billing, or CRM record | Publish the amount your business treats as final for that update, including applicable upsell or refund changes. |
| Record status | Your order or revenue workflow | Use it internally to prevent provisional records from being presented as finalized value corrections. |
| Ready and upload timestamps | Your integration log | Measure the delay between backend availability and delivery to Google Ads. |
Conversion value requires the tightest control because the uploaded value replaces the tag’s value for the matching transaction. It is not merely attached as an alternative value. A stale amount in the offline feed can therefore replace a better amount captured on the site.
Define which backend system is authoritative and what “final” means in your business process. Then make that rule part of the integration. Do not label a provisional amount as final simply to make the upload run sooner.
At the same time, delivery speed matters. Google recommends sending the supplemental data within 24 hours for the best Enhanced Conversions matching and bidding performance. Track two intervals separately: how long the backend takes to make the record ready and how long your integration takes to upload it. That separation tells you whether the delay belongs to the business process or the data pipeline.
The 24-hour window is an optimization recommendation, not a promise that every record will match. If your integration routinely misses it, shorten unnecessary batch, approval, and transfer delays. Preserve data accuracy while doing so; faster uploads of unreliable values are not an improvement.
Use the 14-day trial to validate the pipeline, not bidding

You can connect the additional source through Google Ads Data Manager or the Data Manager API. A newly connected source then enters a 14-day trial period.
The trial creates an important split between what you can see and what Google uses. Additional conversions may appear in reporting and diagnostics during those 14 days, but they are not used for bidding. Conversion-value updates are also disabled during the trial.
That means a reporting change during the trial is not evidence that Smart Bidding has learned from the new source. It is also not a valid test of whether finalized offline values are replacing the original tag values. Changing campaign targets or budgets solely because trial-period reporting moved could make you react to information the bidding system is not yet using.
Structure the rollout in three phases:
- Before connection: preserve a baseline of tag counts, values, transaction-ID coverage, upload latency, and relevant campaign reporting. Save enough internal detail to explain differences later.
- During the 14-day trial: confirm that records arrive, inspect diagnostics, investigate unmatched or duplicated internal IDs, and verify that the correct conversion action and backend source are involved. Do not score bidding or value correction while those functions are inactive.
- After the trial: verify that the source has left trial status, check value behavior against the authoritative backend output, and annotate the activation date in your performance analysis.
A practical validation checklist
- Identity coverage: for sampled transaction IDs, confirm that a field missing from the tag is present in the approved backend record.
- ID overlap: compare the set of IDs sent by the tag with the set prepared for upload. Investigate unexpected gaps before looking for a Google Ads explanation.
- Uniqueness: ensure your internal export does not present unrelated transactions under the same ID.
- Value authority: compare the outbound value with the finalized amount in the designated system of record before it reaches Google.
- Delivery latency: count the records sent inside and outside the recommended 24-hour window. Monitor the trend instead of relying on an average that can hide delayed batches.
- Trial separation: label trial-period reporting so nobody mistakes visible additional conversions for bidding inputs or completed value corrections.
- Post-trial monitoring: watch diagnostics and reporting after activation rather than assuming that a successful upload guarantees a successful match.
When numbers differ, debug in the order the data travels: tag execution, transaction-ID persistence, backend record readiness, export construction, upload delivery, matching, and finally reporting. Starting with campaign performance makes a pipeline problem much harder to isolate.
Key takeaways
- Google Ads offline gap filling uses the transaction ID to connect backend information with the corresponding website-tag conversion.
- A matched upload can add missing user-provided data such as an email address, phone number, or address.
- An uploaded conversion value replaces the original value on the matching tagged transaction, so only an authoritative system should publish value corrections.
- An uploaded GCLID is ignored for matched transactions and should not be treated as a way to overwrite the tag’s attribution information.
- Send supplemental data within 24 hours when possible to support Enhanced Conversions matching and bidding performance.
- During a new source’s 14-day trial, additional conversions may be visible but are not used for bidding, while value updates remain disabled.
Start with one conversion action whose transaction IDs are already stable. Trace a sample from the tag to the backend, name the system that owns the final value, and define your trial acceptance checks before connecting the source. If that lineage is clean, the offline feed can close specific measurement gaps without turning your conversion setup into two competing versions of the truth.
References


Leave a Reply