Skip to content

Create a Content Card

This article covers how to create a Content Card in Braze when you build campaigns and Canvases. Here, we’ll walk you through choosing a messaging type, composing your card, and scheduling your message delivery.

Step 1: Choose where to build your message

Use campaigns for single, simple messaging (such as informing users about a product with one message). Use Canvases for multi-step user journeys (such as sending tailored product suggestions based on user behavior over time).

  1. Go to Messaging > Campaigns and select Create Campaign.
  2. Select Content Cards or, for campaigns targeting multiple channels, select Multichannel.
  3. Name your campaign something clear and meaningful.
  4. Add teams and tags as needed.
    • Tags make your campaigns easier to find and build reports out of. For example, when using the Report Builder, you can filter by the relevant tags.
  5. Add and name as many variants as you like for your campaign. You can choose different platforms, message types, and layouts for each of your added variants. For more on variants, refer to Multivariate and A/B testing.
  1. Create your Canvas using the Canvas composer.
  2. After setting up your Canvas, add a Message step in the Canvas builder. Name your step something clear and meaningful.
  3. Select Content Cards as your messaging channel.
  4. Choose when Braze calculates audience eligibility and personalization for the Content Card. This can be at step entry or at first impression (recommended). Steps containing Content Cards can be scheduled or action-based.
  5. Choose whether to remove Content Cards when users complete a purchase or perform a custom event.
  6. Set an expiration for the Content Card (time in feed). This can be after a duration of time or at a specific time.
  7. Filter your audience, or the recipients, for this step as necessary in the Delivery Settings. You can further refine your audience by specifying segments and adding additional filters. Audience options will be checked after the delay, at the time messages are sent.
  8. Choose any other messaging channels that you want to pair with your message.

Step 2: Specify your message types

Select one of three essential Content Card types: Classic, Captioned Image, and Image Only.

To learn more about the expected behavior and look of each type, refer to Creative Details, or check out the links in the following table. These Content Card types are accepted by both mobile apps and web applications.

Step 3: Compose a Content Card

You can edit all aspects of your message’s content and behavior in the Compose tab of the message editor.

Sample Content Card details in the Compose tab of the message editor.

The content here varies based on the Card Type chosen in the previous step, but may include any of the following options:

Language

Select Add Languages to add your desired languages from the provided list. This will insert Liquid into your message. We recommend selecting your languages before writing your content so you can fill in your text where it belongs in the Liquid. For our full list of available languages you can use, refer to Languages supported.

A window with English, Spanish, and French selected for the languages, and title, description, and link text selected for fields to internationalize.

Creating right-to-left messages

The final appearance of right-to-left messages depends largely on how service providers render them. For best practices on crafting right-to-left messages that display as accurately as possible, refer to Creating right-to-left messages.

Title and message

Write anything you want. There are no limits, but the faster you can get your message across and get your customer clicking, the better! We recommend clear and concise titles and message content. Note that these fields aren’t provided for Image Only Cards.

Image

Add an image to your Content Card by selecting Add Image or providing an image URL. Selecting Add Image opens the Media Library, where you can select a previously uploaded image or add a new one. Each message type and platform may have its own suggested proportions and requirements, so be sure to check what those are before commissioning or making an image from scratch! Keep in mind that Content Card message fields are limited to 2 KB in total size.

Pin to top

Braze displays a pinned card at the top of a user’s feed and the user can’t dismiss it. If a user’s feed has multiple pinned cards, Braze orders them chronologically. After you send a card, you can’t retroactively update its pinned option. Changing this option after you send a campaign only affects future sends.

Side-by-side of the Content Card preview in Braze for Mobile and Web with the option "Pin this card to the top of the feed" selected.

On-click behavior

When your customer clicks on a presented link in the card, your link can either lead them deeper into your app or to another site. If you choose an on-click behavior for your Content Card, remember to update your Link Text accordingly.

The following actions are available for Content Card links:

The Log Custom Event and Log Custom Attribute options require the following SDK version compatibility:

Step 4: Configure additional settings (optional)

You can use key-value pairs to create categories for your Cards, create multiple Content Card feeds, and customize how cards are sorted.

To add key-value pairs to your message, go to the Settings tab and select Add New Pair.

Step 5: Build the remainder of your campaign or Canvas

Build the remainder of your campaign. Continue to the next sections for additional details on how to best use our tools to build Content Cards.

Choose a delivery schedule or trigger

