What broke · Google Ads offline conversions · 7 September 2026

The conversion filed on the wrong day.

Google files a conversion on the date you tell it, in its own format. A retry that sends the current time moves your bookings onto the day of the outage. The week then reads wrong for good.

By Lovro Lucic · Published 7 September 2026

What Google does

An offline click conversion carries the time of the conversion, the field conversionDateTime. Google attributes the conversion to the click and reports it on the date and time that field states. Not the date it received the upload.

The format is yyyy-mm-dd hh:mm:ss+|-hh:mm, with the offset written out. Google refuses a string in ISO 8601 form, with a T between date and time or a Z for UTC. The refusal arrives as a partial failure inside a 200, which is its own note. Google Ads API, upload click conversions.

What breaks

Two things, and they compound.

The retry sends the time of the send. The live upload happens inside the request that confirmed the appointment. The event and the send are the same instant, so "now" is correct by accident. A retry runs later.

Say a booking confirms on Tuesday evening. A token endpoint has a bad minute and the live upload never lands. The retry goes out on Wednesday morning with Wednesday's time. Google files it on Wednesday. Every cost-per-booking number that reads a date is now off by the length of the outage. Tuesday looks worse than it was. Wednesday looks better.

The offset is whatever the machine had. Format a wall-clock time in one timezone and label it with another, or with the offset of whichever server ran the code. The string now states a different instant, off by the gap between the two zones. Google reads the offset as given. A booking at 11:30 in the evening is close enough to midnight for that gap to put it on the next day.

Both hide on the live path, where the event and the send are the same instant. The question that finds them is simple: what would a resend six hours late say?

The rule

How to check it yourself

Take a booking from three days ago that your record says went up. Find it in the conversion report by date. If it sits on the day of an outage rather than the day of the booking, your retry is stamping the send. Then upload one conversion with a T in the time and read the body of the 200 you get back.

What this does not cover