<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.creatives.html">creatives</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#get">get(profileId, id, x__xgafv=None)</a></code></p>
<p class="firstline">Gets one creative 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 creative.</p>
<p class="toc_element">
  <code><a href="#list">list(profileId, active=None, advertiserId=None, archived=None, campaignId=None, companionCreativeIds=None, creativeFieldIds=None, ids=None, maxResults=None, pageToken=None, renderingIds=None, searchString=None, sizeIds=None, sortField=None, sortOrder=None, studioCreativeId=None, types=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves a list of creatives, 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 creative. 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 creative.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

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

Args:
  profileId: string, User profile ID associated with this request. (required)
  id: string, Creative 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 Creative.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;active&quot;: True or False, # Whether the creative is active. Applicable to all creative types.
  &quot;adParameters&quot;: &quot;A String&quot;, # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
  &quot;adTagKeys&quot;: [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;additionalSizes&quot;: [ # Additional sizes associated with a responsive creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. Applicable to DISPLAY creatives when the primary asset type is HTML_IMAGE.
    { # 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 creative. This is a required field. Applicable to all creative types.
  &quot;allowScriptAccess&quot;: True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
  &quot;archived&quot;: True or False, # Whether the creative is archived. Applicable to all creative types.
  &quot;artworkType&quot;: &quot;A String&quot;, # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;authoringSource&quot;: &quot;A String&quot;, # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
  &quot;authoringTool&quot;: &quot;A String&quot;, # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
  &quot;autoAdvanceImages&quot;: True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
  &quot;backgroundColor&quot;: &quot;A String&quot;, # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
  &quot;backupImageClickThroughUrl&quot;: { # Click-through URL # Click-through URL for backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
    &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
    &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
    &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
  },
  &quot;backupImageFeatures&quot;: [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by Campaign Manager for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets&#x27; detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;A String&quot;,
  ],
  &quot;backupImageReportingLabel&quot;: &quot;A String&quot;, # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;backupImageTargetWindow&quot;: { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;customHtml&quot;: &quot;A String&quot;, # User-entered value.
    &quot;targetWindowOption&quot;: &quot;A String&quot;, # Type of browser window for which the backup image of the flash creative can be displayed.
  },
  &quot;clickTags&quot;: [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Click Tag.
      &quot;clickThroughUrl&quot;: { # Click-through URL # Parameter value for the specified click tag. This field contains a click-through url.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;eventName&quot;: &quot;A String&quot;, # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;name&quot;: &quot;A String&quot;, # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset&#x27;s creativeAssetId.name field.
    },
  ],
  &quot;commercialId&quot;: &quot;A String&quot;, # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
  &quot;companionCreatives&quot;: [ # List of companion creatives assigned to an in-Stream video creative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all VPAID, all INSTREAM_AUDIO and all INSTREAM_VIDEO with dynamicAssetSelection set to false.
    &quot;A String&quot;,
  ],
  &quot;compatibility&quot;: [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. IN_STREAM_AUDIO refers to rendering in in-stream audio ads developed with the VAST standard. Applicable to all creative types. Acceptable values are: - &quot;APP&quot; - &quot;APP_INTERSTITIAL&quot; - &quot;IN_STREAM_VIDEO&quot; - &quot;IN_STREAM_AUDIO&quot; - &quot;DISPLAY&quot; - &quot;DISPLAY_INTERSTITIAL&quot;
    &quot;A String&quot;,
  ],
  &quot;convertFlashToHtml5&quot;: True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don&#x27;t want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;counterCustomEvents&quot;: [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;creativeAssetSelection&quot;: { # Encapsulates the list of rules for asset selection and a default asset in case none of the rules match. Applicable to INSTREAM_VIDEO creatives. # Required if dynamicAssetSelection is true.
    &quot;defaultAssetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
    &quot;rules&quot;: [ # Rules determine which asset will be served to a viewer. Rules will be evaluated in the order in which they are stored in this list. This list must contain at least one rule. Applicable to INSTREAM_VIDEO creatives.
      { # A rule associates an asset with a targeting template for asset-level targeting. Applicable to INSTREAM_VIDEO creatives.
        &quot;assetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative. This is a required field.
        &quot;name&quot;: &quot;A String&quot;, # A user-friendly name for this rule. This is a required field.
        &quot;targetingTemplateId&quot;: &quot;A String&quot;, # A targeting template ID. The targeting from the targeting template will be used to determine whether this asset should be served. This is a required field.
      },
    ],
  },
  &quot;creativeAssets&quot;: [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
    { # Creative Asset.
      &quot;actionScript3&quot;: True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;active&quot;: True or False, # Whether the video or audio asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;additionalSizes&quot;: [ # Additional sizes associated with this creative asset. HTML5 asset generated by compatible software such as GWD will be able to support more sizes this creative asset can render.
        { # 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;alignment&quot;: &quot;A String&quot;, # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL .
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;assetIdentifier&quot;: { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
        &quot;name&quot;: &quot;A String&quot;, # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: &quot;.-_ &quot;. Spaces are allowed.
        &quot;type&quot;: &quot;A String&quot;, # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
      },
      &quot;audioBitRate&quot;: 42, # Audio stream bit rate in kbps. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;audioSampleRate&quot;: 42, # Audio sample bit rate in hertz. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;backupImageExit&quot;: { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
        &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
        &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
        &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
        &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
        &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
        &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
          &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
          &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
          &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
        },
        &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
        &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
          &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
            &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
            &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
            &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
          },
          &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
          &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
          &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
          &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
          &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
          &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
          &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
        },
        &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
        &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
      },
      &quot;bitRate&quot;: 42, # Detected bit-rate for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;childAssetType&quot;: &quot;A String&quot;, # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
      &quot;collapsedSize&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &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;companionCreativeIds&quot;: [ # List of companion creatives assigned to an in-stream video creative asset. Acceptable values include IDs of existing flash and image creatives. Applicable to INSTREAM_VIDEO creative type with dynamicAssetSelection set to true.
        &quot;A String&quot;,
      ],
      &quot;customStartTimeValue&quot;: 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
      &quot;detectedFeatures&quot;: [ # List of feature dependencies for the creative asset that are detected by Campaign Manager. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &quot;A String&quot;,
      ],
      &quot;displayType&quot;: &quot;A String&quot;, # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;duration&quot;: 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
      &quot;durationType&quot;: &quot;A String&quot;, # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
      &quot;expandedDimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
        &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;fileSize&quot;: &quot;A String&quot;, # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;flashVersion&quot;: 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;frameRate&quot;: 3.14, # Video frame rate for video asset in frames per second. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;hideFlashObjects&quot;: True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;hideSelectionBoxes&quot;: True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;horizontallyLocked&quot;: True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;id&quot;: &quot;A String&quot;, # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. 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;mediaDuration&quot;: 3.14, # Detected duration for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;mimeType&quot;: &quot;A String&quot;, # Detected MIME type for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;offset&quot;: { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;orientation&quot;: &quot;A String&quot;, # Orientation of video asset. This is a read-only, auto-generated field.
      &quot;originalBackup&quot;: True or False, # Whether the backup asset is original or changed by the user in Campaign Manager. Applicable to the following creative types: all RICH_MEDIA.
      &quot;politeLoad&quot;: True or False, # Whether this asset is used as a polite load asset.
      &quot;position&quot;: { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;positionLeftUnit&quot;: &quot;A String&quot;, # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;positionTopUnit&quot;: &quot;A String&quot;, # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
      &quot;progressiveServingUrl&quot;: &quot;A String&quot;, # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;pushdown&quot;: True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
      &quot;pushdownDuration&quot;: 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
      &quot;role&quot;: &quot;A String&quot;, # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field. PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives. OTHER refers to assets from sources other than Campaign Manager, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user in Campaign Manager and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. TRANSCODED_VIDEO refers to videos transcoded by Campaign Manager from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. ALTERNATE_VIDEO refers to the Campaign Manager representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within Campaign Manager. For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative. PARENT_AUDIO refers to audios uploaded by the user in Campaign Manager and is applicable to INSTREAM_AUDIO creatives. TRANSCODED_AUDIO refers to audios transcoded by Campaign Manager from PARENT_AUDIO assets and is applicable to INSTREAM_AUDIO creatives.
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &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;sslCompliant&quot;: True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;startTimeType&quot;: &quot;A String&quot;, # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
      &quot;streamingServingUrl&quot;: &quot;A String&quot;, # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;transparency&quot;: True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
      &quot;verticallyLocked&quot;: True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;windowMode&quot;: &quot;A String&quot;, # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
      &quot;zIndex&quot;: 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
      &quot;zipFilename&quot;: &quot;A String&quot;, # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
      &quot;zipFilesize&quot;: &quot;A String&quot;, # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
    },
  ],
  &quot;creativeFieldAssignments&quot;: [ # Creative field assignments for this creative. Applicable to all creative types.
    { # Creative Field Assignment.
      &quot;creativeFieldId&quot;: &quot;A String&quot;, # ID of the creative field.
      &quot;creativeFieldValueId&quot;: &quot;A String&quot;, # ID of the creative field value.
    },
  ],
  &quot;customKeyValues&quot;: [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;dynamicAssetSelection&quot;: True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
  &quot;exitCustomEvents&quot;: [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;fsCommand&quot;: { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
    &quot;left&quot;: 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;positionOption&quot;: &quot;A String&quot;, # Position in the browser where the window will open.
    &quot;top&quot;: 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;windowHeight&quot;: 42, # Height of the window.
    &quot;windowWidth&quot;: 42, # Width of the window.
  },
  &quot;htmlCode&quot;: &quot;A String&quot;, # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is true. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
  &quot;htmlCodeLocked&quot;: True or False, # Whether HTML code is generated by Campaign Manager or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
  &quot;id&quot;: &quot;A String&quot;, # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#creative&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;latestTraffickedCreativeId&quot;: &quot;A String&quot;, # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;mediaDescription&quot;: &quot;A String&quot;, # Description of the audio or video ad. Applicable to the following creative types: all INSTREAM_VIDEO, INSTREAM_AUDIO, and all VPAID.
  &quot;mediaDuration&quot;: 3.14, # Creative audio or video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, INSTREAM_AUDIO, all RICH_MEDIA, and all VPAID.
  &quot;name&quot;: &quot;A String&quot;, # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
  &quot;obaIcon&quot;: { # Online Behavioral Advertiser icon. # Online behavioral advertising icon to be added to the creative. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;overrideCss&quot;: &quot;A String&quot;, # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
  &quot;progressOffset&quot;: { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;redirectUrl&quot;: &quot;A String&quot;, # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
  &quot;renderingId&quot;: &quot;A String&quot;, # ID of current rendering version. This is a read-only field. Applicable to all creative types.
  &quot;renderingIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;requiredFlashPluginVersion&quot;: &quot;A String&quot;, # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;requiredFlashVersion&quot;: 42, # The internal Flash version for this creative as calculated by Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
    &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;skipOffset&quot;: { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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 choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
  &quot;sslCompliant&quot;: True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
  &quot;sslOverride&quot;: True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it&#x27;s not. Applicable to all creative types.
  &quot;studioAdvertiserId&quot;: &quot;A String&quot;, # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioCreativeId&quot;: &quot;A String&quot;, # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioTraffickedCreativeId&quot;: &quot;A String&quot;, # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;thirdPartyBackupImageImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyRichMediaImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyUrls&quot;: [ # Third-party URLs for tracking in-stream creative events. Applicable to the following creative types: all INSTREAM_VIDEO, all INSTREAM_AUDIO, and all VPAID.
    { # Third-party Tracking URL.
      &quot;thirdPartyUrlType&quot;: &quot;A String&quot;, # Third-party URL type for in-stream video and in-stream audio creatives.
      &quot;url&quot;: &quot;A String&quot;, # URL for the specified third-party URL type.
    },
  ],
  &quot;timerCustomEvents&quot;: [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;totalFileSize&quot;: &quot;A String&quot;, # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;type&quot;: &quot;A String&quot;, # Type of this creative. This is a required field. Applicable to all creative types. *Note:* FLASH_INPAGE, HTML5_BANNER, and IMAGE are only used for existing creatives. New creatives should use DISPLAY as a replacement for these types.
  &quot;universalAdId&quot;: { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO and INSTREAM_VIDEO and VPAID.
    &quot;registry&quot;: &quot;A String&quot;, # Registry used for the Ad ID value.
    &quot;value&quot;: &quot;A String&quot;, # ID value for this creative. Only alphanumeric characters and the following symbols are valid: &quot;_/\-&quot;. Maximum length is 64 characters. Read only when registry is DCM.
  },
  &quot;version&quot;: 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
}</pre>
</div>

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

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 Creative.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;active&quot;: True or False, # Whether the creative is active. Applicable to all creative types.
  &quot;adParameters&quot;: &quot;A String&quot;, # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
  &quot;adTagKeys&quot;: [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;additionalSizes&quot;: [ # Additional sizes associated with a responsive creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. Applicable to DISPLAY creatives when the primary asset type is HTML_IMAGE.
    { # 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 creative. This is a required field. Applicable to all creative types.
  &quot;allowScriptAccess&quot;: True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
  &quot;archived&quot;: True or False, # Whether the creative is archived. Applicable to all creative types.
  &quot;artworkType&quot;: &quot;A String&quot;, # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;authoringSource&quot;: &quot;A String&quot;, # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
  &quot;authoringTool&quot;: &quot;A String&quot;, # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
  &quot;autoAdvanceImages&quot;: True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
  &quot;backgroundColor&quot;: &quot;A String&quot;, # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
  &quot;backupImageClickThroughUrl&quot;: { # Click-through URL # Click-through URL for backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
    &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
    &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
    &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
  },
  &quot;backupImageFeatures&quot;: [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by Campaign Manager for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets&#x27; detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;A String&quot;,
  ],
  &quot;backupImageReportingLabel&quot;: &quot;A String&quot;, # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;backupImageTargetWindow&quot;: { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;customHtml&quot;: &quot;A String&quot;, # User-entered value.
    &quot;targetWindowOption&quot;: &quot;A String&quot;, # Type of browser window for which the backup image of the flash creative can be displayed.
  },
  &quot;clickTags&quot;: [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Click Tag.
      &quot;clickThroughUrl&quot;: { # Click-through URL # Parameter value for the specified click tag. This field contains a click-through url.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;eventName&quot;: &quot;A String&quot;, # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;name&quot;: &quot;A String&quot;, # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset&#x27;s creativeAssetId.name field.
    },
  ],
  &quot;commercialId&quot;: &quot;A String&quot;, # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
  &quot;companionCreatives&quot;: [ # List of companion creatives assigned to an in-Stream video creative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all VPAID, all INSTREAM_AUDIO and all INSTREAM_VIDEO with dynamicAssetSelection set to false.
    &quot;A String&quot;,
  ],
  &quot;compatibility&quot;: [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. IN_STREAM_AUDIO refers to rendering in in-stream audio ads developed with the VAST standard. Applicable to all creative types. Acceptable values are: - &quot;APP&quot; - &quot;APP_INTERSTITIAL&quot; - &quot;IN_STREAM_VIDEO&quot; - &quot;IN_STREAM_AUDIO&quot; - &quot;DISPLAY&quot; - &quot;DISPLAY_INTERSTITIAL&quot;
    &quot;A String&quot;,
  ],
  &quot;convertFlashToHtml5&quot;: True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don&#x27;t want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;counterCustomEvents&quot;: [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;creativeAssetSelection&quot;: { # Encapsulates the list of rules for asset selection and a default asset in case none of the rules match. Applicable to INSTREAM_VIDEO creatives. # Required if dynamicAssetSelection is true.
    &quot;defaultAssetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
    &quot;rules&quot;: [ # Rules determine which asset will be served to a viewer. Rules will be evaluated in the order in which they are stored in this list. This list must contain at least one rule. Applicable to INSTREAM_VIDEO creatives.
      { # A rule associates an asset with a targeting template for asset-level targeting. Applicable to INSTREAM_VIDEO creatives.
        &quot;assetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative. This is a required field.
        &quot;name&quot;: &quot;A String&quot;, # A user-friendly name for this rule. This is a required field.
        &quot;targetingTemplateId&quot;: &quot;A String&quot;, # A targeting template ID. The targeting from the targeting template will be used to determine whether this asset should be served. This is a required field.
      },
    ],
  },
  &quot;creativeAssets&quot;: [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
    { # Creative Asset.
      &quot;actionScript3&quot;: True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;active&quot;: True or False, # Whether the video or audio asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;additionalSizes&quot;: [ # Additional sizes associated with this creative asset. HTML5 asset generated by compatible software such as GWD will be able to support more sizes this creative asset can render.
        { # 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;alignment&quot;: &quot;A String&quot;, # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL .
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;assetIdentifier&quot;: { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
        &quot;name&quot;: &quot;A String&quot;, # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: &quot;.-_ &quot;. Spaces are allowed.
        &quot;type&quot;: &quot;A String&quot;, # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
      },
      &quot;audioBitRate&quot;: 42, # Audio stream bit rate in kbps. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;audioSampleRate&quot;: 42, # Audio sample bit rate in hertz. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;backupImageExit&quot;: { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
        &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
        &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
        &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
        &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
        &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
        &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
          &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
          &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
          &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
        },
        &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
        &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
          &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
            &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
            &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
            &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
          },
          &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
          &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
          &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
          &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
          &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
          &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
          &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
        },
        &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
        &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
      },
      &quot;bitRate&quot;: 42, # Detected bit-rate for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;childAssetType&quot;: &quot;A String&quot;, # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
      &quot;collapsedSize&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &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;companionCreativeIds&quot;: [ # List of companion creatives assigned to an in-stream video creative asset. Acceptable values include IDs of existing flash and image creatives. Applicable to INSTREAM_VIDEO creative type with dynamicAssetSelection set to true.
        &quot;A String&quot;,
      ],
      &quot;customStartTimeValue&quot;: 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
      &quot;detectedFeatures&quot;: [ # List of feature dependencies for the creative asset that are detected by Campaign Manager. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &quot;A String&quot;,
      ],
      &quot;displayType&quot;: &quot;A String&quot;, # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;duration&quot;: 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
      &quot;durationType&quot;: &quot;A String&quot;, # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
      &quot;expandedDimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
        &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;fileSize&quot;: &quot;A String&quot;, # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;flashVersion&quot;: 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;frameRate&quot;: 3.14, # Video frame rate for video asset in frames per second. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;hideFlashObjects&quot;: True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;hideSelectionBoxes&quot;: True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;horizontallyLocked&quot;: True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;id&quot;: &quot;A String&quot;, # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. 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;mediaDuration&quot;: 3.14, # Detected duration for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;mimeType&quot;: &quot;A String&quot;, # Detected MIME type for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;offset&quot;: { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;orientation&quot;: &quot;A String&quot;, # Orientation of video asset. This is a read-only, auto-generated field.
      &quot;originalBackup&quot;: True or False, # Whether the backup asset is original or changed by the user in Campaign Manager. Applicable to the following creative types: all RICH_MEDIA.
      &quot;politeLoad&quot;: True or False, # Whether this asset is used as a polite load asset.
      &quot;position&quot;: { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;positionLeftUnit&quot;: &quot;A String&quot;, # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;positionTopUnit&quot;: &quot;A String&quot;, # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
      &quot;progressiveServingUrl&quot;: &quot;A String&quot;, # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;pushdown&quot;: True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
      &quot;pushdownDuration&quot;: 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
      &quot;role&quot;: &quot;A String&quot;, # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field. PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives. OTHER refers to assets from sources other than Campaign Manager, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user in Campaign Manager and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. TRANSCODED_VIDEO refers to videos transcoded by Campaign Manager from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. ALTERNATE_VIDEO refers to the Campaign Manager representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within Campaign Manager. For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative. PARENT_AUDIO refers to audios uploaded by the user in Campaign Manager and is applicable to INSTREAM_AUDIO creatives. TRANSCODED_AUDIO refers to audios transcoded by Campaign Manager from PARENT_AUDIO assets and is applicable to INSTREAM_AUDIO creatives.
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &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;sslCompliant&quot;: True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;startTimeType&quot;: &quot;A String&quot;, # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
      &quot;streamingServingUrl&quot;: &quot;A String&quot;, # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;transparency&quot;: True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
      &quot;verticallyLocked&quot;: True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;windowMode&quot;: &quot;A String&quot;, # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
      &quot;zIndex&quot;: 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
      &quot;zipFilename&quot;: &quot;A String&quot;, # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
      &quot;zipFilesize&quot;: &quot;A String&quot;, # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
    },
  ],
  &quot;creativeFieldAssignments&quot;: [ # Creative field assignments for this creative. Applicable to all creative types.
    { # Creative Field Assignment.
      &quot;creativeFieldId&quot;: &quot;A String&quot;, # ID of the creative field.
      &quot;creativeFieldValueId&quot;: &quot;A String&quot;, # ID of the creative field value.
    },
  ],
  &quot;customKeyValues&quot;: [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;dynamicAssetSelection&quot;: True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
  &quot;exitCustomEvents&quot;: [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;fsCommand&quot;: { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
    &quot;left&quot;: 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;positionOption&quot;: &quot;A String&quot;, # Position in the browser where the window will open.
    &quot;top&quot;: 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;windowHeight&quot;: 42, # Height of the window.
    &quot;windowWidth&quot;: 42, # Width of the window.
  },
  &quot;htmlCode&quot;: &quot;A String&quot;, # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is true. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
  &quot;htmlCodeLocked&quot;: True or False, # Whether HTML code is generated by Campaign Manager or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
  &quot;id&quot;: &quot;A String&quot;, # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#creative&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;latestTraffickedCreativeId&quot;: &quot;A String&quot;, # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;mediaDescription&quot;: &quot;A String&quot;, # Description of the audio or video ad. Applicable to the following creative types: all INSTREAM_VIDEO, INSTREAM_AUDIO, and all VPAID.
  &quot;mediaDuration&quot;: 3.14, # Creative audio or video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, INSTREAM_AUDIO, all RICH_MEDIA, and all VPAID.
  &quot;name&quot;: &quot;A String&quot;, # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
  &quot;obaIcon&quot;: { # Online Behavioral Advertiser icon. # Online behavioral advertising icon to be added to the creative. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;overrideCss&quot;: &quot;A String&quot;, # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
  &quot;progressOffset&quot;: { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;redirectUrl&quot;: &quot;A String&quot;, # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
  &quot;renderingId&quot;: &quot;A String&quot;, # ID of current rendering version. This is a read-only field. Applicable to all creative types.
  &quot;renderingIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;requiredFlashPluginVersion&quot;: &quot;A String&quot;, # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;requiredFlashVersion&quot;: 42, # The internal Flash version for this creative as calculated by Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
    &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;skipOffset&quot;: { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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 choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
  &quot;sslCompliant&quot;: True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
  &quot;sslOverride&quot;: True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it&#x27;s not. Applicable to all creative types.
  &quot;studioAdvertiserId&quot;: &quot;A String&quot;, # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioCreativeId&quot;: &quot;A String&quot;, # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioTraffickedCreativeId&quot;: &quot;A String&quot;, # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;thirdPartyBackupImageImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyRichMediaImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyUrls&quot;: [ # Third-party URLs for tracking in-stream creative events. Applicable to the following creative types: all INSTREAM_VIDEO, all INSTREAM_AUDIO, and all VPAID.
    { # Third-party Tracking URL.
      &quot;thirdPartyUrlType&quot;: &quot;A String&quot;, # Third-party URL type for in-stream video and in-stream audio creatives.
      &quot;url&quot;: &quot;A String&quot;, # URL for the specified third-party URL type.
    },
  ],
  &quot;timerCustomEvents&quot;: [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;totalFileSize&quot;: &quot;A String&quot;, # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;type&quot;: &quot;A String&quot;, # Type of this creative. This is a required field. Applicable to all creative types. *Note:* FLASH_INPAGE, HTML5_BANNER, and IMAGE are only used for existing creatives. New creatives should use DISPLAY as a replacement for these types.
  &quot;universalAdId&quot;: { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO and INSTREAM_VIDEO and VPAID.
    &quot;registry&quot;: &quot;A String&quot;, # Registry used for the Ad ID value.
    &quot;value&quot;: &quot;A String&quot;, # ID value for this creative. Only alphanumeric characters and the following symbols are valid: &quot;_/\-&quot;. Maximum length is 64 characters. Read only when registry is DCM.
  },
  &quot;version&quot;: 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
}

  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 Creative.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;active&quot;: True or False, # Whether the creative is active. Applicable to all creative types.
  &quot;adParameters&quot;: &quot;A String&quot;, # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
  &quot;adTagKeys&quot;: [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;additionalSizes&quot;: [ # Additional sizes associated with a responsive creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. Applicable to DISPLAY creatives when the primary asset type is HTML_IMAGE.
    { # 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 creative. This is a required field. Applicable to all creative types.
  &quot;allowScriptAccess&quot;: True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
  &quot;archived&quot;: True or False, # Whether the creative is archived. Applicable to all creative types.
  &quot;artworkType&quot;: &quot;A String&quot;, # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;authoringSource&quot;: &quot;A String&quot;, # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
  &quot;authoringTool&quot;: &quot;A String&quot;, # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
  &quot;autoAdvanceImages&quot;: True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
  &quot;backgroundColor&quot;: &quot;A String&quot;, # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
  &quot;backupImageClickThroughUrl&quot;: { # Click-through URL # Click-through URL for backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
    &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
    &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
    &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
  },
  &quot;backupImageFeatures&quot;: [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by Campaign Manager for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets&#x27; detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;A String&quot;,
  ],
  &quot;backupImageReportingLabel&quot;: &quot;A String&quot;, # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;backupImageTargetWindow&quot;: { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;customHtml&quot;: &quot;A String&quot;, # User-entered value.
    &quot;targetWindowOption&quot;: &quot;A String&quot;, # Type of browser window for which the backup image of the flash creative can be displayed.
  },
  &quot;clickTags&quot;: [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Click Tag.
      &quot;clickThroughUrl&quot;: { # Click-through URL # Parameter value for the specified click tag. This field contains a click-through url.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;eventName&quot;: &quot;A String&quot;, # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;name&quot;: &quot;A String&quot;, # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset&#x27;s creativeAssetId.name field.
    },
  ],
  &quot;commercialId&quot;: &quot;A String&quot;, # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
  &quot;companionCreatives&quot;: [ # List of companion creatives assigned to an in-Stream video creative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all VPAID, all INSTREAM_AUDIO and all INSTREAM_VIDEO with dynamicAssetSelection set to false.
    &quot;A String&quot;,
  ],
  &quot;compatibility&quot;: [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. IN_STREAM_AUDIO refers to rendering in in-stream audio ads developed with the VAST standard. Applicable to all creative types. Acceptable values are: - &quot;APP&quot; - &quot;APP_INTERSTITIAL&quot; - &quot;IN_STREAM_VIDEO&quot; - &quot;IN_STREAM_AUDIO&quot; - &quot;DISPLAY&quot; - &quot;DISPLAY_INTERSTITIAL&quot;
    &quot;A String&quot;,
  ],
  &quot;convertFlashToHtml5&quot;: True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don&#x27;t want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;counterCustomEvents&quot;: [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;creativeAssetSelection&quot;: { # Encapsulates the list of rules for asset selection and a default asset in case none of the rules match. Applicable to INSTREAM_VIDEO creatives. # Required if dynamicAssetSelection is true.
    &quot;defaultAssetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
    &quot;rules&quot;: [ # Rules determine which asset will be served to a viewer. Rules will be evaluated in the order in which they are stored in this list. This list must contain at least one rule. Applicable to INSTREAM_VIDEO creatives.
      { # A rule associates an asset with a targeting template for asset-level targeting. Applicable to INSTREAM_VIDEO creatives.
        &quot;assetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative. This is a required field.
        &quot;name&quot;: &quot;A String&quot;, # A user-friendly name for this rule. This is a required field.
        &quot;targetingTemplateId&quot;: &quot;A String&quot;, # A targeting template ID. The targeting from the targeting template will be used to determine whether this asset should be served. This is a required field.
      },
    ],
  },
  &quot;creativeAssets&quot;: [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
    { # Creative Asset.
      &quot;actionScript3&quot;: True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;active&quot;: True or False, # Whether the video or audio asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;additionalSizes&quot;: [ # Additional sizes associated with this creative asset. HTML5 asset generated by compatible software such as GWD will be able to support more sizes this creative asset can render.
        { # 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;alignment&quot;: &quot;A String&quot;, # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL .
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;assetIdentifier&quot;: { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
        &quot;name&quot;: &quot;A String&quot;, # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: &quot;.-_ &quot;. Spaces are allowed.
        &quot;type&quot;: &quot;A String&quot;, # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
      },
      &quot;audioBitRate&quot;: 42, # Audio stream bit rate in kbps. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;audioSampleRate&quot;: 42, # Audio sample bit rate in hertz. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;backupImageExit&quot;: { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
        &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
        &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
        &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
        &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
        &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
        &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
          &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
          &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
          &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
        },
        &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
        &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
          &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
            &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
            &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
            &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
          },
          &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
          &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
          &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
          &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
          &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
          &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
          &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
        },
        &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
        &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
      },
      &quot;bitRate&quot;: 42, # Detected bit-rate for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;childAssetType&quot;: &quot;A String&quot;, # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
      &quot;collapsedSize&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &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;companionCreativeIds&quot;: [ # List of companion creatives assigned to an in-stream video creative asset. Acceptable values include IDs of existing flash and image creatives. Applicable to INSTREAM_VIDEO creative type with dynamicAssetSelection set to true.
        &quot;A String&quot;,
      ],
      &quot;customStartTimeValue&quot;: 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
      &quot;detectedFeatures&quot;: [ # List of feature dependencies for the creative asset that are detected by Campaign Manager. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &quot;A String&quot;,
      ],
      &quot;displayType&quot;: &quot;A String&quot;, # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;duration&quot;: 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
      &quot;durationType&quot;: &quot;A String&quot;, # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
      &quot;expandedDimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
        &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;fileSize&quot;: &quot;A String&quot;, # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;flashVersion&quot;: 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;frameRate&quot;: 3.14, # Video frame rate for video asset in frames per second. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;hideFlashObjects&quot;: True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;hideSelectionBoxes&quot;: True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;horizontallyLocked&quot;: True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;id&quot;: &quot;A String&quot;, # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. 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;mediaDuration&quot;: 3.14, # Detected duration for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;mimeType&quot;: &quot;A String&quot;, # Detected MIME type for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;offset&quot;: { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;orientation&quot;: &quot;A String&quot;, # Orientation of video asset. This is a read-only, auto-generated field.
      &quot;originalBackup&quot;: True or False, # Whether the backup asset is original or changed by the user in Campaign Manager. Applicable to the following creative types: all RICH_MEDIA.
      &quot;politeLoad&quot;: True or False, # Whether this asset is used as a polite load asset.
      &quot;position&quot;: { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;positionLeftUnit&quot;: &quot;A String&quot;, # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;positionTopUnit&quot;: &quot;A String&quot;, # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
      &quot;progressiveServingUrl&quot;: &quot;A String&quot;, # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;pushdown&quot;: True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
      &quot;pushdownDuration&quot;: 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
      &quot;role&quot;: &quot;A String&quot;, # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field. PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives. OTHER refers to assets from sources other than Campaign Manager, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user in Campaign Manager and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. TRANSCODED_VIDEO refers to videos transcoded by Campaign Manager from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. ALTERNATE_VIDEO refers to the Campaign Manager representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within Campaign Manager. For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative. PARENT_AUDIO refers to audios uploaded by the user in Campaign Manager and is applicable to INSTREAM_AUDIO creatives. TRANSCODED_AUDIO refers to audios transcoded by Campaign Manager from PARENT_AUDIO assets and is applicable to INSTREAM_AUDIO creatives.
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &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;sslCompliant&quot;: True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;startTimeType&quot;: &quot;A String&quot;, # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
      &quot;streamingServingUrl&quot;: &quot;A String&quot;, # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;transparency&quot;: True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
      &quot;verticallyLocked&quot;: True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;windowMode&quot;: &quot;A String&quot;, # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
      &quot;zIndex&quot;: 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
      &quot;zipFilename&quot;: &quot;A String&quot;, # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
      &quot;zipFilesize&quot;: &quot;A String&quot;, # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
    },
  ],
  &quot;creativeFieldAssignments&quot;: [ # Creative field assignments for this creative. Applicable to all creative types.
    { # Creative Field Assignment.
      &quot;creativeFieldId&quot;: &quot;A String&quot;, # ID of the creative field.
      &quot;creativeFieldValueId&quot;: &quot;A String&quot;, # ID of the creative field value.
    },
  ],
  &quot;customKeyValues&quot;: [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;dynamicAssetSelection&quot;: True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
  &quot;exitCustomEvents&quot;: [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;fsCommand&quot;: { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
    &quot;left&quot;: 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;positionOption&quot;: &quot;A String&quot;, # Position in the browser where the window will open.
    &quot;top&quot;: 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;windowHeight&quot;: 42, # Height of the window.
    &quot;windowWidth&quot;: 42, # Width of the window.
  },
  &quot;htmlCode&quot;: &quot;A String&quot;, # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is true. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
  &quot;htmlCodeLocked&quot;: True or False, # Whether HTML code is generated by Campaign Manager or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
  &quot;id&quot;: &quot;A String&quot;, # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#creative&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;latestTraffickedCreativeId&quot;: &quot;A String&quot;, # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;mediaDescription&quot;: &quot;A String&quot;, # Description of the audio or video ad. Applicable to the following creative types: all INSTREAM_VIDEO, INSTREAM_AUDIO, and all VPAID.
  &quot;mediaDuration&quot;: 3.14, # Creative audio or video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, INSTREAM_AUDIO, all RICH_MEDIA, and all VPAID.
  &quot;name&quot;: &quot;A String&quot;, # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
  &quot;obaIcon&quot;: { # Online Behavioral Advertiser icon. # Online behavioral advertising icon to be added to the creative. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;overrideCss&quot;: &quot;A String&quot;, # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
  &quot;progressOffset&quot;: { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;redirectUrl&quot;: &quot;A String&quot;, # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
  &quot;renderingId&quot;: &quot;A String&quot;, # ID of current rendering version. This is a read-only field. Applicable to all creative types.
  &quot;renderingIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;requiredFlashPluginVersion&quot;: &quot;A String&quot;, # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;requiredFlashVersion&quot;: 42, # The internal Flash version for this creative as calculated by Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
    &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;skipOffset&quot;: { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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 choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
  &quot;sslCompliant&quot;: True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
  &quot;sslOverride&quot;: True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it&#x27;s not. Applicable to all creative types.
  &quot;studioAdvertiserId&quot;: &quot;A String&quot;, # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioCreativeId&quot;: &quot;A String&quot;, # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioTraffickedCreativeId&quot;: &quot;A String&quot;, # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;thirdPartyBackupImageImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyRichMediaImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyUrls&quot;: [ # Third-party URLs for tracking in-stream creative events. Applicable to the following creative types: all INSTREAM_VIDEO, all INSTREAM_AUDIO, and all VPAID.
    { # Third-party Tracking URL.
      &quot;thirdPartyUrlType&quot;: &quot;A String&quot;, # Third-party URL type for in-stream video and in-stream audio creatives.
      &quot;url&quot;: &quot;A String&quot;, # URL for the specified third-party URL type.
    },
  ],
  &quot;timerCustomEvents&quot;: [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;totalFileSize&quot;: &quot;A String&quot;, # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;type&quot;: &quot;A String&quot;, # Type of this creative. This is a required field. Applicable to all creative types. *Note:* FLASH_INPAGE, HTML5_BANNER, and IMAGE are only used for existing creatives. New creatives should use DISPLAY as a replacement for these types.
  &quot;universalAdId&quot;: { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO and INSTREAM_VIDEO and VPAID.
    &quot;registry&quot;: &quot;A String&quot;, # Registry used for the Ad ID value.
    &quot;value&quot;: &quot;A String&quot;, # ID value for this creative. Only alphanumeric characters and the following symbols are valid: &quot;_/\-&quot;. Maximum length is 64 characters. Read only when registry is DCM.
  },
  &quot;version&quot;: 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(profileId, active=None, advertiserId=None, archived=None, campaignId=None, companionCreativeIds=None, creativeFieldIds=None, ids=None, maxResults=None, pageToken=None, renderingIds=None, searchString=None, sizeIds=None, sortField=None, sortOrder=None, studioCreativeId=None, types=None, x__xgafv=None)</code>
  <pre>Retrieves a list of creatives, possibly filtered. This method supports paging.

Args:
  profileId: string, User profile ID associated with this request. (required)
  active: boolean, Select only active creatives. Leave blank to select active and inactive creatives.
  advertiserId: string, Select only creatives with this advertiser ID.
  archived: boolean, Select only archived creatives. Leave blank to select archived and unarchived creatives.
  campaignId: string, Select only creatives with this campaign ID.
  companionCreativeIds: string, Select only in-stream video creatives with these companion IDs. (repeated)
  creativeFieldIds: string, Select only creatives with these creative field IDs. (repeated)
  ids: string, Select only creatives with these IDs. (repeated)
  maxResults: integer, Maximum number of results to return.
  pageToken: string, Value of the nextPageToken from the previous result page.
  renderingIds: string, Select only creatives with these rendering IDs. (repeated)
  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, &quot;creative*2015&quot; will return objects with names like &quot;creative June 2015&quot;, &quot;creative April 2015&quot;, or simply &quot;creative 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;creative&quot; will match objects with name &quot;my creative&quot;, &quot;creative 2015&quot;, or simply &quot;creative&quot;.
  sizeIds: string, Select only creatives with these size IDs. (repeated)
  sortField: string, Field by which to sort the list.
    Allowed values
      ID - 
      NAME - 
  sortOrder: string, Order of sorted results.
    Allowed values
      ASCENDING - 
      DESCENDING - 
  studioCreativeId: string, Select only creatives corresponding to this Studio creative ID.
  types: string, Select only creatives with these creative types. (repeated)
    Allowed values
      IMAGE - 
      DISPLAY_REDIRECT - 
      CUSTOM_DISPLAY - 
      INTERNAL_REDIRECT - 
      CUSTOM_DISPLAY_INTERSTITIAL - 
      INTERSTITIAL_INTERNAL_REDIRECT - 
      TRACKING_TEXT - 
      RICH_MEDIA_DISPLAY_BANNER - 
      RICH_MEDIA_INPAGE_FLOATING - 
      RICH_MEDIA_IM_EXPAND - 
      RICH_MEDIA_DISPLAY_EXPANDING - 
      RICH_MEDIA_DISPLAY_INTERSTITIAL - 
      RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL - 
      RICH_MEDIA_MOBILE_IN_APP - 
      FLASH_INPAGE - 
      INSTREAM_VIDEO - 
      VPAID_LINEAR_VIDEO - 
      VPAID_NON_LINEAR_VIDEO - 
      INSTREAM_VIDEO_REDIRECT - 
      RICH_MEDIA_PEEL_DOWN - 
      HTML5_BANNER - 
      DISPLAY - 
      DISPLAY_IMAGE_GALLERY - 
      BRAND_SAFE_DEFAULT_INSTREAM_VIDEO - 
      INSTREAM_AUDIO - 
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Creative List Response
  &quot;creatives&quot;: [ # Creative collection.
    { # Contains properties of a Creative.
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
      &quot;active&quot;: True or False, # Whether the creative is active. Applicable to all creative types.
      &quot;adParameters&quot;: &quot;A String&quot;, # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
      &quot;adTagKeys&quot;: [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
        &quot;A String&quot;,
      ],
      &quot;additionalSizes&quot;: [ # Additional sizes associated with a responsive creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. Applicable to DISPLAY creatives when the primary asset type is HTML_IMAGE.
        { # 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 creative. This is a required field. Applicable to all creative types.
      &quot;allowScriptAccess&quot;: True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
      &quot;archived&quot;: True or False, # Whether the creative is archived. Applicable to all creative types.
      &quot;artworkType&quot;: &quot;A String&quot;, # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
      &quot;authoringSource&quot;: &quot;A String&quot;, # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
      &quot;authoringTool&quot;: &quot;A String&quot;, # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
      &quot;autoAdvanceImages&quot;: True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
      &quot;backgroundColor&quot;: &quot;A String&quot;, # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
      &quot;backupImageClickThroughUrl&quot;: { # Click-through URL # Click-through URL for backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;backupImageFeatures&quot;: [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by Campaign Manager for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets&#x27; detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &quot;A String&quot;,
      ],
      &quot;backupImageReportingLabel&quot;: &quot;A String&quot;, # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;backupImageTargetWindow&quot;: { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &quot;customHtml&quot;: &quot;A String&quot;, # User-entered value.
        &quot;targetWindowOption&quot;: &quot;A String&quot;, # Type of browser window for which the backup image of the flash creative can be displayed.
      },
      &quot;clickTags&quot;: [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        { # Creative Click Tag.
          &quot;clickThroughUrl&quot;: { # Click-through URL # Parameter value for the specified click tag. This field contains a click-through url.
            &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
            &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
            &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
          },
          &quot;eventName&quot;: &quot;A String&quot;, # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
          &quot;name&quot;: &quot;A String&quot;, # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset&#x27;s creativeAssetId.name field.
        },
      ],
      &quot;commercialId&quot;: &quot;A String&quot;, # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
      &quot;companionCreatives&quot;: [ # List of companion creatives assigned to an in-Stream video creative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all VPAID, all INSTREAM_AUDIO and all INSTREAM_VIDEO with dynamicAssetSelection set to false.
        &quot;A String&quot;,
      ],
      &quot;compatibility&quot;: [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. IN_STREAM_AUDIO refers to rendering in in-stream audio ads developed with the VAST standard. Applicable to all creative types. Acceptable values are: - &quot;APP&quot; - &quot;APP_INTERSTITIAL&quot; - &quot;IN_STREAM_VIDEO&quot; - &quot;IN_STREAM_AUDIO&quot; - &quot;DISPLAY&quot; - &quot;DISPLAY_INTERSTITIAL&quot;
        &quot;A String&quot;,
      ],
      &quot;convertFlashToHtml5&quot;: True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don&#x27;t want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;counterCustomEvents&quot;: [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
        { # Creative Custom Event.
          &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
          &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
          &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
          &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
          &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
          &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
            &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
            &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
            &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
          },
          &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
          &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
            &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
              &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
              &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
              &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
            },
            &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
            &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
            &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
            &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
            &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
            &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
            &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
          },
          &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
          &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
        },
      ],
      &quot;creativeAssetSelection&quot;: { # Encapsulates the list of rules for asset selection and a default asset in case none of the rules match. Applicable to INSTREAM_VIDEO creatives. # Required if dynamicAssetSelection is true.
        &quot;defaultAssetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
        &quot;rules&quot;: [ # Rules determine which asset will be served to a viewer. Rules will be evaluated in the order in which they are stored in this list. This list must contain at least one rule. Applicable to INSTREAM_VIDEO creatives.
          { # A rule associates an asset with a targeting template for asset-level targeting. Applicable to INSTREAM_VIDEO creatives.
            &quot;assetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative. This is a required field.
            &quot;name&quot;: &quot;A String&quot;, # A user-friendly name for this rule. This is a required field.
            &quot;targetingTemplateId&quot;: &quot;A String&quot;, # A targeting template ID. The targeting from the targeting template will be used to determine whether this asset should be served. This is a required field.
          },
        ],
      },
      &quot;creativeAssets&quot;: [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
        { # Creative Asset.
          &quot;actionScript3&quot;: True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
          &quot;active&quot;: True or False, # Whether the video or audio asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
          &quot;additionalSizes&quot;: [ # Additional sizes associated with this creative asset. HTML5 asset generated by compatible software such as GWD will be able to support more sizes this creative asset can render.
            { # 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;alignment&quot;: &quot;A String&quot;, # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL .
          &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
          &quot;assetIdentifier&quot;: { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
            &quot;name&quot;: &quot;A String&quot;, # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: &quot;.-_ &quot;. Spaces are allowed.
            &quot;type&quot;: &quot;A String&quot;, # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
          },
          &quot;audioBitRate&quot;: 42, # Audio stream bit rate in kbps. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
          &quot;audioSampleRate&quot;: 42, # Audio sample bit rate in hertz. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
          &quot;backupImageExit&quot;: { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
            &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
            &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
            &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
            &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
            &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
            &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
              &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
              &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
              &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
            },
            &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
            &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
              &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
                &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
                &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
                &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
              },
              &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
              &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
              &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
              &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
              &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
              &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
              &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
            },
            &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
            &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
          },
          &quot;bitRate&quot;: 42, # Detected bit-rate for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
          &quot;childAssetType&quot;: &quot;A String&quot;, # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
          &quot;collapsedSize&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
            &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;companionCreativeIds&quot;: [ # List of companion creatives assigned to an in-stream video creative asset. Acceptable values include IDs of existing flash and image creatives. Applicable to INSTREAM_VIDEO creative type with dynamicAssetSelection set to true.
            &quot;A String&quot;,
          ],
          &quot;customStartTimeValue&quot;: 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
          &quot;detectedFeatures&quot;: [ # List of feature dependencies for the creative asset that are detected by Campaign Manager. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
            &quot;A String&quot;,
          ],
          &quot;displayType&quot;: &quot;A String&quot;, # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
          &quot;duration&quot;: 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
          &quot;durationType&quot;: &quot;A String&quot;, # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
          &quot;expandedDimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
            &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;fileSize&quot;: &quot;A String&quot;, # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
          &quot;flashVersion&quot;: 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
          &quot;frameRate&quot;: 3.14, # Video frame rate for video asset in frames per second. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
          &quot;hideFlashObjects&quot;: True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
          &quot;hideSelectionBoxes&quot;: True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
          &quot;horizontallyLocked&quot;: True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
          &quot;id&quot;: &quot;A String&quot;, # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
          &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. 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;mediaDuration&quot;: 3.14, # Detected duration for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
          &quot;mimeType&quot;: &quot;A String&quot;, # Detected MIME type for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
          &quot;offset&quot;: { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
            &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
            &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
          },
          &quot;orientation&quot;: &quot;A String&quot;, # Orientation of video asset. This is a read-only, auto-generated field.
          &quot;originalBackup&quot;: True or False, # Whether the backup asset is original or changed by the user in Campaign Manager. Applicable to the following creative types: all RICH_MEDIA.
          &quot;politeLoad&quot;: True or False, # Whether this asset is used as a polite load asset.
          &quot;position&quot;: { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
            &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
            &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
          },
          &quot;positionLeftUnit&quot;: &quot;A String&quot;, # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
          &quot;positionTopUnit&quot;: &quot;A String&quot;, # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
          &quot;progressiveServingUrl&quot;: &quot;A String&quot;, # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
          &quot;pushdown&quot;: True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
          &quot;pushdownDuration&quot;: 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
          &quot;role&quot;: &quot;A String&quot;, # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field. PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives. OTHER refers to assets from sources other than Campaign Manager, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user in Campaign Manager and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. TRANSCODED_VIDEO refers to videos transcoded by Campaign Manager from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. ALTERNATE_VIDEO refers to the Campaign Manager representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within Campaign Manager. For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative. PARENT_AUDIO refers to audios uploaded by the user in Campaign Manager and is applicable to INSTREAM_AUDIO creatives. TRANSCODED_AUDIO refers to audios transcoded by Campaign Manager from PARENT_AUDIO assets and is applicable to INSTREAM_AUDIO creatives.
          &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
            &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;sslCompliant&quot;: True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
          &quot;startTimeType&quot;: &quot;A String&quot;, # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
          &quot;streamingServingUrl&quot;: &quot;A String&quot;, # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
          &quot;transparency&quot;: True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
          &quot;verticallyLocked&quot;: True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
          &quot;windowMode&quot;: &quot;A String&quot;, # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
          &quot;zIndex&quot;: 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
          &quot;zipFilename&quot;: &quot;A String&quot;, # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
          &quot;zipFilesize&quot;: &quot;A String&quot;, # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
        },
      ],
      &quot;creativeFieldAssignments&quot;: [ # Creative field assignments for this creative. Applicable to all creative types.
        { # Creative Field Assignment.
          &quot;creativeFieldId&quot;: &quot;A String&quot;, # ID of the creative field.
          &quot;creativeFieldValueId&quot;: &quot;A String&quot;, # ID of the creative field value.
        },
      ],
      &quot;customKeyValues&quot;: [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
        &quot;A String&quot;,
      ],
      &quot;dynamicAssetSelection&quot;: True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
      &quot;exitCustomEvents&quot;: [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        { # Creative Custom Event.
          &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
          &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
          &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
          &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
          &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
          &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
            &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
            &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
            &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
          },
          &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
          &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
            &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
              &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
              &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
              &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
            },
            &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
            &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
            &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
            &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
            &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
            &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
            &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
          },
          &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
          &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
        },
      ],
      &quot;fsCommand&quot;: { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
        &quot;left&quot;: 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
        &quot;positionOption&quot;: &quot;A String&quot;, # Position in the browser where the window will open.
        &quot;top&quot;: 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
        &quot;windowHeight&quot;: 42, # Height of the window.
        &quot;windowWidth&quot;: 42, # Width of the window.
      },
      &quot;htmlCode&quot;: &quot;A String&quot;, # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is true. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
      &quot;htmlCodeLocked&quot;: True or False, # Whether HTML code is generated by Campaign Manager or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
      &quot;id&quot;: &quot;A String&quot;, # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
      &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
        &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;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#creative&quot;.
      &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
        &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
      },
      &quot;latestTraffickedCreativeId&quot;: &quot;A String&quot;, # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
      &quot;mediaDescription&quot;: &quot;A String&quot;, # Description of the audio or video ad. Applicable to the following creative types: all INSTREAM_VIDEO, INSTREAM_AUDIO, and all VPAID.
      &quot;mediaDuration&quot;: 3.14, # Creative audio or video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, INSTREAM_AUDIO, all RICH_MEDIA, and all VPAID.
      &quot;name&quot;: &quot;A String&quot;, # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
      &quot;obaIcon&quot;: { # Online Behavioral Advertiser icon. # Online behavioral advertising icon to be added to the creative. Applicable to the following creative types: all INSTREAM_VIDEO.
        &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;overrideCss&quot;: &quot;A String&quot;, # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
      &quot;progressOffset&quot;: { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
        &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;redirectUrl&quot;: &quot;A String&quot;, # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
      &quot;renderingId&quot;: &quot;A String&quot;, # ID of current rendering version. This is a read-only field. Applicable to all creative types.
      &quot;renderingIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
        &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;requiredFlashPluginVersion&quot;: &quot;A String&quot;, # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
      &quot;requiredFlashVersion&quot;: 42, # The internal Flash version for this creative as calculated by Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
        &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;skipOffset&quot;: { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
        &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 choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
      &quot;sslCompliant&quot;: True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
      &quot;sslOverride&quot;: True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it&#x27;s not. Applicable to all creative types.
      &quot;studioAdvertiserId&quot;: &quot;A String&quot;, # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
      &quot;studioCreativeId&quot;: &quot;A String&quot;, # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
      &quot;studioTraffickedCreativeId&quot;: &quot;A String&quot;, # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
      &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
      &quot;thirdPartyBackupImageImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
      &quot;thirdPartyRichMediaImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
      &quot;thirdPartyUrls&quot;: [ # Third-party URLs for tracking in-stream creative events. Applicable to the following creative types: all INSTREAM_VIDEO, all INSTREAM_AUDIO, and all VPAID.
        { # Third-party Tracking URL.
          &quot;thirdPartyUrlType&quot;: &quot;A String&quot;, # Third-party URL type for in-stream video and in-stream audio creatives.
          &quot;url&quot;: &quot;A String&quot;, # URL for the specified third-party URL type.
        },
      ],
      &quot;timerCustomEvents&quot;: [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
        { # Creative Custom Event.
          &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
          &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
          &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
          &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
          &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
          &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
            &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
            &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
            &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
          },
          &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
          &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
            &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
              &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
              &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
              &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
            },
            &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
            &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
            &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
            &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
            &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
            &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
            &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
          },
          &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
          &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
        },
      ],
      &quot;totalFileSize&quot;: &quot;A String&quot;, # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
      &quot;type&quot;: &quot;A String&quot;, # Type of this creative. This is a required field. Applicable to all creative types. *Note:* FLASH_INPAGE, HTML5_BANNER, and IMAGE are only used for existing creatives. New creatives should use DISPLAY as a replacement for these types.
      &quot;universalAdId&quot;: { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO and INSTREAM_VIDEO and VPAID.
        &quot;registry&quot;: &quot;A String&quot;, # Registry used for the Ad ID value.
        &quot;value&quot;: &quot;A String&quot;, # ID value for this creative. Only alphanumeric characters and the following symbols are valid: &quot;_/\-&quot;. Maximum length is 64 characters. Read only when registry is DCM.
      },
      &quot;version&quot;: 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
    },
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#creativesListResponse&quot;.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # Pagination token to be used for the next list operation.
}</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 creative. This method supports patch semantics.

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

{ # Contains properties of a Creative.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;active&quot;: True or False, # Whether the creative is active. Applicable to all creative types.
  &quot;adParameters&quot;: &quot;A String&quot;, # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
  &quot;adTagKeys&quot;: [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;additionalSizes&quot;: [ # Additional sizes associated with a responsive creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. Applicable to DISPLAY creatives when the primary asset type is HTML_IMAGE.
    { # 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 creative. This is a required field. Applicable to all creative types.
  &quot;allowScriptAccess&quot;: True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
  &quot;archived&quot;: True or False, # Whether the creative is archived. Applicable to all creative types.
  &quot;artworkType&quot;: &quot;A String&quot;, # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;authoringSource&quot;: &quot;A String&quot;, # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
  &quot;authoringTool&quot;: &quot;A String&quot;, # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
  &quot;autoAdvanceImages&quot;: True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
  &quot;backgroundColor&quot;: &quot;A String&quot;, # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
  &quot;backupImageClickThroughUrl&quot;: { # Click-through URL # Click-through URL for backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
    &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
    &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
    &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
  },
  &quot;backupImageFeatures&quot;: [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by Campaign Manager for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets&#x27; detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;A String&quot;,
  ],
  &quot;backupImageReportingLabel&quot;: &quot;A String&quot;, # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;backupImageTargetWindow&quot;: { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;customHtml&quot;: &quot;A String&quot;, # User-entered value.
    &quot;targetWindowOption&quot;: &quot;A String&quot;, # Type of browser window for which the backup image of the flash creative can be displayed.
  },
  &quot;clickTags&quot;: [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Click Tag.
      &quot;clickThroughUrl&quot;: { # Click-through URL # Parameter value for the specified click tag. This field contains a click-through url.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;eventName&quot;: &quot;A String&quot;, # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;name&quot;: &quot;A String&quot;, # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset&#x27;s creativeAssetId.name field.
    },
  ],
  &quot;commercialId&quot;: &quot;A String&quot;, # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
  &quot;companionCreatives&quot;: [ # List of companion creatives assigned to an in-Stream video creative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all VPAID, all INSTREAM_AUDIO and all INSTREAM_VIDEO with dynamicAssetSelection set to false.
    &quot;A String&quot;,
  ],
  &quot;compatibility&quot;: [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. IN_STREAM_AUDIO refers to rendering in in-stream audio ads developed with the VAST standard. Applicable to all creative types. Acceptable values are: - &quot;APP&quot; - &quot;APP_INTERSTITIAL&quot; - &quot;IN_STREAM_VIDEO&quot; - &quot;IN_STREAM_AUDIO&quot; - &quot;DISPLAY&quot; - &quot;DISPLAY_INTERSTITIAL&quot;
    &quot;A String&quot;,
  ],
  &quot;convertFlashToHtml5&quot;: True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don&#x27;t want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;counterCustomEvents&quot;: [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;creativeAssetSelection&quot;: { # Encapsulates the list of rules for asset selection and a default asset in case none of the rules match. Applicable to INSTREAM_VIDEO creatives. # Required if dynamicAssetSelection is true.
    &quot;defaultAssetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
    &quot;rules&quot;: [ # Rules determine which asset will be served to a viewer. Rules will be evaluated in the order in which they are stored in this list. This list must contain at least one rule. Applicable to INSTREAM_VIDEO creatives.
      { # A rule associates an asset with a targeting template for asset-level targeting. Applicable to INSTREAM_VIDEO creatives.
        &quot;assetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative. This is a required field.
        &quot;name&quot;: &quot;A String&quot;, # A user-friendly name for this rule. This is a required field.
        &quot;targetingTemplateId&quot;: &quot;A String&quot;, # A targeting template ID. The targeting from the targeting template will be used to determine whether this asset should be served. This is a required field.
      },
    ],
  },
  &quot;creativeAssets&quot;: [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
    { # Creative Asset.
      &quot;actionScript3&quot;: True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;active&quot;: True or False, # Whether the video or audio asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;additionalSizes&quot;: [ # Additional sizes associated with this creative asset. HTML5 asset generated by compatible software such as GWD will be able to support more sizes this creative asset can render.
        { # 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;alignment&quot;: &quot;A String&quot;, # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL .
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;assetIdentifier&quot;: { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
        &quot;name&quot;: &quot;A String&quot;, # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: &quot;.-_ &quot;. Spaces are allowed.
        &quot;type&quot;: &quot;A String&quot;, # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
      },
      &quot;audioBitRate&quot;: 42, # Audio stream bit rate in kbps. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;audioSampleRate&quot;: 42, # Audio sample bit rate in hertz. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;backupImageExit&quot;: { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
        &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
        &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
        &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
        &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
        &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
        &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
          &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
          &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
          &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
        },
        &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
        &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
          &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
            &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
            &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
            &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
          },
          &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
          &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
          &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
          &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
          &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
          &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
          &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
        },
        &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
        &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
      },
      &quot;bitRate&quot;: 42, # Detected bit-rate for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;childAssetType&quot;: &quot;A String&quot;, # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
      &quot;collapsedSize&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &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;companionCreativeIds&quot;: [ # List of companion creatives assigned to an in-stream video creative asset. Acceptable values include IDs of existing flash and image creatives. Applicable to INSTREAM_VIDEO creative type with dynamicAssetSelection set to true.
        &quot;A String&quot;,
      ],
      &quot;customStartTimeValue&quot;: 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
      &quot;detectedFeatures&quot;: [ # List of feature dependencies for the creative asset that are detected by Campaign Manager. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &quot;A String&quot;,
      ],
      &quot;displayType&quot;: &quot;A String&quot;, # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;duration&quot;: 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
      &quot;durationType&quot;: &quot;A String&quot;, # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
      &quot;expandedDimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
        &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;fileSize&quot;: &quot;A String&quot;, # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;flashVersion&quot;: 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;frameRate&quot;: 3.14, # Video frame rate for video asset in frames per second. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;hideFlashObjects&quot;: True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;hideSelectionBoxes&quot;: True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;horizontallyLocked&quot;: True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;id&quot;: &quot;A String&quot;, # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. 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;mediaDuration&quot;: 3.14, # Detected duration for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;mimeType&quot;: &quot;A String&quot;, # Detected MIME type for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;offset&quot;: { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;orientation&quot;: &quot;A String&quot;, # Orientation of video asset. This is a read-only, auto-generated field.
      &quot;originalBackup&quot;: True or False, # Whether the backup asset is original or changed by the user in Campaign Manager. Applicable to the following creative types: all RICH_MEDIA.
      &quot;politeLoad&quot;: True or False, # Whether this asset is used as a polite load asset.
      &quot;position&quot;: { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;positionLeftUnit&quot;: &quot;A String&quot;, # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;positionTopUnit&quot;: &quot;A String&quot;, # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
      &quot;progressiveServingUrl&quot;: &quot;A String&quot;, # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;pushdown&quot;: True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
      &quot;pushdownDuration&quot;: 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
      &quot;role&quot;: &quot;A String&quot;, # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field. PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives. OTHER refers to assets from sources other than Campaign Manager, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user in Campaign Manager and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. TRANSCODED_VIDEO refers to videos transcoded by Campaign Manager from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. ALTERNATE_VIDEO refers to the Campaign Manager representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within Campaign Manager. For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative. PARENT_AUDIO refers to audios uploaded by the user in Campaign Manager and is applicable to INSTREAM_AUDIO creatives. TRANSCODED_AUDIO refers to audios transcoded by Campaign Manager from PARENT_AUDIO assets and is applicable to INSTREAM_AUDIO creatives.
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &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;sslCompliant&quot;: True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;startTimeType&quot;: &quot;A String&quot;, # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
      &quot;streamingServingUrl&quot;: &quot;A String&quot;, # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;transparency&quot;: True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
      &quot;verticallyLocked&quot;: True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;windowMode&quot;: &quot;A String&quot;, # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
      &quot;zIndex&quot;: 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
      &quot;zipFilename&quot;: &quot;A String&quot;, # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
      &quot;zipFilesize&quot;: &quot;A String&quot;, # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
    },
  ],
  &quot;creativeFieldAssignments&quot;: [ # Creative field assignments for this creative. Applicable to all creative types.
    { # Creative Field Assignment.
      &quot;creativeFieldId&quot;: &quot;A String&quot;, # ID of the creative field.
      &quot;creativeFieldValueId&quot;: &quot;A String&quot;, # ID of the creative field value.
    },
  ],
  &quot;customKeyValues&quot;: [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;dynamicAssetSelection&quot;: True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
  &quot;exitCustomEvents&quot;: [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;fsCommand&quot;: { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
    &quot;left&quot;: 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;positionOption&quot;: &quot;A String&quot;, # Position in the browser where the window will open.
    &quot;top&quot;: 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;windowHeight&quot;: 42, # Height of the window.
    &quot;windowWidth&quot;: 42, # Width of the window.
  },
  &quot;htmlCode&quot;: &quot;A String&quot;, # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is true. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
  &quot;htmlCodeLocked&quot;: True or False, # Whether HTML code is generated by Campaign Manager or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
  &quot;id&quot;: &quot;A String&quot;, # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#creative&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;latestTraffickedCreativeId&quot;: &quot;A String&quot;, # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;mediaDescription&quot;: &quot;A String&quot;, # Description of the audio or video ad. Applicable to the following creative types: all INSTREAM_VIDEO, INSTREAM_AUDIO, and all VPAID.
  &quot;mediaDuration&quot;: 3.14, # Creative audio or video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, INSTREAM_AUDIO, all RICH_MEDIA, and all VPAID.
  &quot;name&quot;: &quot;A String&quot;, # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
  &quot;obaIcon&quot;: { # Online Behavioral Advertiser icon. # Online behavioral advertising icon to be added to the creative. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;overrideCss&quot;: &quot;A String&quot;, # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
  &quot;progressOffset&quot;: { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;redirectUrl&quot;: &quot;A String&quot;, # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
  &quot;renderingId&quot;: &quot;A String&quot;, # ID of current rendering version. This is a read-only field. Applicable to all creative types.
  &quot;renderingIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;requiredFlashPluginVersion&quot;: &quot;A String&quot;, # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;requiredFlashVersion&quot;: 42, # The internal Flash version for this creative as calculated by Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
    &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;skipOffset&quot;: { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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 choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
  &quot;sslCompliant&quot;: True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
  &quot;sslOverride&quot;: True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it&#x27;s not. Applicable to all creative types.
  &quot;studioAdvertiserId&quot;: &quot;A String&quot;, # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioCreativeId&quot;: &quot;A String&quot;, # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioTraffickedCreativeId&quot;: &quot;A String&quot;, # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;thirdPartyBackupImageImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyRichMediaImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyUrls&quot;: [ # Third-party URLs for tracking in-stream creative events. Applicable to the following creative types: all INSTREAM_VIDEO, all INSTREAM_AUDIO, and all VPAID.
    { # Third-party Tracking URL.
      &quot;thirdPartyUrlType&quot;: &quot;A String&quot;, # Third-party URL type for in-stream video and in-stream audio creatives.
      &quot;url&quot;: &quot;A String&quot;, # URL for the specified third-party URL type.
    },
  ],
  &quot;timerCustomEvents&quot;: [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;totalFileSize&quot;: &quot;A String&quot;, # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;type&quot;: &quot;A String&quot;, # Type of this creative. This is a required field. Applicable to all creative types. *Note:* FLASH_INPAGE, HTML5_BANNER, and IMAGE are only used for existing creatives. New creatives should use DISPLAY as a replacement for these types.
  &quot;universalAdId&quot;: { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO and INSTREAM_VIDEO and VPAID.
    &quot;registry&quot;: &quot;A String&quot;, # Registry used for the Ad ID value.
    &quot;value&quot;: &quot;A String&quot;, # ID value for this creative. Only alphanumeric characters and the following symbols are valid: &quot;_/\-&quot;. Maximum length is 64 characters. Read only when registry is DCM.
  },
  &quot;version&quot;: 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
}

  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 Creative.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;active&quot;: True or False, # Whether the creative is active. Applicable to all creative types.
  &quot;adParameters&quot;: &quot;A String&quot;, # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
  &quot;adTagKeys&quot;: [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;additionalSizes&quot;: [ # Additional sizes associated with a responsive creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. Applicable to DISPLAY creatives when the primary asset type is HTML_IMAGE.
    { # 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 creative. This is a required field. Applicable to all creative types.
  &quot;allowScriptAccess&quot;: True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
  &quot;archived&quot;: True or False, # Whether the creative is archived. Applicable to all creative types.
  &quot;artworkType&quot;: &quot;A String&quot;, # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;authoringSource&quot;: &quot;A String&quot;, # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
  &quot;authoringTool&quot;: &quot;A String&quot;, # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
  &quot;autoAdvanceImages&quot;: True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
  &quot;backgroundColor&quot;: &quot;A String&quot;, # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
  &quot;backupImageClickThroughUrl&quot;: { # Click-through URL # Click-through URL for backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
    &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
    &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
    &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
  },
  &quot;backupImageFeatures&quot;: [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by Campaign Manager for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets&#x27; detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;A String&quot;,
  ],
  &quot;backupImageReportingLabel&quot;: &quot;A String&quot;, # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;backupImageTargetWindow&quot;: { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;customHtml&quot;: &quot;A String&quot;, # User-entered value.
    &quot;targetWindowOption&quot;: &quot;A String&quot;, # Type of browser window for which the backup image of the flash creative can be displayed.
  },
  &quot;clickTags&quot;: [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Click Tag.
      &quot;clickThroughUrl&quot;: { # Click-through URL # Parameter value for the specified click tag. This field contains a click-through url.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;eventName&quot;: &quot;A String&quot;, # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;name&quot;: &quot;A String&quot;, # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset&#x27;s creativeAssetId.name field.
    },
  ],
  &quot;commercialId&quot;: &quot;A String&quot;, # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
  &quot;companionCreatives&quot;: [ # List of companion creatives assigned to an in-Stream video creative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all VPAID, all INSTREAM_AUDIO and all INSTREAM_VIDEO with dynamicAssetSelection set to false.
    &quot;A String&quot;,
  ],
  &quot;compatibility&quot;: [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. IN_STREAM_AUDIO refers to rendering in in-stream audio ads developed with the VAST standard. Applicable to all creative types. Acceptable values are: - &quot;APP&quot; - &quot;APP_INTERSTITIAL&quot; - &quot;IN_STREAM_VIDEO&quot; - &quot;IN_STREAM_AUDIO&quot; - &quot;DISPLAY&quot; - &quot;DISPLAY_INTERSTITIAL&quot;
    &quot;A String&quot;,
  ],
  &quot;convertFlashToHtml5&quot;: True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don&#x27;t want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;counterCustomEvents&quot;: [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;creativeAssetSelection&quot;: { # Encapsulates the list of rules for asset selection and a default asset in case none of the rules match. Applicable to INSTREAM_VIDEO creatives. # Required if dynamicAssetSelection is true.
    &quot;defaultAssetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
    &quot;rules&quot;: [ # Rules determine which asset will be served to a viewer. Rules will be evaluated in the order in which they are stored in this list. This list must contain at least one rule. Applicable to INSTREAM_VIDEO creatives.
      { # A rule associates an asset with a targeting template for asset-level targeting. Applicable to INSTREAM_VIDEO creatives.
        &quot;assetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative. This is a required field.
        &quot;name&quot;: &quot;A String&quot;, # A user-friendly name for this rule. This is a required field.
        &quot;targetingTemplateId&quot;: &quot;A String&quot;, # A targeting template ID. The targeting from the targeting template will be used to determine whether this asset should be served. This is a required field.
      },
    ],
  },
  &quot;creativeAssets&quot;: [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
    { # Creative Asset.
      &quot;actionScript3&quot;: True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;active&quot;: True or False, # Whether the video or audio asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;additionalSizes&quot;: [ # Additional sizes associated with this creative asset. HTML5 asset generated by compatible software such as GWD will be able to support more sizes this creative asset can render.
        { # 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;alignment&quot;: &quot;A String&quot;, # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL .
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;assetIdentifier&quot;: { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
        &quot;name&quot;: &quot;A String&quot;, # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: &quot;.-_ &quot;. Spaces are allowed.
        &quot;type&quot;: &quot;A String&quot;, # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
      },
      &quot;audioBitRate&quot;: 42, # Audio stream bit rate in kbps. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;audioSampleRate&quot;: 42, # Audio sample bit rate in hertz. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;backupImageExit&quot;: { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
        &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
        &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
        &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
        &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
        &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
        &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
          &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
          &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
          &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
        },
        &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
        &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
          &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
            &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
            &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
            &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
          },
          &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
          &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
          &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
          &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
          &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
          &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
          &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
        },
        &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
        &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
      },
      &quot;bitRate&quot;: 42, # Detected bit-rate for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;childAssetType&quot;: &quot;A String&quot;, # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
      &quot;collapsedSize&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &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;companionCreativeIds&quot;: [ # List of companion creatives assigned to an in-stream video creative asset. Acceptable values include IDs of existing flash and image creatives. Applicable to INSTREAM_VIDEO creative type with dynamicAssetSelection set to true.
        &quot;A String&quot;,
      ],
      &quot;customStartTimeValue&quot;: 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
      &quot;detectedFeatures&quot;: [ # List of feature dependencies for the creative asset that are detected by Campaign Manager. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &quot;A String&quot;,
      ],
      &quot;displayType&quot;: &quot;A String&quot;, # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;duration&quot;: 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
      &quot;durationType&quot;: &quot;A String&quot;, # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
      &quot;expandedDimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
        &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;fileSize&quot;: &quot;A String&quot;, # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;flashVersion&quot;: 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;frameRate&quot;: 3.14, # Video frame rate for video asset in frames per second. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;hideFlashObjects&quot;: True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;hideSelectionBoxes&quot;: True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;horizontallyLocked&quot;: True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;id&quot;: &quot;A String&quot;, # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. 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;mediaDuration&quot;: 3.14, # Detected duration for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;mimeType&quot;: &quot;A String&quot;, # Detected MIME type for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;offset&quot;: { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;orientation&quot;: &quot;A String&quot;, # Orientation of video asset. This is a read-only, auto-generated field.
      &quot;originalBackup&quot;: True or False, # Whether the backup asset is original or changed by the user in Campaign Manager. Applicable to the following creative types: all RICH_MEDIA.
      &quot;politeLoad&quot;: True or False, # Whether this asset is used as a polite load asset.
      &quot;position&quot;: { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;positionLeftUnit&quot;: &quot;A String&quot;, # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;positionTopUnit&quot;: &quot;A String&quot;, # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
      &quot;progressiveServingUrl&quot;: &quot;A String&quot;, # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;pushdown&quot;: True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
      &quot;pushdownDuration&quot;: 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
      &quot;role&quot;: &quot;A String&quot;, # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field. PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives. OTHER refers to assets from sources other than Campaign Manager, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user in Campaign Manager and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. TRANSCODED_VIDEO refers to videos transcoded by Campaign Manager from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. ALTERNATE_VIDEO refers to the Campaign Manager representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within Campaign Manager. For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative. PARENT_AUDIO refers to audios uploaded by the user in Campaign Manager and is applicable to INSTREAM_AUDIO creatives. TRANSCODED_AUDIO refers to audios transcoded by Campaign Manager from PARENT_AUDIO assets and is applicable to INSTREAM_AUDIO creatives.
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &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;sslCompliant&quot;: True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;startTimeType&quot;: &quot;A String&quot;, # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
      &quot;streamingServingUrl&quot;: &quot;A String&quot;, # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;transparency&quot;: True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
      &quot;verticallyLocked&quot;: True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;windowMode&quot;: &quot;A String&quot;, # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
      &quot;zIndex&quot;: 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
      &quot;zipFilename&quot;: &quot;A String&quot;, # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
      &quot;zipFilesize&quot;: &quot;A String&quot;, # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
    },
  ],
  &quot;creativeFieldAssignments&quot;: [ # Creative field assignments for this creative. Applicable to all creative types.
    { # Creative Field Assignment.
      &quot;creativeFieldId&quot;: &quot;A String&quot;, # ID of the creative field.
      &quot;creativeFieldValueId&quot;: &quot;A String&quot;, # ID of the creative field value.
    },
  ],
  &quot;customKeyValues&quot;: [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;dynamicAssetSelection&quot;: True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
  &quot;exitCustomEvents&quot;: [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;fsCommand&quot;: { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
    &quot;left&quot;: 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;positionOption&quot;: &quot;A String&quot;, # Position in the browser where the window will open.
    &quot;top&quot;: 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;windowHeight&quot;: 42, # Height of the window.
    &quot;windowWidth&quot;: 42, # Width of the window.
  },
  &quot;htmlCode&quot;: &quot;A String&quot;, # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is true. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
  &quot;htmlCodeLocked&quot;: True or False, # Whether HTML code is generated by Campaign Manager or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
  &quot;id&quot;: &quot;A String&quot;, # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#creative&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;latestTraffickedCreativeId&quot;: &quot;A String&quot;, # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;mediaDescription&quot;: &quot;A String&quot;, # Description of the audio or video ad. Applicable to the following creative types: all INSTREAM_VIDEO, INSTREAM_AUDIO, and all VPAID.
  &quot;mediaDuration&quot;: 3.14, # Creative audio or video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, INSTREAM_AUDIO, all RICH_MEDIA, and all VPAID.
  &quot;name&quot;: &quot;A String&quot;, # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
  &quot;obaIcon&quot;: { # Online Behavioral Advertiser icon. # Online behavioral advertising icon to be added to the creative. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;overrideCss&quot;: &quot;A String&quot;, # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
  &quot;progressOffset&quot;: { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;redirectUrl&quot;: &quot;A String&quot;, # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
  &quot;renderingId&quot;: &quot;A String&quot;, # ID of current rendering version. This is a read-only field. Applicable to all creative types.
  &quot;renderingIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;requiredFlashPluginVersion&quot;: &quot;A String&quot;, # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;requiredFlashVersion&quot;: 42, # The internal Flash version for this creative as calculated by Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
    &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;skipOffset&quot;: { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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 choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
  &quot;sslCompliant&quot;: True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
  &quot;sslOverride&quot;: True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it&#x27;s not. Applicable to all creative types.
  &quot;studioAdvertiserId&quot;: &quot;A String&quot;, # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioCreativeId&quot;: &quot;A String&quot;, # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioTraffickedCreativeId&quot;: &quot;A String&quot;, # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;thirdPartyBackupImageImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyRichMediaImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyUrls&quot;: [ # Third-party URLs for tracking in-stream creative events. Applicable to the following creative types: all INSTREAM_VIDEO, all INSTREAM_AUDIO, and all VPAID.
    { # Third-party Tracking URL.
      &quot;thirdPartyUrlType&quot;: &quot;A String&quot;, # Third-party URL type for in-stream video and in-stream audio creatives.
      &quot;url&quot;: &quot;A String&quot;, # URL for the specified third-party URL type.
    },
  ],
  &quot;timerCustomEvents&quot;: [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;totalFileSize&quot;: &quot;A String&quot;, # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;type&quot;: &quot;A String&quot;, # Type of this creative. This is a required field. Applicable to all creative types. *Note:* FLASH_INPAGE, HTML5_BANNER, and IMAGE are only used for existing creatives. New creatives should use DISPLAY as a replacement for these types.
  &quot;universalAdId&quot;: { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO and INSTREAM_VIDEO and VPAID.
    &quot;registry&quot;: &quot;A String&quot;, # Registry used for the Ad ID value.
    &quot;value&quot;: &quot;A String&quot;, # ID value for this creative. Only alphanumeric characters and the following symbols are valid: &quot;_/\-&quot;. Maximum length is 64 characters. Read only when registry is DCM.
  },
  &quot;version&quot;: 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
}</pre>
</div>

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

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 Creative.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;active&quot;: True or False, # Whether the creative is active. Applicable to all creative types.
  &quot;adParameters&quot;: &quot;A String&quot;, # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
  &quot;adTagKeys&quot;: [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;additionalSizes&quot;: [ # Additional sizes associated with a responsive creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. Applicable to DISPLAY creatives when the primary asset type is HTML_IMAGE.
    { # 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 creative. This is a required field. Applicable to all creative types.
  &quot;allowScriptAccess&quot;: True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
  &quot;archived&quot;: True or False, # Whether the creative is archived. Applicable to all creative types.
  &quot;artworkType&quot;: &quot;A String&quot;, # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;authoringSource&quot;: &quot;A String&quot;, # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
  &quot;authoringTool&quot;: &quot;A String&quot;, # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
  &quot;autoAdvanceImages&quot;: True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
  &quot;backgroundColor&quot;: &quot;A String&quot;, # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
  &quot;backupImageClickThroughUrl&quot;: { # Click-through URL # Click-through URL for backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
    &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
    &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
    &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
  },
  &quot;backupImageFeatures&quot;: [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by Campaign Manager for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets&#x27; detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;A String&quot;,
  ],
  &quot;backupImageReportingLabel&quot;: &quot;A String&quot;, # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;backupImageTargetWindow&quot;: { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;customHtml&quot;: &quot;A String&quot;, # User-entered value.
    &quot;targetWindowOption&quot;: &quot;A String&quot;, # Type of browser window for which the backup image of the flash creative can be displayed.
  },
  &quot;clickTags&quot;: [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Click Tag.
      &quot;clickThroughUrl&quot;: { # Click-through URL # Parameter value for the specified click tag. This field contains a click-through url.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;eventName&quot;: &quot;A String&quot;, # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;name&quot;: &quot;A String&quot;, # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset&#x27;s creativeAssetId.name field.
    },
  ],
  &quot;commercialId&quot;: &quot;A String&quot;, # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
  &quot;companionCreatives&quot;: [ # List of companion creatives assigned to an in-Stream video creative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all VPAID, all INSTREAM_AUDIO and all INSTREAM_VIDEO with dynamicAssetSelection set to false.
    &quot;A String&quot;,
  ],
  &quot;compatibility&quot;: [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. IN_STREAM_AUDIO refers to rendering in in-stream audio ads developed with the VAST standard. Applicable to all creative types. Acceptable values are: - &quot;APP&quot; - &quot;APP_INTERSTITIAL&quot; - &quot;IN_STREAM_VIDEO&quot; - &quot;IN_STREAM_AUDIO&quot; - &quot;DISPLAY&quot; - &quot;DISPLAY_INTERSTITIAL&quot;
    &quot;A String&quot;,
  ],
  &quot;convertFlashToHtml5&quot;: True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don&#x27;t want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;counterCustomEvents&quot;: [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;creativeAssetSelection&quot;: { # Encapsulates the list of rules for asset selection and a default asset in case none of the rules match. Applicable to INSTREAM_VIDEO creatives. # Required if dynamicAssetSelection is true.
    &quot;defaultAssetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
    &quot;rules&quot;: [ # Rules determine which asset will be served to a viewer. Rules will be evaluated in the order in which they are stored in this list. This list must contain at least one rule. Applicable to INSTREAM_VIDEO creatives.
      { # A rule associates an asset with a targeting template for asset-level targeting. Applicable to INSTREAM_VIDEO creatives.
        &quot;assetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative. This is a required field.
        &quot;name&quot;: &quot;A String&quot;, # A user-friendly name for this rule. This is a required field.
        &quot;targetingTemplateId&quot;: &quot;A String&quot;, # A targeting template ID. The targeting from the targeting template will be used to determine whether this asset should be served. This is a required field.
      },
    ],
  },
  &quot;creativeAssets&quot;: [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
    { # Creative Asset.
      &quot;actionScript3&quot;: True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;active&quot;: True or False, # Whether the video or audio asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;additionalSizes&quot;: [ # Additional sizes associated with this creative asset. HTML5 asset generated by compatible software such as GWD will be able to support more sizes this creative asset can render.
        { # 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;alignment&quot;: &quot;A String&quot;, # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL .
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;assetIdentifier&quot;: { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
        &quot;name&quot;: &quot;A String&quot;, # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: &quot;.-_ &quot;. Spaces are allowed.
        &quot;type&quot;: &quot;A String&quot;, # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
      },
      &quot;audioBitRate&quot;: 42, # Audio stream bit rate in kbps. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;audioSampleRate&quot;: 42, # Audio sample bit rate in hertz. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;backupImageExit&quot;: { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
        &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
        &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
        &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
        &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
        &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
        &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
          &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
          &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
          &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
        },
        &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
        &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
          &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
            &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
            &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
            &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
          },
          &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
          &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
          &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
          &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
          &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
          &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
          &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
        },
        &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
        &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
      },
      &quot;bitRate&quot;: 42, # Detected bit-rate for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;childAssetType&quot;: &quot;A String&quot;, # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
      &quot;collapsedSize&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &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;companionCreativeIds&quot;: [ # List of companion creatives assigned to an in-stream video creative asset. Acceptable values include IDs of existing flash and image creatives. Applicable to INSTREAM_VIDEO creative type with dynamicAssetSelection set to true.
        &quot;A String&quot;,
      ],
      &quot;customStartTimeValue&quot;: 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
      &quot;detectedFeatures&quot;: [ # List of feature dependencies for the creative asset that are detected by Campaign Manager. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &quot;A String&quot;,
      ],
      &quot;displayType&quot;: &quot;A String&quot;, # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;duration&quot;: 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
      &quot;durationType&quot;: &quot;A String&quot;, # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
      &quot;expandedDimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
        &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;fileSize&quot;: &quot;A String&quot;, # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;flashVersion&quot;: 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;frameRate&quot;: 3.14, # Video frame rate for video asset in frames per second. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;hideFlashObjects&quot;: True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;hideSelectionBoxes&quot;: True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;horizontallyLocked&quot;: True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;id&quot;: &quot;A String&quot;, # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. 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;mediaDuration&quot;: 3.14, # Detected duration for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;mimeType&quot;: &quot;A String&quot;, # Detected MIME type for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;offset&quot;: { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;orientation&quot;: &quot;A String&quot;, # Orientation of video asset. This is a read-only, auto-generated field.
      &quot;originalBackup&quot;: True or False, # Whether the backup asset is original or changed by the user in Campaign Manager. Applicable to the following creative types: all RICH_MEDIA.
      &quot;politeLoad&quot;: True or False, # Whether this asset is used as a polite load asset.
      &quot;position&quot;: { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;positionLeftUnit&quot;: &quot;A String&quot;, # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;positionTopUnit&quot;: &quot;A String&quot;, # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
      &quot;progressiveServingUrl&quot;: &quot;A String&quot;, # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;pushdown&quot;: True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
      &quot;pushdownDuration&quot;: 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
      &quot;role&quot;: &quot;A String&quot;, # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field. PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives. OTHER refers to assets from sources other than Campaign Manager, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user in Campaign Manager and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. TRANSCODED_VIDEO refers to videos transcoded by Campaign Manager from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. ALTERNATE_VIDEO refers to the Campaign Manager representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within Campaign Manager. For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative. PARENT_AUDIO refers to audios uploaded by the user in Campaign Manager and is applicable to INSTREAM_AUDIO creatives. TRANSCODED_AUDIO refers to audios transcoded by Campaign Manager from PARENT_AUDIO assets and is applicable to INSTREAM_AUDIO creatives.
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &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;sslCompliant&quot;: True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;startTimeType&quot;: &quot;A String&quot;, # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
      &quot;streamingServingUrl&quot;: &quot;A String&quot;, # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;transparency&quot;: True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
      &quot;verticallyLocked&quot;: True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;windowMode&quot;: &quot;A String&quot;, # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
      &quot;zIndex&quot;: 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
      &quot;zipFilename&quot;: &quot;A String&quot;, # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
      &quot;zipFilesize&quot;: &quot;A String&quot;, # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
    },
  ],
  &quot;creativeFieldAssignments&quot;: [ # Creative field assignments for this creative. Applicable to all creative types.
    { # Creative Field Assignment.
      &quot;creativeFieldId&quot;: &quot;A String&quot;, # ID of the creative field.
      &quot;creativeFieldValueId&quot;: &quot;A String&quot;, # ID of the creative field value.
    },
  ],
  &quot;customKeyValues&quot;: [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;dynamicAssetSelection&quot;: True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
  &quot;exitCustomEvents&quot;: [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;fsCommand&quot;: { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
    &quot;left&quot;: 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;positionOption&quot;: &quot;A String&quot;, # Position in the browser where the window will open.
    &quot;top&quot;: 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;windowHeight&quot;: 42, # Height of the window.
    &quot;windowWidth&quot;: 42, # Width of the window.
  },
  &quot;htmlCode&quot;: &quot;A String&quot;, # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is true. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
  &quot;htmlCodeLocked&quot;: True or False, # Whether HTML code is generated by Campaign Manager or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
  &quot;id&quot;: &quot;A String&quot;, # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#creative&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;latestTraffickedCreativeId&quot;: &quot;A String&quot;, # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;mediaDescription&quot;: &quot;A String&quot;, # Description of the audio or video ad. Applicable to the following creative types: all INSTREAM_VIDEO, INSTREAM_AUDIO, and all VPAID.
  &quot;mediaDuration&quot;: 3.14, # Creative audio or video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, INSTREAM_AUDIO, all RICH_MEDIA, and all VPAID.
  &quot;name&quot;: &quot;A String&quot;, # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
  &quot;obaIcon&quot;: { # Online Behavioral Advertiser icon. # Online behavioral advertising icon to be added to the creative. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;overrideCss&quot;: &quot;A String&quot;, # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
  &quot;progressOffset&quot;: { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;redirectUrl&quot;: &quot;A String&quot;, # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
  &quot;renderingId&quot;: &quot;A String&quot;, # ID of current rendering version. This is a read-only field. Applicable to all creative types.
  &quot;renderingIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;requiredFlashPluginVersion&quot;: &quot;A String&quot;, # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;requiredFlashVersion&quot;: 42, # The internal Flash version for this creative as calculated by Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
    &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;skipOffset&quot;: { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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 choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
  &quot;sslCompliant&quot;: True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
  &quot;sslOverride&quot;: True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it&#x27;s not. Applicable to all creative types.
  &quot;studioAdvertiserId&quot;: &quot;A String&quot;, # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioCreativeId&quot;: &quot;A String&quot;, # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioTraffickedCreativeId&quot;: &quot;A String&quot;, # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;thirdPartyBackupImageImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyRichMediaImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyUrls&quot;: [ # Third-party URLs for tracking in-stream creative events. Applicable to the following creative types: all INSTREAM_VIDEO, all INSTREAM_AUDIO, and all VPAID.
    { # Third-party Tracking URL.
      &quot;thirdPartyUrlType&quot;: &quot;A String&quot;, # Third-party URL type for in-stream video and in-stream audio creatives.
      &quot;url&quot;: &quot;A String&quot;, # URL for the specified third-party URL type.
    },
  ],
  &quot;timerCustomEvents&quot;: [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;totalFileSize&quot;: &quot;A String&quot;, # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;type&quot;: &quot;A String&quot;, # Type of this creative. This is a required field. Applicable to all creative types. *Note:* FLASH_INPAGE, HTML5_BANNER, and IMAGE are only used for existing creatives. New creatives should use DISPLAY as a replacement for these types.
  &quot;universalAdId&quot;: { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO and INSTREAM_VIDEO and VPAID.
    &quot;registry&quot;: &quot;A String&quot;, # Registry used for the Ad ID value.
    &quot;value&quot;: &quot;A String&quot;, # ID value for this creative. Only alphanumeric characters and the following symbols are valid: &quot;_/\-&quot;. Maximum length is 64 characters. Read only when registry is DCM.
  },
  &quot;version&quot;: 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
}

  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 Creative.
  &quot;accountId&quot;: &quot;A String&quot;, # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;active&quot;: True or False, # Whether the creative is active. Applicable to all creative types.
  &quot;adParameters&quot;: &quot;A String&quot;, # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
  &quot;adTagKeys&quot;: [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;additionalSizes&quot;: [ # Additional sizes associated with a responsive creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. Applicable to DISPLAY creatives when the primary asset type is HTML_IMAGE.
    { # 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 creative. This is a required field. Applicable to all creative types.
  &quot;allowScriptAccess&quot;: True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
  &quot;archived&quot;: True or False, # Whether the creative is archived. Applicable to all creative types.
  &quot;artworkType&quot;: &quot;A String&quot;, # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;authoringSource&quot;: &quot;A String&quot;, # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
  &quot;authoringTool&quot;: &quot;A String&quot;, # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
  &quot;autoAdvanceImages&quot;: True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
  &quot;backgroundColor&quot;: &quot;A String&quot;, # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
  &quot;backupImageClickThroughUrl&quot;: { # Click-through URL # Click-through URL for backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
    &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
    &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
    &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
  },
  &quot;backupImageFeatures&quot;: [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by Campaign Manager for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets&#x27; detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;A String&quot;,
  ],
  &quot;backupImageReportingLabel&quot;: &quot;A String&quot;, # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;backupImageTargetWindow&quot;: { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    &quot;customHtml&quot;: &quot;A String&quot;, # User-entered value.
    &quot;targetWindowOption&quot;: &quot;A String&quot;, # Type of browser window for which the backup image of the flash creative can be displayed.
  },
  &quot;clickTags&quot;: [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Click Tag.
      &quot;clickThroughUrl&quot;: { # Click-through URL # Parameter value for the specified click tag. This field contains a click-through url.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;eventName&quot;: &quot;A String&quot;, # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;name&quot;: &quot;A String&quot;, # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset&#x27;s creativeAssetId.name field.
    },
  ],
  &quot;commercialId&quot;: &quot;A String&quot;, # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
  &quot;companionCreatives&quot;: [ # List of companion creatives assigned to an in-Stream video creative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all VPAID, all INSTREAM_AUDIO and all INSTREAM_VIDEO with dynamicAssetSelection set to false.
    &quot;A String&quot;,
  ],
  &quot;compatibility&quot;: [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. IN_STREAM_AUDIO refers to rendering in in-stream audio ads developed with the VAST standard. Applicable to all creative types. Acceptable values are: - &quot;APP&quot; - &quot;APP_INTERSTITIAL&quot; - &quot;IN_STREAM_VIDEO&quot; - &quot;IN_STREAM_AUDIO&quot; - &quot;DISPLAY&quot; - &quot;DISPLAY_INTERSTITIAL&quot;
    &quot;A String&quot;,
  ],
  &quot;convertFlashToHtml5&quot;: True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don&#x27;t want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;counterCustomEvents&quot;: [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;creativeAssetSelection&quot;: { # Encapsulates the list of rules for asset selection and a default asset in case none of the rules match. Applicable to INSTREAM_VIDEO creatives. # Required if dynamicAssetSelection is true.
    &quot;defaultAssetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
    &quot;rules&quot;: [ # Rules determine which asset will be served to a viewer. Rules will be evaluated in the order in which they are stored in this list. This list must contain at least one rule. Applicable to INSTREAM_VIDEO creatives.
      { # A rule associates an asset with a targeting template for asset-level targeting. Applicable to INSTREAM_VIDEO creatives.
        &quot;assetId&quot;: &quot;A String&quot;, # A creativeAssets[].id. This should refer to one of the parent assets in this creative. This is a required field.
        &quot;name&quot;: &quot;A String&quot;, # A user-friendly name for this rule. This is a required field.
        &quot;targetingTemplateId&quot;: &quot;A String&quot;, # A targeting template ID. The targeting from the targeting template will be used to determine whether this asset should be served. This is a required field.
      },
    ],
  },
  &quot;creativeAssets&quot;: [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
    { # Creative Asset.
      &quot;actionScript3&quot;: True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;active&quot;: True or False, # Whether the video or audio asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;additionalSizes&quot;: [ # Additional sizes associated with this creative asset. HTML5 asset generated by compatible software such as GWD will be able to support more sizes this creative asset can render.
        { # 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;alignment&quot;: &quot;A String&quot;, # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL .
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;assetIdentifier&quot;: { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
        &quot;name&quot;: &quot;A String&quot;, # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: &quot;.-_ &quot;. Spaces are allowed.
        &quot;type&quot;: &quot;A String&quot;, # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
      },
      &quot;audioBitRate&quot;: 42, # Audio stream bit rate in kbps. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;audioSampleRate&quot;: 42, # Audio sample bit rate in hertz. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;backupImageExit&quot;: { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
        &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
        &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
        &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
        &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
        &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
        &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
          &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
          &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
          &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
        },
        &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
        &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
          &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
            &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
            &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
            &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
          },
          &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
          &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
          &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
          &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
          &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
          &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
          &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
        },
        &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
        &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
      },
      &quot;bitRate&quot;: 42, # Detected bit-rate for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;childAssetType&quot;: &quot;A String&quot;, # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
      &quot;collapsedSize&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &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;companionCreativeIds&quot;: [ # List of companion creatives assigned to an in-stream video creative asset. Acceptable values include IDs of existing flash and image creatives. Applicable to INSTREAM_VIDEO creative type with dynamicAssetSelection set to true.
        &quot;A String&quot;,
      ],
      &quot;customStartTimeValue&quot;: 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
      &quot;detectedFeatures&quot;: [ # List of feature dependencies for the creative asset that are detected by Campaign Manager. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &quot;A String&quot;,
      ],
      &quot;displayType&quot;: &quot;A String&quot;, # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;duration&quot;: 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
      &quot;durationType&quot;: &quot;A String&quot;, # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
      &quot;expandedDimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
        &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;fileSize&quot;: &quot;A String&quot;, # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;flashVersion&quot;: 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
      &quot;frameRate&quot;: 3.14, # Video frame rate for video asset in frames per second. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;hideFlashObjects&quot;: True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;hideSelectionBoxes&quot;: True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
      &quot;horizontallyLocked&quot;: True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;id&quot;: &quot;A String&quot;, # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. 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;mediaDuration&quot;: 3.14, # Detected duration for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;mimeType&quot;: &quot;A String&quot;, # Detected MIME type for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.
      &quot;offset&quot;: { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;orientation&quot;: &quot;A String&quot;, # Orientation of video asset. This is a read-only, auto-generated field.
      &quot;originalBackup&quot;: True or False, # Whether the backup asset is original or changed by the user in Campaign Manager. Applicable to the following creative types: all RICH_MEDIA.
      &quot;politeLoad&quot;: True or False, # Whether this asset is used as a polite load asset.
      &quot;position&quot;: { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
        &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
        &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
      },
      &quot;positionLeftUnit&quot;: &quot;A String&quot;, # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;positionTopUnit&quot;: &quot;A String&quot;, # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
      &quot;progressiveServingUrl&quot;: &quot;A String&quot;, # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;pushdown&quot;: True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
      &quot;pushdownDuration&quot;: 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
      &quot;role&quot;: &quot;A String&quot;, # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field. PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives. OTHER refers to assets from sources other than Campaign Manager, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user in Campaign Manager and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. TRANSCODED_VIDEO refers to videos transcoded by Campaign Manager from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. ALTERNATE_VIDEO refers to the Campaign Manager representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within Campaign Manager. For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative. PARENT_AUDIO refers to audios uploaded by the user in Campaign Manager and is applicable to INSTREAM_AUDIO creatives. TRANSCODED_AUDIO refers to audios transcoded by Campaign Manager from PARENT_AUDIO assets and is applicable to INSTREAM_AUDIO creatives.
      &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
        &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;sslCompliant&quot;: True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
      &quot;startTimeType&quot;: &quot;A String&quot;, # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
      &quot;streamingServingUrl&quot;: &quot;A String&quot;, # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
      &quot;transparency&quot;: True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
      &quot;verticallyLocked&quot;: True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
      &quot;windowMode&quot;: &quot;A String&quot;, # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
      &quot;zIndex&quot;: 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
      &quot;zipFilename&quot;: &quot;A String&quot;, # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
      &quot;zipFilesize&quot;: &quot;A String&quot;, # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
    },
  ],
  &quot;creativeFieldAssignments&quot;: [ # Creative field assignments for this creative. Applicable to all creative types.
    { # Creative Field Assignment.
      &quot;creativeFieldId&quot;: &quot;A String&quot;, # ID of the creative field.
      &quot;creativeFieldValueId&quot;: &quot;A String&quot;, # ID of the creative field value.
    },
  ],
  &quot;customKeyValues&quot;: [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
    &quot;A String&quot;,
  ],
  &quot;dynamicAssetSelection&quot;: True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
  &quot;exitCustomEvents&quot;: [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;fsCommand&quot;: { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
    &quot;left&quot;: 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;positionOption&quot;: &quot;A String&quot;, # Position in the browser where the window will open.
    &quot;top&quot;: 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
    &quot;windowHeight&quot;: 42, # Height of the window.
    &quot;windowWidth&quot;: 42, # Width of the window.
  },
  &quot;htmlCode&quot;: &quot;A String&quot;, # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is true. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
  &quot;htmlCodeLocked&quot;: True or False, # Whether HTML code is generated by Campaign Manager or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
  &quot;id&quot;: &quot;A String&quot;, # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#creative&quot;.
  &quot;lastModifiedInfo&quot;: { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
    &quot;time&quot;: &quot;A String&quot;, # Timestamp of the last change in milliseconds since epoch.
  },
  &quot;latestTraffickedCreativeId&quot;: &quot;A String&quot;, # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;mediaDescription&quot;: &quot;A String&quot;, # Description of the audio or video ad. Applicable to the following creative types: all INSTREAM_VIDEO, INSTREAM_AUDIO, and all VPAID.
  &quot;mediaDuration&quot;: 3.14, # Creative audio or video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, INSTREAM_AUDIO, all RICH_MEDIA, and all VPAID.
  &quot;name&quot;: &quot;A String&quot;, # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
  &quot;obaIcon&quot;: { # Online Behavioral Advertiser icon. # Online behavioral advertising icon to be added to the creative. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;overrideCss&quot;: &quot;A String&quot;, # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
  &quot;progressOffset&quot;: { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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;redirectUrl&quot;: &quot;A String&quot;, # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
  &quot;renderingId&quot;: &quot;A String&quot;, # ID of current rendering version. This is a read-only field. Applicable to all creative types.
  &quot;renderingIdDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
    &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;requiredFlashPluginVersion&quot;: &quot;A String&quot;, # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;requiredFlashVersion&quot;: 42, # The internal Flash version for this creative as calculated by Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
  &quot;size&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
    &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;skipOffset&quot;: { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
    &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 choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
  &quot;sslCompliant&quot;: True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
  &quot;sslOverride&quot;: True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it&#x27;s not. Applicable to all creative types.
  &quot;studioAdvertiserId&quot;: &quot;A String&quot;, # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioCreativeId&quot;: &quot;A String&quot;, # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;studioTraffickedCreativeId&quot;: &quot;A String&quot;, # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;subaccountId&quot;: &quot;A String&quot;, # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
  &quot;thirdPartyBackupImageImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyRichMediaImpressionsUrl&quot;: &quot;A String&quot;, # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
  &quot;thirdPartyUrls&quot;: [ # Third-party URLs for tracking in-stream creative events. Applicable to the following creative types: all INSTREAM_VIDEO, all INSTREAM_AUDIO, and all VPAID.
    { # Third-party Tracking URL.
      &quot;thirdPartyUrlType&quot;: &quot;A String&quot;, # Third-party URL type for in-stream video and in-stream audio creatives.
      &quot;url&quot;: &quot;A String&quot;, # URL for the specified third-party URL type.
    },
  ],
  &quot;timerCustomEvents&quot;: [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
    { # Creative Custom Event.
      &quot;advertiserCustomEventId&quot;: &quot;A String&quot;, # Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.
      &quot;advertiserCustomEventName&quot;: &quot;A String&quot;, # User-entered name for the event.
      &quot;advertiserCustomEventType&quot;: &quot;A String&quot;, # Type of the event. This is a read-only field.
      &quot;artworkLabel&quot;: &quot;A String&quot;, # Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.
      &quot;artworkType&quot;: &quot;A String&quot;, # Artwork type used by the creative.This is a read-only field.
      &quot;exitClickThroughUrl&quot;: { # Click-through URL # Exit click-through URL for the event. This field is used only for exit events.
        &quot;computedClickThroughUrl&quot;: &quot;A String&quot;, # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page&#x27;s URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field.
        &quot;customClickThroughUrl&quot;: &quot;A String&quot;, # Custom click-through URL. Applicable if the landingPageId field is left unset.
        &quot;landingPageId&quot;: &quot;A String&quot;, # ID of the landing page for the click-through URL.
      },
      &quot;id&quot;: &quot;A String&quot;, # ID of this event. This is a required field and should not be modified after insertion.
      &quot;popupWindowProperties&quot;: { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
        &quot;dimension&quot;: { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
          &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;offset&quot;: { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
          &quot;left&quot;: 42, # Offset distance from left side of an asset or a window.
          &quot;top&quot;: 42, # Offset distance from top side of an asset or a window.
        },
        &quot;positionType&quot;: &quot;A String&quot;, # Popup window position either centered or at specific coordinate.
        &quot;showAddressBar&quot;: True or False, # Whether to display the browser address bar.
        &quot;showMenuBar&quot;: True or False, # Whether to display the browser menu bar.
        &quot;showScrollBar&quot;: True or False, # Whether to display the browser scroll bar.
        &quot;showStatusBar&quot;: True or False, # Whether to display the browser status bar.
        &quot;showToolBar&quot;: True or False, # Whether to display the browser tool bar.
        &quot;title&quot;: &quot;A String&quot;, # Title of popup window.
      },
      &quot;targetType&quot;: &quot;A String&quot;, # Target type used by the event.
      &quot;videoReportingId&quot;: &quot;A String&quot;, # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
    },
  ],
  &quot;totalFileSize&quot;: &quot;A String&quot;, # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
  &quot;type&quot;: &quot;A String&quot;, # Type of this creative. This is a required field. Applicable to all creative types. *Note:* FLASH_INPAGE, HTML5_BANNER, and IMAGE are only used for existing creatives. New creatives should use DISPLAY as a replacement for these types.
  &quot;universalAdId&quot;: { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO and INSTREAM_VIDEO and VPAID.
    &quot;registry&quot;: &quot;A String&quot;, # Registry used for the Ad ID value.
    &quot;value&quot;: &quot;A String&quot;, # ID value for this creative. Only alphanumeric characters and the following symbols are valid: &quot;_/\-&quot;. Maximum length is 64 characters. Read only when registry is DCM.
  },
  &quot;version&quot;: 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
}</pre>
</div>

</body></html>