Google Assistant News specifications

Technical specifications

Follow these specifications to create a valid XML feed.

<rss>

This element establishes the content syndication format as RSS (Real Simple Syndication).

<rss> syntax

The <rss> element uses the following syntax:

<rss xmlns:itunes="ITUNES_URL" version="2.0">
  <channel>
   ...
   <image>
     ...
   </image>
   <item>
     ...
   </item>
  </channel>
</rss>

<rss> attributes

The <rss> element has the following attributes:

Attribute Required? Type Description
xmlns:itunes Required String The namespace declaration URL.
version Required String The XML feed version. We only support version 2.0.

<rss> child elements

The <rss> element has the following child elements:

Attribute Required? Type Description
<channel> Required Object The news show's information.

<rss> example

The following example shows how to use an <rss> example element to define a news podcast or show:

<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
version="2.0">
  <channel>
   <title>News source name</title>
   <link>http://www.example.com/news/nightly-news-with-nancy</link>
   <description>News source description</description>
   <image>
     <url>http://www.example.com/news/nightly-news-with-nancy/logo.png</url>
     <title>News source name</title>
     <link>http://www.example.com/news/nightly-news-with-nancy</link>
   </image>
   <item>
     <title>News item title</title>
     <description>News episode description</description>
     <guid>http://sample-id-1234567890</guid>
     <enclosure length="123" type="audio/mpeg"url="http://news.example.com/sample.mp3"/>
     <pubDate>Thu, 22 Sep 2016 21:11:46 GMT</pubDate>
     <itunes:duration>100</itunes:duration>
   </item>
  </channel>
</rss>

<channel>

This element defines the news show's information.

<channel> syntax

The <channel> element uses the following syntax:

  <channel>
   <title>NEWS_SOURCE_NAME</title>
   <link>NEWS_HOMEPAGE_URL</link>
   <description>NEWS_SOURCE_DESCRIPTION</description>
   <image>
     ...
   </image>
   <item>
     ...
   </item>
  </channel>

<channel> attributes

The <channel> element has no attributes.

<channel> child elements

The <channel> element has the following child elements:

Attribute Required? Type Description
<title> Required String Title of the news stream.
<link> Required String Fully qualified URL of the homepage of your feed. Use either Fetch as Google or the Mobile-Friendly Test to test that the homepage is accessible to Googlebot.
<description> Required String News show description.
<image> Required Object The logo or artwork of the news show. The logo needs to be a crisp, legible icon that measures at least 1000x1000 pixels.
<item> Required Object An episode of the news show.

<channel> example

The following example shows how to use the <channel> element to define a news show in your feed:

  <channel>
   <title>News on the Hour with Nancy</title>
   <link>http://www.example/news/on-the-hour-with-nancy.html</link>
   <description>Breaking news on the hour with Nancy Foo</description>
   <image>
     <url>http://www.example.com/news/imgs/logo.png</url>
     <title>News on the Hour with Nancy</title>
     <link>http://www.example/news/on-the-hour-with-nancy.html</link>
   </image>
   <item>
     <title>News item title</title>
     <description>News episode description</description>
     <guid>http://www.example.com/news/sample-id-1234567890</guid>
     <enclosure length="123" type="audio/mpeg" url="http://news.example.com/sample.mp3"/>
     <pubDate>Thu, 22 Sep 2016 21:11:46 GMT</pubDate>
     <itunes:duration>100</itunes:duration>
   </item>
  </channel>

<image>

The logo identifying the news show.

<image> syntax

The <image> element has the following syntax:

   <image>
     <url>IMAGE_URL</url>
     <title>NEWS_SOURCE_NAME</title>
     <link>NEWS_HOMEPAGE_URL</link>
   </image>

<image> attributes

The <image> element has no attributes.

<image> child elements

The <image> element has the following child elements:

Attribute Required? Type Description
<url> Required String

The location of the logo that identifies the news show. Not the same as the URL for the feed itself.

The logo needs to be a crisp, legible icon that measures at least 1000x1000 pixels.

<title> Required String Name of the news source. The image <title> and <link> should have the same values as the channel <title> and <link> . This is used as the alternate attribute of the <image> tag.
<link> Required String Fully qualified URL of the homepage of your feed. Use either Fetch as Google or the Mobile-Friendly Test to test that the homepage is accessible to Googlebot.

<image> child elements

The following example shows how to add an <image> element for a news show:

   <image>
     <url>http://www.example.com/news/imgs/logo.png</url>
     <title>News on the Hour with Nancy</title>
     <link>http://www.example/news/on-the-hour-with-nancy.html</link>
   </image>

<item>

This element adds an episode of the news show to the feed.

<item> syntax

The <item> element uses the following syntax:

   <item>
     <title>NEWS_ITEM_TITLE</title>
     <description>NEWS_EPISODE_DESCRIPTION</description>
     <guid>GUID-1234</guid>
     <enclosure length="FILE_SIZE_IN_BYTES" type="AUDIO_TYPE" url="URL_TO_EPISODE"/>
     <pubDate>PUBLISH_DATE</pubDate>
     <itunes:duration>DURATION</itunes:duration>
   </item>

<item> attributes

The <item> element has no attributes.

<item> child elements

The <item> element has the following child elements:

Attribute Required? Type Description
<title> Required String A single line describing the name of the episode.
<description> Required String Item summary.
<guid> Required String

Globally (within your feed) unique identification string that identifies the item.

The <guid> element takes the following attributes:

isPermaLink: Set to "false" when the string isn't a valid URL.

<enclosure> Required Object

The size in bytes, file type, and location of the episode.

Supported values of the type attribute are:

  • application/x-mpegURL
  • audio/aac
  • audio/mpeg
  • audio/wav
  • audio/x-m4a
  • video/mp4

The <enclosure> element takes the following attributes:

  • length: The news content file size in bytes.
  • type: The type of file for your news content.
  • url: The URL location of your news content.

The URL's media file should have an average loudness of -16 LUFS (Loudness Units Full Scale) for stereo (or -19 LUFS if the content is mono).

<pubDate> Required String The date and time the episode was released in RFC 822 format.
<itunes:duration> Required String

The episode's length of time in hours, minutes, and seconds.

You can specify one of the following formats:

  • HH:MM:SS
  • H:MM:SS
  • MM:SS
  • M:SS
  • SS
  • S

Where H = hours, M = minutes, S = seconds. If you specify a single number as a value without colons the value is treated as seconds.

<item> example

The following example shows how to use an <item> to add information about an episode:

   <item>
     <title>News item title</title>
     <description>News episode description</description>
     <guid>http://sample-id-1234567890</guid>
     <enclosure length="123" type="audio/mpeg" url="http://news.example.com/sample.mp3"/>
     <pubDate>Thu, 22 Sep 2016 21:11:46 GMT</pubDate>
     <itunes:duration>100</itunes:duration>
   </item>