Content Cards are the Braze channel for content that lives inside your app or website rather than arriving as a notification. A card sits in a feed, stays there until it expires or the user dismisses it, and needs no opt-in.

That combination is the reason to use them. In-app messages are permissionless and short-lived. Content Cards are permissionless and permanent. Push is urgent and easy to ignore twice. A card is patient.

The most common pattern we build for clients: send a push, then save the same offer as a Content Card for everyone who did not tap it.

Before You Start

Two things to settle before you plan a card.

  • Content Cards availability depends on your Braze package. If you are not sure it is in yours, ask your account manager.
  • Your developers need the Braze SDK integrated in the app or website, and cards render in a feed they build. Braze ships default UI you can use, or your team can build its own.

That second point matters for timelines. A marketer can compose a card in an afternoon. Getting the feed into the app is an engineering ticket.

Types of Content Cards

Braze offers three card types.

  • Classic. Header text, message text, an optional link and an optional image at a 1:1 ratio, around 60×60 pixels. Good for notifications and for giving a feed visual structure with icons.
  • Captioned image. Header text, message text, an optional link and an image at roughly 4:3, 600 pixels wide at minimum. PNG, JPEG and GIF all work. This is the one for a sale or a new feature.
  • Image-only. One image at any aspect ratio, 600 pixels minimum width, with an optional on-click destination. Full creative control, all of it produced outside Braze.

Header text runs 18px bold and message text 13px, and Liquid works in both, so personalization is available without a developer. Font colors, multiple images and other styling cannot be changed in the dashboard. That happens once, during integration.

Content Cards, Banners or In-App Messages?

Since the original version of this post, Banners became its own Braze channel, and the two get confused constantly.

  • Content Cards live in a feed your developers place once. Users can dismiss them. Reporting is per campaign.
  • Banners display inline in placements you define across the app or site, refresh at session start or when your app asks, and are built in a drag-and-drop or HTML editor. Use them for a homepage strip or a promo slot.
  • In-app messages interrupt, then disappear. Use them when the moment is the point.

One caveat that applies to all three, plus feature flags: they sync with Braze over the device’s network connection. On a poor connection, content or updates can arrive late. Do not hang a countdown on it.

Which Type of Content Card Do I Use?

Four questions settle the format:

  • Does the message need an image, text, or both?
  • If it needs text, can you say it in two to four short lines? Anything longer belongs behind the link.
  • What is the single action you want after someone reads it?
  • Should it appear once, or hold a place in the feed?

So a renewal reminder or a personalized discount is usually classic or captioned image, because the copy carries the offer. A product launch works well as a short series of captioned image cards. A pure visual promotion is image-only.

Use Cases

Where we see cards earn their keep: offers and discounts, renewal and subscription reminders, product education after onboarding, feature announcements, a feedback or rating ask, and milestone rewards. For more examples, Braze’s Content Cards Inspiration Guide collects designs from other brands.

Preview and Test Braze Content Cards

Preview shows the card as a random or a specific user would see it, across common devices and browsers, which is where you catch a Liquid tag with no fallback.

You can send tests to individual users by email address or external user ID, or to a content test group, so stakeholders review inside the real app instead of in a screenshot.

Two settings to get right when the card runs in a Canvas:

  • When Braze calculates eligibility and personalization, at step entry or at first impression. First impression is Braze’s recommendation and usually the right answer, because a card can sit in a feed for days before anyone looks at it.
  • Expiration, either a duration or a fixed time. You can also remove a card automatically when the user purchases or fires a custom event, which stops a discount card following someone who already redeemed it.

Reporting

Reporting sits at the campaign level. Open the campaign, go to Details, and find the Content Card Performance panel: unique recipients, unique and total impressions, unique and total clicks, unique and total dismissals.

Dismissals are the metric most teams skip and the most useful one. A card with high impressions, low clicks and high dismissals is not underperforming creative, it is a card in the wrong feed position or the wrong audience.

Content Cards are one of the cheapest channels to add once the SDK work is done, and one of the easiest to leave half-used. If you want a second read on your feed strategy, or help getting cards into an existing Canvas, that is the kind of work our Braze team does every week. See how we help Braze teams, or read our overview of the Braze customer engagement platform for where cards fit in the wider channel mix.


Revised September 24, 2026. Originally published November 18, 2024. Updated with Braze’s current Content Card types (classic, captioned image and image-only), creative specs, SDK prerequisites, how Content Cards differ from the Banners channel and in-app messages, and Canvas settings for eligibility and expiration.

Share This

By |Published On: November 18th, 2024|Categories: Platform: Braze|

About the Author: Nic Dris

Nic is a Consultant with digital marketing experience (account management, content producing, & email strategy) in the Broadway advertising world. Nic holds an MFA in Musical Theater Writing from New York University. In his free time, he visits Disney World, takes advantage of his AMC Stubs membership, and wonders what "Jaws 2" would have been like with Richard Dreyfuss in it.