Cross-App Ad System

Cross-App Ad System

Cross-App Ad System

Role

Product Designer and Content Designer

Team

Product Design, Content, Engineering, PM

Timeframe

~1 year

Company

Meta

Overview

The Cross-App Ad System brought the best of Facebook’s most-loved surfaces (Marketplace, Friends & Family, Groups) to people who live primarily inside Instagram. Instead of asking Instagram users to go find these Facebook experiences, we brought a curated preview of them to the user, natively formatted for the surface they were already on.

A Marketplace listing set could appear as a shoppable carousel in the feed. A “friends you’ve been missing” prompt could appear as a Story. Each unit respected the host surface’s visual language while pulling content and calls to action from Facebook. My role was to design the ad units and the system rules behind them, and to hold one tension: making the units feel native and desirable inside Instagram while still driving a clear cross-app action back to Facebook.

Cross-App Design System

Marketplace (Feed)

We explored a range of Marketplace units that vary along four axes. The layouts below are ordered from least to most content dense, since that is the cleanest way to weigh the tradeoff between a single clear focal point and more selection.

One listing

Single hero: one large product image, headline top-left, one listing’s price and title, and the next card peeking.

PROS

+ Largest, most editorial imagery; the item reads instantly as aspirational.

+ One clear focal point, closest to an organic post.

+ Strong stopping power in a fast feed.

CONS

– Only one item shows at a glance.

– Leans on the peek and carousel to signal there is more.

– A single bet lowers the odds of a relevant match.

Two listings

One image plus two product cards, each with price, title, and description.

PROS

+ Best balance of imagery and real shopping context, on two items.

+ Two bets raise the chance something resonates, without crowding.

+ Cards stay legible with room for a large lead image.

CONS

– Still only two items, so less selection.

– Slightly less of the calm, premium feel.

– Descriptions truncate quickly.

Three listings

Three product cards, each with price, title, and a secondary line.

PROS

+ Maximum selection and the strongest browse-a-marketplace feel.

+ Three price-anchored items give the best odds of a match.

+ Communicates the breadth of inventory at a glance.

CONS

– The busiest layout: smallest images, most truncation.

– Reads more as an ad than native content.

– Competing focal points dilute stopping power.

Unit Anatomy

Unit Anatomy

Marketplace unit, component map

Every content piece the unit exposes, numbered to the chart below with its content rule.

Friends & family (Stories)

A full-screen Stories unit titled “See what you’ve been missing on Facebook.” It surfaces four friends in a staggered card grid (name plus a “N new posts” line each), with a “See posts on Facebook” pill CTA at the bottom and a per-card “View on Facebook” affordance.

Design Test Variables

While shaping the Marketplace unit, I ran a series of A/B tests on its core layout variables to land on the most effective, most native-feeling version. Each variable below was explored as a pair.

Card count

How many listings to surface in a single unit — trading selection against image size and a calm, premium feel.

Two listings

Three listings

Price and description vs. full image

Whether each card leads with price and a description line, or with a single full-bleed product image.

Price + description

Full image

Card size and height (single card)

For single-listing layouts, how tall the lead card should be within the unit.

Shorter card

Taller card

Background color

A light, airy blue versus a deeper, higher-contrast blue behind the unit.

Light blue

Dark blue

The headline

The headline is the unit’s highest-leverage line. We shipped a single generic MVP — “Discover listings you’ll love on Marketplace” — then tested a set of generic variants. From there we moved to Jellybean, a content engine I wrote category guidelines for (tech, plants, furniture, and more) that crafts the headline in real time to match the items actually being shown.

GENERIC · MVP + VARIANTS

MVP

Discover listings you’ll love on Marketplace

Your next favorite find is on Marketplace

New nearby listings, just for you

Local deals on Marketplace

Don’t miss these local finds

See what’s new on Marketplace

These listings won’t last long

Explore what’s new near you

Check out the latest listings

AI-DRIVEN · JELLYBEAN

Furniture

Shop vintage mirrors and mid-century finds near you

Plants

Shop plants to brighten your day

Clothing

Shop vintage denim to build your look

Electronics

Shop tech deals to upgrade your setup

Camping

Shop gear for your next adventure

Power tools

Shop tools to finish the job right

HOW JELLYBEAN WORKS

