Manual import

Uploading the file into Google Ads

The plugin produces the file. Google Ads is where it becomes conversions — and that is the operation nobody documents, because it is the one that cannot be undone.

00 — Before you start

Three things to have in hand

An import creates conversions. There is no preview that shows the final figures, and no undo button — a mistake is corrected by a retraction, which is a second file and a second wait. Upload once, read the report, and only then upload again.

01 — The conversion action

It has to be of the Import type

This is the step where most attempts fail, and the error message does not explain it. A conversion action whose source is Website cannot receive an import. The action already counting your online purchases is therefore not a valid target, however much you would like to feed it. You need a dedicated one.

  1. In Google Ads, open Goals → Conversions → Summary, then New conversion action.
  2. Choose Import, then the option for uploads from a file rather than from the API.
  3. Name it, and write the name down. This exact string goes into the Conversion Name column of every row. Accents and spaces included — a single character apart and every row is rejected.

    Avoid naming a period. Recovery July-August looks sensible and becomes a trap: the next batch needs a new name, and a new name defeats Google's de-duplication, which keys on the click identifier together with the action name.

  4. Set the value to use a different value for each conversion, count one per click, and a click-through window of 90 days.
  5. Create it as secondary. A secondary action reports without feeding the bidding. You can promote it later, once the figures have been checked.

Why secondary first. A campaign on maximise-conversions learns from the conversions it is given. Injecting two months of history into a primary action in one pass moves that learning in a single step, on data the campaign never saw arrive. Let it report for a week before promoting it.

Back in WordPress, copy the same name into Settings → Conversion action label. The export stays blocked until it is filled in — not out of pedantry, but because a file with an empty Conversion Name is rejected in full, several hours after you uploaded it.

02 — The upload

Four clicks, and one thing not to do

  1. Open Goals → Conversions → Uploads.
  2. Choose to upload a file, and pick the CSV the plugin produced.
  3. Use Preview before Apply. The preview catches format errors — an unknown action name, an unreadable date — without creating anything.
  4. Apply. The file is queued; nothing appears immediately.

Do not open the file in Excel or Numbers first. A spreadsheet will helpfully reformat the dates, drop the time zone, turn 335.00 into 335 or 335,00, and re-save in the local encoding. Every one of those breaks the import, and the file still looks correct on screen. If you must read it, open it in a text editor.

What the file actually contains

Parameters:TimeZone=Europe/Brussels
Google Click ID,Conversion Name,Conversion Time,Conversion Value,Conversion Currency,Order ID
Cj0KCQjw…,Achat - import hors connexion,2026-07-31 07:46:18+02:00,335.00,EUR,66658

The first line declares the time zone for the whole file. UTF-8, decimal point, one row per conversion. No personal data: no name, no address, no email — only a click identifier, an amount, and an order number that means nothing to anyone without access to the shop.

03 — The report

Come back and read it, a few hours later

Google states a processing delay of several hours. Nothing is wrong if the account still shows nothing that evening. What you are waiting for is the import report, listed in the same Uploads screen: how many rows were read, how many were accepted, and the reason for each rejection.

Keep it. When the number of rows sent differs from the number of conversions counted — and it will, at least once — that report is the only usable trace. The conversions column in the campaign view will never tell you why.

Imported conversions appear against the date of the click, not the date of the upload. Do not look for them in today's figures: they land in the weeks the campaign actually ran, which is the entire point of the operation.

04 — Rejections

Why a row does not go through

Google's wording changes; the causes do not. These are the ones worth recognising, and the plugin already filters most of them out before the file is written.

CauseWhat happenedFix
Unknown conversion action The Conversion Name does not match an action of the Import type, character for character. Copy the name from Google Ads into the plugin settings. Do not retype it.
Click too old More than 90 days between the click and the conversion. Nothing. That conversion is unrecoverable — which is why a silent tracking failure has a cost that grows daily.
Conversion before the click Usually a time-zone error: the header says one zone, the times are written in another. Check that the site time zone and the file header agree.
Click identifier not found The gclid does not belong to this account, or carries the cookie's GCL.<timestamp>. prefix. Confirm you are in the right account. The plugin strips the prefix already.
Duplicate Google accepts one conversion per click identifier for a given action. Two orders from one click means the second is refused. Expected. The plugin picks the earliest order and names the retained one in the rejection reason.
Malformed value A thousands separator, a currency symbol, or a comma as the decimal mark. The file was opened and re-saved by a spreadsheet. Export it again.

The double-import trap. Uploading the same file twice inflates the account, and nothing says so. Google does de-duplicate on click identifier, action name and conversion time together — but renaming the action between two exports defeats it entirely. Rely on the plugin instead: exported rows are marked, and a second pass does not offer them again.

05 — Afterwards

When an imported conversion turns out to be false

An order cancelled or refunded after its conversion was imported stays counted until you say otherwise. That correction is an adjustment: a second file, in a different format, uploaded through the same screen.

WindowCounted from
Import90 daysthe click
Adjustment54 daysthe conversion
Taken into account by bidding7 daysthe conversion

The gap is not academic. A conversion imported on an 80-day-old click is already near the end of its adjustment window: a late catch-up campaign produces conversions that cannot be retracted from the first day. The plugin shows those in red rather than letting you discover it later.

A retraction is final — once a conversion is retracted it can no longer be adjusted. So the order of operations matters: a partial refund is a restatement, a full one is a retraction, and the plugin will escalate the first into the second but never the reverse.

Rather than doing this by hand every week, you can let Google fetch the adjustments file on a schedule — that is the automatic feed, and it is the one part of the chain that can safely run without you. Imports stay manual, deliberately.

06 — Promoting the action

From secondary to primary

Once a batch has been imported and the report read, let the figures sit for a week. Compare the imported conversions against what the shop actually recorded over the same period. If they agree, switch the action to primary and the bidding starts using them.

If they do not agree, the report says why, and nothing has been lost: a secondary action never influenced a single bid.

Google's screens move. This page describes the paths as of August 2026; if a menu has been renamed, the sequence still holds — tell me and I will correct it.