<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="dfareporting_v3_4.html">Campaign Manager 360 API</a> . <a href="dfareporting_v3_4.placements.html">placements</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="#generatetags">generatetags(profileId, campaignId=None, placementIds=None, tagFormats=None, x__xgafv=None)</a></code></p>
<p class="firstline">Generates tags for a placement.</p>
<p class="toc_element">
  <code><a href="#get">get(profileId, id, x__xgafv=None)</a></code></p>
<p class="firstline">Gets one placement by ID.</p>
<p class="toc_element">
  <code><a href="#insert">insert(profileId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Inserts a new placement.</p>
<p class="toc_element">
  <code><a href="#list">list(profileId, advertiserIds=None, archived=None, campaignIds=None, compatibilities=None, contentCategoryIds=None, directorySiteIds=None, groupIds=None, ids=None, maxEndDate=None, maxResults=None, maxStartDate=None, minEndDate=None, minStartDate=None, pageToken=None, paymentSource=None, placementStrategyIds=None, pricingTypes=None, searchString=None, siteIds=None, sizeIds=None, sortField=None, sortOrder=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves a list of placements, possibly filtered. This method supports paging.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(profileId, id, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates an existing placement. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(profileId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates an existing placement.</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="generatetags">generatetags(profileId, campaignId=None, placementIds=None, tagFormats=None, x__xgafv=None)</code>
  <pre>Generates tags for a placement.

Args:
  profileId: string, User profile ID associated with this request. (required)
  campaignId: string, Generate placements belonging to this campaign. This is a required field.
  placementIds: string, Generate tags for these placements. (repeated)
  tagFormats: string, Tag formats to generate for these placements. *Note:* PLACEMENT_TAG_STANDARD can only be generated for 1x1 placements. (repeated)
    Allowed values
      PLACEMENT_TAG_STANDARD - 
      PLACEMENT_TAG_IFRAME_JAVASCRIPT - 
      PLACEMENT_TAG_IFRAME_ILAYER - 
      PLACEMENT_TAG_INTERNAL_REDIRECT - 
      PLACEMENT_TAG_JAVASCRIPT - 
      PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT - 
      PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT - 
      PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT - 
      PLACEMENT_TAG_CLICK_COMMANDS - 
      PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH - 
      PLACEMENT_TAG_TRACKING - 
      PLACEMENT_TAG_TRACKING_IFRAME - 
      PLACEMENT_TAG_TRACKING_JAVASCRIPT - 
      PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3 - 
      PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY - 
      PLACEMENT_TAG_JAVASCRIPT_LEGACY - 
      PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY - 
      PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY - 
      PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4 - 
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Placement GenerateTags Response
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#placementsGenerateTagsResponse&quot;.
  &quot;placementTags&quot;: [ # Set of generated tags for the specified placements.
    { # Placement Tag
      &quot;placementId&quot;: &quot;A String&quot;, # Placement ID
      &quot;tagDatas&quot;: [ # Tags generated for this placement.
        { # Placement Tag Data
          &quot;adId&quot;: &quot;A String&quot;, # Ad associated with this placement tag. Applicable only when format is PLACEMENT_TAG_TRACKING.
          &quot;clickTag&quot;: &quot;A String&quot;, # Tag string to record a click.
          &quot;creativeId&quot;: &quot;A String&quot;, # Creative associated with this placement tag. Applicable only when format is PLACEMENT_TAG_TRACKING.
          &quot;format&quot;: &quot;A String&quot;, # TagData tag format of this tag.
          &quot;impressionTag&quot;: &quot;A String&quot;, # Tag string for serving an ad.
        },
      ],
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(profileId, id, x__xgafv=None)</code>
  <pre>Gets one placement by ID.

Args:
  profileId: string, User profile ID associated with this request. (required)
  id: string, Placement ID. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Contains properties of a placement.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this placement. This field can be left blank.
  &quot;adBlockingOptOut&quot;: True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
  &quot;additionalSizes&quot;: [ # Additional sizes associated with this placement. When inserting or updating a placement, only the size ID field is used.
    { # Represents the dimensions of ads, placements, creatives, or creative assets.
      &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
      &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
      &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
      &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
    },
  ],
  &quot;advertiserId&quot;: &quot;A String&quot;, # Advertiser ID of this placement. This field can be left blank.
  &quot;advertiserIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;archived&quot;: True or False, # Whether this placement is archived.
  &quot;campaignId&quot;: &quot;A String&quot;, # Campaign ID of this placement. This field is a required field on insertion.
  &quot;campaignIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;comment&quot;: &quot;A String&quot;, # Comments for this placement.
  &quot;compatibility&quot;: &quot;A String&quot;, # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
  &quot;contentCategoryId&quot;: &quot;A String&quot;, # ID of the content category assigned to this placement.
  &quot;createInfo&quot;: { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;directorySiteId&quot;: &quot;A String&quot;, # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;directorySiteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;externalId&quot;: &quot;A String&quot;, # External ID for this placement.
  &quot;id&quot;: &quot;A String&quot;, # ID of this placement. This is a read-only, auto-generated field.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;keyName&quot;: &quot;A String&quot;, # Key name of this placement. This is a read-only, auto-generated field.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#placement&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;lookbackConfiguration&quot;: { # Lookback configuration settings. # Lookback window settings for this placement.
    &quot;clickDuration&quot;: 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
    &quot;postImpressionActivitiesDuration&quot;: 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
  },
  &quot;name&quot;: &quot;A String&quot;, # Name of this placement.This is a required field and must be less than or equal to 256 characters long.
  &quot;paymentApproved&quot;: True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
  &quot;paymentSource&quot;: &quot;A String&quot;, # Payment source for this placement. This is a required field that is read-only after insertion.
  &quot;placementGroupId&quot;: &quot;A String&quot;, # ID of this placement&#x27;s group, if applicable.
  &quot;placementGroupIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;placementStrategyId&quot;: &quot;A String&quot;, # ID of the placement strategy assigned to this placement.
  &quot;pricingSchedule&quot;: { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
    &quot;capCostOption&quot;: &quot;A String&quot;, # Placement cap cost option.
    &quot;endDate&quot;: &quot;A String&quot;,
    &quot;flighted&quot;: True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
    &quot;floodlightActivityId&quot;: &quot;A String&quot;, # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
    &quot;pricingPeriods&quot;: [ # Pricing periods for this placement.
      { # Pricing Period
        &quot;endDate&quot;: &quot;A String&quot;,
        &quot;pricingComment&quot;: &quot;A String&quot;, # Comments for this pricing period.
        &quot;rateOrCostNanos&quot;: &quot;A String&quot;, # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
        &quot;startDate&quot;: &quot;A String&quot;,
        &quot;units&quot;: &quot;A String&quot;, # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
      },
    ],
    &quot;pricingType&quot;: &quot;A String&quot;, # Placement pricing type. This field is required on insertion.
    &quot;startDate&quot;: &quot;A String&quot;,
    &quot;testingStartDate&quot;: &quot;A String&quot;,
  },
  &quot;primary&quot;: True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock&#x27;s primaryPlacementId field to the ID of this placement.
  &quot;publisherUpdateInfo&quot;: { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;siteId&quot;: &quot;A String&quot;, # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;siteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
    &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
    &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
    &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
    &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
  },
  &quot;sslRequired&quot;: True or False, # Whether creatives assigned to this placement must be SSL-compliant.
  &quot;status&quot;: &quot;A String&quot;, # Third-party placement status.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this placement. This field can be left blank.
  &quot;tagFormats&quot;: [ # Tag formats to generate for this placement. This field is required on insertion. Acceptable values are: - &quot;PLACEMENT_TAG_STANDARD&quot; - &quot;PLACEMENT_TAG_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_IFRAME_ILAYER&quot; - &quot;PLACEMENT_TAG_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_CLICK_COMMANDS&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4&quot; - &quot;PLACEMENT_TAG_TRACKING&quot; - &quot;PLACEMENT_TAG_TRACKING_IFRAME&quot; - &quot;PLACEMENT_TAG_TRACKING_JAVASCRIPT&quot;
    &quot;A String&quot;,
  ],
  &quot;tagSetting&quot;: { # Tag Settings # Tag settings for this placement.
    &quot;additionalKeyValues&quot;: &quot;A String&quot;, # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
    &quot;includeClickThroughUrls&quot;: True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
    &quot;includeClickTracking&quot;: True or False, # Whether click-tracking string should be included in the tags.
    &quot;keywordOption&quot;: &quot;A String&quot;, # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
  },
  &quot;videoActiveViewOptOut&quot;: True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
  &quot;videoSettings&quot;: { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
    &quot;companionSettings&quot;: { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
      &quot;companionsDisabled&quot;: True or False, # Whether companions are disabled for this placement.
      &quot;enabledSizes&quot;: [ # Allowlist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
        { # Represents the dimensions of ads, placements, creatives, or creative assets.
          &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
          &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
          &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
          &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
        },
      ],
      &quot;imageOnly&quot;: True or False, # Whether to serve only static images as companions.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#companionSetting&quot;.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#videoSettings&quot;.
    &quot;obaEnabled&quot;: True or False, # Whether OBA icons are enabled for this placement.
    &quot;obaSettings&quot;: { # Online Behavioral Advertiser icon. # Settings for the OBA icon of video creatives served to this placement. If this object is provided, the creative-level OBA settings will be overridden.
      &quot;iconClickThroughUrl&quot;: &quot;A String&quot;, # URL to redirect to when an OBA icon is clicked.
      &quot;iconClickTrackingUrl&quot;: &quot;A String&quot;, # URL to track click when an OBA icon is clicked.
      &quot;iconViewTrackingUrl&quot;: &quot;A String&quot;, # URL to track view when an OBA icon is clicked.
      &quot;program&quot;: &quot;A String&quot;, # Identifies the industry initiative that the icon supports. For example, AdChoices.
      &quot;resourceUrl&quot;: &quot;A String&quot;, # OBA icon resource URL. Campaign Manager only supports image and JavaScript icons. Learn more
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # OBA icon size.
        &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
        &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
        &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
        &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
      },
      &quot;xPosition&quot;: &quot;A String&quot;, # OBA icon x coordinate position. Accepted values are left or right.
      &quot;yPosition&quot;: &quot;A String&quot;, # OBA icon y coordinate position. Accepted values are top or bottom.
    },
    &quot;orientation&quot;: &quot;A String&quot;, # Orientation of a video placement. If this value is set, placement will return assets matching the specified orientation.
    &quot;skippableSettings&quot;: { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#skippableSetting&quot;.
      &quot;progressOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skipOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skippable&quot;: True or False, # Whether the user can skip creatives served to this placement.
    },
    &quot;transcodeSettings&quot;: { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
      &quot;enabledVideoFormats&quot;: [ # Allowlist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
        42,
      ],
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#transcodeSetting&quot;.
    },
  },
  &quot;vpaidAdapterChoice&quot;: &quot;A String&quot;, # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement. *Note:* Flash is no longer supported. This field now defaults to HTML5 when the following values are provided: FLASH, BOTH.
}</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(profileId, body=None, x__xgafv=None)</code>
  <pre>Inserts a new placement.

Args:
  profileId: string, User profile ID associated with this request. (required)
  body: object, The request body.
    The object takes the form of:

{ # Contains properties of a placement.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this placement. This field can be left blank.
  &quot;adBlockingOptOut&quot;: True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
  &quot;additionalSizes&quot;: [ # Additional sizes associated with this placement. When inserting or updating a placement, only the size ID field is used.
    { # Represents the dimensions of ads, placements, creatives, or creative assets.
      &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
      &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
      &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
      &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
    },
  ],
  &quot;advertiserId&quot;: &quot;A String&quot;, # Advertiser ID of this placement. This field can be left blank.
  &quot;advertiserIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;archived&quot;: True or False, # Whether this placement is archived.
  &quot;campaignId&quot;: &quot;A String&quot;, # Campaign ID of this placement. This field is a required field on insertion.
  &quot;campaignIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;comment&quot;: &quot;A String&quot;, # Comments for this placement.
  &quot;compatibility&quot;: &quot;A String&quot;, # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
  &quot;contentCategoryId&quot;: &quot;A String&quot;, # ID of the content category assigned to this placement.
  &quot;createInfo&quot;: { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;directorySiteId&quot;: &quot;A String&quot;, # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;directorySiteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;externalId&quot;: &quot;A String&quot;, # External ID for this placement.
  &quot;id&quot;: &quot;A String&quot;, # ID of this placement. This is a read-only, auto-generated field.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;keyName&quot;: &quot;A String&quot;, # Key name of this placement. This is a read-only, auto-generated field.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#placement&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;lookbackConfiguration&quot;: { # Lookback configuration settings. # Lookback window settings for this placement.
    &quot;clickDuration&quot;: 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
    &quot;postImpressionActivitiesDuration&quot;: 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
  },
  &quot;name&quot;: &quot;A String&quot;, # Name of this placement.This is a required field and must be less than or equal to 256 characters long.
  &quot;paymentApproved&quot;: True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
  &quot;paymentSource&quot;: &quot;A String&quot;, # Payment source for this placement. This is a required field that is read-only after insertion.
  &quot;placementGroupId&quot;: &quot;A String&quot;, # ID of this placement&#x27;s group, if applicable.
  &quot;placementGroupIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;placementStrategyId&quot;: &quot;A String&quot;, # ID of the placement strategy assigned to this placement.
  &quot;pricingSchedule&quot;: { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
    &quot;capCostOption&quot;: &quot;A String&quot;, # Placement cap cost option.
    &quot;endDate&quot;: &quot;A String&quot;,
    &quot;flighted&quot;: True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
    &quot;floodlightActivityId&quot;: &quot;A String&quot;, # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
    &quot;pricingPeriods&quot;: [ # Pricing periods for this placement.
      { # Pricing Period
        &quot;endDate&quot;: &quot;A String&quot;,
        &quot;pricingComment&quot;: &quot;A String&quot;, # Comments for this pricing period.
        &quot;rateOrCostNanos&quot;: &quot;A String&quot;, # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
        &quot;startDate&quot;: &quot;A String&quot;,
        &quot;units&quot;: &quot;A String&quot;, # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
      },
    ],
    &quot;pricingType&quot;: &quot;A String&quot;, # Placement pricing type. This field is required on insertion.
    &quot;startDate&quot;: &quot;A String&quot;,
    &quot;testingStartDate&quot;: &quot;A String&quot;,
  },
  &quot;primary&quot;: True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock&#x27;s primaryPlacementId field to the ID of this placement.
  &quot;publisherUpdateInfo&quot;: { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;siteId&quot;: &quot;A String&quot;, # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;siteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
    &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
    &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
    &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
    &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
  },
  &quot;sslRequired&quot;: True or False, # Whether creatives assigned to this placement must be SSL-compliant.
  &quot;status&quot;: &quot;A String&quot;, # Third-party placement status.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this placement. This field can be left blank.
  &quot;tagFormats&quot;: [ # Tag formats to generate for this placement. This field is required on insertion. Acceptable values are: - &quot;PLACEMENT_TAG_STANDARD&quot; - &quot;PLACEMENT_TAG_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_IFRAME_ILAYER&quot; - &quot;PLACEMENT_TAG_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_CLICK_COMMANDS&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4&quot; - &quot;PLACEMENT_TAG_TRACKING&quot; - &quot;PLACEMENT_TAG_TRACKING_IFRAME&quot; - &quot;PLACEMENT_TAG_TRACKING_JAVASCRIPT&quot;
    &quot;A String&quot;,
  ],
  &quot;tagSetting&quot;: { # Tag Settings # Tag settings for this placement.
    &quot;additionalKeyValues&quot;: &quot;A String&quot;, # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
    &quot;includeClickThroughUrls&quot;: True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
    &quot;includeClickTracking&quot;: True or False, # Whether click-tracking string should be included in the tags.
    &quot;keywordOption&quot;: &quot;A String&quot;, # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
  },
  &quot;videoActiveViewOptOut&quot;: True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
  &quot;videoSettings&quot;: { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
    &quot;companionSettings&quot;: { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
      &quot;companionsDisabled&quot;: True or False, # Whether companions are disabled for this placement.
      &quot;enabledSizes&quot;: [ # Allowlist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
        { # Represents the dimensions of ads, placements, creatives, or creative assets.
          &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
          &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
          &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
          &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
        },
      ],
      &quot;imageOnly&quot;: True or False, # Whether to serve only static images as companions.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#companionSetting&quot;.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#videoSettings&quot;.
    &quot;obaEnabled&quot;: True or False, # Whether OBA icons are enabled for this placement.
    &quot;obaSettings&quot;: { # Online Behavioral Advertiser icon. # Settings for the OBA icon of video creatives served to this placement. If this object is provided, the creative-level OBA settings will be overridden.
      &quot;iconClickThroughUrl&quot;: &quot;A String&quot;, # URL to redirect to when an OBA icon is clicked.
      &quot;iconClickTrackingUrl&quot;: &quot;A String&quot;, # URL to track click when an OBA icon is clicked.
      &quot;iconViewTrackingUrl&quot;: &quot;A String&quot;, # URL to track view when an OBA icon is clicked.
      &quot;program&quot;: &quot;A String&quot;, # Identifies the industry initiative that the icon supports. For example, AdChoices.
      &quot;resourceUrl&quot;: &quot;A String&quot;, # OBA icon resource URL. Campaign Manager only supports image and JavaScript icons. Learn more
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # OBA icon size.
        &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
        &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
        &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
        &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
      },
      &quot;xPosition&quot;: &quot;A String&quot;, # OBA icon x coordinate position. Accepted values are left or right.
      &quot;yPosition&quot;: &quot;A String&quot;, # OBA icon y coordinate position. Accepted values are top or bottom.
    },
    &quot;orientation&quot;: &quot;A String&quot;, # Orientation of a video placement. If this value is set, placement will return assets matching the specified orientation.
    &quot;skippableSettings&quot;: { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#skippableSetting&quot;.
      &quot;progressOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skipOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skippable&quot;: True or False, # Whether the user can skip creatives served to this placement.
    },
    &quot;transcodeSettings&quot;: { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
      &quot;enabledVideoFormats&quot;: [ # Allowlist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
        42,
      ],
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#transcodeSetting&quot;.
    },
  },
  &quot;vpaidAdapterChoice&quot;: &quot;A String&quot;, # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement. *Note:* Flash is no longer supported. This field now defaults to HTML5 when the following values are provided: FLASH, BOTH.
}

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

Returns:
  An object of the form:

    { # Contains properties of a placement.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this placement. This field can be left blank.
  &quot;adBlockingOptOut&quot;: True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
  &quot;additionalSizes&quot;: [ # Additional sizes associated with this placement. When inserting or updating a placement, only the size ID field is used.
    { # Represents the dimensions of ads, placements, creatives, or creative assets.
      &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
      &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
      &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
      &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
    },
  ],
  &quot;advertiserId&quot;: &quot;A String&quot;, # Advertiser ID of this placement. This field can be left blank.
  &quot;advertiserIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;archived&quot;: True or False, # Whether this placement is archived.
  &quot;campaignId&quot;: &quot;A String&quot;, # Campaign ID of this placement. This field is a required field on insertion.
  &quot;campaignIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;comment&quot;: &quot;A String&quot;, # Comments for this placement.
  &quot;compatibility&quot;: &quot;A String&quot;, # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
  &quot;contentCategoryId&quot;: &quot;A String&quot;, # ID of the content category assigned to this placement.
  &quot;createInfo&quot;: { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;directorySiteId&quot;: &quot;A String&quot;, # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;directorySiteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;externalId&quot;: &quot;A String&quot;, # External ID for this placement.
  &quot;id&quot;: &quot;A String&quot;, # ID of this placement. This is a read-only, auto-generated field.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;keyName&quot;: &quot;A String&quot;, # Key name of this placement. This is a read-only, auto-generated field.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#placement&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;lookbackConfiguration&quot;: { # Lookback configuration settings. # Lookback window settings for this placement.
    &quot;clickDuration&quot;: 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
    &quot;postImpressionActivitiesDuration&quot;: 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
  },
  &quot;name&quot;: &quot;A String&quot;, # Name of this placement.This is a required field and must be less than or equal to 256 characters long.
  &quot;paymentApproved&quot;: True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
  &quot;paymentSource&quot;: &quot;A String&quot;, # Payment source for this placement. This is a required field that is read-only after insertion.
  &quot;placementGroupId&quot;: &quot;A String&quot;, # ID of this placement&#x27;s group, if applicable.
  &quot;placementGroupIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;placementStrategyId&quot;: &quot;A String&quot;, # ID of the placement strategy assigned to this placement.
  &quot;pricingSchedule&quot;: { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
    &quot;capCostOption&quot;: &quot;A String&quot;, # Placement cap cost option.
    &quot;endDate&quot;: &quot;A String&quot;,
    &quot;flighted&quot;: True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
    &quot;floodlightActivityId&quot;: &quot;A String&quot;, # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
    &quot;pricingPeriods&quot;: [ # Pricing periods for this placement.
      { # Pricing Period
        &quot;endDate&quot;: &quot;A String&quot;,
        &quot;pricingComment&quot;: &quot;A String&quot;, # Comments for this pricing period.
        &quot;rateOrCostNanos&quot;: &quot;A String&quot;, # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
        &quot;startDate&quot;: &quot;A String&quot;,
        &quot;units&quot;: &quot;A String&quot;, # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
      },
    ],
    &quot;pricingType&quot;: &quot;A String&quot;, # Placement pricing type. This field is required on insertion.
    &quot;startDate&quot;: &quot;A String&quot;,
    &quot;testingStartDate&quot;: &quot;A String&quot;,
  },
  &quot;primary&quot;: True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock&#x27;s primaryPlacementId field to the ID of this placement.
  &quot;publisherUpdateInfo&quot;: { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;siteId&quot;: &quot;A String&quot;, # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;siteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
    &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
    &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
    &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
    &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
  },
  &quot;sslRequired&quot;: True or False, # Whether creatives assigned to this placement must be SSL-compliant.
  &quot;status&quot;: &quot;A String&quot;, # Third-party placement status.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this placement. This field can be left blank.
  &quot;tagFormats&quot;: [ # Tag formats to generate for this placement. This field is required on insertion. Acceptable values are: - &quot;PLACEMENT_TAG_STANDARD&quot; - &quot;PLACEMENT_TAG_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_IFRAME_ILAYER&quot; - &quot;PLACEMENT_TAG_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_CLICK_COMMANDS&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4&quot; - &quot;PLACEMENT_TAG_TRACKING&quot; - &quot;PLACEMENT_TAG_TRACKING_IFRAME&quot; - &quot;PLACEMENT_TAG_TRACKING_JAVASCRIPT&quot;
    &quot;A String&quot;,
  ],
  &quot;tagSetting&quot;: { # Tag Settings # Tag settings for this placement.
    &quot;additionalKeyValues&quot;: &quot;A String&quot;, # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
    &quot;includeClickThroughUrls&quot;: True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
    &quot;includeClickTracking&quot;: True or False, # Whether click-tracking string should be included in the tags.
    &quot;keywordOption&quot;: &quot;A String&quot;, # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
  },
  &quot;videoActiveViewOptOut&quot;: True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
  &quot;videoSettings&quot;: { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
    &quot;companionSettings&quot;: { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
      &quot;companionsDisabled&quot;: True or False, # Whether companions are disabled for this placement.
      &quot;enabledSizes&quot;: [ # Allowlist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
        { # Represents the dimensions of ads, placements, creatives, or creative assets.
          &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
          &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
          &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
          &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
        },
      ],
      &quot;imageOnly&quot;: True or False, # Whether to serve only static images as companions.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#companionSetting&quot;.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#videoSettings&quot;.
    &quot;obaEnabled&quot;: True or False, # Whether OBA icons are enabled for this placement.
    &quot;obaSettings&quot;: { # Online Behavioral Advertiser icon. # Settings for the OBA icon of video creatives served to this placement. If this object is provided, the creative-level OBA settings will be overridden.
      &quot;iconClickThroughUrl&quot;: &quot;A String&quot;, # URL to redirect to when an OBA icon is clicked.
      &quot;iconClickTrackingUrl&quot;: &quot;A String&quot;, # URL to track click when an OBA icon is clicked.
      &quot;iconViewTrackingUrl&quot;: &quot;A String&quot;, # URL to track view when an OBA icon is clicked.
      &quot;program&quot;: &quot;A String&quot;, # Identifies the industry initiative that the icon supports. For example, AdChoices.
      &quot;resourceUrl&quot;: &quot;A String&quot;, # OBA icon resource URL. Campaign Manager only supports image and JavaScript icons. Learn more
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # OBA icon size.
        &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
        &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
        &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
        &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
      },
      &quot;xPosition&quot;: &quot;A String&quot;, # OBA icon x coordinate position. Accepted values are left or right.
      &quot;yPosition&quot;: &quot;A String&quot;, # OBA icon y coordinate position. Accepted values are top or bottom.
    },
    &quot;orientation&quot;: &quot;A String&quot;, # Orientation of a video placement. If this value is set, placement will return assets matching the specified orientation.
    &quot;skippableSettings&quot;: { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#skippableSetting&quot;.
      &quot;progressOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skipOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skippable&quot;: True or False, # Whether the user can skip creatives served to this placement.
    },
    &quot;transcodeSettings&quot;: { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
      &quot;enabledVideoFormats&quot;: [ # Allowlist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
        42,
      ],
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#transcodeSetting&quot;.
    },
  },
  &quot;vpaidAdapterChoice&quot;: &quot;A String&quot;, # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement. *Note:* Flash is no longer supported. This field now defaults to HTML5 when the following values are provided: FLASH, BOTH.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(profileId, advertiserIds=None, archived=None, campaignIds=None, compatibilities=None, contentCategoryIds=None, directorySiteIds=None, groupIds=None, ids=None, maxEndDate=None, maxResults=None, maxStartDate=None, minEndDate=None, minStartDate=None, pageToken=None, paymentSource=None, placementStrategyIds=None, pricingTypes=None, searchString=None, siteIds=None, sizeIds=None, sortField=None, sortOrder=None, x__xgafv=None)</code>
  <pre>Retrieves a list of placements, possibly filtered. This method supports paging.

Args:
  profileId: string, User profile ID associated with this request. (required)
  advertiserIds: string, Select only placements that belong to these advertisers. (repeated)
  archived: boolean, Select only archived placements. Don&#x27;t set this field to select both archived and non-archived placements.
  campaignIds: string, Select only placements that belong to these campaigns. (repeated)
  compatibilities: string, Select only placements that are associated with these compatibilities. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. (repeated)
    Allowed values
      DISPLAY - 
      DISPLAY_INTERSTITIAL - 
      APP - 
      APP_INTERSTITIAL - 
      IN_STREAM_VIDEO - 
      IN_STREAM_AUDIO - 
  contentCategoryIds: string, Select only placements that are associated with these content categories. (repeated)
  directorySiteIds: string, Select only placements that are associated with these directory sites. (repeated)
  groupIds: string, Select only placements that belong to these placement groups. (repeated)
  ids: string, Select only placements with these IDs. (repeated)
  maxEndDate: string, Select only placements or placement groups whose end date is on or before the specified maxEndDate. The date should be formatted as &quot;yyyy-MM-dd&quot;.
  maxResults: integer, Maximum number of results to return.
  maxStartDate: string, Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as &quot;yyyy-MM-dd&quot;.
  minEndDate: string, Select only placements or placement groups whose end date is on or after the specified minEndDate. The date should be formatted as &quot;yyyy-MM-dd&quot;.
  minStartDate: string, Select only placements or placement groups whose start date is on or after the specified minStartDate. The date should be formatted as &quot;yyyy-MM-dd&quot;.
  pageToken: string, Value of the nextPageToken from the previous result page.
  paymentSource: string, Select only placements with this payment source.
    Allowed values
      PLACEMENT_AGENCY_PAID - 
      PLACEMENT_PUBLISHER_PAID - 
  placementStrategyIds: string, Select only placements that are associated with these placement strategies. (repeated)
  pricingTypes: string, Select only placements with these pricing types. (repeated)
    Allowed values
      PRICING_TYPE_CPM - 
      PRICING_TYPE_CPC - 
      PRICING_TYPE_CPA - 
      PRICING_TYPE_FLAT_RATE_IMPRESSIONS - 
      PRICING_TYPE_FLAT_RATE_CLICKS - 
      PRICING_TYPE_CPM_ACTIVEVIEW - 
  searchString: string, Allows searching for placements by name or ID. Wildcards (*) are allowed. For example, &quot;placement*2015&quot; will return placements with names like &quot;placement June 2015&quot;, &quot;placement May 2015&quot;, or simply &quot;placements 2015&quot;. Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of &quot;placement&quot; will match placements with name &quot;my placement&quot;, &quot;placement 2015&quot;, or simply &quot;placement&quot; .
  siteIds: string, Select only placements that are associated with these sites. (repeated)
  sizeIds: string, Select only placements that are associated with these sizes. (repeated)
  sortField: string, Field by which to sort the list.
    Allowed values
      ID - 
      NAME - 
  sortOrder: string, Order of sorted results.
    Allowed values
      ASCENDING - 
      DESCENDING - 
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Placement List Response
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#placementsListResponse&quot;.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # Pagination token to be used for the next list operation.
  &quot;placements&quot;: [ # Placement collection.
    { # Contains properties of a placement.
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this placement. This field can be left blank.
      &quot;adBlockingOptOut&quot;: True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
      &quot;additionalSizes&quot;: [ # Additional sizes associated with this placement. When inserting or updating a placement, only the size ID field is used.
        { # Represents the dimensions of ads, placements, creatives, or creative assets.
          &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
          &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
          &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
          &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
        },
      ],
      &quot;advertiserId&quot;: &quot;A String&quot;, # Advertiser ID of this placement. This field can be left blank.
      &quot;advertiserIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
        &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
        &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
        &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
        &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
        &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
      },
      &quot;archived&quot;: True or False, # Whether this placement is archived.
      &quot;campaignId&quot;: &quot;A String&quot;, # Campaign ID of this placement. This field is a required field on insertion.
      &quot;campaignIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
        &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
        &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
        &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
        &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
        &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
      },
      &quot;comment&quot;: &quot;A String&quot;, # Comments for this placement.
      &quot;compatibility&quot;: &quot;A String&quot;, # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
      &quot;contentCategoryId&quot;: &quot;A String&quot;, # ID of the content category assigned to this placement.
      &quot;createInfo&quot;: { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
        &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
      },
      &quot;directorySiteId&quot;: &quot;A String&quot;, # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
      &quot;directorySiteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
        &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
        &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
        &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
        &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
        &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
      },
      &quot;externalId&quot;: &quot;A String&quot;, # External ID for this placement.
      &quot;id&quot;: &quot;A String&quot;, # ID of this placement. This is a read-only, auto-generated field.
      &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
        &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
        &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
        &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
        &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
        &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
      },
      &quot;keyName&quot;: &quot;A String&quot;, # Key name of this placement. This is a read-only, auto-generated field.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#placement&quot;.
      &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
        &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
      },
      &quot;lookbackConfiguration&quot;: { # Lookback configuration settings. # Lookback window settings for this placement.
        &quot;clickDuration&quot;: 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
        &quot;postImpressionActivitiesDuration&quot;: 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
      },
      &quot;name&quot;: &quot;A String&quot;, # Name of this placement.This is a required field and must be less than or equal to 256 characters long.
      &quot;paymentApproved&quot;: True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
      &quot;paymentSource&quot;: &quot;A String&quot;, # Payment source for this placement. This is a required field that is read-only after insertion.
      &quot;placementGroupId&quot;: &quot;A String&quot;, # ID of this placement&#x27;s group, if applicable.
      &quot;placementGroupIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
        &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
        &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
        &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
        &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
        &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
      },
      &quot;placementStrategyId&quot;: &quot;A String&quot;, # ID of the placement strategy assigned to this placement.
      &quot;pricingSchedule&quot;: { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
        &quot;capCostOption&quot;: &quot;A String&quot;, # Placement cap cost option.
        &quot;endDate&quot;: &quot;A String&quot;,
        &quot;flighted&quot;: True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
        &quot;floodlightActivityId&quot;: &quot;A String&quot;, # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
        &quot;pricingPeriods&quot;: [ # Pricing periods for this placement.
          { # Pricing Period
            &quot;endDate&quot;: &quot;A String&quot;,
            &quot;pricingComment&quot;: &quot;A String&quot;, # Comments for this pricing period.
            &quot;rateOrCostNanos&quot;: &quot;A String&quot;, # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
            &quot;startDate&quot;: &quot;A String&quot;,
            &quot;units&quot;: &quot;A String&quot;, # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
          },
        ],
        &quot;pricingType&quot;: &quot;A String&quot;, # Placement pricing type. This field is required on insertion.
        &quot;startDate&quot;: &quot;A String&quot;,
        &quot;testingStartDate&quot;: &quot;A String&quot;,
      },
      &quot;primary&quot;: True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock&#x27;s primaryPlacementId field to the ID of this placement.
      &quot;publisherUpdateInfo&quot;: { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
        &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
      },
      &quot;siteId&quot;: &quot;A String&quot;, # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
      &quot;siteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
        &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
        &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
        &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
        &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
        &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
      },
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
        &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
        &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
        &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
        &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
      },
      &quot;sslRequired&quot;: True or False, # Whether creatives assigned to this placement must be SSL-compliant.
      &quot;status&quot;: &quot;A String&quot;, # Third-party placement status.
      &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this placement. This field can be left blank.
      &quot;tagFormats&quot;: [ # Tag formats to generate for this placement. This field is required on insertion. Acceptable values are: - &quot;PLACEMENT_TAG_STANDARD&quot; - &quot;PLACEMENT_TAG_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_IFRAME_ILAYER&quot; - &quot;PLACEMENT_TAG_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_CLICK_COMMANDS&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4&quot; - &quot;PLACEMENT_TAG_TRACKING&quot; - &quot;PLACEMENT_TAG_TRACKING_IFRAME&quot; - &quot;PLACEMENT_TAG_TRACKING_JAVASCRIPT&quot;
        &quot;A String&quot;,
      ],
      &quot;tagSetting&quot;: { # Tag Settings # Tag settings for this placement.
        &quot;additionalKeyValues&quot;: &quot;A String&quot;, # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
        &quot;includeClickThroughUrls&quot;: True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
        &quot;includeClickTracking&quot;: True or False, # Whether click-tracking string should be included in the tags.
        &quot;keywordOption&quot;: &quot;A String&quot;, # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
      },
      &quot;videoActiveViewOptOut&quot;: True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
      &quot;videoSettings&quot;: { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
        &quot;companionSettings&quot;: { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
          &quot;companionsDisabled&quot;: True or False, # Whether companions are disabled for this placement.
          &quot;enabledSizes&quot;: [ # Allowlist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
            { # Represents the dimensions of ads, placements, creatives, or creative assets.
              &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
              &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
              &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
              &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
            },
          ],
          &quot;imageOnly&quot;: True or False, # Whether to serve only static images as companions.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#companionSetting&quot;.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#videoSettings&quot;.
        &quot;obaEnabled&quot;: True or False, # Whether OBA icons are enabled for this placement.
        &quot;obaSettings&quot;: { # Online Behavioral Advertiser icon. # Settings for the OBA icon of video creatives served to this placement. If this object is provided, the creative-level OBA settings will be overridden.
          &quot;iconClickThroughUrl&quot;: &quot;A String&quot;, # URL to redirect to when an OBA icon is clicked.
          &quot;iconClickTrackingUrl&quot;: &quot;A String&quot;, # URL to track click when an OBA icon is clicked.
          &quot;iconViewTrackingUrl&quot;: &quot;A String&quot;, # URL to track view when an OBA icon is clicked.
          &quot;program&quot;: &quot;A String&quot;, # Identifies the industry initiative that the icon supports. For example, AdChoices.
          &quot;resourceUrl&quot;: &quot;A String&quot;, # OBA icon resource URL. Campaign Manager only supports image and JavaScript icons. Learn more
          &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # OBA icon size.
            &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
            &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
            &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
            &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
          },
          &quot;xPosition&quot;: &quot;A String&quot;, # OBA icon x coordinate position. Accepted values are left or right.
          &quot;yPosition&quot;: &quot;A String&quot;, # OBA icon y coordinate position. Accepted values are top or bottom.
        },
        &quot;orientation&quot;: &quot;A String&quot;, # Orientation of a video placement. If this value is set, placement will return assets matching the specified orientation.
        &quot;skippableSettings&quot;: { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#skippableSetting&quot;.
          &quot;progressOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
            &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
            &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
          },
          &quot;skipOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
            &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
            &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
          },
          &quot;skippable&quot;: True or False, # Whether the user can skip creatives served to this placement.
        },
        &quot;transcodeSettings&quot;: { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
          &quot;enabledVideoFormats&quot;: [ # Allowlist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
            42,
          ],
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#transcodeSetting&quot;.
        },
      },
      &quot;vpaidAdapterChoice&quot;: &quot;A String&quot;, # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement. *Note:* Flash is no longer supported. This field now defaults to HTML5 when the following values are provided: FLASH, BOTH.
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(profileId, id, body=None, x__xgafv=None)</code>
  <pre>Updates an existing placement. This method supports patch semantics.