At serve time, Jellybean reads the set of listings the unit is about to show — their category, key attributes, condition, and price signals — and detects the dominant theme. It selects the guideline set written for that category and composes a headline from it on the fly, so the copy always speaks to what’s actually in front of the person instead of a fixed, generic line. When the item mix is ambiguous or confidence is low, it falls back to the vetted generic MVP.

SETTING THE GUIDELINES

Voice & verbs

Every line opens with an action verb (Shop, Discover, Explore) in second person, kept to a plain, scannable reading level.

Category lexicon

Each category carries an approved vocabulary and framing: furniture leans “vintage” and “mid-century,” plants lean “brighten,” electronics lean “upgrade” and “deals.”

Pattern

A flexible template — “Shop [what] to [why]” — keeps every headline benefit-led and consistent in shape.

Length

A hard character ceiling so the headline never spills past two lines or crowds the unit.

Truthfulness

The engine may only reference attributes actually present in the item set: no unverifiable superlatives, no price or availability claims.

Fallback & review

Low confidence or a mixed-category set drops back to the generic MVP, and every new category is spot-checked against live examples before it ships.

Notifications

Notifications

Cross-app birthday notifications

We adapted Instagram’s notification row into a birthday prompt that drives users cross-app to Facebook. Facebook owns the birthday experience, so the unit’s job is to entice the tap-through without replacing or duplicating it. For privacy and cross-app alignment, the default variants omit the birthday person’s name on Instagram, still enticing the click while leaving the reveal to Facebook. The icon is a birthday cake and the message ends in an emoji.

Celebrator · No name (privacy default)

PROS

+ Safe on a cross-app surface; no identity exposed and no way to misattribute.

+ Leaves the reveal to Facebook, so it entices the tap instead of replacing the feature.

CONS

– Less personal, so lower salience.

– The user does not know who, which can soften intent to click.

Celebrator · With name

PROS

+ Most personal and compelling; highest intent to open for a specific friend.

CONS

– Exposes a person’s identity on a different app, a privacy and cross-app concern.

– Revealing the name lets the person message the birthday friend directly on Instagram, which removes any reason to tap through to Facebook.

Celebratee · Your birthday (reverse / river)

PROS

+ On your own birthday, “friends are wishing you a happy birthday on Facebook” is a strong, reciprocity-driven pull.

+ Drives a big one-day spike.

CONS

– Only fires on your birthday, so it is not an evergreen driver.

– Value depends on friends actually posting.

Notifications tray context — screenshot to drop in

COUNT FRAMING

Numeric (“Two friends have birthdays today”) is concrete and conveys volume, but depends on accurate counts. “Some of your friends have birthdays today” is softer and count-free, but vaguer and less urgent.

People you know

People you know

People you know from Instagram

A reskin of the suggestions unit for cross-app friending. Instead of “Suggested for you,” the header reads “People you know from Instagram,” surfacing people you follow or are followed by, ordered by descending closeness on Facebook. We tested the call to action and how much social proof to show.

CTA TESTED

View profile over Add friend

PROS

+ “View profile” is a low-commitment tap, so more people take it, then add the person afterward, a lower-intent path that converted better.

CONS

– “Add friend” asks for commitment up front, so it drew fewer taps and performed worse in testing.

SOCIAL PROOF

How much proof to show

PROS

+ More proof (a mutual count, then a face pile) builds trust and lifts conversion; faces make the connection feel real.

CONS

– More proof adds visual load and surfaces more relationship data; the no-proof version is cleanest but least persuasive.

ML / AI-powered relevance

Once ML/AI can rank what you have in common, the mutuals line becomes the single most relevant thing you share, not just a count. That signal is more personal and more likely to earn the tap.

The system surfaces the highest-signal commonality per person. Examples: “Went to Harvard,” “Listens to The Strokes,” “Lives in Boston,” “Likes the Red Sox” — school, music, location, teams, and more.

Cross-App Reel

The reel unit brings Facebook-native reels into the Instagram surface. We deliberately only surface reels that were created on Facebook and never cross-posted to Instagram, so the row is a real reason to cross over rather than a rerun of the feed the person is already scrolling.

The header leads with the source. ‘Suggested from Facebook’ names where the content lives, and ‘New reels’ sets the expectation of something fresh. Each cover carries a Facebook attribution so the cross-app origin is never ambiguous.

Header copy variants

The same unit can be framed a few different ways. Each variant leads with the cross-app value, that these reels live on Facebook, while trading off between discovery, novelty, and exclusivity. The variant marked ‘MVP variant’ is the one we shipped.