Content ingestion and best practices

Learn about the process of video content ingestion, testing, and general best practices, including:

  Content ingestion capabilities
  Implementation process
  Common errors
  Examples of content-aware targeting
  Syncing with a MRSS feed


Content ingestion is a prerequisite for enabling content-aware targeting, allowing traffickers to book orders and line items based on the metadata of video content being played. Video content can be targeted directly using CMS metadata in addition to key values added to the ad tag. If you'd like to perform an end-to-end load test, please be assured that our system can handle very large amounts of data. We have publishers that have 4 - 6 million videos in their network.

Implementation process

Before adding any content source to your Ad Manager network, you should clean-up and review your metadata. You will find it very cumbersome to have extraneous or inaccurate metadata passed into your network. Remember, "junk in, junk out". This advice applies whether you are generating your own MRSS (Media RSS) feed, as well as if you use a third party like Brightcove or Ooyala.

Tips on verifying the MRSS feed

  • Ensure all required fields are available as part of the feed. For example: title and item are required fields whereas others are optional.
  • Do not encode titles of videos, otherwise they will appear in your network still encoded.
  • Cue points, if specified, must be in seconds.
  • Duration has to be a numeric value in seconds (integers, not floats).
  • If needed, use this template as a sample.
  • Once done, you can also optionally leverage a tool like the W3C Feed Validator.

Phased rollout

It’s highly recommended that you test your content ingestion by passing in a small feed first, correct for any errors, get it working, and then ingest a bigger feed. So the best practice involves passing a feed with information on 10 videos first, test and resolve any issues, then perform the step for 1000 more; and then to your entire library of content. This way you have an opportunity to address any issues (mis-formatted fields, missing information, etc.) before ingesting all your content. You should always page your feed; pages of 100 are recommended.

Common errors

If all goes well when running the ingestion (after clicking Connect in the "New Content Source" form), you should start seeing data coming from your feed. However, sometimes errors occur in the process, especially the first time around.

Here is a list of common errors that you might come across, and what they mean:

  • No Data: The feed has no data. Please check your feed, then try again (empty feed).
  • Cyclic Paging: Ad Manager found a duplicate URL while paging through the feed. Please fix the feed, then try again (paging set up incorrectly).
  • Feed Parse Error: The feed contains an error. Please correct the error at the URL below, then try again (malformed MRSS).
  • Account not found: We couldn't connect to your account. (This can happen if an account gets deactivated, deleted, etc.)
  • Feed connection error: The feed URL is unresponsive. Please verify that the service is available, then try again (timeout).
  • For feed parse error & account not found errors, we additionally show more details whenever we have more info. For example, "Invalid character (xyz) found at lineNumber:12; columnNumber:47 URL:http://the-paged-url-where-error-occurred" (mainly for MRSS feed). or "YouTube account has been closed," etc. (for YouTube sources).

Examples of content-aware targeting

When trafficking video line items, you have the option to directly target video content. Along the left hand side of the targeting window, click Video content. In the below example, we see that there are a number of astronomy lectures under the education category. Advertisements for telescopes would be a very good fit for users that are watching astronomy videos on a site.


Syncing with an MRSS feed

Ad Manager syncs content from MRSS feeds according to the <lastModifiedDate>, and any requested manual syncs. Learn more

Was this helpful?
How can we improve it?