Args:
  profileId: string, User profile ID associated with this request. (required)
  id: string, Placement ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # Contains properties of a placement.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this placement. This field can be left blank.
  &quot;adBlockingOptOut&quot;: True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
  &quot;additionalSizes&quot;: [ # Additional sizes associated with this placement. When inserting or updating a placement, only the size ID field is used.
    { # Represents the dimensions of ads, placements, creatives, or creative assets.
      &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
      &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
      &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
      &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
    },
  ],
  &quot;advertiserId&quot;: &quot;A String&quot;, # Advertiser ID of this placement. This field can be left blank.
  &quot;advertiserIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;archived&quot;: True or False, # Whether this placement is archived.
  &quot;campaignId&quot;: &quot;A String&quot;, # Campaign ID of this placement. This field is a required field on insertion.
  &quot;campaignIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;comment&quot;: &quot;A String&quot;, # Comments for this placement.
  &quot;compatibility&quot;: &quot;A String&quot;, # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
  &quot;contentCategoryId&quot;: &quot;A String&quot;, # ID of the content category assigned to this placement.
  &quot;createInfo&quot;: { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;directorySiteId&quot;: &quot;A String&quot;, # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;directorySiteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;externalId&quot;: &quot;A String&quot;, # External ID for this placement.
  &quot;id&quot;: &quot;A String&quot;, # ID of this placement. This is a read-only, auto-generated field.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;keyName&quot;: &quot;A String&quot;, # Key name of this placement. This is a read-only, auto-generated field.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#placement&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;lookbackConfiguration&quot;: { # Lookback configuration settings. # Lookback window settings for this placement.
    &quot;clickDuration&quot;: 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
    &quot;postImpressionActivitiesDuration&quot;: 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
  },
  &quot;name&quot;: &quot;A String&quot;, # Name of this placement.This is a required field and must be less than or equal to 256 characters long.
  &quot;paymentApproved&quot;: True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
  &quot;paymentSource&quot;: &quot;A String&quot;, # Payment source for this placement. This is a required field that is read-only after insertion.
  &quot;placementGroupId&quot;: &quot;A String&quot;, # ID of this placement&#x27;s group, if applicable.
  &quot;placementGroupIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;placementStrategyId&quot;: &quot;A String&quot;, # ID of the placement strategy assigned to this placement.
  &quot;pricingSchedule&quot;: { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
    &quot;capCostOption&quot;: &quot;A String&quot;, # Placement cap cost option.
    &quot;endDate&quot;: &quot;A String&quot;,
    &quot;flighted&quot;: True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
    &quot;floodlightActivityId&quot;: &quot;A String&quot;, # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
    &quot;pricingPeriods&quot;: [ # Pricing periods for this placement.
      { # Pricing Period
        &quot;endDate&quot;: &quot;A String&quot;,
        &quot;pricingComment&quot;: &quot;A String&quot;, # Comments for this pricing period.
        &quot;rateOrCostNanos&quot;: &quot;A String&quot;, # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
        &quot;startDate&quot;: &quot;A String&quot;,
        &quot;units&quot;: &quot;A String&quot;, # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
      },
    ],
    &quot;pricingType&quot;: &quot;A String&quot;, # Placement pricing type. This field is required on insertion.
    &quot;startDate&quot;: &quot;A String&quot;,
    &quot;testingStartDate&quot;: &quot;A String&quot;,
  },
  &quot;primary&quot;: True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock&#x27;s primaryPlacementId field to the ID of this placement.
  &quot;publisherUpdateInfo&quot;: { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;siteId&quot;: &quot;A String&quot;, # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;siteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
    &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
    &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
    &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
    &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
  },
  &quot;sslRequired&quot;: True or False, # Whether creatives assigned to this placement must be SSL-compliant.
  &quot;status&quot;: &quot;A String&quot;, # Third-party placement status.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this placement. This field can be left blank.
  &quot;tagFormats&quot;: [ # Tag formats to generate for this placement. This field is required on insertion. Acceptable values are: - &quot;PLACEMENT_TAG_STANDARD&quot; - &quot;PLACEMENT_TAG_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_IFRAME_ILAYER&quot; - &quot;PLACEMENT_TAG_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_CLICK_COMMANDS&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4&quot; - &quot;PLACEMENT_TAG_TRACKING&quot; - &quot;PLACEMENT_TAG_TRACKING_IFRAME&quot; - &quot;PLACEMENT_TAG_TRACKING_JAVASCRIPT&quot;
    &quot;A String&quot;,
  ],
  &quot;tagSetting&quot;: { # Tag Settings # Tag settings for this placement.
    &quot;additionalKeyValues&quot;: &quot;A String&quot;, # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
    &quot;includeClickThroughUrls&quot;: True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
    &quot;includeClickTracking&quot;: True or False, # Whether click-tracking string should be included in the tags.
    &quot;keywordOption&quot;: &quot;A String&quot;, # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
  },
  &quot;videoActiveViewOptOut&quot;: True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
  &quot;videoSettings&quot;: { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
    &quot;companionSettings&quot;: { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
      &quot;companionsDisabled&quot;: True or False, # Whether companions are disabled for this placement.
      &quot;enabledSizes&quot;: [ # Allowlist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
        { # Represents the dimensions of ads, placements, creatives, or creative assets.
          &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
          &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
          &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
          &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
        },
      ],
      &quot;imageOnly&quot;: True or False, # Whether to serve only static images as companions.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#companionSetting&quot;.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#videoSettings&quot;.
    &quot;obaEnabled&quot;: True or False, # Whether OBA icons are enabled for this placement.
    &quot;obaSettings&quot;: { # Online Behavioral Advertiser icon. # Settings for the OBA icon of video creatives served to this placement. If this object is provided, the creative-level OBA settings will be overridden.
      &quot;iconClickThroughUrl&quot;: &quot;A String&quot;, # URL to redirect to when an OBA icon is clicked.
      &quot;iconClickTrackingUrl&quot;: &quot;A String&quot;, # URL to track click when an OBA icon is clicked.
      &quot;iconViewTrackingUrl&quot;: &quot;A String&quot;, # URL to track view when an OBA icon is clicked.
      &quot;program&quot;: &quot;A String&quot;, # Identifies the industry initiative that the icon supports. For example, AdChoices.
      &quot;resourceUrl&quot;: &quot;A String&quot;, # OBA icon resource URL. Campaign Manager only supports image and JavaScript icons. Learn more
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # OBA icon size.
        &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
        &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
        &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
        &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
      },
      &quot;xPosition&quot;: &quot;A String&quot;, # OBA icon x coordinate position. Accepted values are left or right.
      &quot;yPosition&quot;: &quot;A String&quot;, # OBA icon y coordinate position. Accepted values are top or bottom.
    },
    &quot;orientation&quot;: &quot;A String&quot;, # Orientation of a video placement. If this value is set, placement will return assets matching the specified orientation.
    &quot;skippableSettings&quot;: { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#skippableSetting&quot;.
      &quot;progressOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skipOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skippable&quot;: True or False, # Whether the user can skip creatives served to this placement.
    },
    &quot;transcodeSettings&quot;: { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
      &quot;enabledVideoFormats&quot;: [ # Allowlist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
        42,
      ],
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#transcodeSetting&quot;.
    },
  },
  &quot;vpaidAdapterChoice&quot;: &quot;A String&quot;, # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement. *Note:* Flash is no longer supported. This field now defaults to HTML5 when the following values are provided: FLASH, BOTH.
}

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

