Monitor offline data diagnostics

Use the Google Ads API to retrieve offline data diagnostics, which contain information about the overall health of your conversion upload and adjustment processes.

To retrieve the latest offline data diagnostics for your account, send the following query for offline_conversion_upload_client_summary resources using the GoogleAdsService:

FROM offline_conversion_upload_client_summary

The query above returns a separate OfflineConversionUploadClientSummary for each type of client used in recent uploads. For example, if you recently uploaded using both the Google Ads API and the Google Ads UI, the results contain separate entries for the client values of GOOGLE_ADS_API and GOOGLE_ADS_WEB_CLIENT.

Each OfflineConversionUploadClientSummary has a status field that reflects the overall health of uploads for the client. It also contains the count of total events received, the count of successfully processed events, and an alerts field that provides a summary of errors, grouped by OfflineConversionError. All of these fields contain information from the most recent full calendar day of uploads. Use this information to assess the current health of your uploads.

In addition, each OfflineConversionUploadClientSummary contains two different types of reports:

A successful_count and failed_count of upload requests from the last 7 days, grouped by upload date.

The successful_count and failed_count of the 7 most recent upload requests, grouped by job_id. The job_id is an optional field of UploadClickConversionsRequest and UploadConversionAdjustmentsRequest. You can either set the job_id to a non-negative number less than 2^31 or let the Google Ads API assign a system-generated job ID to your request. Regardless of which option you choose, the UploadClickConversionsResponse or UploadConversionAdjustmentsResponse returns the job_id.

One scenario where assigning your own job_id is useful is when you have a single job or process that uploads a large number of conversions using multiple requests. If you set the job_id on each of those requests to the same value, then you can retrieve a single entry for the job from job_summaries. If instead you let the Google Ads API assign a system-generated value to the job_id of each request, the job_summaries contains a separate entry for each request, which could make analyzing the overall health of your job more challenging.

How to use summaries

To ensure your upload processes are recording conversions and enhancements as expected, periodically retrieve the summaries for each of your accounts. If the status of any summary is not EXCELLENT, use the list of errors under alerts to guide you through modifying your upload process to reduce or eliminate those errors.

For example:

  • If the status is NEEDS_ATTENTION, then a significant portion of your upload operations failed. Review the errors under alerts and modify your upload process to reduce or eliminate those errors.

  • If the status is NO_RECENT_UPLOADS, then Google Ads has not received any recent uploads for the client. If this is unexpected, then review the processes that perform uploads using that client.

    For example, if the status for GOOGLE_ADS_API is NO_RECENT_UPLOADS, that could indicate that your upload process that uses the Google Ads API stopped running recently.

  • Check the successful_count and failed_count of daily_summaries and job_summaries to determine if there was a specific upload date or job that sent a large number of events that were not successfully processed.


Keep the following in mind when retrieving upload summaries:

  • The Google Ads API only returns offline data diagnostics if the customer_id of the searchStream or search request is the same customer you used recently to upload conversions.

    For example, a client account that uses cross-account conversion tracking may not contain any diagnostics. However, you can retrieve diagnostics by sending a request where the customer_id matches the customer_id of the manager account you use in uploads.

  • Google Ads treats CLICK_NOT_FOUND errors from enhanced conversions for leads uploads as warnings. As a result, if alerts contains an entry for this error, the corresponding operations are still considered successful and are included in the successful_event_count.