Content Cards can be delivered based on a scheduled time, an action, or an API trigger. For more, refer to Scheduling your campaign.

You can also set the campaign’s duration and Quiet Hours and determine the Content Card’s expiration. Set a specific expiration date or the days until a Card expires, up to 30 days. All variants have identical expiration dates.

Scheduled delivery

For Content Card campaigns with scheduled delivery, you can choose when Braze evaluates audience eligibility and personalization for new Content Card campaigns by specifying when the card is created. For more, refer to card creation.

Choose users to target

Next, target users by choosing segments or filters to narrow your audience. You automatically receive a preview of what that approximate segment population looks like. Keep in mind that exact segment membership is always calculated before the message is sent.

Choose conversion events

Braze allows you to track how often users perform specific actions, conversion events, after receiving a campaign. You have the option of allowing up to a 30-day window during which a conversion will be counted if the user takes the specified action.

If you haven’t done so already, complete the remaining sections of your Canvas component. For further details on how build out the rest of your Canvas, implement multivariate testing and Intelligent Selection, and more, refer to the Build your Canvas step of our Canvas documentation.

Step 6: Review and deploy

After you’ve finished building the last of your campaign or Canvas, review its details, test it, then send it when you’re ready.

Next, check out Content Card reporting to learn how you can access the results of your Content Card campaigns.

Things to know

Payload and feed limitations

To support performance, Content Cards have two key constraints: a limit on the payload size for each card and a maximum number of cards that can appear in a feed.

Size limitations for Content Cards

The entire data payload for a single Content Card cannot exceed 2 KB after any Liquid personalization is rendered. This includes:

  • Title
  • Message
  • Image URL (the length of the URL string itself, not the image file size)
  • Link text
  • Link URLs for all specified platforms (separate URLs for iOS, Android, and Web all count towards the total)
  • Key-value pairs (both the key names and their values)

Using Liquid to pull in long strings of text (such as from custom attributes) can cause you to exceed the limit.

The campaign composer will display a warning if your static content exceeds the limit. (We do not predict the size for dynamic content using Liquid.) If the message size exceeds 2 KB, it will be aborted at send time. You can see these aborts in the Message Activity Log with the reason Content card maximum size exceeded.

Here are some best practices for managing Content Card payload size:

  • Use URL shorteners for long links. URLs, especially those with extensive tracking parameters, can run into size limit issues. Using a URL shortening service can dramatically reduce the character count and free up space in the payload.
  • Truncate dynamic content with Liquid. When personalizing cards with dynamic text from user attributes or API calls, the length of the content can be unpredictable. Proactively use Liquid filters like truncate to cap the length of any dynamic text.
  • Be efficient with multi-platform URLs. The 2 KB limit includes the URLs for all platforms you define. Using long, unique URLs for each platform can multiply the size of the payload. If possible, use a single link that works across all platforms, or use URL shorteners as needed.
  • Consider Banners for richer content. For use cases that consistently require large amounts of content, Content Cards may not be the right channel. Banners do not have the same 2 KB payload limitation and are better suited for embedding richer content directly into an app or website experience.

Number of cards in feed

Each user can have up to 250 non-expired Content Cards in their feed at any given time. When this limit is exceeded, Braze will stop returning the oldest cards, even if they are unread. Dismissed cards also count toward this limit, meaning a high number of dismissed cards can reduce the space available for older ones.

To prevent issues with the card limit, we advise the following best practices:

  • Use shorter expiration dates: For campaigns that are time sensitive (such as a weekend sale), set a specific expiration date. This way, cards are automatically removed from the feed and won’t count towards the limit after they are no longer relevant.
  • Leverage action-based removal: Set up removal events for transactional or goal-based cards. For example, a card prompting a user to complete their profile should be removed as soon as a profile_completed event is logged.
  • Audit long-running campaigns: Review recurring or ongoing campaigns to ensure they aren’t creating a poor experience for your users by filling the feed with too many cards over time.

Understanding re-eligibility for Content Cards

Re-eligibility determines if and when a user can receive a message from the same campaign more than once. For Content Cards, understanding how this works is critical for managing recurring campaigns and ensuring users don’t receive duplicate or stale messages.

How re-eligibility is calculated

If you turn on re-eligibility, the countdown for when a user can “re-enter” a campaign begins after they are sent the message. The specific moment this countdown starts depends on your card creation settings:

  • Content Cards using at first impression use impression time to calculate re-eligibility.
  • Content Cards created at campaign launch or Canvas step entry use whichever send time or impression time is latest.

