# Troubleshooting

If you run into problems while using the Search Ads 360 API, take a look through this
troubleshooting section.

If there's a problem that you can't solve after reading the resources on this site,
[contact support](https://support.google.com/searchads/answer/9026876) and have the
following information ready:

- Search Ads 360 Agency ID and Advertiser ID you are trying to access

- Project Number from [Google API Console](https://console.cloud.google.com/)

- The username of the Google Account that you're using to access the API.  

  This is the account that has been [given
  permission to access Search Ads 360](https://developers.google.com/search-ads/v2/prereqs#permissions), which is the same account you use to
  [set up authorization](https://developers.google.com/search-ads/v2/authorizing).

- Code snippet of your request

- JSON response  

  If the response is an error, be sure to include the error message, not just the
  numeric error code.

### Authorization errors

Here are some commonly encountered authorization errors:

| Message | Description |
|---|---|
| `Access Not Configured. Please use Google API Console to activate the API for your project.` | This error occurs if you haven't enabled the Search Ads 360 API for your account. Make sure you've done the following: 1. Go to the [Google API Console](https://console.cloud.google.com/). 2. Select your project. If you haven't created a project yet, see [Create a project for your client](https://developers.google.com/search-ads/v2/prereqs#project). 3. In the sidebar on the left, expand **APIs \& auth.** Next, click **APIs** . In the list of APIs, make sure the status is **ON** for the Search Ads 360 API. |
| `Invalid grant` | This error occurs when your refresh token isn't valid. You can obtain a refresh token by invoking the [Search Ads 360 utility script](https://developers.google.com/search-ads/v2/prereqs#ds3py) as follows: `sa360Api.py --login` [Learn more](https://developers.google.com/search-ads/v2/authorizing#recommended) about the recommended workflow for authorization. |
| `Invalid client no application name` | This error occurs if you haven't specified a product name when setting up your project in the Google API Console. To fix this error, [enter the name of your product on the Consent screen](https://support.google.com/cloud/answer/6158849#userconsent) of the Google API Console. |
| Other types of authorization errors | Make sure to [use a Google Account that has been granted access to Search Ads 360](https://developers.google.com/search-ads/v2/prereqs#permissions) when you sign in to the Google API Console to retrieve your client ID and client secret, and when you obtain a refresh token. |

### Conversion upload errors

The following table lists the errors you may encounter when uploading conversions. Note that the
hexadecimal error codes are immutable, so you can use them in your own scripts to identify errors.

| Error code | Message | Description |
|---|---|---|
| `0x00000101` | `Click ID '{ID}' is not found` | The [click id](https://developers.google.com/search-ads/v2/how-tos/conversions#click-id) you specified in an `https://developers.google.com/search-ads/v2/reference/conversion/update` request is not valid. Reupload conversions after you've done the following: - Verified that the click ID was generated 6 hours before conversions were uploaded. - [Activated the API conversion service](https://developers.google.com/search-ads/v2/prereqs#activate-conversion-service). - If you're [attributing conversions to specific visits](https://developers.google.com/search-ads/v2/how-tos/conversions/insert#click-id), wait at least 6 hours after the visit before you upload the conversion. Search Ads 360 might not recognize the visit's clickID if you upload sooner than 6 hours after the visit. In rare instances, you might need to wait up to 24 hours before Search Ads 360 could recognize the clickId. - Confirmed that the click is from a valid source as [indicated by the `gclsrc` parameter](https://developers.google.com/search-ads/v2/how-tos/conversions#click-id). - Confirmed that you've specified the correct advertiser in the [advertiserId](https://developers.google.com/search-ads/v2/reference/conversion#conversion.advertiserId) column. - Verified your click ID was generated within the last 90 days. |
| `0x0000010E` | `Floodlight activity name '{name}' is not found` | The name of the Floodlight activity specified in the ` https://developers.google.com/search-ads/v2/reference/conversion#conversion.segmentationName` column is incorrect or not yet available. If you see this error, check for the following common problems: - Names are case-sensitive, so make sure your request matched the case exactly. - Make sure you didn't include any unprintable Unicode character or double spaces in the Floodlight activity name. - Make sure you specified the name of a [Floodlight activity](https://support.google.com/searchads/answer/2407536), not a [Floodlight column](https://support.google.com/searchads/answer/6051170). - Check that the Floodlight activity exists for the advertiser you specified in the `https://developers.google.com/search-ads/v2/reference/conversion#conversion.advertiserId` column. (It's possible you specified the wrong advertiser.) - After you create or edit a Floodlight activity, wait a couple of hours before uploading conversions for the activity. |
| `0x00000115` | `Custom dimension '{name}' is not found` | Make sure the custom Floodlight variable you specified has been [set up](https://support.google.com/searchads/answer/4397154#setup) as a **dimension** (not a metric) for the advertiser associated with the `https://developers.google.com/search-ads/v2/reference/conversion#conversion.clickId`, `https://developers.google.com/search-ads/v2/reference/conversion#conversion.criterionId`, or `https://developers.google.com/search-ads/v2/reference/conversion#conversion.productGroupId` you're attributing for the conversion. |
| `0x00000116` | `Custom metric '{name}' is not found` | Make sure the custom Floodlight variable you specified has been [set up](https://support.google.com/searchads/answer/4397154#setup) as a **metric** (not a dimension) for the advertiser associated with the `https://developers.google.com/search-ads/v2/reference/conversion#conversion.clickId`, `https://developers.google.com/search-ads/v2/reference/conversion#conversion.criterionId`, or `https://developers.google.com/search-ads/v2/reference/conversion#conversion.productGroupId` you're attributing for the conversion. |
| `0x0000011A` | `The advertiser conversion ID is already specified for a conversion with Search Ads 360 conversion ID {ID}` | Someone has already uploaded a conversion for the same scope and advertiser conversion ID specified in the `https://developers.google.com/search-ads/v2/reference/conversion#conversion.conversionId` column. The "advertiser conversion ID" is an ID you generate. Search Ads 360 requires this ID to be unique for a given scope. The [Search Ads 360 conversion ID](https://developers.google.com/search-ads/v2/reference/conversion#conversion.dsConversionId) is generated by Search Ads 360 and is guaranteed to be unique. |
| `0x0000011B` | `Advertiser conversion ID '{ID}' is not found` | Your `https://developers.google.com/search-ads/v2/reference/conversion/update` request tried to update an advertiser conversion ID that doesn't exist. Make sure you specified the right ID. |
| `0x0000011D` | `User does not have permission to view advertiser {advertiser ID}` | The Google Account your client is using doesn't have permission to view the advertiser specified in the request. When you sign in to the Google API Console to retrieve your client ID and client secret, and when you obtain a refresh token, make sure to use a Google Account that has been [granted access](https://developers.google.com/search-ads/v2/prereqs#permissions) to the advertiser you specified. |
| `0x0000011F` | `Advertiser conversion ID is already specified in this request` | Two or more conversions in the request specify the same scope and advertiser conversion ID. The advertiser conversion ID is an ID you generate and specify in the `https://developers.google.com/search-ads/v2/reference/conversion#conversion.conversionId` column. Search Ads 360 requires this ID to be unique for a given scope. |
| `0x0000011E` | `The requested Floodlight activity '{name}' does not match the conversion type (ACTION/TRANSACTION)` | The Floodlight activity ID or name that you've provided doesn't match the conversion type you've specified. |
| `0x00000126` | `Service internal error` | Retry your request after some time. This is likely a transient error. Please contact SA360 support if this error persists. |

### Report response codes and error messages

If you request a report and the response is an error message, see
[Response Codes in the Search Ads 360 API](https://developers.google.com/search-ads/v2/response-codes)
and [Standard Error Responses](https://developers.google.com/search-ads/v2/standard-error-responses) for
more information about the error.

### The data in the Search Ads 360 UI doesn't match a report returned by the API

The data in the Search Ads 360 UI should match the data returned by the API by default.
If you set [`includeRemovedEntities`](https://developers.google.com/search-ads/v2/reference/reports#request.includeRemovedEntities) to `true` in a report request,
make sure that the [**Show removed**
checkbox is also selected in the UI](https://support.google.com/searchads/answer/3481923).