# Upload Data for Custom Floodlight Variables

By default, a conversion contains a limited amount of descriptive data, such as the time the
conversion occurred, the source of the conversion, and optionally a monetary value. If you
collect additional data about your conversions, such as the country to which a purchased item
is shipped, product IDs, or even the duration of a telephone call, you can use [custom Floodlight variables](https://support.google.com/dcm/partner/answer/2823222) to track
the data and upload it to Search Ads 360.

After you upload the data, you can:

- Create reporting columns in Search Ads 360 to display the data or use it to
  filter a Floodlight column.

- Use the data in formula columns.

- Use the data to segment and group reports.

- Use the Search Ads 360 API to
  [download reports that contain the data](https://developers.google.com/search-ads/v2/how-tos/reporting/custom-metrics-dimensions).

[Learn more](https://support.google.com/searchads/answer/4397154) about using the
uploaded data.

## Setting up custom Floodlight variables

You initially set up custom Floodlight variables as part of
[configuring Floodlight in
Campaign Manager](https://support.google.com/dcm/partner/answer/2823222). Then, your Search Ads 360 customer service contact will
[set up the custom
variables in Search Ads 360](https://support.google.com/searchads/answer/4397154#setup). After these steps are done, you can specify data
for the variables when you add or modify conversions.

## Variable name and type

Each variable is assigned a **friendly name** that is unique for a given
advertiser and one of the following data types:

- **Metric**: Numeric data that Search Ads 360 aggregates in conversion reports. For
  example, metric variables can be used to keep track of overall shipping costs or to keep
  count of items purchased.

- **Dimension** : Numeric or text data that can be used to filter data in a
  report. For example, dimension variables can track a store name or numeric product ID, and
  then be used in [a Floodlight reporting
  column](https://support.google.com/searchads/answer/2558771) that contains only the data from a specific store or for a specific
  product.

## Uploading the custom data

To upload data for a **metric** custom Floodlight variable, include the
following field in a
[`Conversion.insert()`](https://developers.google.com/search-ads/v2/reference/conversion/insert)
or [`Conversion.update()`](https://developers.google.com/search-ads/v2/reference/conversion/update)
request:

```
   'customMetric': [
      {
        'name': 'friendly-name',
        'value': Number
      },
     ]
```

To upload data for a **dimension** custom Floodlight variable, include the
following field in a
[`Conversion.insert()`](https://developers.google.com/search-ads/v2/reference/conversion/insert)
or [`Conversion.update()`](https://developers.google.com/search-ads/v2/reference/conversion/update)
request:

```
   'customDimension': [
      {
        'name': 'friendly-name',
        'value': String
      },
     ]
```

> [!CAUTION]
> **Important:** Make sure the name you specify in the request matches the name of a custom Floodlight variable as it has been configured in Search Ads 360. Otherwise the request will fail and respond with error message like this:  
> `The request was not valid. Details: [Custom dimension/metric does not exist:
> Dimension_1]"`

## Example

For example, an advertiser has the following custom Floodlight variables configured for
Search Ads 360:

- sales (metric)
- shipping (metric)
- product_type (dimension)
- product_id (dimension)

If a customer completes a purchase over the telephone, you can make the following
[`Conversion.insert()`](https://developers.google.com/search-ads/v2/reference/conversion/insert)
request to upload the conversion and include data for the custom metrics:

```
POST  https://www.googleapis.com/doubleclicksearch/v2/conversion
Authorization: Bearer your OAuth 2.0 access token
Content-type: application/json

{
 'kind': 'doubleclicksearch#conversionList',
 'conversion' : [{
   'agencyId': '12300000000000456', // Replace with your ID
   'advertiserId': '78900000000000123', // Replace with your ID
   'engineAccountId': '101100000000000123', // Replace with your ID
   'campaignId': '13400000003156701', // Replace with your ID
   'adGroupId': '58700000128508001', // Replace with your ID
   'criterionId': '43700001095692142', // Replace with your ID
   'adId': '0',
   'conversionId': 'test_20140121_01',
   'state': 'ACTIVE',
   'type': 'TRANSACTION',
   'revenueMicros': 10000000, // To report $10 of revenue, specify 10 million revenueMicros
   'currencyCode': 'USD',
   'segmentationType': 'FLOODLIGHT',
   'segmentationId': '25700000001472562', // Replace with your ID
   'conversionTimestamp': '1390073000011',
   'floodlightOrderId': 'test',
   'customMetric': [
    {
      'name': 'sales',
      'value': 2.0
    },
    {
      'name': 'shipping',
      'value': 3.0
    }
   ],
   'customDimension': [
    {
      'name': 'product_type',
      'value': 'shoes'
    },
    {
      'name': 'product_id',
      'value': 'shoe 2'
    }
   ]
 }]
}
```

## Handle Search Ads 360 responses

As with other [`Conversion.insert()`](https://developers.google.com/search-ads/v2/reference/conversion/insert)
or [`Conversion.update()`](https://developers.google.com/search-ads/v2/reference/conversion/update) requests,
if the request succeeds, the response includes the full Search Ads 360 internal representation
for each uploaded conversion.

If the request fails to validate or upload, the response includes failure messages.
For more information about these failure messages, see [Handle
Search Ads 360 responses](https://developers.google.com/search-ads/v2/how-tos/conversions/insert#if-the-request-does-not-succeed) for insert requests.