The 30-day expiration and re-eligibility

A common source of confusion is the interaction between campaign re-eligibility and the automatic 30-day expiration of all Content Cards.

All Content Cards are automatically purged from Braze’s systems 30 days after they are sent or removed. If you have a long-running, recurring campaign with re-eligibility turned off, a user may still receive the same card again after 30 days. When the original card is purged, the system no longer sees a record of that user having received the campaign, making them eligible again on their next session.

For users to only receive a message from a specific campaign once, add an audience filter to your campaign or Canvas step for users who have not received a message from this campaign. This filter is the most reliable way to prevent duplicate sends from long-running campaigns.

Managing live Content Cards

After Content Cards have been sent, they sit waiting in an “inbox” ready to be delivered to the user (similar to what happens for emails). After content is pulled into the Content Card (at the time of display), it cannot be changed during its lifespan. This applies even if you’re calling an API through Connected Content, and the data from the endpoint changes. This data won’t get updated. It can only be stopped from sending to new users and removed from users’ feeds. If you modify a campaign, only future cards that are sent will have the update.

Updating launched cards

To change a card for users who have already received it, you must use one of the following methods:

The first approach is to archive the campaign and launch a new, duplicated campaign:

  1. Stop the original campaign and, when prompted, select Remove card after the next sync.
  2. Duplicate the campaign, make your edits, and launch the new version.

When you duplicate the campaign, you need to define the audience for the new version. Use segmentation filters to control who receives the updated card:

  • If users should never be re-eligible for a Content Card, you can filter for users who haven’t received the previous version of the Content Card by setting the filter Received Message from Campaign to the condition to Has Not.
  • If users who received the prior card should be re-eligible in X days, you can set the filter for Last Received Message from specific campaign to more than X days ago OR Received Message from Campaign with the Has Not condition.
Impact
  • Existing recipients: New and existing recipients would see the updated card at the next feed refresh if they are eligible.
  • Reporting: Each version of the card would have separate analytics.

Let’s say you’ve set a campaign to be triggered by a session start, and it has re-eligibility set to 30 days. A user received the campaign two days ago, and you want to change the copy. First, you’d archive the campaign and remove the cards from the feed. Second, you’d duplicate the campaign and re-launch with the new copy. If the user has another session, they’ll immediately receive the new card.

Option 2: Stop and relaunch the same campaign

This approach keeps all your analytics unified in a single campaign. Newly eligible users will get the new card, but it delays the update for existing recipients until they are re-eligible:

  1. Stop your campaign and, when prompted, select Remove card after the next sync.
  2. Edit your campaign as needed.
  3. Restart your campaign.
Impact
  • Existing recipients: Users who have already received the card would not receive the updated cards until they become re-eligible. If re-eligibility is turned off, they would never receive the new card.
  • Reporting: One campaign will contain all reporting analytics for the card versions launched. Braze won’t differentiate between the versions launched.

Let’s say you have a campaign that’s triggered by a session start and has re-eligibility set to 30 days. A user received the campaign two days ago, and you want to change the copy. First, stop the campaign and remove the card from the feed. Second, re-publish the campaign with the new copy. If the user has another session, they’ll receive the new card in 28 days.

Removing and expiring cards

Manual card removal

You can manually remove cards for all users’ feeds at any time by stopping the campaign.

  1. Open the Content Card campaign and select Stop Campaign.
  2. When prompted, select Remove card after the next sync. The card will be removed on the next feed refresh.
Automated card removal

You can automatically remove a card when a user performs a specific action, such as completing a purchase or activating a feature.

In your campaign or Canvas step, specify a removal event. When a user performs that event, the card will be removed from their feed on a subsequent refresh after Braze processes the event.

Content Card Removal Conditions panel with Content Card Removal Event option.

Card expiration

Content Cards remain available for up to 30 days from when they are sent; after 30 days, Braze removes them from user feeds and purges them from Braze’s systems.

Making cards last longer than 30 days

If you want a card to seem like it’s always available (i.e., lasts longer than the 30-day max), you can create a recurring campaign that effectively replaces the card every 30 days:

  1. Set the duration of the Content Card for 30 days.
  2. Set the campaign re-eligibility to 30 days.
  3. Set the campaign to trigger on “Session Start.”
New Stuff!