<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, customerId=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="#getByCustomerId">getByCustomerId(customerId, endDate, rowCount, startDate, startRow, adGroupId=None, adId=None, advertiserId=None, agencyId=None, campaignId=None, criterionId=None, engineAccountId=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, customerId=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.
  customerId: string, Customer ID of a client account in the new Search Ads 360 experience.
  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. Common DS3 API conversion fields: Id Range [1 - 2800]. Next Id to use: 33
      &quot;adGroupId&quot;: &quot;A String&quot;, # DS ad group ID.
      &quot;adId&quot;: &quot;A String&quot;, # DS ad ID.
      &quot;adUserDataConsent&quot;: &quot;A String&quot;, # Represents consent for core platform services (CPS) preferences in settings. No default value. Acceptable values are: GRANTED: The desired consent status is to grant. Read the CPS preferences from GTE settings. DENIED: The desired consent status is to deny; CPS list is empty.
      &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;customerId&quot;: &quot;A String&quot;, # Customer ID of a client account in the new Search Ads 360 experience.
      &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="getByCustomerId">getByCustomerId(customerId, endDate, rowCount, startDate, startRow, adGroupId=None, adId=None, advertiserId=None, agencyId=None, campaignId=None, criterionId=None, engineAccountId=None, x__xgafv=None)</code>
  <pre>Retrieves a list of conversions from a DoubleClick Search engine account.

Args:
  customerId: string, Customer ID of a client account in the new Search Ads 360 experience. (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.
  advertiserId: string, Numeric ID of the advertiser.
  agencyId: string, Numeric ID of the agency.
  campaignId: string, Numeric ID of the campaign.
  criterionId: string, Numeric ID of the criterion.
  engineAccountId: string, Numeric ID of the engine account.
  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. Common DS3 API conversion fields: Id Range [1 - 2800]. Next Id to use: 33
      &quot;adGroupId&quot;: &quot;A String&quot;, # DS ad group ID.
      &quot;adId&quot;: &quot;A String&quot;, # DS ad ID.
      &quot;adUserDataConsent&quot;: &quot;A String&quot;, # Represents consent for core platform services (CPS) preferences in settings. No default value. Acceptable values are: GRANTED: The desired consent status is to grant. Read the CPS preferences from GTE settings. DENIED: The desired consent status is to deny; CPS list is empty.
      &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;customerId&quot;: &quot;A String&quot;, # Customer ID of a client account in the new Search Ads 360 experience.
      &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. Common DS3 API conversion fields: Id Range [1 - 2800]. Next Id to use: 33
      &quot;adGroupId&quot;: &quot;A String&quot;, # DS ad group ID.
      &quot;adId&quot;: &quot;A String&quot;, # DS ad ID.
      &quot;adUserDataConsent&quot;: &quot;A String&quot;, # Represents consent for core platform services (CPS) preferences in settings. No default value. Acceptable values are: GRANTED: The desired consent status is to grant. Read the CPS preferences from GTE settings. DENIED: The desired consent status is to deny; CPS list is empty.
      &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;customerId&quot;: &quot;A String&quot;, # Customer ID of a client account in the new Search Ads 360 experience.
      &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. Common DS3 API conversion fields: Id Range [1 - 2800]. Next Id to use: 33
      &quot;adGroupId&quot;: &quot;A String&quot;, # DS ad group ID.
      &quot;adId&quot;: &quot;A String&quot;, # DS ad ID.
      &quot;adUserDataConsent&quot;: &quot;A String&quot;, # Represents consent for core platform services (CPS) preferences in settings. No default value. Acceptable values are: GRANTED: The desired consent status is to grant. Read the CPS preferences from GTE settings. DENIED: The desired consent status is to deny; CPS list is empty.
      &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;customerId&quot;: &quot;A String&quot;, # Customer ID of a client account in the new Search Ads 360 experience.
      &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. Common DS3 API conversion fields: Id Range [1 - 2800]. Next Id to use: 33
      &quot;adGroupId&quot;: &quot;A String&quot;, # DS ad group ID.
      &quot;adId&quot;: &quot;A String&quot;, # DS ad ID.
      &quot;adUserDataConsent&quot;: &quot;A String&quot;, # Represents consent for core platform services (CPS) preferences in settings. No default value. Acceptable values are: GRANTED: The desired consent status is to grant. Read the CPS preferences from GTE settings. DENIED: The desired consent status is to deny; CPS list is empty.
      &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;customerId&quot;: &quot;A String&quot;, # Customer ID of a client account in the new Search Ads 360 experience.
      &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. Common DS3 API conversion fields: Id Range [1 - 2800]. Next Id to use: 33
      &quot;adGroupId&quot;: &quot;A String&quot;, # DS ad group ID.
      &quot;adId&quot;: &quot;A String&quot;, # DS ad ID.
      &quot;adUserDataConsent&quot;: &quot;A String&quot;, # Represents consent for core platform services (CPS) preferences in settings. No default value. Acceptable values are: GRANTED: The desired consent status is to grant. Read the CPS preferences from GTE settings. DENIED: The desired consent status is to deny; CPS list is empty.
      &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;customerId&quot;: &quot;A String&quot;, # Customer ID of a client account in the new Search Ads 360 experience.
      &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;customerId&quot;: &quot;A String&quot;, # Customer ID of a client account in the new Search Ads 360 experience.
      &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;customerId&quot;: &quot;A String&quot;, # Customer ID of a client account in the new Search Ads 360 experience.
      &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>