- [Resource: Content](https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#Content)
  - [JSON representation](https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#Content.SCHEMA_REPRESENTATION)
- [ContentStatus](https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#ContentStatus)
- [ContentStatusSource](https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#ContentStatusSource)
- [DaiIngestStatus](https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestStatus)
- [DaiIngestError](https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestError)
  - [JSON representation](https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestError.SCHEMA_REPRESENTATION)
- [DaiIngestErrorReason](https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestErrorReason)
- [CmsContent](https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#CmsContent)
  - [JSON representation](https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#CmsContent.SCHEMA_REPRESENTATION)
- [Methods](https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#METHODS_SUMMARY)

## Resource: Content

A piece of `Content` from a Publisher's CMS.

| JSON representation |
|---|
| ``` { "name": string, "hlsIngestErrors": [ { object (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestError`) } ], "dashIngestErrors": [ { object (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestError`) } ], "cmsSources": [ { object (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#CmsContent`) } ], "contentBundles": [ string ], "cmsMetadataValues": [ string ], "displayName": string, "status": enum (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#ContentStatus`), "contentStatusSource": enum (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#ContentStatusSource`), "hlsIngestStatus": enum (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestStatus`), "lastHlsIngestTime": string, "dashIngestStatus": enum (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestStatus`), "lastDashIngestTime": string, "importTime": string, "updateTime": string, "duration": string } ``` |

| Fields ||
|---|---|
| `name` | `string` Identifier. The resource name of the `Content`. Format: `networks/{networkCode}/content/{contentId}` |
| `hlsIngestErrors[]` | ``object (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestError`)`` Output only. The list of any errors that occurred during the most recent DAI ingestion process of the HLS media. This attribute will be empty if the `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#Content.FIELDS.hls_ingest_status` is `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestStatus.ENUM_VALUES.SUCCESS` or if the `Content` is not eligible for dynamic ad insertion or if the `Content` does not have HLS media. |
| `dashIngestErrors[]` | ``object (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestError`)`` Output only. The list of any errors that occurred during the most recent DAI ingestion process of the DASH media. This attribute will be empty if the `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#Content.FIELDS.dash_ingest_status` is `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestStatus.ENUM_VALUES.SUCCESS` or if the `Content` is not eligible for dynamic ad insertion or if the `Content` does not have DASH media. |
| `cmsSources[]` | ``object (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#CmsContent`)`` Output only. Information about the `Content` from the CMS it was ingested from. |
| `contentBundles[]` | `string` Output only. The resource names of the `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.contentBundles#ContentBundle` of which this `Content` is a member. |
| `cmsMetadataValues[]` | `string` Output only. The resource names of the `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.cmsMetadataValues#CmsMetadataValue` that are associated with this `Content`. |
| `displayName` | `string` Output only. The name of the `Content`. |
| `status` | ``enum (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#ContentStatus`)`` Output only. The status of this `Content`. |
| `contentStatusSource` | ``enum (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#ContentStatusSource`)`` Output only. Whether the content status was defined by the user, or by the source CMS from which the `Content` was ingested. |
| `hlsIngestStatus` | ``enum (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestStatus`)`` Output only. The current DAI ingest status of the HLS media for the `Content`. This attribute is unset if the `Content` is not eligible for dynamic ad insertion or if the `Content` does not have HLS media. |
| `lastHlsIngestTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Output only. The timestamp at which this `Content`'s HLS media was last ingested for DAI. This attribute will be unset if the `Content` is not eligible for dynamic ad insertion or if the `Content` does not have HLS media. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |
| `dashIngestStatus` | ``enum (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestStatus`)`` Output only. The current DAI ingest status of the DASH media for the `Content`. This attribute is unset if the `Content` is not eligible for dynamic ad insertion or if the `Content` does not have DASH media. |
| `lastDashIngestTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Output only. The timestamp at which this `Content`'s DASH media was last ingested for DAI. This attribute will be unset if the `Content` is not eligible for dynamic ad insertion or if the `Content` does not have DASH media. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |
| `importTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Output only. The timestamp at which this `Content` was published. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |
| `updateTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Output only. The timestamp at which this `Content` was last modified. The last modified date time will always be updated when a `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.contentBundles#ContentBundle` association is changed, but will not always be updated when a `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.cmsMetadataValues#CmsMetadataValue` value is changed. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |
| `duration` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` Output only. The duration of the `Content`. A duration in seconds with up to nine fractional digits, ending with '`s`'. Example: `"3.5s"`. |

## ContentStatus

Describes the status of a `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#Content` object.

| Enums ||
|---|---|
| `CONTENT_STATUS_UNSPECIFIED` | Default value. This value is unused. |
| `ACTIVE` | Indicates the `Content` has been created and is eligible to have ads served against it. |
| `INACTIVE` | Indicates the `Content` has been deactivated and cannot have ads served against it. |
| `ARCHIVED` | Indicates the `Content` has been archived; user-visible. |
| `DELETED` | Indicates the `Content` has been removed from an external CMS. |
| `DUPLICATED` | Indicates the `Content` is a duplicate of another piece of content. |

## ContentStatusSource

Describes who defined the status of the `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#Content` object.

| Enums ||
|---|---|
| `CONTENT_STATUS_SOURCE_UNSPECIFIED` | Default value. This value is unused. |
| `CMS` | Indicates that the status of the `Content` is defined by the CMS. |
| `USER` | Indicates that the status of the `Content` is defined by the user. |

## DaiIngestStatus

The status of the Dynamic Ad Insertion (DAI) ingestion process. Only `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#Content` with a status of SUCCESS will be available for DAI.

| Enums ||
|---|---|
| `DAI_INGEST_STATUS_UNSPECIFIED` | Default value. This value is unused. |
| `SUCCESS` | The `Content` was successfully ingested for DAI. |
| `WARNING` | There was a non-fatal issue during the DAI ingestion process. |
| `INGESTED` | The preconditioned `Content` was successfully ingested for DAI. |
| `INGESTED_WITH_WARNINGS` | There was a non-fatal issue during the DAI ingestion process on preconditioned `Content`. |
| `CONDITIONED` | The unconditioned `Content` was successfully conditioned for DAI. |
| `CONDITIONED_WITH_WARNINGS` | There was a non-fatal issue during the DAI conditioning process on originally unconditioned `Content`. |
| `FAILURE` | There was a non-fatal issue during the DAI ingestion process and the `Content` is not available for dynamic ad insertion. |

## DaiIngestError

Represents an error associated with a Dynamic Ad Insertion (DAI) `Content`'s status.

| JSON representation |
|---|
| ``` { "reason": enum (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestErrorReason`), "trigger": string } ``` |

| Fields ||
|---|---|
| `reason` | ``enum (`https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#DaiIngestErrorReason`)`` The error associated with the content. |
| `trigger` | `string` Output only. The field, if any, that triggered the error. |

## DaiIngestErrorReason

Represents an error associated with a Dynamic Ad Insertion (DAI) `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content#Content` status.

| Enums ||
|---|---|
| `DAI_INGEST_ERROR_REASON_UNSPECIFIED` | Default value. This value is unused. |
| `INVALID_INGEST_URL` | The ingest URL provided in the publisher's `Content` source feed is invalid. The trigger for this error is the ingest URL specified in the publisher's feed. |
| `INVALID_CLOSED_CAPTION_URL` | The closed caption URL provided in the publisher's `Content` source feed is invalid. |
| `MISSING_CLOSED_CAPTION_URL` | There is no closed caption URL for a `Content` in the publisher's `Content` source feed. There is no trigger for this error. |
| `COULD_NOT_FETCH_HLS` | There was an error while trying to fetch the HLS from the specified ingest URL. The trigger for this error is the ingest URL specified in the publisher's feed. |
| `COULD_NOT_FETCH_SUBTITLES` | There was an error while trying to fetch the subtitles from the specified closed caption url. The trigger for this error is the closed caption URL specified in the publisher's feed. |
| `MISSING_SUBTITLE_LANGUAGE` | One of the subtitles from the closed caption URL is missing a language. The trigger for this error is the closed caption URL that does not have a language associated with it. |
| `COULD_NOT_FETCH_MEDIA` | Error fetching the media files from the URLs specified in the master HLS playlist. The trigger for this error is a media playlist URL within the publisher's HLS playlist that could not be fetched. |
| `MALFORMED_MEDIA_BYTES` | The media from the publisher's CDN is malformed and cannot be conditioned. The trigger for this error is a media playlist URL within the publisher's HLS playlist that is malformed. |
| `CHAPTER_TIME_OUT_OF_BOUNDS` | A chapter time for the `Content` is outside of the range of the `Content`'s duration. The trigger for this error is the chapter time (a parsable long representing the time in ms) that is out of bounds. |
| `INTERNAL_ERROR` | An internal error occurred. There is no trigger for this error. |
| `CONTENT_HAS_CHAPTER_TIMES_BUT_NO_MIDROLL_SETTINGS` | The `Content` has chapter times but the `Content`'s source has no CDN settings for midrolls. There is no trigger for this error. |
| `MALFORMED_MEDIA_PLAYLIST` | There is bad/missing/malformed data in a media playlist. The trigger for this error is the URL that points to the malformed media playlist. |
| `MIXED_AD_BREAK_TAGS` | Multiple ways of denoting ad breaks were detected in a media playlist (e.g. placement opportunity tags, cue markers, etc.) |
| `AD_BREAK_TAGS_INCONSISTENT_ACROSS_VARIANTS` | The ad break tags in the preconditioned `Content` are not in the same locations across all variant playlists. |
| `MALFORMED_SUBTITLES` | There is bad/missing/malformed data in a subtitles file. The trigger for this error is the URL that points to the malformed subtitles. |
| `SUBTITLES_TOO_LARGE` | The subtitles sent to DAI are too large. The trigger for this error is the URL that points to the master playlist. |
| `PLAYLIST_ITEM_URL_DOES_NOT_MATCH_INGEST_COMMON_PATH` | A playlist item has a URL that does not begin with the ingest common path provided in the DAI settings. The trigger for this error is the playlist item URL. |
| `COULD_NOT_UPLOAD_SPLIT_MEDIA_AUTHENTICATION_FAILED` | Uploading split media segments failed due to an authentication error. |
| `COULD_NOT_UPLOAD_SPLIT_MEDIA_CONNECTION_FAILED` | Uploading spit media segments failed due to a connection error. |
| `COULD_NOT_UPLOAD_SPLIT_MEDIA_WRITE_FAILED` | Uploading split media segments failed due to a write error. |
| `PLAYLISTS_HAVE_DIFFERENT_NUMBER_OF_DISCONTINUITIES` | Variants in a playlist do not have the same number of discontinuities. The trigger for this error is the master playlist URI. |
| `PLAYLIST_HAS_NO_STARTING_PTS_VALUE` | The playlist does not have a starting PTS value. The trigger for this error is the master playlist URI. |
| `PLAYLIST_DISCONTINUITY_PTS_VALUES_DIFFER_TOO_MUCH` | The PTS at a discontinuity varies too much between the different variants. The trigger for this error is the master playlist URI. |
| `SEGMENT_HAS_NO_PTS` | A media segment has no PTS. The trigger for this error is the segment data URI. |
| `SUBTITLE_LANGUAGE_DOES_NOT_MATCH_LANGUAGE_IN_FEED` | The language in the subtitles file does not match the language specified in the feed. The trigger for this error is the feed language and the parsed language separated by a semi-colon, e.g. "en;sp". |
| `CANNOT_DETERMINE_CORRECT_SUBTITLES_FOR_LANGUAGE` | There are multiple subtitles files at the closed caption URI, and none of them match the language defined in the feed. |
| `NO_CDN_CONFIG_FOUND` | No CDN configuration found for the `Content`. The trigger for this error is the `Content`'s master playlist URI. |
| `CONTENT_HAS_MIDROLLS_BUT_NO_SPLIT_CONTENT_CONFIG` | The `Content` has midrolls but there was no split `Content` config on the CDN configuration for that `Content` so the `Content` was not conditioned. There is no trigger for this error. |
| `CONTENT_HAS_MIDROLLS_BUT_SOURCE_HAS_MIDROLLS_DISABLED` | The `Content` has midrolls but the source the `Content` was ingested from has mid-rolls disabled, so the `Content` was not conditioned. There is no trigger for this error. |
| `ADTS_PARSE_ERROR` | Error parsing ADTS while splitting the `Content`. The trigger for this error is the variant URL and the cue-point separated by a semi-colon, e.g. "www.variant2.com;5000". |
| `AAC_SPLIT_ERROR` | Error splitting an AAC segment. The trigger for this error is the variant URL and the cue-point separated by a semi-colon, e.g. "www.variant2.com;5000". |
| `AAC_PARSE_ERROR` | Error parsing an AAC file while splitting the `Content`. The trigger for this error is the variant URL and the cue-point separated by a semi-colon, e.g. "www.variant2.com;5000". |
| `TS_PARSE_ERROR` | Error parsing a TS file while splitting the `Content`. The trigger for this error is the variant URL and the cue-point separated by a semi-colon, e.g. "www.variant2.com;5000". |
| `TS_SPLIT_ERROR` | Error splitting a TS file while splitting the `Content`. The trigger for this error is the variant URL and the cue-point separated by a semi-colon, e.g. "www.variant2.com;5000". |
| `UNSUPPORTED_CONTAINER_FORMAT` | Encountered an unsupported container format while splitting the `Content`. The trigger for this error is the variant URL and the cue-point separated by a semi-colon, e.g. "www.variant2.com;5000". |
| `MULTIPLE_ELEMENTARY_STREAMS_OF_SAME_MEDIA_TYPE_IN_TS` | Encountered multiple elementary streams of the same media type (audio, video) within a transport stream. The trigger for this error is the variant URL and the cue-point separated by a semi-colon, e.g. "www.variant2.com;5000". |
| `UNSUPPORTED_TS_MEDIA_FORMAT` | Encountered an unsupported TS media format while splitting the `Content`. The trigger for this error is the variant URL and the cue-point separated by a semi-colon, e.g. "www.variant2.com;5000". |
| `NO_IFRAMES_NEAR_CUE_POINT` | Error splitting because there were no i-frames near the target split point. The trigger for this error is the variant URL and the cue-point separated by a semi-colon, e.g. "www.variant2.com;5000". |
| `AC3_SPLIT_ERROR` | Error splitting an AC-3 segment. The trigger for this error is the variant URL and the cue-point separated by a semi-colon, e.g. "www.variant2.com;5000". |
| `AC3_PARSE_ERROR` | Error parsing an AC-3 file while splitting the `Content`. The trigger for this error is the variant URL and the cue-point separated by a semi-colon, e.g. "www.variant2.com;5000". |
| `EAC3_SPLIT_ERROR` | Error splitting an E-AC-3 segment. The trigger for this error is the variant URL and the cue-point separated by a semi-colon, e.g. "www.variant2.com;5000". |
| `INVALID_ENCRYPTION_KEY` | Error caused by an invalid encryption key. The trigger for this error is a media playlist URL within the publisher's HLS playlist that has the invalid encryption key. |
| `EAC3_PARSE_ERROR` | Error parsing an E-AC-3 file while splitting the `Content`. The trigger for this error is the variant URL and the cue-point separated by a semi-colon, e.g. "www.variant2.com;5000". |
| `CUE_POINT_COUNT_DOES_NOT_MATCH_PTS_COUNT` | Error caused by the number of PTS being a different value than the number of cue points + 1. |
| `DISCONTINUITY_COUNT_DOES_NOT_MATCH_PTS_COUNT` | Error caused by the number of PTS being a different value than the number of discontinuity tags + 1. |
| `DASH_CUE_POINT_EVENT_MISMATCH` | The DASH `Content` has cue points but they do not match the Event durations from the DASH manifest EventStream, if present. |
| `DASH_MANIFEST_CONDITIONING_FAILED` | The DASH manifest cannot be conditioned for midrolls. |
| `DASH_MANIFEST_CONDITIONING_SEGMENT_BOUNDARY_ERROR` | The DASH manifest cannot be conditioned for midrolls because one or more of the cue points do not lie on a media segment boundary. |
| `CLOSED_CAPTION_LANGUAGE_VALUE_INVALID` | The subtitle language code should not contain "$$$$$". |
| `CLOSED_CAPTION_NAME_VALUE_INVALID` | The subtitle name should not contain "$$$$$". |
| `CLOSED_CAPTION_CHARACTERISTICS_VALUE_UNEXPECTED` | The common subtitle characteristics values listed in the HLS spec are: 1)"public.accessibility.transcribes-spoken-dialog", 2)"public.accessibility.describes-music-and-sound", 3)"public.easy-to-read"; |
| `CLOSED_CAPTIONS_WITH_DUPLICATE_KEYS` | Closed captions for a `Content` should be unique by 'language + name'. |
| `SUBTITLES_PRESENT_IN_FEED_AND_MANIFEST` | Subtitles are defined in the `Content` source feed as well as inside the stream manifest. Only feed subtitles will be ingested. |
| `INVALID_MEDIA_PROFILE` | The media profile is invalid due to missing data. |
| `CHAPTER_PTS_MISMATCH` | Error caused when the PTS values do not align across chapters. |
| `CHAPTER_RENDITION_ERROR` | Error occurred while chaptering renditions in the `Content`. |
| `INVALID_TRANSCODING_REQUEST` | Error during notification processing: invalid transcoding request. |
| `TRANSCODE_FAILED` | Error during notification processing: transcode failed. |
| `PLAYLIST_GENERATION_FAILED` | Error during playlist generation. |
| `COULD_NOT_FETCH_DASH` | Error during DASH ingest: could not fetch DASH manifest. |
| `MALFORMED_DASH` | Error during DASH ingest: malformed DASH manifest. |
| `DASH_CONDITIONING_NOT_SUPPORTED` | Error during DASH ingest: DASH conditioning not supported. |

## CmsContent

Contains information about the `Content` from the CMS it was ingested from.

| JSON representation |
|---|
| ``` { "contentSource": string, "contentSourceDisplayName": string, "cmsContentId": string } ``` |

| Fields ||
|---|---|
| `contentSource` | `string` Output only. The resource name of the \[ContentSource\]\[google.ads.admanager.v1.ContentSource\] this content was ingested from. |
| `contentSourceDisplayName` | `string` Output only. The display name of the \[ContentSource\]\[google.ads.admanager.v1.ContentSource\] this content was ingested from. |
| `cmsContentId` | `string` The ID of the `Content` in the CMS. This ID will be a 3rd party ID, usually the ID of the content in a CMS (Content Management System). |

| ## Methods ||
|---|---|
| ### `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content/get` | Retrieves a `Content` object. |
| ### `https://developers.google.com/ad-manager/api/beta/reference/rest/v1/networks.content/list` | Lists `Content` objects. |