What this is
A CSV with the columns most offline click import flows expect, example rows, and a markdown mapping guide from CRM fields to Ads fields.
Who it is for
Ops teams preparing manual or middleware uploads from HubSpot, Salesforce or Pipedrive.
How to use it
Map your CRM export to the columns. Validate timezone and currency before the first production upload. Prefer API automation once the mapping is stable.
Mistake it prevents
Uploading conversion times in the wrong timezone or mixing currencies, which creates Accepted rows that still poison bidding.
Timezone discipline
conversion_time must include an offset matching Google Ads account rules. HubSpot and Salesforce UTC exports need explicit conversion before upload.
Dedupe keys
order_id should be deal or opportunity id plus stage name. Retries without order_id create Accepted duplicates that look like growth.
Consent column
Where required, pass ad_user_data consent explicitly. Do not default to GRANTED when unknown.
How teams actually adopt Offline conversion upload template
Map CRM fields to the template columns before the first production file. Timezone offsets and currency are the usual silent poisons. order_id prevents weekend retry doubles. Consent columns should not default to GRANTED. Synthetic example rows contain no client data. Automate via API once the mapping is stable; keep this CSV as the human-readable contract.
Quality bar for offline-conversion-upload-template
Quality bar for offline-conversion-upload-template: the download must be usable without a sales call. If a colleague cannot apply it in one sitting, the artefact is incomplete. Keep British English. Strip any client residue before publishing. Link the finished internal copy back to /resources/offline-conversion-upload-template/ so updates stay findable. Review the file when your CRM stages, GA4 events or account structure change, not only when someone asks for a refresh.
Prefer a guided build? See CRM implementation and conversion tracking and attribution.