If your business closes deals offline — over the phone, in person, or through a sales team — Google Ads has no way to know those conversions happened. That means your campaigns look less effective than they really are, and Smart Bidding can't optimize for the outcomes that actually matter to your business.
The fix is offline conversion imports. You feed your closed-deal data back into Google Ads, and it connects those conversions to the original ad clicks. One of the most reliable ways to automate this is with SFTP — you drop a file on your server and Google Ads pulls it on a schedule. No manual uploads, no custom API integrations.
This guide walks through the entire process: what offline conversions are, how to capture the data you need, how to format the file, and how to connect your SFTP server to Google Ads for automated imports.
What Are Offline Conversions?
Offline conversions are valuable actions that happen after someone clicks your ad but outside your website. Common examples include:
- Phone sales — A lead clicks your ad, visits your site, and later calls to purchase.
- In-store visits — Someone clicks an ad and later walks into your retail location.
- Closed contracts — A B2B lead fills out a form and signs a deal weeks later.
- Qualified leads — A marketing-qualified lead progresses through your sales pipeline.
Without importing these conversions, Google Ads only sees the initial click or form submission. It has no idea that a $50,000 contract was signed three weeks later. By feeding this data back in, you unlock two major benefits:
- Accurate ROI measurement — See which campaigns, keywords, and ads actually drive revenue, not just clicks.
- Smarter bidding — Smart Bidding strategies (Target CPA, Target ROAS, Maximize Conversions) can optimize for real business outcomes instead of just website actions.
How It Works: The GCLID
The key to offline conversion tracking is the Google Click ID (GCLID). When someone clicks your ad, Google appends a unique gclid parameter to the landing page URL:
https://yoursite.com/landing-page?gclid=Cj0KCQiA7OqBBhC...
Your job is to capture this GCLID when the lead arrives and store it alongside the lead in your CRM or database. Later, when that lead converts offline, you include the GCLID in your conversion upload file. Google Ads matches it back to the original click.
Step 1: Enable Auto-Tagging
Auto-tagging must be turned on in your Google Ads account for GCLIDs to appear. It's enabled by default for most accounts, but verify it:
- In Google Ads, go to Admin → Account settings.
- Under Auto-tagging, confirm that "Tag the URL that people click through from my ad" is checked.
Step 2: Capture the GCLID
When a visitor lands on your site from a Google ad, extract the gclid parameter from the URL and store it. The most common approach is a small JavaScript snippet that grabs the value and saves it to a cookie or hidden form field:
// Extract GCLID from URL and store in a cookie
function getParam(name) {
const match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1]);
}
const gclid = getParam('gclid');
if (gclid) {
document.cookie = 'gclid=' + gclid + ';max-age=7776000;path=/';
}
When the visitor submits a form, read the GCLID from the cookie and include it as a hidden field. Your CRM or backend then stores the GCLID alongside the lead record.
Tip: Set the cookie expiration to 90 days. Google Ads accepts offline conversions up to 90 days after the click, so you want the GCLID available for the full attribution window.
Step 3: Store the GCLID in Your CRM
Add a GCLID field to your CRM or lead database. When a form submission comes in, save the GCLID alongside the lead. Most CRMs (Salesforce, HubSpot, Pipedrive) support custom fields for this purpose. When the lead eventually converts — closes a deal, makes a purchase, becomes a qualified opportunity — you'll have the GCLID ready for export.
Preparing Your Conversion File
Google Ads expects a CSV file with specific columns. Here's the required format:
| Column | Required | Description |
|---|---|---|
| Google Click ID | Yes | The GCLID captured when the user clicked your ad. |
| Conversion Name | Yes | The exact name of the conversion action in your Google Ads account (e.g., "Closed Deal" or "Qualified Lead"). |
| Conversion Time | Yes | When the offline conversion occurred. Must include a timezone (e.g., 2026-03-11 14:30:00-0500). |
| Conversion Value | Optional | The monetary value of the conversion (e.g., 500.00). |
| Conversion Currency | Optional | The 3-letter currency code (e.g., USD, EUR). Required if you use multiple currencies. |
Example CSV File
Google Click ID,Conversion Name,Conversion Time,Conversion Value,Conversion Currency
Cj0KCQiA7OqBBhCxyz123,Closed Deal,2026-03-10 09:15:00-0500,2500.00,USD
Cj0KCQjBnMn1BRDabc456,Qualified Lead,2026-03-10 11:42:00-0500,0,USD
Cj0KCQiC8PnBBhDdef789,Closed Deal,2026-03-09 16:30:00-0500,8750.00,USD
Important: The Conversion Name must exactly match the conversion action name in your Google Ads account, including capitalization and spacing. Conversions must be uploaded within 90 days of the original click.
Conversion Time Formats
Google Ads supports several timestamp formats, but all must include a timezone. Common accepted formats include:
yyyy-MM-dd HH:mm:ss-zzzz— e.g.,2026-03-11 14:30:00-0500MM/dd/yyyy HH:mm:ss a Z— e.g.,03/11/2026 2:30:00 PM ESTyyyy-MM-dd'T'HH:mm:ssZ— e.g.,2026-03-11T14:30:00-0500
Setting Up Your Google Ads Conversion Action
Before you can upload conversions, you need to create a conversion action in Google Ads configured for imports:
- In Google Ads, go to Goals → Conversions → Summary.
- Click + New conversion action.
- Select Import as the conversion source.
- Choose Other data sources or CRMs → Track conversions from clicks.
- Name your conversion action (e.g., "Closed Deal"). This name must match the Conversion Name column in your CSV exactly.
- Set the value, count, and attribution window as appropriate for your business.
- Click Create and continue.
Why Use SFTP for Conversion Uploads?
Google Ads offers several methods to import offline conversions: manual file upload, Google Sheets, HTTPS, the Google Ads API, and SFTP. Here's why SFTP is often the best choice:
| Method | Automation | Best For |
|---|---|---|
| Manual upload | None — upload each file by hand | One-off imports or testing |
| Google Sheets | Scheduled, but requires Sheets | Small volumes, manual teams |
| HTTPS | Scheduled, requires hosted file | Teams with web server access |
| Google Ads API | Fully automated, requires code | Developers, large-scale operations |
| SFTP | Scheduled, secure, no code needed | Automated imports without developer resources |
SFTP hits the sweet spot: it's automated (Google pulls the file on a schedule), secure (data is encrypted in transit), and simple (no API code to write or maintain). Your CRM or reporting tool just needs to export a CSV to your SFTP server on a regular basis, and Google Ads does the rest.
Setting Up SFTP Uploads with SFTPHub
Here's the end-to-end process for automating offline conversion imports using SFTPHub as your SFTP server and Google Ads Data Manager as the connector.
1. Create an SFTP Instance on SFTPHub
If you don't already have a SFTPHub account, sign up and choose a plan. Even the Micro plan ($7/mo) is more than enough — offline conversion CSV files are tiny.
- Log in to your SFTPHub dashboard.
- Click Create Instance and give it a name (e.g., "google-ads-conversions").
- Once the instance is provisioned, create an SFTP user with password authentication. Note the hostname, port, username, and password — you'll need these for Google Ads.
Why SFTPHub? You need an always-on SFTP server that Google Ads can connect to on a schedule. SFTPHub gives you a managed, cloud-backed SFTP endpoint without provisioning or maintaining a server yourself. Learn more about managed SFTP →
2. Upload Your Conversion File
Export your offline conversions from your CRM as a CSV in the format described above, then upload it to your SFTPHub SFTP instance. You can do this manually with any SFTP client, or automate it with a script or CRM integration.
For example, using the command line:
sftp [email protected]
sftp> put conversions.csv /conversions.csv
sftp> exit
For automated daily uploads, set up a cron job or a scheduled task in your CRM that exports new conversions and uploads the file via SFTP. The file should always be at the same path so Google Ads knows where to find it.
3. Connect SFTP to Google Ads Data Manager
Google Ads Data Manager is the tool that connects your SFTP server to your Google Ads account for scheduled imports.
- In Google Ads, go to Tools → Data Manager.
- Click + Connect product and select SFTP as your data source.
- Enter your SFTPHub SFTP connection details:
- Host — Your SFTPHub instance hostname.
- Port — The port shown in your instance details.
- Username — Your SFTP username.
- Password — Your SFTP password.
- Click Test connection to verify the credentials.
- Enter the file path to your CSV file (e.g.,
/conversions.csv). - Map the fields — Match each column in your CSV to the corresponding Google Ads field (Google Click ID, Conversion Name, Conversion Time, etc.).
- Set your import schedule (daily, weekly, or monthly).
- Save and activate the connection.
SFTP path tip: If you get a "File not found" error, try using a double slash in the path (e.g., //conversions.csv). Some SFTP servers resolve paths relative to the user's home directory, and the double slash tells Google Ads to use the absolute path.
4. Verify Your Imports
After the first scheduled import runs:
- Go to Goals → Conversions → Uploads in Google Ads.
- Check the import status. You'll see how many conversions were successfully imported and any errors.
- Common errors include mismatched conversion names, invalid GCLID format, expired GCLIDs (older than 90 days), and incorrect timestamp formats.
Automating the Pipeline
For a fully hands-off workflow, automate the entire pipeline:
- CRM exports conversions daily — A scheduled report or integration exports new closed deals (with GCLIDs) to a CSV file.
- Script uploads to SFTP — A cron job or scheduled task uploads the CSV to your SFTPHub instance via SFTP.
- Google Ads pulls the file — Data Manager connects to your SFTP server on schedule and imports the conversions.
Here's a simple bash script that could run as a daily cron job:
#!/bin/bash
# Export conversions from your database and upload to SFTP
# Generate the CSV (replace with your actual export command)
python export_conversions.py > /tmp/conversions.csv
# Upload to SFTP
sftp -b - [email protected] <<EOF
put /tmp/conversions.csv /conversions.csv
exit
EOF
With this setup, your offline conversions flow into Google Ads daily without any manual intervention.
A Note on Enhanced Conversions for Leads
Google is encouraging advertisers to upgrade from GCLID-based offline conversion imports to enhanced conversions for leads. This newer approach uses hashed first-party data (like email addresses) instead of GCLIDs, which can improve match rates and support additional attribution features like cross-device tracking and engaged-view conversions.
However, GCLID-based imports remain fully supported and are the right choice for many businesses — especially if you already capture GCLIDs in your CRM, want a simpler setup, or have privacy requirements that make sharing even hashed PII undesirable. The SFTP upload method works with both approaches.
Best Practices
- Upload daily — Frequent imports keep your conversion data fresh and give Smart Bidding more signal to work with.
- Upload within 24 hours of conversion — The sooner you upload, the more useful the data is for bidding optimization. Google accepts conversions up to 90 days after the click, but fresher data is better.
- Include conversion values — Even if they're estimates, values let you use value-based bidding strategies like Target ROAS.
- Keep conversion names consistent — The name in your CSV must exactly match the conversion action name in Google Ads. A single typo will cause the import to fail for that row.
- Use a fixed file path — Always write your CSV to the same location on the SFTP server so Google Ads can find it on every scheduled pull.
- Don't include duplicate conversions — Google Ads will count each row as a separate conversion. Ensure your export only includes new conversions since the last upload, or that your conversion action is set to count "One" conversion per click.
- Always include the timezone — Conversion timestamps without a timezone offset will fail validation.
Frequently Asked Questions
What are offline conversions in Google Ads?
Offline conversions are actions that happen outside your website after someone clicks your ad — like a phone sale, an in-store purchase, or a signed contract. By importing these conversions back into Google Ads, you can measure the true ROI of your campaigns and optimize bidding for real business outcomes.
Can I use SFTP to upload offline conversions to Google Ads?
Yes. Google Ads Data Manager supports SFTP as a data source for scheduled offline conversion imports. You place a CSV file on your SFTP server, connect Google Ads to the server, and it pulls the file automatically on a schedule you define — daily, weekly, or monthly.
What file format does Google Ads require?
Google Ads accepts CSV files with these columns: Google Click ID (GCLID), Conversion Name, Conversion Time, Conversion Value (optional), and Conversion Currency (optional). The conversion time must include a timezone offset. Don't include extra columns or unhashed personal information.
How long after a click can I upload a conversion?
You can upload offline conversions up to 90 days after the original ad click. After 90 days, the GCLID expires and Google Ads will reject the conversion.
How often should I upload conversions?
Daily uploads are recommended. The sooner conversion data reaches Google Ads, the faster Smart Bidding can optimize your campaigns. Google Ads Data Manager supports daily, weekly, or monthly import schedules.
Do I need a dedicated SFTP server for this?
You need an SFTP server that Google Ads can reach over the internet. SFTPHub provides managed, cloud-backed SFTP starting at $7/month — no server setup or maintenance required. See plans →
Key Takeaways
- Offline conversion imports let you feed real business outcomes (closed deals, qualified leads, phone sales) back into Google Ads for better reporting and smarter bidding.
- The GCLID is the key — capture it when the lead clicks your ad and store it in your CRM.
- SFTP is the best method for automated imports without writing API code. Google Ads pulls the file on a schedule.
- SFTPHub provides a simple, affordable SFTP endpoint that Google Ads Data Manager can connect to directly.
- Upload daily, include conversion values, and always include a timezone in your timestamps.