Frequently asked questions

  • Conversion uploads have restrictions including a limit of 1,000 conversions per request and a 28-day timestamp limit.

  • Duplicate conversions inserted into both Campaign Manager 360 and Search Ads 360 are not deduplicated unless separate Floodlight activities are used.

  • Ordinal values are used to control deduplication of conversions with the same Floodlight values, user identifier, and conversion date.

  • NOT_FOUND errors for uploads can be caused by invalid or unknown identifiers or by the associated clicks or Floodlight calls occurring too far in the past or too recently.

  • For audience list creation using Offline Conversion Insertion, ad user data consent is required and the nonPersonalizedAd field must be explicitly set to false.

Are there any restrictions on what I can upload?

There are a few restrictions to be aware of:

  • Individual batchinsert and batchupdate requests are limited to 1,000 conversions.
  • The timestamp of a conversion can be at most 28 days old from the time of submission.
  • You can only submit conversions to a Floodlight configuration to which your Campaign Manager 360 user profile has access.
Should I use Campaign Manager 360 or Search Ads 360 to upload conversions?

Refer to the Search Ads 360 help center for a detailed comparison of features offered by both products.

What if I insert the same conversion to both Campaign Manager 360 and Search Ads 360?

If you insert the same conversion to both Campaign Manager 360 and Search Ads 360, the entries won't be deduplicated. Use separate Floodlight activities in this case.

Which API should I use to upload offline conversions?

We recommend using the Data Manager API for an improved developer experience and access to additional features.

What is an ordinal value and how is it used?

Ordinal values control how duplicate conversions are processed. If multiple conversions are inserted with the same Floodlight activity, Floodlight configuration ID, user identifier, and conversion timestamp, then the ordinal is used to determine whether:

  • The conversions are deduplicated and only one survives. This happens if all conversions have the same ordinal value.
  • The conversions are processed individually and all survive. This happens if all conversions have a different ordinal value.

The values themselves don't need to be meaningful. In general, using a fixed value (such as 1) for all conversions will enable deduplication. Using a random or unique value for each conversion will disable it.

How should I handle errors in the API response, and which errors should I retry?

batchinsert and batchupdate process conversions on a best-effort basis: a batch request can return an HTTP 200 OK response while individual conversions within the batch fail. Always check hasFailures on the response and inspect the errors[] list on each ConversionStatus object:

  • INTERNAL (Retry): A transient error occurred inside Google's systems while processing the conversion. The conversion was not inserted or updated. Retry failed conversions using exponential backoff (for example, starting after a few minutes and retrying over several hours), keeping the exact same ordinal, timestampMicros, floodlightActivityId, and user or click identifier.
  • NOT_FOUND (Retry with delay): The identifier (gclid, dclid, matchId, or mobileDeviceId) or the existing conversion being edited couldn't be found yet. Because online clicks, Floodlight tags, and conversions can take 1 to 2 hours to be processed and indexed, retry NOT_FOUND conversions periodically (for example, every 1 to 3 hours, for up to 6 hours). If NOT_FOUND persists after 6 hours, see the following sections for common causes by identifier type.
  • INVALID_ARGUMENT and PERMISSION_DENIED (Do not retry): The conversion data is invalid (for example, a conversion timestamp older than 28 days or a malformed field) or your user profile lacks permission for the target Floodlight configuration. Don't retry these conversions without fixing the underlying issue.

If the entire HTTP request fails with a 5xx server error or 429 quota / rate-limit error, retry the request using exponential backoff.

Safe retries and deduplication: When retrying a conversion that failed with INTERNAL or NOT_FOUND (or after an HTTP 5xx timeout where the outcome is unknown), always send the exact same ordinal and timestampMicros. If a conversion was already recorded, Campaign Manager 360 automatically deduplicates it based on the ordinal, user identifier, Floodlight activity, and conversion date.

What does it mean when a mobileDeviceId upload fails due to a NOT_FOUND error?

The most common causes of this error are:

  • The mobileDeviceId is invalid.
  • The mobileDeviceId is unknown to Search Ads 360. This means that the device has yet to be served an ad by Campaign Manager 360.
What does it mean when a gclid upload fails due to a NOT_FOUND error?

The most common causes of this error are:

  • The gclid is invalid.
  • The gclid is not associated with a Search Ads 360 campaign or a Display & Video 360 YouTube line item. This may occur if the gclid was collected from a Google Ads click redirect which did not pass through Search Ads 360 (e.g., clicks on location extensions) or collected from a YouTube ad click redirect not associated with a Display & Video 360 YouTube line item.
  • The click associated with the gclid occurred too far in the past. Conversions may only be inserted for clicks up to 60 days old.
  • The click associated with the gclid occurred too recently. We recommend delaying gclid-based conversion uploads by 1 hour to ensure that the gclid is processed and available for matching.
What does it mean when a dclid upload fails due to a NOT_FOUND error?

The most common causes of this error are:

  • The dclid is invalid.
  • The click associated with the dclid occurred too far in the past. Conversions may only be inserted for clicks up to 60 days old.
  • The click associated with the dclid occurred too recently. We recommend delaying dclid-based conversion uploads by 1 hour to ensure that the dclid is processed and available for matching.
What does it mean when a matchId upload fails due to a NOT_FOUND error?

The most common causes of this error are:

  • The matchId is unknown to Campaign Manager 360. This may occur if the matchId was collected from a Floodlight call which did not properly pass through Campaign Manager 360 (make sure your Floodlight calls are working correctly including the matchId tag parameter).
  • The Floodlight call associated with the matchId didn't contain a cookie. The Floodlight call must contain a cookie / identifier for Campaign Manager 360 to store the matchId correctly (ie. user may have blocked cookies or opted out).
  • The Floodlight call associated with the matchId occurred too far in the past. Offline Conversion uploads must be made within 60 days of the Floodlight call containing the matchId.
  • The Floodlight call associated with the matchId occurred too recently. We recommend delaying matchId-based conversion uploads by 2 hours to ensure that the matchId is processed and available for matching.
Are offline conversions with a timestamp prior to the creation of the Floodlight Activity included in reports?

The upload of offline conversions with a timestamp prior to the creation of the Floodlight Activity could be reported as Floodlight impressions and as unattributed/attributed conversions, up to 28 days prior from the time of submission. However, this behavior is not guaranteed and shouldn't be relied upon. The best practice is to create Floodlight Activities before the earliest timestamp of an offline conversion.

What consent is necessary to use Offline Conversion Insertion for audience list creation?

In addition to ad user data consent, the nonPersonalizedAd field must be explicitly set to false to enable audience list creation.