<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="doubleclicksearch_v2.html">Search Ads 360 API</a> . <a href="doubleclicksearch_v2.conversion.html">conversion</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#get">get(agencyId, advertiserId, engineAccountId, endDate, rowCount, startDate, startRow, adGroupId=None, adId=None, campaignId=None, criterionId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves a list of conversions from a DoubleClick Search engine account.</p>
<p class="toc_element">
  <code><a href="#insert">insert(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Inserts a batch of new conversions into DoubleClick Search.</p>
<p class="toc_element">
  <code><a href="#update">update(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates a batch of conversions in DoubleClick Search.</p>
<p class="toc_element">
  <code><a href="#updateAvailability">updateAvailability(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates the availabilities of a batch of floodlight activities in DoubleClick Search.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="get">get(agencyId, advertiserId, engineAccountId, endDate, rowCount, startDate, startRow, adGroupId=None, adId=None, campaignId=None, criterionId=None, x__xgafv=None)</code>
  <pre>Retrieves a list of conversions from a DoubleClick Search engine account.

Args:
  agencyId: string, Numeric ID of the agency. (required)
  advertiserId: string, Numeric ID of the advertiser. (required)
  engineAccountId: string, Numeric ID of the engine account. (required)
  endDate: integer, Last date (inclusive) on which to retrieve conversions. Format is yyyymmdd. (required)
  rowCount: integer, The number of conversions to return per call. (required)
  startDate: integer, First date (inclusive) on which to retrieve conversions. Format is yyyymmdd. (required)
  startRow: integer, The 0-based starting index for retrieving conversions results. (required)
  adGroupId: string, Numeric ID of the ad group.
  adId: string, Numeric ID of the ad.
  campaignId: string, Numeric ID of the campaign.
  criterionId: string, Numeric ID of the criterion.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A list of conversions.
  &quot;conversion&quot;: [ # The conversions being requested.
    { # A conversion containing data relevant to DoubleClick Search.
      &quot;adGroupId&quot;: &quot;A String&quot;, # DS ad group ID.
      &quot;adId&quot;: &quot;A String&quot;, # DS ad ID.
      &quot;advertiserId&quot;: &quot;A String&quot;, # DS advertiser ID.
      &quot;agencyId&quot;: &quot;A String&quot;, # DS agency ID.
      &quot;attributionModel&quot;: &quot;A String&quot;, # Available to advertisers only after contacting DoubleClick Search customer support.
      &quot;campaignId&quot;: &quot;A String&quot;, # DS campaign ID.
      &quot;channel&quot;: &quot;A String&quot;, # Sales channel for the product. Acceptable values are: - &quot;`local`&quot;: a physical store - &quot;`online`&quot;: an online store
      &quot;clickId&quot;: &quot;A String&quot;, # DS click ID for the conversion.
      &quot;conversionId&quot;: &quot;A String&quot;, # For offline conversions, advertisers provide this ID. Advertisers can specify any ID that is meaningful to them. Each conversion in a request must specify a unique ID, and the combination of ID and timestamp must be unique amongst all conversions within the advertiser. For online conversions, DS copies the `dsConversionId` or `floodlightOrderId` into this property depending on the advertiser&#x27;s Floodlight instructions.
      &quot;conversionModifiedTimestamp&quot;: &quot;A String&quot;, # The time at which the conversion was last modified, in epoch millis UTC.
      &quot;conversionTimestamp&quot;: &quot;A String&quot;, # The time at which the conversion took place, in epoch millis UTC.
      &quot;countMillis&quot;: &quot;A String&quot;, # Available to advertisers only after contacting DoubleClick Search customer support.
      &quot;criterionId&quot;: &quot;A String&quot;, # DS criterion (keyword) ID.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the conversion&#x27;s revenue. Should be in ISO 4217 alphabetic (3-char) format.
      &quot;customDimension&quot;: [ # Custom dimensions for the conversion, which can be used to filter data in a report.
        { # A message containing the custom dimension.
          &quot;name&quot;: &quot;A String&quot;, # Custom dimension name.
          &quot;value&quot;: &quot;A String&quot;, # Custom dimension value.
        },
      ],
      &quot;customMetric&quot;: [ # Custom metrics for the conversion.
        { # A message containing the custom metric.
          &quot;name&quot;: &quot;A String&quot;, # Custom metric name.
          &quot;value&quot;: 3.14, # Custom metric numeric value.
        },
      ],
      &quot;deviceType&quot;: &quot;A String&quot;, # The type of device on which the conversion occurred.
      &quot;dsConversionId&quot;: &quot;A String&quot;, # ID that DoubleClick Search generates for each conversion.
      &quot;engineAccountId&quot;: &quot;A String&quot;, # DS engine account ID.
      &quot;floodlightOrderId&quot;: &quot;A String&quot;, # The Floodlight order ID provided by the advertiser for the conversion.
      &quot;inventoryAccountId&quot;: &quot;A String&quot;, # ID that DS generates and uses to uniquely identify the inventory account that contains the product.
      &quot;productCountry&quot;: &quot;A String&quot;, # The country registered for the Merchant Center feed that contains the product. Use an ISO 3166 code to specify a country.
      &quot;productGroupId&quot;: &quot;A String&quot;, # DS product group ID.
      &quot;productId&quot;: &quot;A String&quot;, # The product ID (SKU).
      &quot;productLanguage&quot;: &quot;A String&quot;, # The language registered for the Merchant Center feed that contains the product. Use an ISO 639 code to specify a language.
      &quot;quantityMillis&quot;: &quot;A String&quot;, # The quantity of this conversion, in millis.
      &quot;revenueMicros&quot;: &quot;A String&quot;, # The revenue amount of this `TRANSACTION` conversion, in micros (value multiplied by 1000000, no decimal). For example, to specify a revenue value of &quot;10&quot; enter &quot;10000000&quot; (10 million) in your request.
      &quot;segmentationId&quot;: &quot;A String&quot;, # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
      &quot;segmentationName&quot;: &quot;A String&quot;, # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
      &quot;segmentationType&quot;: &quot;A String&quot;, # The segmentation type of this conversion (for example, `FLOODLIGHT`).
      &quot;state&quot;: &quot;A String&quot;, # The state of the conversion, that is, either `ACTIVE` or `REMOVED`. Note: state DELETED is deprecated.
      &quot;storeId&quot;: &quot;A String&quot;, # The ID of the local store for which the product was advertised. Applicable only when the channel is &quot;`local`&quot;.
      &quot;type&quot;: &quot;A String&quot;, # The type of the conversion, that is, either `ACTION` or `TRANSACTION`. An `ACTION` conversion is an action by the user that has no monetarily quantifiable value, while a `TRANSACTION` conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (`ACTION`) versus ecommerce purchases (`TRANSACTION`).
    },
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.
}</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(body=None, x__xgafv=None)</code>
  <pre>Inserts a batch of new conversions into DoubleClick Search.

Args:
  body: object, The request body.
    The object takes the form of:

{ # A list of conversions.
  &quot;conversion&quot;: [ # The conversions being requested.
    { # A conversion containing data relevant to DoubleClick Search.
      &quot;adGroupId&quot;: &quot;A String&quot;, # DS ad group ID.
      &quot;adId&quot;: &quot;A String&quot;, # DS ad ID.
      &quot;advertiserId&quot;: &quot;A String&quot;, # DS advertiser ID.
      &quot;agencyId&quot;: &quot;A String&quot;, # DS agency ID.
      &quot;attributionModel&quot;: &quot;A String&quot;, # Available to advertisers only after contacting DoubleClick Search customer support.
      &quot;campaignId&quot;: &quot;A String&quot;, # DS campaign ID.
      &quot;channel&quot;: &quot;A String&quot;, # Sales channel for the product. Acceptable values are: - &quot;`local`&quot;: a physical store - &quot;`online`&quot;: an online store
      &quot;clickId&quot;: &quot;A String&quot;, # DS click ID for the conversion.
      &quot;conversionId&quot;: &quot;A String&quot;, # For offline conversions, advertisers provide this ID. Advertisers can specify any ID that is meaningful to them. Each conversion in a request must specify a unique ID, and the combination of ID and timestamp must be unique amongst all conversions within the advertiser. For online conversions, DS copies the `dsConversionId` or `floodlightOrderId` into this property depending on the advertiser&#x27;s Floodlight instructions.
      &quot;conversionModifiedTimestamp&quot;: &quot;A String&quot;, # The time at which the conversion was last modified, in epoch millis UTC.
      &quot;conversionTimestamp&quot;: &quot;A String&quot;, # The time at which the conversion took place, in epoch millis UTC.
      &quot;countMillis&quot;: &quot;A String&quot;, # Available to advertisers only after contacting DoubleClick Search customer support.
      &quot;criterionId&quot;: &quot;A String&quot;, # DS criterion (keyword) ID.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the conversion&#x27;s revenue. Should be in ISO 4217 alphabetic (3-char) format.
      &quot;customDimension&quot;: [ # Custom dimensions for the conversion, which can be used to filter data in a report.
        { # A message containing the custom dimension.
          &quot;name&quot;: &quot;A String&quot;, # Custom dimension name.
          &quot;value&quot;: &quot;A String&quot;, # Custom dimension value.
        },
      ],
      &quot;customMetric&quot;: [ # Custom metrics for the conversion.
        { # A message containing the custom metric.
          &quot;name&quot;: &quot;A String&quot;, # Custom metric name.
          &quot;value&quot;: 3.14, # Custom metric numeric value.
        },
      ],
      &quot;deviceType&quot;: &quot;A String&quot;, # The type of device on which the conversion occurred.
      &quot;dsConversionId&quot;: &quot;A String&quot;, # ID that DoubleClick Search generates for each conversion.
      &quot;engineAccountId&quot;: &quot;A String&quot;, # DS engine account ID.
      &quot;floodlightOrderId&quot;: &quot;A String&quot;, # The Floodlight order ID provided by the advertiser for the conversion.
      &quot;inventoryAccountId&quot;: &quot;A String&quot;, # ID that DS generates and uses to uniquely identify the inventory account that contains the product.
      &quot;productCountry&quot;: &quot;A String&quot;, # The country registered for the Merchant Center feed that contains the product. Use an ISO 3166 code to specify a country.
      &quot;productGroupId&quot;: &quot;A String&quot;, # DS product group ID.
      &quot;productId&quot;: &quot;A String&quot;, # The product ID (SKU).
      &quot;productLanguage&quot;: &quot;A String&quot;, # The language registered for the Merchant Center feed that contains the product. Use an ISO 639 code to specify a language.
      &quot;quantityMillis&quot;: &quot;A String&quot;, # The quantity of this conversion, in millis.
      &quot;revenueMicros&quot;: &quot;A String&quot;, # The revenue amount of this `TRANSACTION` conversion, in micros (value multiplied by 1000000, no decimal). For example, to specify a revenue value of &quot;10&quot; enter &quot;10000000&quot; (10 million) in your request.
      &quot;segmentationId&quot;: &quot;A String&quot;, # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
      &quot;segmentationName&quot;: &quot;A String&quot;, # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
      &quot;segmentationType&quot;: &quot;A String&quot;, # The segmentation type of this conversion (for example, `FLOODLIGHT`).
      &quot;state&quot;: &quot;A String&quot;, # The state of the conversion, that is, either `ACTIVE` or `REMOVED`. Note: state DELETED is deprecated.
      &quot;storeId&quot;: &quot;A String&quot;, # The ID of the local store for which the product was advertised. Applicable only when the channel is &quot;`local`&quot;.
      &quot;type&quot;: &quot;A String&quot;, # The type of the conversion, that is, either `ACTION` or `TRANSACTION`. An `ACTION` conversion is an action by the user that has no monetarily quantifiable value, while a `TRANSACTION` conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (`ACTION`) versus ecommerce purchases (`TRANSACTION`).
    },
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A list of conversions.
  &quot;conversion&quot;: [ # The conversions being requested.
    { # A conversion containing data relevant to DoubleClick Search.
      &quot;adGroupId&quot;: &quot;A String&quot;, # DS ad group ID.
      &quot;adId&quot;: &quot;A String&quot;, # DS ad ID.
      &quot;advertiserId&quot;: &quot;A String&quot;, # DS advertiser ID.
      &quot;agencyId&quot;: &quot;A String&quot;, # DS agency ID.
      &quot;attributionModel&quot;: &quot;A String&quot;, # Available to advertisers only after contacting DoubleClick Search customer support.
      &quot;campaignId&quot;: &quot;A String&quot;, # DS campaign ID.
      &quot;channel&quot;: &quot;A String&quot;, # Sales channel for the product. Acceptable values are: - &quot;`local`&quot;: a physical store - &quot;`online`&quot;: an online store
      &quot;clickId&quot;: &quot;A String&quot;, # DS click ID for the conversion.
      &quot;conversionId&quot;: &quot;A String&quot;, # For offline conversions, advertisers provide this ID. Advertisers can specify any ID that is meaningful to them. Each conversion in a request must specify a unique ID, and the combination of ID and timestamp must be unique amongst all conversions within the advertiser. For online conversions, DS copies the `dsConversionId` or `floodlightOrderId` into this property depending on the advertiser&#x27;s Floodlight instructions.
      &quot;conversionModifiedTimestamp&quot;: &quot;A String&quot;, # The time at which the conversion was last modified, in epoch millis UTC.
      &quot;conversionTimestamp&quot;: &quot;A String&quot;, # The time at which the conversion took place, in epoch millis UTC.
      &quot;countMillis&quot;: &quot;A String&quot;, # Available to advertisers only after contacting DoubleClick Search customer support.
      &quot;criterionId&quot;: &quot;A String&quot;, # DS criterion (keyword) ID.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the conversion&#x27;s revenue. Should be in ISO 4217 alphabetic (3-char) format.
      &quot;customDimension&quot;: [ # Custom dimensions for the conversion, which can be used to filter data in a report.
        { # A message containing the custom dimension.
          &quot;name&quot;: &quot;A String&quot;, # Custom dimension name.
          &quot;value&quot;: &quot;A String&quot;, # Custom dimension value.
        },
      ],
      &quot;customMetric&quot;: [ # Custom metrics for the conversion.
        { # A message containing the custom metric.
          &quot;name&quot;: &quot;A String&quot;, # Custom metric name.
          &quot;value&quot;: 3.14, # Custom metric numeric value.
        },
      ],
      &quot;deviceType&quot;: &quot;A String&quot;, # The type of device on which the conversion occurred.
      &quot;dsConversionId&quot;: &quot;A String&quot;, # ID that DoubleClick Search generates for each conversion.
      &quot;engineAccountId&quot;: &quot;A String&quot;, # DS engine account ID.
      &quot;floodlightOrderId&quot;: &quot;A String&quot;, # The Floodlight order ID provided by the advertiser for the conversion.
      &quot;inventoryAccountId&quot;: &quot;A String&quot;, # ID that DS generates and uses to uniquely identify the inventory account that contains the product.
      &quot;productCountry&quot;: &quot;A String&quot;, # The country registered for the Merchant Center feed that contains the product. Use an ISO 3166 code to specify a country.
      &quot;productGroupId&quot;: &quot;A String&quot;, # DS product group ID.
      &quot;productId&quot;: &quot;A String&quot;, # The product ID (SKU).
      &quot;productLanguage&quot;: &quot;A String&quot;, # The language registered for the Merchant Center feed that contains the product. Use an ISO 639 code to specify a language.
      &quot;quantityMillis&quot;: &quot;A String&quot;, # The quantity of this conversion, in millis.
      &quot;revenueMicros&quot;: &quot;A String&quot;, # The revenue amount of this `TRANSACTION` conversion, in micros (value multiplied by 1000000, no decimal). For example, to specify a revenue value of &quot;10&quot; enter &quot;10000000&quot; (10 million) in your request.
      &quot;segmentationId&quot;: &quot;A String&quot;, # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
      &quot;segmentationName&quot;: &quot;A String&quot;, # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
      &quot;segmentationType&quot;: &quot;A String&quot;, # The segmentation type of this conversion (for example, `FLOODLIGHT`).
      &quot;state&quot;: &quot;A String&quot;, # The state of the conversion, that is, either `ACTIVE` or `REMOVED`. Note: state DELETED is deprecated.
      &quot;storeId&quot;: &quot;A String&quot;, # The ID of the local store for which the product was advertised. Applicable only when the channel is &quot;`local`&quot;.
      &quot;type&quot;: &quot;A String&quot;, # The type of the conversion, that is, either `ACTION` or `TRANSACTION`. An `ACTION` conversion is an action by the user that has no monetarily quantifiable value, while a `TRANSACTION` conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (`ACTION`) versus ecommerce purchases (`TRANSACTION`).
    },
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.
}</pre>
</div>

<div class="method">
    <code class="details" id="update">update(body=None, x__xgafv=None)</code>
  <pre>Updates a batch of conversions in DoubleClick Search.

Args:
  body: object, The request body.
    The object takes the form of:

{ # A list of conversions.
  &quot;conversion&quot;: [ # The conversions being requested.
    { # A conversion containing data relevant to DoubleClick Search.
      &quot;adGroupId&quot;: &quot;A String&quot;, # DS ad group ID.
      &quot;adId&quot;: &quot;A String&quot;, # DS ad ID.
      &quot;advertiserId&quot;: &quot;A String&quot;, # DS advertiser ID.
      &quot;agencyId&quot;: &quot;A String&quot;, # DS agency ID.
      &quot;attributionModel&quot;: &quot;A String&quot;, # Available to advertisers only after contacting DoubleClick Search customer support.
      &quot;campaignId&quot;: &quot;A String&quot;, # DS campaign ID.
      &quot;channel&quot;: &quot;A String&quot;, # Sales channel for the product. Acceptable values are: - &quot;`local`&quot;: a physical store - &quot;`online`&quot;: an online store
      &quot;clickId&quot;: &quot;A String&quot;, # DS click ID for the conversion.
      &quot;conversionId&quot;: &quot;A String&quot;, # For offline conversions, advertisers provide this ID. Advertisers can specify any ID that is meaningful to them. Each conversion in a request must specify a unique ID, and the combination of ID and timestamp must be unique amongst all conversions within the advertiser. For online conversions, DS copies the `dsConversionId` or `floodlightOrderId` into this property depending on the advertiser&#x27;s Floodlight instructions.
      &quot;conversionModifiedTimestamp&quot;: &quot;A String&quot;, # The time at which the conversion was last modified, in epoch millis UTC.
      &quot;conversionTimestamp&quot;: &quot;A String&quot;, # The time at which the conversion took place, in epoch millis UTC.
      &quot;countMillis&quot;: &quot;A String&quot;, # Available to advertisers only after contacting DoubleClick Search customer support.
      &quot;criterionId&quot;: &quot;A String&quot;, # DS criterion (keyword) ID.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the conversion&#x27;s revenue. Should be in ISO 4217 alphabetic (3-char) format.
      &quot;customDimension&quot;: [ # Custom dimensions for the conversion, which can be used to filter data in a report.
        { # A message containing the custom dimension.
          &quot;name&quot;: &quot;A String&quot;, # Custom dimension name.
          &quot;value&quot;: &quot;A String&quot;, # Custom dimension value.
        },
      ],
      &quot;customMetric&quot;: [ # Custom metrics for the conversion.
        { # A message containing the custom metric.
          &quot;name&quot;: &quot;A String&quot;, # Custom metric name.
          &quot;value&quot;: 3.14, # Custom metric numeric value.
        },
      ],
      &quot;deviceType&quot;: &quot;A String&quot;, # The type of device on which the conversion occurred.
      &quot;dsConversionId&quot;: &quot;A String&quot;, # ID that DoubleClick Search generates for each conversion.
      &quot;engineAccountId&quot;: &quot;A String&quot;, # DS engine account ID.
      &quot;floodlightOrderId&quot;: &quot;A String&quot;, # The Floodlight order ID provided by the advertiser for the conversion.
      &quot;inventoryAccountId&quot;: &quot;A String&quot;, # ID that DS generates and uses to uniquely identify the inventory account that contains the product.
      &quot;productCountry&quot;: &quot;A String&quot;, # The country registered for the Merchant Center feed that contains the product. Use an ISO 3166 code to specify a country.
      &quot;productGroupId&quot;: &quot;A String&quot;, # DS product group ID.
      &quot;productId&quot;: &quot;A String&quot;, # The product ID (SKU).
      &quot;productLanguage&quot;: &quot;A String&quot;, # The language registered for the Merchant Center feed that contains the product. Use an ISO 639 code to specify a language.
      &quot;quantityMillis&quot;: &quot;A String&quot;, # The quantity of this conversion, in millis.
      &quot;revenueMicros&quot;: &quot;A String&quot;, # The revenue amount of this `TRANSACTION` conversion, in micros (value multiplied by 1000000, no decimal). For example, to specify a revenue value of &quot;10&quot; enter &quot;10000000&quot; (10 million) in your request.
      &quot;segmentationId&quot;: &quot;A String&quot;, # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
      &quot;segmentationName&quot;: &quot;A String&quot;, # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
      &quot;segmentationType&quot;: &quot;A String&quot;, # The segmentation type of this conversion (for example, `FLOODLIGHT`).
      &quot;state&quot;: &quot;A String&quot;, # The state of the conversion, that is, either `ACTIVE` or `REMOVED`. Note: state DELETED is deprecated.
      &quot;storeId&quot;: &quot;A String&quot;, # The ID of the local store for which the product was advertised. Applicable only when the channel is &quot;`local`&quot;.
      &quot;type&quot;: &quot;A String&quot;, # The type of the conversion, that is, either `ACTION` or `TRANSACTION`. An `ACTION` conversion is an action by the user that has no monetarily quantifiable value, while a `TRANSACTION` conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (`ACTION`) versus ecommerce purchases (`TRANSACTION`).
    },
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A list of conversions.
  &quot;conversion&quot;: [ # The conversions being requested.
    { # A conversion containing data relevant to DoubleClick Search.
      &quot;adGroupId&quot;: &quot;A String&quot;, # DS ad group ID.
      &quot;adId&quot;: &quot;A String&quot;, # DS ad ID.
      &quot;advertiserId&quot;: &quot;A String&quot;, # DS advertiser ID.
      &quot;agencyId&quot;: &quot;A String&quot;, # DS agency ID.
      &quot;attributionModel&quot;: &quot;A String&quot;, # Available to advertisers only after contacting DoubleClick Search customer support.
      &quot;campaignId&quot;: &quot;A String&quot;, # DS campaign ID.
      &quot;channel&quot;: &quot;A String&quot;, # Sales channel for the product. Acceptable values are: - &quot;`local`&quot;: a physical store - &quot;`online`&quot;: an online store
      &quot;clickId&quot;: &quot;A String&quot;, # DS click ID for the conversion.
      &quot;conversionId&quot;: &quot;A String&quot;, # For offline conversions, advertisers provide this ID. Advertisers can specify any ID that is meaningful to them. Each conversion in a request must specify a unique ID, and the combination of ID and timestamp must be unique amongst all conversions within the advertiser. For online conversions, DS copies the `dsConversionId` or `floodlightOrderId` into this property depending on the advertiser&#x27;s Floodlight instructions.
      &quot;conversionModifiedTimestamp&quot;: &quot;A String&quot;, # The time at which the conversion was last modified, in epoch millis UTC.
      &quot;conversionTimestamp&quot;: &quot;A String&quot;, # The time at which the conversion took place, in epoch millis UTC.
      &quot;countMillis&quot;: &quot;A String&quot;, # Available to advertisers only after contacting DoubleClick Search customer support.
      &quot;criterionId&quot;: &quot;A String&quot;, # DS criterion (keyword) ID.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the conversion&#x27;s revenue. Should be in ISO 4217 alphabetic (3-char) format.
      &quot;customDimension&quot;: [ # Custom dimensions for the conversion, which can be used to filter data in a report.
        { # A message containing the custom dimension.
          &quot;name&quot;: &quot;A String&quot;, # Custom dimension name.
          &quot;value&quot;: &quot;A String&quot;, # Custom dimension value.
        },
      ],
      &quot;customMetric&quot;: [ # Custom metrics for the conversion.
        { # A message containing the custom metric.
          &quot;name&quot;: &quot;A String&quot;, # Custom metric name.
          &quot;value&quot;: 3.14, # Custom metric numeric value.
        },
      ],
      &quot;deviceType&quot;: &quot;A String&quot;, # The type of device on which the conversion occurred.
      &quot;dsConversionId&quot;: &quot;A String&quot;, # ID that DoubleClick Search generates for each conversion.
      &quot;engineAccountId&quot;: &quot;A String&quot;, # DS engine account ID.
      &quot;floodlightOrderId&quot;: &quot;A String&quot;, # The Floodlight order ID provided by the advertiser for the conversion.
      &quot;inventoryAccountId&quot;: &quot;A String&quot;, # ID that DS generates and uses to uniquely identify the inventory account that contains the product.
      &quot;productCountry&quot;: &quot;A String&quot;, # The country registered for the Merchant Center feed that contains the product. Use an ISO 3166 code to specify a country.
      &quot;productGroupId&quot;: &quot;A String&quot;, # DS product group ID.
      &quot;productId&quot;: &quot;A String&quot;, # The product ID (SKU).
      &quot;productLanguage&quot;: &quot;A String&quot;, # The language registered for the Merchant Center feed that contains the product. Use an ISO 639 code to specify a language.
      &quot;quantityMillis&quot;: &quot;A String&quot;, # The quantity of this conversion, in millis.
      &quot;revenueMicros&quot;: &quot;A String&quot;, # The revenue amount of this `TRANSACTION` conversion, in micros (value multiplied by 1000000, no decimal). For example, to specify a revenue value of &quot;10&quot; enter &quot;10000000&quot; (10 million) in your request.
      &quot;segmentationId&quot;: &quot;A String&quot;, # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
      &quot;segmentationName&quot;: &quot;A String&quot;, # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
      &quot;segmentationType&quot;: &quot;A String&quot;, # The segmentation type of this conversion (for example, `FLOODLIGHT`).
      &quot;state&quot;: &quot;A String&quot;, # The state of the conversion, that is, either `ACTIVE` or `REMOVED`. Note: state DELETED is deprecated.
      &quot;storeId&quot;: &quot;A String&quot;, # The ID of the local store for which the product was advertised. Applicable only when the channel is &quot;`local`&quot;.
      &quot;type&quot;: &quot;A String&quot;, # The type of the conversion, that is, either `ACTION` or `TRANSACTION`. An `ACTION` conversion is an action by the user that has no monetarily quantifiable value, while a `TRANSACTION` conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (`ACTION`) versus ecommerce purchases (`TRANSACTION`).
    },
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.
}</pre>
</div>

<div class="method">
    <code class="details" id="updateAvailability">updateAvailability(body=None, x__xgafv=None)</code>
  <pre>Updates the availabilities of a batch of floodlight activities in DoubleClick Search.

Args:
  body: object, The request body.
    The object takes the form of:

{ # The request to update availability.
  &quot;availabilities&quot;: [ # The availabilities being requested.
    { # A message containing availability data relevant to DoubleClick Search.
      &quot;advertiserId&quot;: &quot;A String&quot;, # DS advertiser ID.
      &quot;agencyId&quot;: &quot;A String&quot;, # DS agency ID.
      &quot;availabilityTimestamp&quot;: &quot;A String&quot;, # The time by which all conversions have been uploaded, in epoch millis UTC.
      &quot;segmentationId&quot;: &quot;A String&quot;, # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
      &quot;segmentationName&quot;: &quot;A String&quot;, # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
      &quot;segmentationType&quot;: &quot;A String&quot;, # The segmentation type that this availability is for (its default value is `FLOODLIGHT`).
    },
  ],
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response to a update availability request.
  &quot;availabilities&quot;: [ # The availabilities being returned.
    { # A message containing availability data relevant to DoubleClick Search.
      &quot;advertiserId&quot;: &quot;A String&quot;, # DS advertiser ID.
      &quot;agencyId&quot;: &quot;A String&quot;, # DS agency ID.
      &quot;availabilityTimestamp&quot;: &quot;A String&quot;, # The time by which all conversions have been uploaded, in epoch millis UTC.
      &quot;segmentationId&quot;: &quot;A String&quot;, # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
      &quot;segmentationName&quot;: &quot;A String&quot;, # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
      &quot;segmentationType&quot;: &quot;A String&quot;, # The segmentation type that this availability is for (its default value is `FLOODLIGHT`).
    },
  ],
}</pre>
</div>

</body></html>