Returns:
  An object of the form:

    { # Contains properties of a placement.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this placement. This field can be left blank.
  &quot;adBlockingOptOut&quot;: True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
  &quot;additionalSizes&quot;: [ # Additional sizes associated with this placement. When inserting or updating a placement, only the size ID field is used.
    { # Represents the dimensions of ads, placements, creatives, or creative assets.
      &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
      &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
      &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
      &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
    },
  ],
  &quot;advertiserId&quot;: &quot;A String&quot;, # Advertiser ID of this placement. This field can be left blank.
  &quot;advertiserIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;archived&quot;: True or False, # Whether this placement is archived.
  &quot;campaignId&quot;: &quot;A String&quot;, # Campaign ID of this placement. This field is a required field on insertion.
  &quot;campaignIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;comment&quot;: &quot;A String&quot;, # Comments for this placement.
  &quot;compatibility&quot;: &quot;A String&quot;, # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
  &quot;contentCategoryId&quot;: &quot;A String&quot;, # ID of the content category assigned to this placement.
  &quot;createInfo&quot;: { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;directorySiteId&quot;: &quot;A String&quot;, # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;directorySiteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;externalId&quot;: &quot;A String&quot;, # External ID for this placement.
  &quot;id&quot;: &quot;A String&quot;, # ID of this placement. This is a read-only, auto-generated field.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;keyName&quot;: &quot;A String&quot;, # Key name of this placement. This is a read-only, auto-generated field.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#placement&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;lookbackConfiguration&quot;: { # Lookback configuration settings. # Lookback window settings for this placement.
    &quot;clickDuration&quot;: 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
    &quot;postImpressionActivitiesDuration&quot;: 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
  },
  &quot;name&quot;: &quot;A String&quot;, # Name of this placement.This is a required field and must be less than or equal to 256 characters long.
  &quot;paymentApproved&quot;: True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
  &quot;paymentSource&quot;: &quot;A String&quot;, # Payment source for this placement. This is a required field that is read-only after insertion.
  &quot;placementGroupId&quot;: &quot;A String&quot;, # ID of this placement&#x27;s group, if applicable.
  &quot;placementGroupIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;placementStrategyId&quot;: &quot;A String&quot;, # ID of the placement strategy assigned to this placement.
  &quot;pricingSchedule&quot;: { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
    &quot;capCostOption&quot;: &quot;A String&quot;, # Placement cap cost option.
    &quot;endDate&quot;: &quot;A String&quot;,
    &quot;flighted&quot;: True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
    &quot;floodlightActivityId&quot;: &quot;A String&quot;, # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
    &quot;pricingPeriods&quot;: [ # Pricing periods for this placement.
      { # Pricing Period
        &quot;endDate&quot;: &quot;A String&quot;,
        &quot;pricingComment&quot;: &quot;A String&quot;, # Comments for this pricing period.
        &quot;rateOrCostNanos&quot;: &quot;A String&quot;, # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
        &quot;startDate&quot;: &quot;A String&quot;,
        &quot;units&quot;: &quot;A String&quot;, # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
      },
    ],
    &quot;pricingType&quot;: &quot;A String&quot;, # Placement pricing type. This field is required on insertion.
    &quot;startDate&quot;: &quot;A String&quot;,
    &quot;testingStartDate&quot;: &quot;A String&quot;,
  },
  &quot;primary&quot;: True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock&#x27;s primaryPlacementId field to the ID of this placement.
  &quot;publisherUpdateInfo&quot;: { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;siteId&quot;: &quot;A String&quot;, # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;siteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
    &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
    &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
    &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
    &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
  },
  &quot;sslRequired&quot;: True or False, # Whether creatives assigned to this placement must be SSL-compliant.
  &quot;status&quot;: &quot;A String&quot;, # Third-party placement status.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this placement. This field can be left blank.
  &quot;tagFormats&quot;: [ # Tag formats to generate for this placement. This field is required on insertion. Acceptable values are: - &quot;PLACEMENT_TAG_STANDARD&quot; - &quot;PLACEMENT_TAG_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_IFRAME_ILAYER&quot; - &quot;PLACEMENT_TAG_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_CLICK_COMMANDS&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4&quot; - &quot;PLACEMENT_TAG_TRACKING&quot; - &quot;PLACEMENT_TAG_TRACKING_IFRAME&quot; - &quot;PLACEMENT_TAG_TRACKING_JAVASCRIPT&quot;
    &quot;A String&quot;,
  ],
  &quot;tagSetting&quot;: { # Tag Settings # Tag settings for this placement.
    &quot;additionalKeyValues&quot;: &quot;A String&quot;, # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
    &quot;includeClickThroughUrls&quot;: True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
    &quot;includeClickTracking&quot;: True or False, # Whether click-tracking string should be included in the tags.
    &quot;keywordOption&quot;: &quot;A String&quot;, # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
  },
  &quot;videoActiveViewOptOut&quot;: True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
  &quot;videoSettings&quot;: { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
    &quot;companionSettings&quot;: { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
      &quot;companionsDisabled&quot;: True or False, # Whether companions are disabled for this placement.
      &quot;enabledSizes&quot;: [ # Allowlist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
        { # Represents the dimensions of ads, placements, creatives, or creative assets.
          &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
          &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
          &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
          &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
        },
      ],
      &quot;imageOnly&quot;: True or False, # Whether to serve only static images as companions.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#companionSetting&quot;.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#videoSettings&quot;.
    &quot;obaEnabled&quot;: True or False, # Whether OBA icons are enabled for this placement.
    &quot;obaSettings&quot;: { # Online Behavioral Advertiser icon. # Settings for the OBA icon of video creatives served to this placement. If this object is provided, the creative-level OBA settings will be overridden.
      &quot;iconClickThroughUrl&quot;: &quot;A String&quot;, # URL to redirect to when an OBA icon is clicked.
      &quot;iconClickTrackingUrl&quot;: &quot;A String&quot;, # URL to track click when an OBA icon is clicked.
      &quot;iconViewTrackingUrl&quot;: &quot;A String&quot;, # URL to track view when an OBA icon is clicked.
      &quot;program&quot;: &quot;A String&quot;, # Identifies the industry initiative that the icon supports. For example, AdChoices.
      &quot;resourceUrl&quot;: &quot;A String&quot;, # OBA icon resource URL. Campaign Manager only supports image and JavaScript icons. Learn more
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # OBA icon size.
        &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
        &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
        &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
        &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
      },
      &quot;xPosition&quot;: &quot;A String&quot;, # OBA icon x coordinate position. Accepted values are left or right.
      &quot;yPosition&quot;: &quot;A String&quot;, # OBA icon y coordinate position. Accepted values are top or bottom.
    },
    &quot;orientation&quot;: &quot;A String&quot;, # Orientation of a video placement. If this value is set, placement will return assets matching the specified orientation.
    &quot;skippableSettings&quot;: { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#skippableSetting&quot;.
      &quot;progressOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skipOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skippable&quot;: True or False, # Whether the user can skip creatives served to this placement.
    },
    &quot;transcodeSettings&quot;: { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
      &quot;enabledVideoFormats&quot;: [ # Allowlist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
        42,
      ],
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#transcodeSetting&quot;.
    },
  },
  &quot;vpaidAdapterChoice&quot;: &quot;A String&quot;, # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement. *Note:* Flash is no longer supported. This field now defaults to HTML5 when the following values are provided: FLASH, BOTH.
}</pre>
</div>

