<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_v4.html">Campaign Manager 360 API</a> . <a href="dfareporting_v4.creativeAssets.html">creativeAssets</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="#insert">insert(profileId, advertiserId, body=None, media_body=None, media_mime_type=None, x__xgafv=None)</a></code></p>
<p class="firstline">Inserts a new creative asset.</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="insert">insert(profileId, advertiserId, body=None, media_body=None, media_mime_type=None, x__xgafv=None)</code>
  <pre>Inserts a new creative asset.

Args:
  profileId: string, User profile ID associated with this request. (required)
  advertiserId: string, Advertiser ID of this creative. This is a required field. (required)
  body: object, The request body.
    The object takes the form of:

{ # CreativeAssets contains properties of a creative asset file which will be uploaded or has already been uploaded. Refer to the creative sample code for how to upload assets and insert a creative.
  &quot;assetIdentifier&quot;: { # Creative Asset ID. # ID of the creative asset. This is a required field.
    &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;clickTags&quot;: [ # List of detected click tags for assets. This is a read-only, auto-generated field. This field is empty for a rich media asset.
    { # 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;counterCustomEvents&quot;: [ # List of counter events configured for the asset. This is a read-only, auto-generated field and only applicable to a rich media asset.
    { # 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;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.
    &quot;A String&quot;,
  ],
  &quot;exitCustomEvents&quot;: [ # List of exit events configured for the asset. This is a read-only, auto-generated field and only applicable to a rich media asset.
    { # 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;id&quot;: &quot;A String&quot;, # Numeric ID of the asset. This is a read-only, auto-generated field.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the numeric 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;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#creativeAssetMetadata&quot;.
  &quot;richMedia&quot;: True or False, # True if the uploaded asset is a rich media asset. This is a read-only, auto-generated field.
  &quot;timerCustomEvents&quot;: [ # List of timer events configured for the asset. This is a read-only, auto-generated field and only applicable to a rich media asset.
    { # 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;warnedValidationRules&quot;: [ # Rules validated during code generation that generated a warning. This is a read-only, auto-generated field. Possible values are: - &quot;ADMOB_REFERENCED&quot; - &quot;ASSET_FORMAT_UNSUPPORTED_DCM&quot; - &quot;ASSET_INVALID&quot; - &quot;CLICK_TAG_HARD_CODED&quot; - &quot;CLICK_TAG_INVALID&quot; - &quot;CLICK_TAG_IN_GWD&quot; - &quot;CLICK_TAG_MISSING&quot; - &quot;CLICK_TAG_MORE_THAN_ONE&quot; - &quot;CLICK_TAG_NON_TOP_LEVEL&quot; - &quot;COMPONENT_UNSUPPORTED_DCM&quot; - &quot;ENABLER_UNSUPPORTED_METHOD_DCM&quot; - &quot;EXTERNAL_FILE_REFERENCED&quot; - &quot;FILE_DETAIL_EMPTY&quot; - &quot;FILE_TYPE_INVALID&quot; - &quot;GWD_PROPERTIES_INVALID&quot; - &quot;HTML5_FEATURE_UNSUPPORTED&quot; - &quot;LINKED_FILE_NOT_FOUND&quot; - &quot;MAX_FLASH_VERSION_11&quot; - &quot;MRAID_REFERENCED&quot; - &quot;NOT_SSL_COMPLIANT&quot; - &quot;ORPHANED_ASSET&quot; - &quot;PRIMARY_HTML_MISSING&quot; - &quot;SVG_INVALID&quot; - &quot;ZIP_INVALID&quot;
    &quot;A String&quot;,
  ],
}

  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # CreativeAssets contains properties of a creative asset file which will be uploaded or has already been uploaded. Refer to the creative sample code for how to upload assets and insert a creative.
  &quot;assetIdentifier&quot;: { # Creative Asset ID. # ID of the creative asset. This is a required field.
    &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;clickTags&quot;: [ # List of detected click tags for assets. This is a read-only, auto-generated field. This field is empty for a rich media asset.
    { # 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;counterCustomEvents&quot;: [ # List of counter events configured for the asset. This is a read-only, auto-generated field and only applicable to a rich media asset.
    { # 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;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.
    &quot;A String&quot;,
  ],
  &quot;exitCustomEvents&quot;: [ # List of exit events configured for the asset. This is a read-only, auto-generated field and only applicable to a rich media asset.
    { # 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;id&quot;: &quot;A String&quot;, # Numeric ID of the asset. This is a read-only, auto-generated field.
  &quot;idDimensionValue&quot;: { # Represents a DimensionValue resource. # Dimension value for the numeric 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;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;dfareporting#creativeAssetMetadata&quot;.
  &quot;richMedia&quot;: True or False, # True if the uploaded asset is a rich media asset. This is a read-only, auto-generated field.
  &quot;timerCustomEvents&quot;: [ # List of timer events configured for the asset. This is a read-only, auto-generated field and only applicable to a rich media asset.
    { # 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;warnedValidationRules&quot;: [ # Rules validated during code generation that generated a warning. This is a read-only, auto-generated field. Possible values are: - &quot;ADMOB_REFERENCED&quot; - &quot;ASSET_FORMAT_UNSUPPORTED_DCM&quot; - &quot;ASSET_INVALID&quot; - &quot;CLICK_TAG_HARD_CODED&quot; - &quot;CLICK_TAG_INVALID&quot; - &quot;CLICK_TAG_IN_GWD&quot; - &quot;CLICK_TAG_MISSING&quot; - &quot;CLICK_TAG_MORE_THAN_ONE&quot; - &quot;CLICK_TAG_NON_TOP_LEVEL&quot; - &quot;COMPONENT_UNSUPPORTED_DCM&quot; - &quot;ENABLER_UNSUPPORTED_METHOD_DCM&quot; - &quot;EXTERNAL_FILE_REFERENCED&quot; - &quot;FILE_DETAIL_EMPTY&quot; - &quot;FILE_TYPE_INVALID&quot; - &quot;GWD_PROPERTIES_INVALID&quot; - &quot;HTML5_FEATURE_UNSUPPORTED&quot; - &quot;LINKED_FILE_NOT_FOUND&quot; - &quot;MAX_FLASH_VERSION_11&quot; - &quot;MRAID_REFERENCED&quot; - &quot;NOT_SSL_COMPLIANT&quot; - &quot;ORPHANED_ASSET&quot; - &quot;PRIMARY_HTML_MISSING&quot; - &quot;SVG_INVALID&quot; - &quot;ZIP_INVALID&quot;
    &quot;A String&quot;,
  ],
}</pre>
</div>

</body></html>