Conversions for some advertisers start online and finish offline. For example, a consumer initiates research online for a purchase, clicks on an ad, and then telephones a call center to complete the purchase. These types of conversions are called offline conversions. Offline conversion diagnostics helps you understand and monitor for issues with your conversion uploads or edits when using the Campaign Manager 360 API.
How it works
After you have gathered the offline conversion data, you can upload them with any one of the techniques: Upload from the Search Ads 360 API, Upload from the Campaign Manager 360 API, and Upload from a bulksheet. Note that the offline diagnostics discussed in this article are only available for users of the Campaign Manager 360 Conversion API. Learn more About uploading offline conversions, and editing offline conversions via the Campaign Manager 360 API.
You can view the status of the conversion action and also the additional details like diagnostics metrics. Hover over the status column of the conversion action you should be able to view a dialogue box. The dialogue box contains details such as needs attention, recording conversions, and improve data quality and many others. You should be able to view the “Go to diagnostics” along with these messages for conversion actions that have uploaded offline conversion via the Campaign Manager 360 Conversion API.
To check the accuracy of the offline conversions data upload, the diagnostics page can be helpful. The Diagnostics page gives you an overview of the quality of the data uploaded and error messages.
Instructions
- Sign in to your Search Ads 360 experience.
- Navigate to a sub-manager account.
- From the left navigation panel, under “Tools & settings”, click Conversions.
- Click Summary and click the Diagnostics tab.
- In the “Offline conversion” card, click See details.
- The Diagnostics page appears.
- The conversions that need attention will be displayed in the “Needs attention” card.
- The history of conversion actions will be displayed in the “History” card.
- The last card displays the conversion actions that are active and fully optimized.
- Status column should show the conversion action status (active, no recent conversions, needs attention, and many more).
- Note: To check the Diagnostics page, hover over the status column under the conversions.
Types of status under Diagnostics
Status | Color | Label | Description |
Green | Active and optimal | Your offline data setup is active and optimal for downstream processing. | |
Blue | Active with improvements available | Your offline setup is active, but there are further improvements you could make. | |
Yellow | Active with major errors | Your offline setup is active, but there are errors that require your attention. | |
Red | Not received data in the last 2 days |
Your offline setup hasn't received data in the last 2 days, there may be something wrong. For optimal bidding performance, ensure you're uploading conversions on a regular basis. It's a best practice to upload at least once a day. |
Diagnostic page gives you the overview about the offline uploaded data with status, alerts, messages, and graphs. You can check the status like needs attention, no recent conversion, good, and excellent, with the alerts with description and percentage breakdown for the same. Expand the alerts to check for detailed description and fix accordingly.
Another part of the diagnostics page is “History” which is explained through the graphs. You can select the dates from the dropdown (for example, for the last 7 days). The graphs consist of bars with 2 colors:
- Blue bar: Successfully imported event
- Red bars: Events with error
Types of diagnostic errors and their meaning
The table below will help with making sense of the diagnostic error message you view in the UI. This list may change over time.
Diagnostic Error Message | Description | Recommended Action |
Missing required field | One or more required fields are currently incomplete. For example: Time used, floodlight activity ID, and more. | Ensure all required information is provided. Review the API documentation for more information. |
Negative values | Events contain negative values or negative quantity. | Re-upload the data with positive values or quantity. |
Missing conversion identifier | Uploaded identifiers leading to the imported events are missing. |
Check that your data source includes the correct identifiers. Each Conversion event should include exactly one identifier from this list. |
Multiple conversion identifiers provided | More than one conversion identifier provided. |
Choose a single identifier type for each conversion upload. Review the API documentation for more information. Each Conversion event should include exactly one identifier from this list. |
Enhanced conversions not enabled or misconfigured | The account isn't set up correctly to use enhanced conversions. This feature requires enabling enhanced conversions and accepting the terms of service. |
Verify your account settings and ensure you have completed all the necessary steps to activate this feature. Review the documentation here for more information. |
Enhanced conversions: User Identifier Limit Exceeded | A maximum of 5 user identifiers (hashed emails, hashed phone numbers, or addresses) can be associated with a single conversion. | Reduce the number of user identifiers you're providing to ensure compliance with this limit. Where possible, prefer hashed email for better matching. |
Enhanced conversions: Invalid identifier attachment | User identifiers can only be associated with existing conversions by using a valid match_id. | Ensure you're providing the correct match_id when attempting to link user identifiers to conversions. |
Enhanced conversions: Missing user identifier | To create a UserIdentifier, you must provide at least one of the following: a hashed email, a hashed phone number, or address information. |
Include at least one of these fields: hashed email (preferred), hashed phone number, or hashed address in each UserIdentifier you submit. |
Enhanced conversions: Invalid SHA256 hash format | The hashed phone number or hashed email provided isn't in a valid SHA256 format. |
Ensure that the data has been correctly hashed using the SHA256 algorithm before submitting it as a user identifier. This is currently the only hashing algorithm that's supported for this purpose, and the one that must be used to ensure matching works. |
Enhanced conversions: Invalid address field | The address provided in the UserIdentifier isn't valid or contains errors. |
Ensure that the address is correctly formatted and includes all required information. Refer to the API specification here as needed for information on formatting of address information. |
Invalid custom variable configuration | There's a detected issue with a custom Floodlight variable. This could be due to a typo in the type, a repeated index, or a value that's too long. | Review and correct the custom variable settings in your code. |
Invalid conversion identifier | The click or identifier leading to the imported event can't be found. |
Ensure your data source is set up to include correct identifiers. If you're uploading conversions with a gclid, ensure that the gclid is unmodified (not truncated, or case-converted), and the gclid value is known to SA360. This can be done via the gclsrc parameter that came through with the click. Ensure the value of that string contains "ds". If uploading with a match_id, ensure that the online tag is properly sending the match_id, the uploaded conversion is within 60 days of the tag fire containing the match_id, and that you've waited at least 2 hours after the tag fire with the match_id to upload or edit the offline conversion. |
Click too recent | Can't import uploaded data that contains events or clicks that occurred less than 1 hour ago. |
In general, this is an error type that you should retry. You can consider implementing code to catch this error type, and automatically retry the conversion event at a later time. Typically, if your code waits at least an hour after the click event, you shouldn't hit this error, but occasionally it can take longer, so retrying is a good process to handle these. |
Click too old | Imported events can't be recorded because they occurred before this conversion action's lookback window. | Configure your import to get the most recent data. |
Missing floodlight configuration ID | The floodlight configuration ID wasn't found in the system. |
Verify that the ID is correct and that the configuration has been properly set up. Reach out to SA360 or CM360 support if you need help validating this. |
Conversions too old for update | Imported events can't be recorded because conversions over 28 days old can't be updated. | Ensure you're updating recent events by logging details around click time and conversion time. This can allow you to write more robust code to handle these cases. |
Encrypted user ID: Update not supported | Encrypted User ID adjustment isn't supported. |
The only fields that can be edited in a batchupdate call to the API are Quantity, Value, or the value of a Custom Floodlight Variable. Updating the Encrypted User ID isn't supported. Modify your code as needed to refrain from doing this. |
Child-directed treatment: Update not supported | Child-Directed Treatment adjustment isn't supported. |
The only fields that can be edited in a batchupdate call to the API are Quantity, Value, or the value of a Custom Floodlight Variable. Updating the Child-Directed Treatment field isn't supported. Modify your code as needed to refrain from doing this. Check here for more details. |
Limit ad tracking: Update not supported | Limit Ad Tracking adjustment isn't supported. |
The only fields that can be edited in a batchupdate call to the API are Quantity, Value, or the value of a Custom Floodlight Variable. Updating the Encrypted User ID isn't supported. Modify your code as needed to refrain from doing this. Check here for more details. |
Ad user data consent: Update not supported | Ad User Data Consent adjustment isn't supported. |
The only fields that can be edited in a batchupdate call to the API are Quantity, Value, or the value of a Custom Floodlight Variable. Updating the Ad User Data Consent field isn't supported. Modify your code as needed to refrain from doing this. Check here for more details. |
Cart data: Missing cart items information |
One or more required fields are currently incomplete. |
Ensure all required information is provided:
|
Cart data: Missing cart information | One or more required fields are currently incomplete. | Ensure all required information is provided (for example, merchantFeedLabel). |
Cart data: Negative values or quantity | Events contain negative quantity or price. | Re-upload the data with positive values or quantity. |
Cart data: Invalid language code | The merchant_feed_language field requires a valid two-letter ISO 639-1 language code. | Enter a valid two-letter language code (for example, "en" for English, "fr" for French). |
Cart data: Insert not supported | Cart data insertion isn't supported. | |
Cart Data: unsupported update | Cart data adjustment isn't supported. | |
Upload consistency | Data upload records are inconsistent. Consistency rate does take into account the upload frequency and the timestamp of the uploaded conversion that's connected to the original click time. |
For optimal bidding performance, ensure you're uploading conversions on a regular basis. At least daily uploads are a best practice. Include conversions in each upload of the day with the same lookback window since we're looking at original click time and uploaded conversion time. |
Adjustment consistency |
Data adjustment records are inconsistent. Consistency rate does take into account the upload frequency and the timestamp of the adjusted conversion that's connected to the original click time. |
While we don't recommend updating data used for automated bidding (versus inserting a "new" conversion with the details), consistency in adjustments can be important for reporting purposes. Depending on the reason you adjust conversions, this may or may not be a resolvable "error", but if in doubt, discuss with your developer team who authored the code for the CM360 Conversion API. |
Best practices for offline upload data
Uploading the data on a regular basis might help to check the performance and bid accordingly for accurate results.
- Upload Frequently: Uploading data frequently can help systems that depend on it like bid opt. If you can stream data or upload multiple batches per day, that can help ensure these systems are best set for success. If your system can't do that, try to at least upload a batch of conversions per day. Set up alerts or automated processes to indicate any missed uploads.
- Timestamp validation: Implement a check to ensure that the timestamps of uploaded conversions fall within the acceptable lookback window from when the conversion occurred. The ideal size of this window will depend on your business model.
- Standardized upload procedures: Create a well defined process for conversion uploads. This includes consistent formatting, pre-upload data cleaning, and error checks.
- Monitor trends: Track your consistency metric over time. Look for patterns of inconsistency and proactively investigate the reasons behind them.
- Refine lookback window: Analyze your data to determine if your current lookback window is optimal. Adjust if needed, keeping in mind your business goals and typical conversion timeframes.