<div class="method">
    <code class="details" id="update">update(profileId, body=None, x__xgafv=None)</code>
  <pre>Updates an existing placement.

Args:
  profileId: string, User profile ID associated with this request. (required)
  body: object, The request body.
    The object takes the form of:

{ # Contains properties of a placement.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this placement. This field can be left blank.
  &quot;adBlockingOptOut&quot;: True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
  &quot;additionalSizes&quot;: [ # Additional sizes associated with this placement. When inserting or updating a placement, only the size ID field is used.
    { # Represents the dimensions of ads, placements, creatives, or creative assets.
      &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
      &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
      &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
      &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
    },
  ],
  &quot;advertiserId&quot;: &quot;A String&quot;, # Advertiser ID of this placement. This field can be left blank.
  &quot;advertiserIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;archived&quot;: True or False, # Whether this placement is archived.
  &quot;campaignId&quot;: &quot;A String&quot;, # Campaign ID of this placement. This field is a required field on insertion.
  &quot;campaignIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;comment&quot;: &quot;A String&quot;, # Comments for this placement.
  &quot;compatibility&quot;: &quot;A String&quot;, # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
  &quot;contentCategoryId&quot;: &quot;A String&quot;, # ID of the content category assigned to this placement.
  &quot;createInfo&quot;: { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;directorySiteId&quot;: &quot;A String&quot;, # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;directorySiteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;externalId&quot;: &quot;A String&quot;, # External ID for this placement.
  &quot;id&quot;: &quot;A String&quot;, # ID of this placement. This is a read-only, auto-generated field.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;keyName&quot;: &quot;A String&quot;, # Key name of this placement. This is a read-only, auto-generated field.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#placement&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;lookbackConfiguration&quot;: { # Lookback configuration settings. # Lookback window settings for this placement.
    &quot;clickDuration&quot;: 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
    &quot;postImpressionActivitiesDuration&quot;: 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
  },
  &quot;name&quot;: &quot;A String&quot;, # Name of this placement.This is a required field and must be less than or equal to 256 characters long.
  &quot;paymentApproved&quot;: True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
  &quot;paymentSource&quot;: &quot;A String&quot;, # Payment source for this placement. This is a required field that is read-only after insertion.
  &quot;placementGroupId&quot;: &quot;A String&quot;, # ID of this placement&#x27;s group, if applicable.
  &quot;placementGroupIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;placementStrategyId&quot;: &quot;A String&quot;, # ID of the placement strategy assigned to this placement.
  &quot;pricingSchedule&quot;: { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
    &quot;capCostOption&quot;: &quot;A String&quot;, # Placement cap cost option.
    &quot;endDate&quot;: &quot;A String&quot;,
    &quot;flighted&quot;: True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
    &quot;floodlightActivityId&quot;: &quot;A String&quot;, # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
    &quot;pricingPeriods&quot;: [ # Pricing periods for this placement.
      { # Pricing Period
        &quot;endDate&quot;: &quot;A String&quot;,
        &quot;pricingComment&quot;: &quot;A String&quot;, # Comments for this pricing period.
        &quot;rateOrCostNanos&quot;: &quot;A String&quot;, # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
        &quot;startDate&quot;: &quot;A String&quot;,
        &quot;units&quot;: &quot;A String&quot;, # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
      },
    ],
    &quot;pricingType&quot;: &quot;A String&quot;, # Placement pricing type. This field is required on insertion.
    &quot;startDate&quot;: &quot;A String&quot;,
    &quot;testingStartDate&quot;: &quot;A String&quot;,
  },
  &quot;primary&quot;: True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock&#x27;s primaryPlacementId field to the ID of this placement.
  &quot;publisherUpdateInfo&quot;: { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;siteId&quot;: &quot;A String&quot;, # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;siteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
    &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
    &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
    &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
    &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
  },
  &quot;sslRequired&quot;: True or False, # Whether creatives assigned to this placement must be SSL-compliant.
  &quot;status&quot;: &quot;A String&quot;, # Third-party placement status.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this placement. This field can be left blank.
  &quot;tagFormats&quot;: [ # Tag formats to generate for this placement. This field is required on insertion. Acceptable values are: - &quot;PLACEMENT_TAG_STANDARD&quot; - &quot;PLACEMENT_TAG_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_IFRAME_ILAYER&quot; - &quot;PLACEMENT_TAG_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_CLICK_COMMANDS&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4&quot; - &quot;PLACEMENT_TAG_TRACKING&quot; - &quot;PLACEMENT_TAG_TRACKING_IFRAME&quot; - &quot;PLACEMENT_TAG_TRACKING_JAVASCRIPT&quot;
    &quot;A String&quot;,
  ],
  &quot;tagSetting&quot;: { # Tag Settings # Tag settings for this placement.
    &quot;additionalKeyValues&quot;: &quot;A String&quot;, # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
    &quot;includeClickThroughUrls&quot;: True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
    &quot;includeClickTracking&quot;: True or False, # Whether click-tracking string should be included in the tags.
    &quot;keywordOption&quot;: &quot;A String&quot;, # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
  },
  &quot;videoActiveViewOptOut&quot;: True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
  &quot;videoSettings&quot;: { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
    &quot;companionSettings&quot;: { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
      &quot;companionsDisabled&quot;: True or False, # Whether companions are disabled for this placement.
      &quot;enabledSizes&quot;: [ # Allowlist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
        { # Represents the dimensions of ads, placements, creatives, or creative assets.
          &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
          &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
          &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
          &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
        },
      ],
      &quot;imageOnly&quot;: True or False, # Whether to serve only static images as companions.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#companionSetting&quot;.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#videoSettings&quot;.
    &quot;obaEnabled&quot;: True or False, # Whether OBA icons are enabled for this placement.
    &quot;obaSettings&quot;: { # Online Behavioral Advertiser icon. # Settings for the OBA icon of video creatives served to this placement. If this object is provided, the creative-level OBA settings will be overridden.
      &quot;iconClickThroughUrl&quot;: &quot;A String&quot;, # URL to redirect to when an OBA icon is clicked.
      &quot;iconClickTrackingUrl&quot;: &quot;A String&quot;, # URL to track click when an OBA icon is clicked.
      &quot;iconViewTrackingUrl&quot;: &quot;A String&quot;, # URL to track view when an OBA icon is clicked.
      &quot;program&quot;: &quot;A String&quot;, # Identifies the industry initiative that the icon supports. For example, AdChoices.
      &quot;resourceUrl&quot;: &quot;A String&quot;, # OBA icon resource URL. Campaign Manager only supports image and JavaScript icons. Learn more
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # OBA icon size.
        &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
        &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
        &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
        &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
      },
      &quot;xPosition&quot;: &quot;A String&quot;, # OBA icon x coordinate position. Accepted values are left or right.
      &quot;yPosition&quot;: &quot;A String&quot;, # OBA icon y coordinate position. Accepted values are top or bottom.
    },
    &quot;orientation&quot;: &quot;A String&quot;, # Orientation of a video placement. If this value is set, placement will return assets matching the specified orientation.
    &quot;skippableSettings&quot;: { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#skippableSetting&quot;.
      &quot;progressOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skipOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skippable&quot;: True or False, # Whether the user can skip creatives served to this placement.
    },
    &quot;transcodeSettings&quot;: { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
      &quot;enabledVideoFormats&quot;: [ # Allowlist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
        42,
      ],
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#transcodeSetting&quot;.
    },
  },
  &quot;vpaidAdapterChoice&quot;: &quot;A String&quot;, # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement. *Note:* Flash is no longer supported. This field now defaults to HTML5 when the following values are provided: FLASH, BOTH.
}

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

