Getting Started Guide

  1. Getting Started with Cards
  2. Card and Content Attribution
  3. URL Crawling & Caching
  4. Card Display
  5. Multiple URLs in a Tweet
  6. Twitter Cards and Open Graph

Getting Started with Cards

To get started with implementing the Cards markup, you’ll want to specify the type of card for your content by adding the following HTML to the HEAD section of your page:

<meta name="twitter:card" content="summary" />

Card properties are simple key-value pairs, each defined in its own HTML meta tag as you see above. The combined collection of properties defines the overall card experience on Twitter, and each card supports and requires a specific set of properties. Only one card per-page is supported. All cards have one basic property in common and that is the card type value:

Card PropertyDescription
twitter:cardThe card type, which will be one of “summary”, “summary_large_image”, “photo”, “gallery”, “product”, “app”, or “player”.

Card and Content Attribution

Each card has built-in content attribution, which surfaces appropriate Twitter accounts for the content as specified by you. Viewing users will be able to follow and view the profiles of attributed accounts directly from the card. There are two kinds of attribution:

Website Attribution: Indicates the Twitter account for the website or platform on which the content was published. Note that a service may set separate Twitter accounts for different pages/sections of their website, and the most appropriate Twitter account should be used to provide the best context for the user. For example, nytimes.com may set the the website attribution to “@nytimes” for front page articles, and “@NYTArts” for articles in the Arts & Entertainment section.

Creator Attribution: Indicates the person that created the content within the card. This applies to the following card types: Summary with Large Image, Photo, Product and Gallery

Configure your card attribution using the following properties:

Card PropertyRequired

twitter:site

@username for the website used in the card footer.
Yes

twitter:creator

@username for the content creator / author.
No

URL Crawling & Caching

Twitter’s crawler will respect robots.txt when scanning URLs. If a page with card markup is blocked, no card will be shown. If an image URL is blocked, no thumbnail or photo will be shown.

Twitter uses the User-Agent of Twitterbot (with version, such as Twitterbot/1.0), which can be used to create an exception in your robots.txt file.

For example, here is a robots.txt which disallows crawling for all robots except Twitter’s fetcher:

User-agent: Twitterbot
Disallow: 

User-agent: *
Disallow: /

Here is another example, which specifies which directories are allowed to be crawled by Twitterbot (in this case, disallowing all except the images and archives directories):

User-agent: Twitterbot
Disallow: *

Allow: /images
Allow: /archives

Your server’s robots.txt file must be saved as plain text with ASCII character encoding. To verify this, you can run the following command:

$ file -I robots.txt
robots.txt: text/plain; charset=us-ascii

Your content is cached by Twitter for 7 days after a link to your page with card markup has been published in a tweet.

If you encounter issues with your tweets not appearing properly, please see our Cards Troubleshooting Guide.

Card Display

Twitter Cards generated from developer meta tags only appear when a Tweet is either expanded in the timeline (on web) or viewed on the Tweet’s individual permalink page (by clicking on the date from the timeline, either on web or on mobile).

In limited circumstances, Cards may appear in the timeline, such as in images posted to Twitter, Ad formats and Twitter-run experiments.

If you are looking to bring media (photos, videos and Cards) into the timeline, please consider one of the following options:

  • Accounts can pin a tweet to the top of their timeline, which auto-expands the tweet and displays the Card. (This is possible on web only.).
  • For photos and animated GIFs, upload the media directly with the Tweet or consider using the Twitter API to upload media.
  • For Ad-sponsored videos, visit Twitter Amplify for our publisher-grade video content management solutions.
  • For consumer-generated videos, consider using Vine to author and post videos in the timeline.
  • For Ad formats with a call-to-action, visit Twitter Ads for Lead Generation and Website Cards.

Multiple URLs in a Tweet

In some circumstances, users many want to tweet multiple URLs. Below is the order of how we treat multiple URLs when processing Cards:

  1. Cards from pic.twitter.com and vine.com have preference over alternate domains
  2. URLs are processed in order of appearance in the tweet, first to last

For more background, this order was requested from early partners who requested to use pic.twitter.com to show rich images and also allow linking to richer, on-brand content. We maintain this feature for posterity, but is subject to change moving forward.

Twitter Cards and Open Graph

You’ll notice that Twitter card tags look similar to Open Graph tags, and that’s because they are based on the same conventions as the Open Graph protocol. If you’re already using Open Graph protocol to describe data on your page, it’s easy to generate a Twitter card without duplicating your tags and data. When the Twitter card processor looks for tags on your page, it first checks for the Twitter property, and if not present, falls back to the supported Open Graph property. This allows for both to be defined on the page independently, and minimizes the amount of duplicate markup required to describe your content and experience.

Note that while Open Graph recommends specifying the “og” RDFa Core 1.1 CURIE prefix mapping via <html prefix="og: http://ogp.me/ns#">, no such markup is required for Twitter cards and its use of the “twitter:” prefix in a HTML meta element’s name attribute. Open Graph protocol also specifies the use of property and content attributes for markup (<meta property="og:image" content="http://example.com/ogp.jpg"/>) while Twitter cards use name and content. Twitter’s parser will fall back to using property and content, so there is no need to modify existing Open Graph protocol markup if it already exists in your page.

The example below uses a mix of Twitter and Open Graph tags to define a summary card:

<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@nytimesbits" />
<meta name="twitter:creator" content="@nickbilton" />
<meta property="og:url" content="http://bits.blogs.nytimes.com/2011/12/08/a-twitter-for-my-sister/" />
<meta property="og:title" content="A Twitter for My Sister" />
<meta property="og:description" content="In the early days, Twitter grew so quickly that it was almost impossible to add new features because engineers spent their time trying to keep the rocket ship from stalling." />
<meta property="og:image" content="http://graphics8.nytimes.com/images/2011/12/08/technology/bits-newtwitter/bits-newtwitter-tmagArticle.jpg" />