Blog

How to Upload Offline Conversions to Google Ads Using SFTP

Automate your offline conversion imports with a simple CSV file on an SFTP server. No manual uploads, no API code — just scheduled, hands-off reporting.

Updated March 2026

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:

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:

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:

  1. In Google Ads, go to Admin → Account settings.
  2. 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:

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:

  1. In Google Ads, go to Goals → Conversions → Summary.
  2. Click + New conversion action.
  3. Select Import as the conversion source.
  4. Choose Other data sources or CRMs → Track conversions from clicks.
  5. Name your conversion action (e.g., "Closed Deal"). This name must match the Conversion Name column in your CSV exactly.
  6. Set the value, count, and attribution window as appropriate for your business.
  7. 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.

  1. Log in to your SFTPHub dashboard.
  2. Click Create Instance and give it a name (e.g., "google-ads-conversions").
  3. 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.

  1. In Google Ads, go to Tools → Data Manager.
  2. Click + Connect product and select SFTP as your data source.
  3. 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.
  4. Click Test connection to verify the credentials.
  5. Enter the file path to your CSV file (e.g., /conversions.csv).
  6. Map the fields — Match each column in your CSV to the corresponding Google Ads field (Google Click ID, Conversion Name, Conversion Time, etc.).
  7. Set your import schedule (daily, weekly, or monthly).
  8. 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:

  1. Go to Goals → Conversions → Uploads in Google Ads.
  2. Check the import status. You'll see how many conversions were successfully imported and any errors.
  3. 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:

  1. CRM exports conversions daily — A scheduled report or integration exports new closed deals (with GCLIDs) to a CSV file.
  2. Script uploads to SFTP — A cron job or scheduled task uploads the CSV to your SFTPHub instance via SFTP.
  3. 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

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

Automate your Google Ads conversion imports

Set up a managed SFTP endpoint in under two minutes. Plans from $7/mo.