Log in / Create free account🌐 ES☀️

Advanced training · Module 11 — Practical tutorials I — calls, offline conversions and conversion setup

Tutorial · Offline conversions step by step: from the GCLID in the form to the sheet Google reads every day

⏱️ 12 min read · 📐 Measurement · updated on 2026-08-22

🎧 Listen to the lesson · ≈ 6 min🔒 Subscribers only

The Measurement II module explained why you upload offline conversions. This tutorial is the how, from start to finish, using the route that needs no developer: a Google Sheet that Google Ads reads every day. Total time: one afternoon, if your form accepts a hidden field.

Step 0 · What you need

Step 1 · Auto-tagging

Admin → Account settings → Auto-tagging → Yes. Check that clicking an ad gives you a destination URL carrying gclid=…. If your site redirects (http→https, www, language), verify that the parameter survives the redirect (open it in the browser and look at the final URL).

Step 2 · Store the GCLID in the browser

A 10-line script on every page (via Tag Manager or in the template) that, if the URL carries a gclid, stores it in a 90-day cookie (gclid). Tag Manager has gallery templates for this ("GCLID to cookie"); if you use WordPress, there are plugins that do it and fill in forms as well (step 3).

Check: visit with ?gclid=TEST123 in the URL, browse to another page and look at the site's cookies: gclid=TEST123 should be there.

Step 3 · Hidden field in the form

In every form: a hidden field called gclid that is filled from the cookie when the page loads (the same script or plugin). On submit, the GCLID travels with the lead to the email, the CRM or the sheet the submissions land in. If you can, add hidden fields with utm_campaign and the page URL too: they help with diagnosis.

Check: submit a test form after visiting with ?gclid=TEST123: the lead you receive should carry TEST123.

Step 4 · Store the GCLID alongside the lead

Rule: the GCLID is stored once and never modified; it is the key.

Step 5 · Create the conversion actions

Goals → Conversions → + New → Import → Other data sources or CRM → Track conversions from clicks. Create:

Write down the exact names: they are used in the sheet.

Step 6 · The upload sheet

Conversions → the action → Uploads → Google Sheets → Create template (or download the template). It has three header rows you must not touch (the third, Parameters:TimeZone=…, carries the account's time zone) and these columns:

Google Click ID Conversion Name Conversion Time Conversion Value Conversion Currency
CjwKCAjw… Qualified lead 2026-08-20 14:32:00 80 EUR
CjwKCAjw… Sale 2026-08-22 10:05:00 1250 EUR

Date format: yyyy-MM-dd HH:mm:ss (or with a time zone, +01:00). The date is the conversion's (when it was qualified / sold), later than the click and within 90 days.

How it gets filled in: with a formula or a small automation that reads your CRM/lead sheet and generates one row for every lead that changed status (qualified, sale) and hasn't been uploaded yet. Mark a "Qualified uploaded ✓ / Sale uploaded ✓" column in the lead sheet so you don't duplicate.

Step 7 · Schedule the upload

Conversions → Uploads → + → Google Sheets → scheduled → paste the sheet's URL, share the sheet with the service account Google gives you, frequency daily (the hour is up to you). Google reads the sheet every day and imports the new rows (already-imported ones are ignored by GCLID

Check: after the first upload, Conversions → Uploads shows the history (rows imported, errors). And the conversion appears in the campaign of the original click, on the date of the click.

Step 8 · Adjustments and refunds

To retract or correct: the conversion adjustments template (same route), with columns for GCLID, name, original conversion date, adjustment type (RETRACT to cancel, RESTATE to change the value) and the new value. Scheduled the same way. Use it for returned sales, leads that turned out to be bad, or corrected values.

Errors you will see in the upload history

Error Cause Fix
Invalid GCLID Copied wrongly, truncated, from another account Check the capture; check the click belongs to this account
Date earlier than the click Wrong conversion time The qualification/sale date, not the lead's
Outside the window > 90 days Upload intermediate stages first
Conversion name doesn't match An accent, a capital letter Copy the exact name
Duplicate Same row twice The "uploaded ✓" column

What to expect

First week: offline conversions appear with a delay (it uploads daily; Google processes in hours). Smart Bidding starts using them after a few weeks if they are primary. Review the ratio of qualified leads uploaded to leads in the CRM every month.

💡 Ninja trick: this tutorial is exactly what Lead Rating automates out of the box: GCLID capture with its snippet, a daily bulk upload from the script (no upload sheet and no scheduling in Google Ads), the three actions with the rating as the value of the raw lead, per-lead upload marks and adjustments. If you're building it by hand, this is the route; if you want it to build itself, that's the other one.

What you should remember

📎 Sources and further reading

⚠️ Free training with no support. Ninja Scripts support channels (email and Telegram) are only for the use of the scripts, not for Google Ads questions or questions about this training.

Pick up here

← BeforeTutorial · Calls (2/2): measuring calls as conversions — from the ad and from the websitePractical tutorials I — calls, offline conversions and conversion setupAfter →Tutorial · Enhanced conversions for leads: uploading sales by email, without a GCLIDPractical tutorials I — calls, offline conversions and conversion setupRelacionadaAdvanced attribution: what data-driven attribution really measures and which decisions it supportsMeasurement II — offline conversions, values, GA4, attribution and lead qualityRelacionadaAttribution and lag: why today's conversions show up next weekBasic measurement — conversions, the Google tag and consentRelacionadaThe advanced measurement audit: the 25-point list and the map of what reaches GoogleMeasurement II — offline conversions, values, GA4, attribution and lead qualityRelacionadaThe columns that matter: recommended sets by levelInside Google Ads — reports, columns and segments

Ver el temario completo

🎓
You're reading, in the open, a lesson from the subscribers' training

This page is read-only. With the Suite subscription you get the full academy — all three levels with audio, quizzes, favorites, highlights and certificates — plus the scripts working in your Google Ads account.

See the full Suite → Create my free account →
🥷

Subscriber feature

This option is part of the Ninja Scripts Suite subscription.

See the subscription →