Choose Your Workflow
This page helps you pick the right Creator Ads workflow for your goal, flags the pitfalls that block teams across every workflow, and explains how the underlying APIs fit together.
Before You Begin
Creator Ads sits on top of the Public Profile API and the Ads API. If you haven't yet provisioned access, complete Public Profile API → Get Started first — that's the canonical guide for creating a business account, allowlisting your OAuth client, and generating access tokens. Don't duplicate that setup here; finish it once over there and come back.
A few Creator-Ads-specific assumptions on top of that baseline:
| Assumption | Details |
|---|---|
| Ad Account | An active Ad Account with campaign permissions — this is where you'll create your Ads |
| Profile Admin Role | Admin access on your Brand's Public Profile (not just Ad Account Admin) — without this, partnership invites will fail with AUTHORIZATION_PERMISSION_DENIED |
| OAuth Scopes | Your access token must carry both snapchat-marketing-api and snapchat-profile-api — Creator Ads workflows cross both APIs |
Choose Your Path
| Goal | Workflow | Permission Level | Creator Action Required |
|---|---|---|---|
| Boost existing organic post | Brand Partnerships | BRAND_LEVEL | Tags your brand in content |
| Run ads as Creator's profile | Ad Partnerships | AD_LEVEL | Initial approval only |
| Boost post without formal partnership | Ad Codes | None | Generates and shares code |
| Target Creator's followers | Audience Targeting | AD_LEVEL | Initial approval only |
Most workflows require establishing a formal partnership with creators. Learn how to invite and get creator approval in Partnership Setup.
Use the decision tree below, or jump directly to a quick start based on your goal.
Quick Start: Pick Your Workflow
"I want to boost creator content that mentions my brand"
→ Partnership Setup + Brand Partnerships
1. Establish BRAND_LEVEL partnership
2. Creator posts with "Paid Partnership" tag
3. Discover tagged content via API
4. Claim as media asset
5. Create partnership ad
Permission required: BRAND_LEVEL
Time to first ad: Depends on creator posting content
"I want to run ads that look like they come from a creator"
→ Partnership Setup + Ad Partnerships
1. Establish AD_LEVEL partnership
2. Upload your creative asset
3. Create ad with creator as primary profile
4. Launch campaign
Permission required: AD_LEVEL
Time to first ad: Minutes after partnership approval
"A creator sent me a code for their post"
→ Use Ad Codes
1. Receive code from creator
2. Exchange for media ID
3. Wait for processing
4. Create ad
Permission required: None (code-based)
Time to first ad: Minutes after receiving code
"I want to target a creator's followers"
→ Partnership Setup + Audience Targeting
1. Establish AD_LEVEL partnership
2. Create profile engagement audience
3. Apply audience to ad campaigns
4. Monitor performance
Permission required: AD_LEVEL
Time to first audience: Minutes after partnership approval
Watch Out For
The decision tree above shows the "happy path." These common pitfalls can block you across different workflows—plan for them early.
The "Tag Only" Trap
A creator accepting your BRAND_LEVEL request does not automatically grant boosting rights.
When creators post with a Paid Partnership tag, they choose a permission scope:
| Creator's Selection | You Can See Post? | You Can Boost? |
|---|---|---|
| Tagging Only | ✅ Yes | ❌ No |
| Tagging + Ad Creation | ✅ Yes | ✅ Yes |
| Tagging + Ad Creation + Insights | ✅ Yes | ✅ Yes |
If a creator selects "Tagging Only," you'll see the post when Retrieving Collaboration Snaps, but the API will return a permissions error when you try to claim it.
Fix: Instruct creators to select "Tagging + Ad Creation" or higher when posting.
Learn more: Partnership Setup covers permission scopes in detail.
Content Eligibility Rules
Not all organic content can become an ad. The API will reject content that violates these specs:
| Content Type | Aspect Ratio | Duration | Notes |
|---|---|---|---|
| Spotlight | 9:16 | 5–60 seconds | Strict limits |
| Stories | 9:16 | 3–180 seconds | Must be saved before 24-hour expiration |
Music restriction: Content containing "Snap Library" audio cannot be boosted. Creators must use original audio or royalty-free sounds.
Ad Code Expiration vs. Asset Persistence
There's a crucial distinction between code life and asset life:
| Item | Lifespan |
|---|---|
| Ad Code | 7, 30, 60, 180, or 365 days (set by creator) |
| Claimed Media | Permanent in your Ad Account |
Once you successfully exchange a code for a media_entity_id, that media lives in your Ad Account indefinitely—even after the code expires. For this reason you should claim media as soon as you receive the Ad code for the media.
Multi-Snap Stories
If a creator posts a Story with multiple segments (e.g., 5 snaps), you cannot automatically boost the whole sequence as one video.
The limitation: You initially claim individual snap_ids.
The solution: Use the /combine_snaps endpoint to stitch segments into a single media_entity_id.
The /combine_snaps endpoint is not yet documented in the API reference. Documentation will be added and this section will be updated with a link once it is available.
Constraint: All snaps in a bundle must have matching resolutions to combine successfully.
How It Works
Once you've chosen your path, understanding the underlying architecture helps you debug issues and design robust integrations.
Two APIs Working Together
Creator collaboration spans two APIs that work in tandem:
| API | What It Handles |
|---|---|
| Public Profile API | Permissions, partnership handshakes, organic content retrieval |
| Ads API | Media transformation, creative building, campaign execution |
Claiming Content: Snap ID vs. Ad Code
There are two ways to claim creator content for ads. The difference lies in the partnership type (formal vs. informal) and the workflow (automated vs. manual).
| Aspect | Claim by Snap ID | Claim by Ad Code |
|---|---|---|
| Endpoint | claim_media_by_snap_reference | claim_media_by_ad_code |
| Input | snap_id from API discovery | adcode_... string from creator |
| Partnership | Formal (BRAND_LEVEL required) | None required |
| Discovery | Automated via Retrieve Collaboration Snaps | Manual (creator sends code) |
| Best For | Ongoing campaigns, multiple posts | One-off boosts, quick collaborations |
Claim by Snap ID (claim_media_by_snap_reference)
Use case: Formal Brand Partnerships where creators actively tag your brand using the "Paid Partnership" label.
How it works:
- You pre-approve the creator as a Brand Partner (
BRAND_LEVEL) - Creator posts organically and tags your brand
- You "listen" for tagged posts via Retrieve Collaboration Snaps
- You claim the content, turning it into a Media entity, using its
snap_idvia Claim Media by Snap Reference
Why use it: Scalable, automated discovery. You don't need to ask for a code every time—content flows to you automatically when creators tag your brand.
Claim by Ad Code (claim_media_by_ad_code)
Use case: One-off boosts or collaborations without a formal partnership in Business Manager.
How it works:
- Creator (any creator with a public profile) generates a code in their app
- Creator sends you the code string (e.g.,
adcode_a1b2c3d4...) - You exchange the code via API to get the media asset
Why use it: Lightweight and permission-less. No need to add the creator to a "Pre-approved Partners" list. Great for testing collaborations or quick turnaround on trending content.
Permission Levels & Approval Process
Most workflows require establishing a formal partnership with creators through a two-way approval handshake:
| Permission Level | Name | Required For |
|---|---|---|
BRAND_LEVEL | Brand Partner | Brand Partnerships (boost tagged content) |
AD_LEVEL | Ad Partner | Ad Partnerships + Audience Targeting (full permissions) |
How it works:
- You invite the creator via Business Manager or API
- Creator receives push notification
- Creator approves in their Snapchat app
- Partnership becomes active (
PENDING→ACCEPTED)
For complete step-by-step instructions on inviting creators and managing partnerships, see Partnership Setup.
Technical Notes
ID Types: Don't Mix Them Up
| ID Type | Used For | API Context |
|---|---|---|
profile_id | Public Profile identification | Roles/Permissions (Public Profile API) |
ad_account_id | Ad Account identification | Media/Ads (Ads API) |
Attempting to add a creator role using an ad_account_id will fail. Use profile_id for permissions, ad_account_id for media and ads.
No Webhooks for Approvals
The API does not send webhooks when creators approve invitations. You must poll the roles endpoint to check status changes. See Partnership Setup for polling strategies and Troubleshooting for error handling.
Async Media Processing
When claiming organic content, media processing is asynchronous. Poll the media endpoint until media_status is READY before creating ads. See Technical Reference for timeout handling.
All Implementation Guides
| Guide | Description |
|---|---|
| Partnership Setup ⭐ | Start here: Invite creators and establish partnerships |
| Brand Partnerships | Organic-to-paid: boost creator content that tags you |
| Ad Partnerships | Paid-first: run ads as the creator's profile |
| Ad Codes | Quick boost via shareable codes |
| Audience Targeting | Target creator followers and build lookalikes |
| Technical Reference | Schemas, state machines, validation rules |
| Troubleshooting | Common errors and solutions |
Related APIs
| API | Purpose |
|---|---|
| Ads API | Campaign management, ad creation, and performance reporting |
| Public Profile API | Creator discovery and profile management |
| Conversions API | Server-to-server event tracking for attribution |