Returns:
  An object of the form:

    { # Contains properties of a placement.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this placement. This field can be left blank.
  &quot;adBlockingOptOut&quot;: True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
  &quot;additionalSizes&quot;: [ # Additional sizes associated with this placement. When inserting or updating a placement, only the size ID field is used.
    { # Represents the dimensions of ads, placements, creatives, or creative assets.
      &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
      &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
      &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
      &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
    },
  ],
  &quot;advertiserId&quot;: &quot;A String&quot;, # Advertiser ID of this placement. This field can be left blank.
  &quot;advertiserIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;archived&quot;: True or False, # Whether this placement is archived.
  &quot;campaignId&quot;: &quot;A String&quot;, # Campaign ID of this placement. This field is a required field on insertion.
  &quot;campaignIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;comment&quot;: &quot;A String&quot;, # Comments for this placement.
  &quot;compatibility&quot;: &quot;A String&quot;, # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
  &quot;contentCategoryId&quot;: &quot;A String&quot;, # ID of the content category assigned to this placement.
  &quot;createInfo&quot;: { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;directorySiteId&quot;: &quot;A String&quot;, # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;directorySiteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;externalId&quot;: &quot;A String&quot;, # External ID for this placement.
  &quot;id&quot;: &quot;A String&quot;, # ID of this placement. This is a read-only, auto-generated field.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;keyName&quot;: &quot;A String&quot;, # Key name of this placement. This is a read-only, auto-generated field.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#placement&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;lookbackConfiguration&quot;: { # Lookback configuration settings. # Lookback window settings for this placement.
    &quot;clickDuration&quot;: 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
    &quot;postImpressionActivitiesDuration&quot;: 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
  },
  &quot;name&quot;: &quot;A String&quot;, # Name of this placement.This is a required field and must be less than or equal to 256 characters long.
  &quot;paymentApproved&quot;: True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
  &quot;paymentSource&quot;: &quot;A String&quot;, # Payment source for this placement. This is a required field that is read-only after insertion.
  &quot;placementGroupId&quot;: &quot;A String&quot;, # ID of this placement&#x27;s group, if applicable.
  &quot;placementGroupIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;placementStrategyId&quot;: &quot;A String&quot;, # ID of the placement strategy assigned to this placement.
  &quot;pricingSchedule&quot;: { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
    &quot;capCostOption&quot;: &quot;A String&quot;, # Placement cap cost option.
    &quot;endDate&quot;: &quot;A String&quot;,
    &quot;flighted&quot;: True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
    &quot;floodlightActivityId&quot;: &quot;A String&quot;, # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
    &quot;pricingPeriods&quot;: [ # Pricing periods for this placement.
      { # Pricing Period
        &quot;endDate&quot;: &quot;A String&quot;,
        &quot;pricingComment&quot;: &quot;A String&quot;, # Comments for this pricing period.
        &quot;rateOrCostNanos&quot;: &quot;A String&quot;, # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
        &quot;startDate&quot;: &quot;A String&quot;,
        &quot;units&quot;: &quot;A String&quot;, # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
      },
    ],
    &quot;pricingType&quot;: &quot;A String&quot;, # Placement pricing type. This field is required on insertion.
    &quot;startDate&quot;: &quot;A String&quot;,
    &quot;testingStartDate&quot;: &quot;A String&quot;,
  },
  &quot;primary&quot;: True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock&#x27;s primaryPlacementId field to the ID of this placement.
  &quot;publisherUpdateInfo&quot;: { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;siteId&quot;: &quot;A String&quot;, # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
  &quot;siteIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
    &quot;dimensionName&quot;: &quot;A String&quot;, # The name of the dimension.
    &quot;etag&quot;: &quot;A String&quot;, # The eTag of this response for caching purposes.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with the value if available.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of resource this is, in this case dfareporting#dimensionValue.
    &quot;matchType&quot;: &quot;A String&quot;, # Determines how the &#x27;value&#x27; field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, &#x27;*&#x27; is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions (&#x27;dfa:paidSearch*&#x27;) allow a matchType other than EXACT.
    &quot;value&quot;: &quot;A String&quot;, # The value of the dimension.
  },
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
    &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
    &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
    &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
    &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
  },
  &quot;sslRequired&quot;: True or False, # Whether creatives assigned to this placement must be SSL-compliant.
  &quot;status&quot;: &quot;A String&quot;, # Third-party placement status.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this placement. This field can be left blank.
  &quot;tagFormats&quot;: [ # Tag formats to generate for this placement. This field is required on insertion. Acceptable values are: - &quot;PLACEMENT_TAG_STANDARD&quot; - &quot;PLACEMENT_TAG_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_IFRAME_ILAYER&quot; - &quot;PLACEMENT_TAG_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT&quot; - &quot;PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT&quot; - &quot;PLACEMENT_TAG_CLICK_COMMANDS&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3&quot; - &quot;PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4&quot; - &quot;PLACEMENT_TAG_TRACKING&quot; - &quot;PLACEMENT_TAG_TRACKING_IFRAME&quot; - &quot;PLACEMENT_TAG_TRACKING_JAVASCRIPT&quot;
    &quot;A String&quot;,
  ],
  &quot;tagSetting&quot;: { # Tag Settings # Tag settings for this placement.
    &quot;additionalKeyValues&quot;: &quot;A String&quot;, # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
    &quot;includeClickThroughUrls&quot;: True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
    &quot;includeClickTracking&quot;: True or False, # Whether click-tracking string should be included in the tags.
    &quot;keywordOption&quot;: &quot;A String&quot;, # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
  },
  &quot;videoActiveViewOptOut&quot;: True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
  &quot;videoSettings&quot;: { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
    &quot;companionSettings&quot;: { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
      &quot;companionsDisabled&quot;: True or False, # Whether companions are disabled for this placement.
      &quot;enabledSizes&quot;: [ # Allowlist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
        { # Represents the dimensions of ads, placements, creatives, or creative assets.
          &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
          &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
          &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
          &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
        },
      ],
      &quot;imageOnly&quot;: True or False, # Whether to serve only static images as companions.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#companionSetting&quot;.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#videoSettings&quot;.
    &quot;obaEnabled&quot;: True or False, # Whether OBA icons are enabled for this placement.
    &quot;obaSettings&quot;: { # Online Behavioral Advertiser icon. # Settings for the OBA icon of video creatives served to this placement. If this object is provided, the creative-level OBA settings will be overridden.
      &quot;iconClickThroughUrl&quot;: &quot;A String&quot;, # URL to redirect to when an OBA icon is clicked.
      &quot;iconClickTrackingUrl&quot;: &quot;A String&quot;, # URL to track click when an OBA icon is clicked.
      &quot;iconViewTrackingUrl&quot;: &quot;A String&quot;, # URL to track view when an OBA icon is clicked.
      &quot;program&quot;: &quot;A String&quot;, # Identifies the industry initiative that the icon supports. For example, AdChoices.
      &quot;resourceUrl&quot;: &quot;A String&quot;, # OBA icon resource URL. Campaign Manager only supports image and JavaScript icons. Learn more
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # OBA icon size.
        &quot;height&quot;: 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
        &quot;iab&quot;: True or False, # IAB standard size. This is a read-only, auto-generated field.
        &quot;id&quot;: &quot;A String&quot;, # ID of this size. This is a read-only, auto-generated field.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#size&quot;.
        &quot;width&quot;: 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
      },
      &quot;xPosition&quot;: &quot;A String&quot;, # OBA icon x coordinate position. Accepted values are left or right.
      &quot;yPosition&quot;: &quot;A String&quot;, # OBA icon y coordinate position. Accepted values are top or bottom.
    },
    &quot;orientation&quot;: &quot;A String&quot;, # Orientation of a video placement. If this value is set, placement will return assets matching the specified orientation.
    &quot;skippableSettings&quot;: { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#skippableSetting&quot;.
      &quot;progressOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skipOffset&quot;: { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
        &quot;offsetPercentage&quot;: 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
        &quot;offsetSeconds&quot;: 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
      },
      &quot;skippable&quot;: True or False, # Whether the user can skip creatives served to this placement.
    },
    &quot;transcodeSettings&quot;: { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
      &quot;enabledVideoFormats&quot;: [ # Allowlist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
        42,
      ],
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#transcodeSetting&quot;.
    },
  },
  &quot;vpaidAdapterChoice&quot;: &quot;A String&quot;, # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement. *Note:* Flash is no longer supported. This field now defaults to HTML5 when the following values are provided: FLASH, BOTH.
}</pre>
</div>

</body></html>