The whole product, written out.
Every one of the 660 things upload.ad does, down to the small ones. Search the list for what you need and see whether it is here.
7 days free. No credit card required.
Creative library
Where finished work lands and stays findable.
- Drag and drop uploading
- Drop images and video anywhere on the library to add them. Whole folders come in at once.
- Freeform canvas
- Creatives sit on a canvas you pan and zoom, arranged the way the campaign is actually shaped rather than in a fixed grid.
- Grid view
- A dense thumbnail grid for when you want everything at a glance.
- List view
- A row per creative with name, status, folder, and dates, sortable by column.
- Folders
- Nest creatives into folders per client, campaign, or concept.
- Folder colours and icons
- Give a folder its own colour and icon so it reads at canvas zoom.
- Tags
- Tag creatives freely and filter the library down to one tag.
- AI tagging
- New uploads get suggested tags from what is actually in the image or video, so the library stays searchable without anyone tagging by hand.
- Full library search
- Search across file names, folder names, ad copy text, and tags in one box.
- Lightbox preview
- Open any creative full screen, step through the set with the arrow keys, and play video in place.
- Video player with scrubbing
- Frame-accurate scrubbing, keyboard control, and a timeline that shows where comments sit.
- Rename creatives
- Rename in place from the canvas, the list, or the API.
- Duplicate creatives
- Copy a creative, optionally into another folder, without re-uploading it.
- Bulk move
- Select many creatives and move them into a folder in one action.
- Manual reordering
- Drag creatives into the order you want them read in.
- Trash with 30-day recovery
- Deleted creatives go to the trash and can be restored for 30 days before they are removed for good.
- Permanent delete
- Empty the trash yourself when something should be gone now.
- Sticky notes on the canvas
- Drop a note next to a creative for context that is not a comment on the work itself.
- Notes you can write in properly
- Headings, lists, quotes, highlights and links, so the brief beside the work reads like a brief.
- To-do lists beside the work
- Keep the shot list or the round of changes on the board, and tick items off as they are done.
- Who ticked it off
- Each finished item shows the person who marked it done.
- Links that show the page
- Paste an address and it becomes a card carrying that page's own picture and title.
- Notes and lists in every view
- They sit beside your files in grid and list too, and open full size when you want to read or write.
- Notes live in folders
- Move a note, a list or a link into a folder the way you move a file.
- Search reads what you wrote
- Find a note by a phrase inside it, a list by one of its items, or a link by its address.
- Shapes and drawing
- Draw boxes, arrows, and freehand marks on the canvas to group and point at things.
- Assigned creative editor
- Set which member owns a creative, overriding the uploader, so feedback reaches the person actually cutting it.
- Match a live ad to its creative
- Resolve an image or video already running on a platform back to the library asset it came from, so an ad in the table is never an orphan.
- Creative detail panel
- One panel per creative with its versions, comments, copy, tags, review status, and the ads it became.
- Saved library views
- Save the current search, tags, status, and folder as a named view you can come back to.
- Bulk approve and request changes
- Set a whole selection to approved or changes requested at once.
- Bulk tagging
- Add a tag to a whole selection, strip a shared tag off all of them, or AI-tag a batch.
- Copy and paste creatives
- Copy a selection and paste it into whichever folder you are looking at, with the usual shortcuts.
- Undo a delete
- Deleting shows a short undo bar instead of asking first, and one click puts it all back.
- Drag onto the breadcrumb
- Drop creatives on a breadcrumb, or on back or home, to move them up a level or to the top.
- Select every match
- Press Enter in the search box to select everything matching what you typed.
- Search results show where a file lives
- Matches from other folders show their path and say when the hit came from saved copy.
- Restore or empty the whole trash
- Put everything back at once, or clear it out, with days remaining shown per item.
- Rubber-band selection
- Drag a box across the canvas to select every card, folder, and drawing inside it.
- Canvas zoom controls
- Zoom from the corner controls, read the current level, and click it to snap back.
- Hold space to pan
- Hold space, or use the middle mouse button, to drag the canvas without moving anything on it.
- Canvas tool shortcuts
- Single keys switch between select, pen, text, shape, and eraser, and one key fits everything on screen.
- Group drawings
- Select several notes, shapes, and strokes together to move, duplicate, or delete them in one go.
- Eraser
- Wipe drawings away by dragging across them.
- Video thumbnails play on hover
- Point at a video card and it plays in place, silently.
- Unresolved comment counts
- Every card and row shows how many comments are still open on it.
- Side-by-side version compare
- Play the current cut next to an older one with both players on the same clock.
- Playback speed, loop, and fullscreen
- Cycle speed, loop the clip, set volume, and go fullscreen from the player or the keyboard.
- Step a frame at a time
- Nudge the playhead one frame either way at the clip's real frame rate.
- Remembered view choice
- The library comes back as canvas, grid, or list, with your sort and filters intact.
Uploads and media handling
What happens between the file leaving your machine and being ad-ready.
- Images and video
- The library takes the image and video formats Meta and TikTok actually ingest, and rejects anything that could not become an ad.
- Content sniffing on upload
- File type is read from the file itself, not from what the browser claims, so a mislabelled file cannot slip through.
- Large file uploads
- Multi-gigabyte video uploads run in the background while you keep working.
- Upload queue
- Every file gets a job you can watch, with per-file progress and a clear reason when one fails.
- Retry a failed upload
- Retry a single failed file without redoing the whole batch.
- Dismiss stuck jobs
- Clear an upload job you no longer care about out of the activity panel.
- Metadata stripping
- Newly uploaded images can have AI generation markers, Content Credentials, generator prompts, and camera EXIF and GPS removed, without re-encoding the picture.
- Smooth playback of heavy video
- Every video gets a lighter copy made for reviewing, so scrubbing a huge file is instant instead of dragging the original around.
- Review copies carry nothing extra
- The copy people watch is stripped of the camera, location, and creation data the original file arrived with.
- Previews that retry themselves
- If a video's review copy does not render the first time, it is retried on its own until it does.
- Video verified before processing
- A file that is not genuinely a video, or that points somewhere else instead of holding one, is refused rather than processed.
- Interrupted uploads cost you nothing
- An upload that never finished is cleared out within a day and stops counting against your storage.
- Versions on any creative
- Upload a new cut over an existing creative. It takes the same spot, folder, and review thread, and older cuts stay behind the version switcher.
- Version history
- See the whole chain for a creative, which version is current, and the review status each one reached.
- Video poster frames
- Set the still that represents a video, so grid tiles and previews show the frame you chose rather than whatever the first one happens to be.
- Download originals
- Pull the untouched source file back out whenever you need it.
- Zip download
- Download a selection or a whole folder as one zip.
- Review copies are free
- The lighter playback copies the app makes never count against your storage.
Review and approval
Feedback that lands on the frame, not in a chat thread.
- Comments on creatives
- Threaded comments on every creative, with replies and full editing.
- Timecoded video comments
- A comment on video pins to the second it was left at, and clicking it jumps the player there.
- Time range comments
- Mark a stretch of video rather than a single moment.
- Comment reactions
- React to a comment instead of adding another one that just says yes.
- Mentions
- Type @ and a name to pull a teammate into a thread. They get a notification.
- Internal notes
- Mark a comment team-only so it never appears on a review link a client can see.
- Resolve threads
- Close a thread once it is handled, and reopen it if it was not.
- Review statuses
- Every creative carries a status: in review, changes requested, or approved.
- Status per version
- Approval belongs to the version that was approved, so a new cut starts its own review.
- Comment editing
- Rewrite your own comment. Only newly added mentions notify, so fixing a typo does not ping the room again.
- Review inbox
- One place showing everything waiting on you across every folder.
- Drawing on the frame
- Reviewers can mark up the picture or the video frame itself with ink, boxes, and arrows, and the marks stay attached to that comment.
- Delete your own comment
- Remove a comment you wrote, and its replies go with it.
- Hide resolved comments
- Collapse resolved threads out of the way, and the choice sticks.
- Mention autocomplete
- Type @ and the teammate list narrows as you type, with arrow keys to pick.
Building ads
From an approved creative to a real ad, in the same place.
- Ad builder
- Pick creatives, write copy, set the destination and targeting, and launch. Campaign and ad set are set in the same flow.
- Publish to Meta
- Facebook and Instagram, under the page and account you choose.
- Publish to TikTok
- TikTok Ads, under a linked TikTok identity.
- Batch launches
- One ad per creative across a whole selection, so a set of twenty cuts becomes twenty ads in one pass.
- Publish to several ad accounts
- Send the same creatives to each named connected account on a platform in one action.
- Automatic creative upload
- Building an ad uploads the creative to the platform for you. There is no separate publish step to remember.
- Live ad preview
- See the ad as it will render, with your copy and creative in place, before it goes out.
- TikTok ad preview
- A TikTok-shaped preview for TikTok placements.
- Carousel ads
- Build multi-card carousels from a set of creatives.
- Catalog ads
- Launch against a product set from your connected catalog.
- Lead ads
- Launch Meta lead ads and pull submissions back into the workspace.
- Partnership ads
- Boost a creator post as a partnership ad, with the sponsor tag on it, from the content the business is cleared to advertise.
- TikTok Smart Creative
- Hand TikTok a set of videos and texts and let it combine them, serving the variants that work.
- Product catalogs
- Browse the catalogs the connected business owns and build ads against them.
- Product sets
- Build a product set from conditions, by price range, category, brand, or in stock only, and promote it.
- App promotion ads
- Run ads for a registered app rather than a web destination.
- Publishing identities
- Browse the pages, Instagram accounts, and TikTok identities available to you, and create a new TikTok identity when you need one.
- Advantage+ enhancements
- Turn on Meta's creative enhancements from the builder.
- Lead inbox
- Lead ad submissions collected hourly and readable in the app, filtered by form or by ad, with every answer the person gave.
- Lead form browsing
- See the lead forms on the account and which one an ad is collecting into.
- Existing post ads
- Run an ad against a post that already exists so it keeps the likes, comments, and shares it has earned.
- Post picker
- Browse the page posts and the posts behind existing ads, or paste a post id directly.
- TikTok Spark Ads
- Authorise a creator post and run it as a Spark Ad.
- Text variants
- Multiple primary texts, headlines, and descriptions on one ad, so the platform can pick between them.
- Call to action picker
- Set the button on the ad from the platform-supported list.
- URL parameters
- Append tracking parameters to every destination URL, set once for the batch.
- Identity selection
- Choose the Facebook Page, Instagram account, or TikTok identity an ad publishes under.
- Soundtrack search
- Search the music library and pick the track on TikTok ads that take one.
- Store listing destination
- Send an ad to an app store listing instead of a URL.
- Scheduled launches
- Set a future time and the ad goes live then, not now.
- Launch paused
- Create the ad paused so someone can look at it in the platform before it spends.
- Drafts
- Save a half-built ad and come back to it.
- Cancel a scheduled ad
- Pull a scheduled launch back before its time comes.
- Campaign objectives
- Pick what a campaign is for: sales, traffic, leads, engagement, awareness, or app promotion.
- Special ad categories
- Declare housing, employment, credit, financial products, politics, or gambling, and the extra fields those categories require are sent for you.
- Optimisation goals
- Choose what an ad set optimises for: link clicks, landing page views, conversions, reach, impressions, ThruPlay, leads, app installs, post engagement, or page likes.
- Ad set destinations
- Send an ad to a website, your post, your page, your video, your event, or a form on the ad itself, with only the destinations the objective allows offered.
- Per-position placements
- Pick individual positions, not just platforms: Facebook feed, Reels, Stories, Marketplace, search, in-stream, Instagram feed, Reels, profile, search, Threads, Audience Network, Messenger, and WhatsApp Status.
- Placement rules checked before launch
- Combinations the platform refuses are caught with a plain explanation instead of a rejected publish.
- Dayparting
- Run an ad set only on the days and hours you choose, set at launch or changed later on a live ad set.
- Campaign spend caps
- Put a lifetime ceiling on a campaign so it stops at a number you set.
- Pre-flight checks
- A bid cap with no amount, a ROAS goal with no floor, an app campaign with no store link, a lifetime budget with no end date: each is caught with a sentence saying what is missing.
- Page-backed Instagram identity
- Create the Instagram identity an ad needs when the business has no Instagram account of its own.
- Partnership permission status
- See which creators have approved your business for partnership ads and which requests are still waiting.
- Find a creator post by its link
- Paste an Instagram or Facebook link to pull up that exact post, searched across every page and account the business manages.
- TikTok campaign objectives
- Reach, traffic, video views, community interaction, lead generation, website conversions, app promotion, and product sales.
- TikTok optimisation and billing
- Pick the goal, and the billing event TikTok requires alongside it is set for you.
- TikTok placements
- Run on TikTok, on Pangle, across the app bundle, or leave placement automatic.
- TikTok delivery pacing
- Spend an ad group's budget evenly through the day, or as fast as it can.
- TikTok Business Center identities
- Publish under an account authorised to you through a Business Center, not only accounts linked to the advertiser directly.
- TikTok instant pages
- Pick the instant page a TikTok lead ad collects into.
- Duplicate with changes
- Make several copies at once, name them with your own suffix, swap in different creatives, or rewrite the text and link.
- One ad into several ad sets
- Send the same creative, or a whole batch, into many ad sets at once.
- Ad set picker with search
- Choose those ad sets from a searchable dialog that keeps the count and the limit in sight.
- Name each ad in a batch
- Every creative gets its own editable ad name, prefilled from the file name.
- Each creative brings its own copy
- Tick one box and every ad in a batch pulls the copy saved on its own creative.
- Grow or trim the batch
- Add more creatives, or drop one, without going back to the library.
- Drop a file onto the builder
- Drag an image or video onto the creative field to upload it and build on it straight away.
- Edit copy in the preview
- Type directly into the mock ad; the headline, text, and card headlines are editable where you see them.
- Flip the preview between creatives
- Thumbnails above the preview switch which one you are looking at.
- Character counters
- Live counts on every text field, a warning near the limit, and a clear message past it.
- Missing fields are pointed out
- Pressing create marks each unfilled field and scrolls you to the first one.
- Display link
- Show a tidy domain on the ad instead of the full destination URL.
- Save a batch as drafts
- One button saves a draft per creative, ready to finish later.
- Create ads from several drafts
- Tick drafts and turn them all into paused ads in one pass.
- Post picker views
- Browse posts as a grid or a list, sorted newest, oldest, or by name, and it remembers which you prefer.
- Paste a list of locations
- Paste a comma-separated list into the location field and every one it recognises is added.
- Explainers on the tricky fields
- Question marks beside budget types, optimisation goals, bid amounts, and post IDs explain the concept where you need it.
- Copy an ad's post ID
- Copy the post behind an ad, or start a new ad from it.
- Manage copy templates
- Browse, search, edit, duplicate, and delete the workspace's templates in one place.
- Save all unsaved copy
- Save every edited variant at once, and closing warns before anything is lost.
Targeting and audiences
Everything the ad set needs, set from the builder.
- Location targeting
- Countries, regions, and cities, with a searchable picker.
- Age and gender
- Set the age range and gender, or leave them open.
- Language targeting
- Limit an ad set to people browsing in given languages.
- Interest search
- Search interest targets and see how large each one is before adding it.
- Location search
- Search targetable places and pick them by name, whatever shape the platform wants underneath.
- Audience browsing
- See the custom and lookalike audiences on the account while you target.
- Device and OS targeting
- Target by device type and operating system.
- Spending power targeting
- Use the platform spending-power segments where they are available.
- Custom audience include and exclude
- Layer saved audiences in or out of an ad set.
- Customer list upload
- Upload a customer list as a hashed audience without the raw list leaving your hands.
- Lookalike audiences
- Build a lookalike from a source audience.
- Delete audiences
- Remove an audience you built when it has served its purpose.
- Reach estimates
- See the estimated monthly audience for an ad set's saved targeting.
- Placement selection
- Pick placements per ad set, or let the platform choose.
- Pixel selection
- Choose which pixel and conversion event an ad set optimises for.
- Frequency caps
- Set a frequency cap on reach ad sets that require one.
- European Union targeting rules
- The builder handles the extra EU requirements, including who pays for an ad, where they apply.
- TikTok network and income targeting
- Target by connection type, from WiFi down to 2G, and by household income bracket.
Ads manager
Reading and running what is already live.
- Cross-platform ads table
- Meta and TikTok ads in one table, with results beside each row.
- Column picker
- Choose which metrics and fields the table shows.
- Sortable columns
- Sort by any column by clicking its header.
- Metric filters
- Filter to ads above or below a number: spend over, ROAS under, whatever the question is.
- Saved views
- Save a set of columns and filters and come back to it.
- Row virtualisation
- Thousands of ads scroll smoothly because only what is on screen is drawn.
- Creative preview on hover
- Hover a row to see the creative behind the ad without leaving the table.
- Ad detail view
- One ad with its trend, copy variants, creative, delivery, and change history.
- Pause and activate
- Flip status on an ad, ad set, or campaign from the table.
- Inline editing
- Change names, budgets, bids, and end times without opening the platform.
- Bulk budget changes
- Set or scale budgets across a selection in one action.
- Duplicate ads and ad sets
- Copy any object, optionally into another parent.
- Delete ads
- Remove objects from the account, gated behind its own permission.
- Campaign and ad set browsing
- Read the account structure without switching tools.
- Bid strategies
- Highest volume, bid cap, cost per result goal, and ROAS goal, set from the app.
- Ad issues view
- Everything needing attention in one list: rejected, flagged, or blocked on billing, across both platforms.
- Change history
- Recent changes made in the ad account, read from the platform's own log.
- Ad attribution to members
- Credit an ad to a team member so team performance reads correctly.
- Billing limits and credit lines
- Both ceilings that can stop delivery in one place: each account's own spending limit and the business's extended credit lines, with limit, spent, and available.
- Archive ads
- Put a campaign, ad set, or ad away for good on Meta without deleting it.
- Deep duplicate
- Copy a campaign or ad set with everything inside it, into several parents at once.
- Ad quality rankings
- The quality, engagement rate, and conversion rate rankings the platform gives each ad.
- Full result metrics
- Reach, frequency, CPC, CPM, ThruPlays, adds to cart, registrations, installs, leads, purchase value, and a cost per result that follows the most specific conversion the ad has.
- Account currency and time zone
- Numbers appear in the ad account's own currency, and schedules are written in its own time zone rather than yours.
- Large accounts load completely
- Campaign, ad set, and identity pickers page all the way through instead of stopping at the first page.
- Ad account disabled alert
- If a platform disables a connected account you are told in the app and by email, rather than finding out from stopped delivery.
- Compact rows
- Switch to tighter rows to fit more on screen, and it stays that way.
- Auto-refresh
- Turn on a one-minute refresh so the numbers keep updating while you watch.
- Freshness and row count
- The toolbar says how long ago the table updated and how many rows your filters left.
- Group by campaign
- Fold ads and ad sets under their campaign, each group carrying its own totals.
- Hide the summary
- Put away the tiles and the trend chart when you only want the table.
- Column presets
- Swap the table to a ready-made column set in one click.
- Drag columns into order
- Reorder the metric columns by dragging them.
- Search shortcuts
- Type status:paused, spend>100, or roas<1 straight into the search box.
- Table keyboard shortcuts
- One key to search, to switch between campaigns, ad sets, and ads, to refresh, and to clear.
- Right-click a row
- A menu on any row with open, edit, pause, duplicate, archive, and delete.
- Copy a name or ID
- Copy any object's name or its platform ID from the row menu.
- Export the table
- Download exactly what the table is showing, as CSV, TSV, Excel, or JSON.
- Archived view
- Browse the things you have archived as their own view.
- Bulk status changes
- Tick a set of rows and pause, resume, or archive all of them at once.
- Drill from a selection
- Pick campaigns, switch level, and see only their children.
- Expand a row in place
- Open an ad inside the table for its trend, costs, rankings, recent changes, and creative.
- New ads are highlighted
- After creating, the table scrolls to the new ad and marks where it landed.
- Empty state that connects an account
- With nothing connected, the page explains why and offers the connect button there.
- Download leads as a spreadsheet
- Save the lead submissions you are looking at as a file.
- Per-account spending limit remaining
- Each connected account shows how much of its own limit is left.
Creative testing
Put creatives in front of the market and let the numbers decide.
- Creative tests
- Launch creatives as real ads into a designated testing ad set and let them run.
- Hourly evaluation
- Tests are scored every hour against benchmarks from your own account.
- Win rules and thresholds
- Define what winning means: the metric, the threshold, and the spend floor.
- Hard spend stop
- A maximum spend per test that stops it whatever else is happening.
- Automatic promotion
- Winners move into your scaling ad set, automatically or on your say-so.
- Automatic losers off
- Creatives that do not clear the bar are stopped instead of quietly spending.
- Test pipeline configuration
- Set the testing ad set, the scaling ad set, and the rules once.
- Manual promote and kill
- Override the pipeline at any point.
- A/B tests
- Meta ad studies and TikTok split-test campaigns, created from the app.
- Creative outcome labels
- The hourly rollup labels each creative a winner, a loser, fatigued, or neutral, with the reason.
- Split test variables
- Choose what a TikTok split test actually varies: targeting, bidding and optimisation, or creative.
Budgets and pacing
Knowing on the 12th whether the month is on track.
- Monthly budget plans
- Set a monthly spend target per platform, for a whole account or for picked campaigns.
- Pace tracking
- Spent, expected, pace percent, and projected month end, recomputed every hour.
- Pacing triggers
- Fire an automation when a plan crosses a pace threshold, so drifting budgets act rather than just report.
- On-demand recompute
- Refresh a plan now instead of waiting for the hourly pass.
- Budget scaling actions
- Increase or decrease a budget by a percentage, with floors and ceilings that hold.
- ABO, CBO, and lifetime
- Ad set budgets, campaign budgets, and lifetime budgets are all first-class.
Automations
A trigger, then a graph of steps that run when it fires.
- Visual flow builder
- Build a flow on a canvas: drag nodes, connect ports, configure each step in a panel.
- Flows as code
- The same flow readable and writable as a YAML document, for people who would rather type it.
- Review status trigger
- Fire when a creative moves to approved, changes requested, or in review.
- Comment triggers
- Fire when someone comments, including guests on a review link, or resolves a thread.
- Upload triggers
- Fire when a creative finishes uploading or a new version is added.
- Share link triggers
- Fire when a review link is opened or commented on.
- Publish and rejection triggers
- Fire when a creative is published, when a platform rejects an ad (with the reason), or when a publish fails.
- Lead trigger
- Fire when a Meta lead ad submission arrives.
- Team trigger
- Fire when someone accepts a workspace invitation.
- Test triggers
- Fire when a creative test starts, completes, promotes a winner, or kills a loser.
- Creative status trigger
- Fire when the hourly rollup relabels a creative a winner, loser, or fatigued, carrying the full 30-day numbers and the live ads behind it.
- Connection lost trigger
- Fire when a Meta or TikTok connection stops working.
- Storage threshold trigger
- Fire when workspace storage passes 80% or 100% of what the plan includes.
- Daily, weekly, and monthly schedules
- Run at an hour and minute in your own time zone. A monthly run set for the 31st still runs in February.
- Metric trigger
- Check ad performance against your conditions as often as every fifteen minutes.
- Checking windows
- Confine metric and pacing checks to an hour range, so nothing acts at three in the morning.
- Rolling metric windows
- Measure over the last few hours rather than whole days.
- Arithmetic thresholds
- Compare a metric against an expression, not just a fixed number.
- Trigger filters
- Narrow a trigger to a folder, an account, a campaign, or a name pattern.
- Webhook trigger
- Fire the flow when a POST arrives at the flow's own secret hook URL.
- Manual runs
- Start a flow by hand against a selection of creatives or ads.
- Conditions and branching
- Branch on true and false, with grouped conditions and nesting.
- For-each loops
- Iterate over the ads or creatives a trigger matched and act on each.
- Join
- Bring branches back together before continuing.
- Wait
- Pause a flow for a set time before the next step.
- Wait for an event
- Hold a flow until something happens, with a timeout path when it does not.
- Set values
- Compute and store values partway through a flow for later steps to use.
- Template pipes
- Format values inline: currency, numbers, dates, and text, written into any field.
- AI steps
- Put a language model in the middle of a flow and use what it returns.
- Send a request
- Call any HTTP endpoint from inside a flow and branch on the response.
- Sub-flows
- Run another automation from a flow, optionally waiting for it to finish.
- Comment and review actions
- Add a comment, add a team-only note, or set the review status from a flow.
- Library actions
- Move to a folder, rename, duplicate, or move to trash without touching the app.
- Create a review link from a flow
- Generate a link, with comment settings and expiry, as a step.
- Publish from a flow
- Send a creative to an ad account as a step in the flow.
- Ad control actions
- Pause, activate, scale budgets, set budgets, scale bids, set bids, and update names, budgets, spend caps, and end times.
- Read performance in a flow
- Pull creative performance for a platform and window and branch on what comes back.
- Report exports
- Export a campaign, ad set, or ad report for a date range and email it to a member.
- Notification actions
- Send an in-app notification, post to Slack, Discord, or Teams, send an email, or fire a webhook event.
- Start a test from a flow
- Kick off a creative test as a step.
- Generate copy from a flow
- Write ad copy from a brief inside the flow.
- Run history
- Every run, every step, what it received and what it returned.
- Version history on flows
- Previous versions of a flow are kept, so an edit can be read back.
- Enable and disable a flow
- Switch a flow off without deleting it, and back on when you want it again.
- Restore a past version
- Roll a flow back to an earlier version. The current state is kept first, and runs waiting on the old flow are cancelled.
- Replay a run
- Run a flow again against a past run's stored trigger, for real, when something should have worked and did not.
- Dry-run preview
- See what a flow would do against real data before you switch it on.
- Throttling and failure backoff
- A flow cannot run away, and one that keeps failing is backed off rather than hammered.
- Webhook idempotency
- A repeated hook delivery does not run the flow twice.
- Automation templates
- Start from a ready-made flow instead of an empty canvas.
- Failure alerts and automatic switch-off
- Choose when a failing flow tells you, whether it emails the owner, and whether it switches itself off after a run of failures.
- Error paths on a step
- Any action, request, wait, or AI step has its own error output, so a flow can carry on down another branch when a step fails.
- Per-step retries
- Set how many times an individual step retries and how long it waits between attempts.
- Billing headroom triggers
- Fire a flow when a credit line or an account spending limit drops past a share of its ceiling, or past a flat amount, once per crossing rather than every hour.
- Pan and zoom the flow
- Drag the background to move around, scroll to zoom, and get back to a readable size in one click.
- Tidy layout
- Have the builder arrange every step into a clean layout instead of nudging boxes by hand.
- Undo and redo
- Take back any change to a flow, including moves, deletes, and settings.
- Right-click on the flow
- Duplicate, disconnect, or delete a step, and tidy the layout, from a menu.
- Duplicate a step
- Copy a configured step rather than setting the same thing up twice.
- Searchable step picker
- Adding a step opens a menu you can type to filter, right where you pointed.
- Delete connections
- Click a connection to select it and remove it.
- Impossible connections explained
- Draw a connection the flow cannot support and it says why, and offers the step that would make it work.
- Loop body drawn as a block
- The steps a repeat covers are framed, so it is obvious what runs once per item.
- Run results on the flow
- Pick a past run and every step lights up with what happened to it.
- Plain-English run outcome
- A failed or stopped run says which step failed, or which condition stopped it, in a sentence.
- Per-item loop results
- A repeat step lists each item it ran on and whether that one worked.
- Edit a flow with AI
- Describe the change in a sentence and get a marked-up before and after to accept or reject.
- Version diff
- Compare any past version against the flow as it stands, line by line and summarised.
- Copy or export a flow
- Copy the written form to the clipboard, or download it as a file.
- Duplicate an automation
- Copy a whole flow, paused, and open the copy.
- Syntax reference in the editor
- A worked example of every construct sits beside the code view.
- Live validation
- The code view says whether the document is valid and how many steps it has as you type, with the line a problem is on.
- Run once per thing
- Hold a flow to one run per creative or ad ever, so nothing is acted on twice.
- Rotate the hook address
- Copy the flow's address, or issue a new one and kill the old immediately.
- Insert a value with one click
- Available values are listed under text fields, and clicking one drops it in.
- Invert a condition group
- Flip a group so it passes when it does not match.
Ad comment moderation
The comments under live ads, in one inbox.
- Ad comment inbox
- Comments on your live Meta and TikTok ads in one place.
- Facebook and Instagram coverage
- Meta covers both the Facebook post and the Instagram media behind an ad, and every comment says which it came from.
- Reply publicly
- Answer a commenter as the page, from the app.
- Edit a reply
- Rewrite one of the page's own Facebook replies after posting it.
- Hide and unhide
- Take a comment out of public view without deleting it.
- Delete comments
- Remove a comment on either platform.
- Filter the inbox
- Narrow by ad, by platform, by period, and by whether it was answered.
- Moderation permission
- Moderating is its own permission, because a reply posts publicly under your brand.
- Like a comment as the page
- Acknowledge a commenter with a like from the brand instead of a reply, and take it back again.
- Reply threads in the inbox
- Open a comment to read the replies under it, with who wrote each and when.
- Delete your own reply
- Remove a reply the page posted without touching the customer's comment.
- Reply length counter
- A live count against each platform's own limit while you write.
- Inbox remembers where you were
- The platform and date range you last used come back next visit.
- Inbox refreshes itself
- New comments appear without a reload.
Analytics and reporting
What ran, what it cost, and who did the work.
- Overview home
- An adaptive home showing cross-platform performance, what needs you, and what is running.
- Performance analytics
- Spend, impressions, clicks, purchases, and ROAS across both platforms.
- Account time series
- Daily series per account so trends are visible, not inferred.
- Breakdowns
- Split results by the platform breakdowns: age, gender, placement, and more.
- Ad insights
- Full metrics for a single ad over any range.
- Creative analytics
- Outcomes per platform, with winner, loser, and fatigued counts and the top creatives by spend.
- Team performance
- Creatives, publishes, ads, and ad results per member, with a previous-period comparison and the unattributed remainder.
- Activity analytics
- Workspace activity over 7, 30, or 90 days: creation, review, versioning, publishing, testing, storage, and sharing.
- Sharing analytics
- Active review links, views, guest approvals, and change requests.
- Automation analytics
- Run counts and outcomes for your flows.
- Per-creative performance
- Spend and results rolled up to the creative rather than the ad, across every ad that used it.
- Refresh performance now
- Recompute the rollup on demand instead of waiting for the hourly pass.
- Period comparison
- Every headline number carries the previous window beside it.
- Rearrangeable cards
- Drag the analytics cards into the order you read them in.
- Hide cards
- Put away the cards you never look at.
- Sortable analytics tables
- Every analytics table sorts by clicking its header.
- Custom date ranges
- Any range, plus the usual presets.
- Ranges that include today
- A workspace setting shifts rolling ranges onto today instead of ending yesterday, keeping their length.
- Google Sheets export
- A running performance log in your own Drive, one row per ad per day, appended daily across campaign, ad set, and ad tabs.
- CSV report exports
- Export a report as a file, by hand or from a flow.
- Leads in the spreadsheet export
- Lead submissions append to their own tab as they arrive, with a column per question, and new questions add their own columns.
- Resizable cards
- Set any card small, half width, or full width with a chart, and the grid fills the gaps.
- Card library
- Bring back a hidden card, or add ones that are off by default.
- Hover a chart for the exact number
- Point at any day to read the value and what the previous period did that day.
- Shareable views
- The tab, platform, and date range live in the address, so a reload or a pasted link lands on the same view.
- Per-member drill-down
- Open a member's row to see every ad they created with its spend, clicks, and results.
- Spend by member charts
- Bar charts ranking the team by spend and by creatives added.
- Copy a report link
- Copy a client report address in one click.
- Restore a revoked report link
- Turn a report link back on after revoking it.
AI assistant and copy
A model that can actually operate the workspace.
- Workspace assistant
- Chat that can run the workspace: upload, organise, review, launch, moderate, and read performance, with the same permissions you have.
- Chat sessions
- Conversations are kept, so you can pick one back up.
- Screen control
- The assistant can see and drive the dashboard, and you can stop it at any point.
- Confirmation before destructive actions
- The assistant asks before it deletes or spends, and an approval covers exactly the action you were shown, never a substituted one.
- Ad copy generation
- Generate primary texts, headlines, and descriptions from a brief and the creative itself.
- Saved copy per creative
- Copy variants live on the creative and carry into the ad builder.
- Copy templates
- Workspace-wide reusable sets of primary texts, headlines, and descriptions, up to five each.
- Template performance
- Ads built from a template are recorded, so the list shows how often each is used and reports rank saved copy by what it returned.
- Generate variants with AI
- One click adds new lines in the voice of the copy already in the template, up to five of each.
- Templates section
- A place in the sidebar for the copy your team reuses: open one where it sits, edit it, duplicate it.
- Concurrent edit protection on templates
- Saving a template that changed underneath you fails rather than overwriting a teammate.
- Token balance
- Plan tokens reset monthly, purchased packs roll over, and plan tokens are spent first.
- Token packs
- Buy more tokens when a month runs hot, at a rate that steps down with size.
- Never used to train models
- Every request goes out with data collection refused, so creatives and workspace content never feed model training.
- Drag creatives into the assistant
- Drop library creatives or images onto the assistant to attach them to your question.
- Slash commands
- Type a slash in the assistant to run a ready-made request such as a weekly report or a spend review.
- Edit or retry a question
- Change something you already asked, or ask again, and the conversation carries on from there.
- Chat history by recency
- Past conversations grouped as today, yesterday, and older, with delete on hover.
- Copy brief remembered
- The brief you gave last time comes back prefilled.
- Honest about what it saw
- If an image is too large or a video has no frame yet, the app says the copy came from your notes and the file name instead.
- Assistant screen permission
- Decide once whether the assistant may see and drive your screen, rather than being asked every time.
Team and access control
Who can do what, down to the folder.
- Workspaces
- Separate workspaces with their own creatives, ad accounts, and team.
- Workspace switcher
- Move between the workspaces you belong to from the header.
- Invitations
- Invite by email, with the role set before they arrive.
- Invite links
- Share a join link instead of typing addresses.
- Role presets
- Full access, media buyer, video editor, reviewer, and analyst, as starting points.
- Granular permissions
- Upload, publish, edit, comment, review, delete, import, share, view ads, create ads, activate ads, delete ads, moderate, manage automations, use AI, and create API keys, each switched on its own.
- Spend permission separated
- Activating ads and changing budgets is its own permission, so building an ad and spending money are not the same right.
- Folder scoping
- Limit a member to named folders and the library, uploads, and share surfaces all narrow with them.
- Ad account scoping
- Limit a member to named ad accounts.
- Owner-only controls
- Roles, admin invitations, branding, custom domains, and workspace preferences stay with the owner.
- Demote before remove
- An admin has to be demoted before being removed, so nothing happens by accident.
- Enforced two-factor
- Require two-factor authentication for everyone in the workspace.
- Workspace audit trail
- Twelve months of who did what, filterable per member, so there is always an answer to how something got changed.
- Live presence
- See who else is in the workspace and where they are working.
- Realtime sync
- Someone else's change appears in your open tab without a refresh, whether it came from the app, the API, the CLI, or an agent.
- Teammate cursors
- See where other people are pointing on the library canvas, live.
- Shared selection
- When someone selects creatives, everyone else can see what they picked.
- Access ends the moment it is revoked
- Removing someone from a workspace closes their open tabs on the spot rather than at their next reload.
- Stale tab protection
- A tab left open on a workspace you have since switched away from is stopped and reloaded rather than saving into the wrong place.
- In-app notification bell
- Mentions, approvals, failures, and everything else addressed to you.
- Merged notifications
- Ten comments on one creative arrive as one line that counts them, not ten lines to clear.
- Seats per plan
- Two on Starter, five on Growth, fifteen on Pro, and unlimited on Agency, with a counter on the team page. The trial gets two, so you can bring someone in before you pay.
- Pending invitation management
- See who was invited and by whom, resend the email, or cancel it.
- Re-inviting reuses the invitation
- Inviting the same address again renews the existing invitation, so every email already sent still works.
- Decline an invitation
- Turn one down rather than leaving it hanging.
- Wrong-account invitations explained
- An invitation opened on the wrong account says which address it was sent to and offers to switch.
- Leave a workspace
- A member can leave on their own, which ends their access and tells the owner.
- Leaving cuts off keys and sessions
- Their workspace keys stop working and open sessions drop.
- Removal cuts access everywhere
- Removing someone revokes their keys and disconnects the apps they had connected.
- Member profile page
- When they joined, when they were last active, exactly what they can reach, and what they have been doing.
- Per-member permission editing
- Start from a preset, then switch any single permission on or off.
- Access resets on a role change
- Old folder, account, and permission settings are cleared so nothing stale comes back.
- Two-factor gaps on the roster
- When two-factor is required, members who have not set it up are flagged.
- Teammate emails hidden from members
- Plain members see names, not addresses.
- Set a teammate's photo
- Owners and admins can upload or clear a member's picture.
- Rename the workspace
- Change the workspace name whenever it stops fitting.
- Invite link limits
- Expire a join link after a number of days, or never, and cap how many people it lets in.
- Invite link status
- Uses left and expiry at a glance, and a revoked link stops working at once.
- Access preview before inviting
- Set exactly what an invitee will be able to do, and see it summarised on the pending invitation.
- Expired invitations flagged
- One that was never accepted is marked as expired.
- Team performance export
- Export the member performance table, totals included.
- Attributed share of spend
- The team page states how much of the account's total spend the attributed ads account for.
Notifications and channels
Getting told, where you already are.
- Slack notifications
- Workspace events posted to a Slack channel.
- Discord notifications
- The same events in a Discord channel.
- Microsoft Teams notifications
- The same events in a Teams channel.
- Email notifications
- Off until you turn them on, and picked event by event.
- Per-channel event picking
- Each destination receives only the events you chose for it.
- Grouped bulk notifications
- A batch upload sends one summary when the queue drains, not a message per file.
- Test messages
- Send a sample to a channel to confirm it is wired up.
- Delivery status
- See whether the last delivery to a channel worked.
- Masked webhook URLs
- Saved channel URLs are shown masked, because the URL is the credential.
- Notifications never block uploads
- If a chat service is down the message is dropped and the upload carries on.
Integrations
Where creative already lives.
- Google Drive import
- Pick files from Drive and bring them into the library.
- Dropbox import
- Browse a connected Dropbox and import from it.
- Watched folders
- Point at a Drive or Dropbox folder and anything new in it arrives in the library on its own.
- Folders inside a watched folder
- A batch folder dropped into the folder you watch arrives here as a folder too, with everything inside it.
- Replacing a file adds a version
- Swap a file in the folder you watch and it lands as the next version of the one already here, ready to compare.
- Where a watched folder sends its files
- Each one delivers into the library folder you pick, and you can point it somewhere else later.
- Deleting can reach the folder too
- Turn it on and putting a creative in the trash also puts the file in the trash where it came from.
- Files removed there can leave here
- Turn it on and a file taken out of the watched folder goes to your trash, restorable for thirty days with its comments.
- Duplicate skipping
- Files already imported are skipped rather than brought in twice.
- Meta connection
- Connect your own Facebook business and ad accounts.
- TikTok connection
- Connect your own TikTok Business Center and ad accounts.
- Multiple ad accounts
- Connect as many accounts as your plan covers and switch between them.
- Default ad account
- Set which account the app opens on.
- Disconnect a provider
- Disconnect Drive or Dropbox at any time. Files already imported stay in the library.
- Live ad account updates
- Meta tells us when something changes on a connected account, so the app is current without waiting for a poll.
- Automatic connection refresh
- Access is renewed before it expires, and you are emailed if a connection still needs your attention.
- Connection health
- A broken or expired connection is surfaced, and can fire an automation.
- Watch a Drive folder by sharing it
- Share a folder with the address shown, paste its link, and new files arrive on their own.
- Watched folder status
- Each one shows when it last synced or that syncing failed, and can be stopped.
- Sheets export health
- The export shows when it last ran and whether it worked, with a link to the spreadsheet.
- Copy-paste setup for AI clients
- Pick your client and get the exact configuration for it, ready to copy.
Developer platform
Everything the app does, available to your own code and your agents.
- REST API
- A versioned HTTP API over the same code paths the app itself uses.
- Additive-only stability promise
- The v1 surface does not break. New things are added beside the old ones.
- Typed SDK
- A typed client covering every tool.
- Command line tool
- Upload, manage creatives, edit copy, run tools, and script the workspace.
- MCP server
- Connect Claude, ChatGPT, Cursor, or any MCP client and let it run the workspace in natural language.
- Hosted MCP endpoint
- A remote server for clients that connect over HTTPS, with sign-in in the browser and no keys to paste.
- Local MCP server
- The same tools over stdio for clients that launch a local process.
- Browser sign-in for the CLI
- Approve a device in the browser instead of managing a key.
- Machine-readable CLI output
- Every command takes a flag that prints the raw response instead of the pretty output, ready to pipe into jq.
- Meaningful exit codes
- The CLI exits with a code that says what went wrong, so a script can branch without parsing text.
- API keys
- Create keys for headless use, with an expiry and a name.
- Scoped keys
- A key can be limited to a subset of permissions, so a script gets only what it needs.
- Signed webhooks
- Structured events delivered to your endpoint, signed so you can verify them.
- Webhook event selection
- Take every event, or pick the ones you care about.
- Webhook delivery log
- Seven days of deliveries, paginated, with what was sent and what came back.
- Test webhook delivery
- Send one signed test payload to check your endpoint.
- Webhook redelivery
- Send any delivery from the log again, signed with your current secret, when your endpoint was down for it.
- Zapier, Make, and n8n
- The signed webhook is a trigger and the API is the actions, so the generic webhook and HTTP steps on those platforms work with no app to install.
- Idempotency keys
- A replayed create returns the stored result instead of creating twice.
- Cursor pagination
- Stable cursors on every list, so pages do not shift under you.
- Structured error codes
- A closed set of machine-readable codes on every failure, alongside a message meant for a person.
- OpenAPI specification
- The whole surface described in a spec you can generate against.
- Tool catalog search
- Agents can search the tool catalog by keyword or category instead of holding every schema in context.
- Docs in Markdown
- Every documentation page has a plain Markdown twin for agents to read.
- Multi-language examples
- Reference examples in several languages, not just cURL.
- Import creatives from a link
- Point at a public image or video URL and it is fetched into the library like any other upload.
- New versions from a link
- Add a new cut over an existing creative straight from a URL.
- Machine-readable automation reference
- Every trigger, filter, action, field, metric, and variable, so an agent can write a working flow without guessing.
- Agents only see what they may run
- The tool list is filtered to the caller's permissions, so a limited member's agent is never offered something it would be refused.
- Result schemas in the catalog
- Tools publish the shape of what they return, not just what they take.
- Destructive and read-only flags
- Every tool says whether it only reads or whether it spends money and cannot be undone.
- Catalog revalidation
- Clients can skip re-downloading every schema when nothing has changed.
- Four protocol revisions supported
- Old and new agent clients both work against the same address.
- Agents register themselves
- Agent clients set themselves up on their own; there is nothing to create by hand first.
- Authorization screen
- Before an app gets in you see who is asking, which workspace it would act in, and what it could do.
- Agent access is pinned to one workspace
- An agent acts only in the workspace you approved it for, and loses access if you leave.
- Workspace-wide key oversight
- Owners and admins see every key made in their workspace, when it was last used, and can revoke any of them.
- Automatic webhook retries
- A delivery your endpoint missed is retried on a widening schedule for hours, signed with your current secret.
- Wait for uploads to finish
- The CLI can block until every file is done, with a time limit you set.
- Fetch every page at once
- Ask for the whole history rather than paging by hand.
- Confirmation for destructive commands
- A command that spends money or cannot be undone refuses to run until you say so explicitly.
- Arguments as flags or JSON
- Pass a tool's arguments as a JSON object or as plain key=value pairs.
- Local files for agents
- Running on your machine, an agent can hand over files by path: creatives, a poster frame, a logo.
- SDK retries with backoff
- Rate limits, blips, and network failures are retried for you, waiting as long as the server asks.
- Retry-safe by default
- Creating calls carry a replay key automatically, so a retry cannot create the thing twice.
- Timeouts and cancellation
- Set a deadline per client or per call, and cancel anything in flight.
- Iterate every page
- List helpers walk every page for you instead of handing back cursors.
- Wait for an upload to land
- One call polls a job until it is finished or failed.
- Download a creative's file
- Fetch the original bytes with your credentials, streamed or as an attachment.
- Typed tool calls
- Tool names complete as you type and their arguments are checked before anything runs.
- Call tools newer than your build
- A tool added after you installed the client is still callable.
- Webhook verification helper
- Confirm a delivery really came from us, with a freshness window you can set.
- Runs anywhere
- No dependencies, and it works on Node, Bun, Deno, and edge runtimes.
Branding and white-label
Client-facing pages that look like yours.
- Brand name on review pages
- Set the name shown to reviewers and clients.
- Custom logo
- Put your own logo on review and report pages.
- Hide attribution
- Take our name off the pages your clients see.
- Custom domains
- Serve review links from your own subdomain. The app gives you the DNS records and checks them for you.
- Live domain status
- A domain you connect shows where it has got to on its own, with nothing to refresh.
Account and security
The boring parts, done properly.
- Email sign-in with a code
- Sign in with a one-time code rather than a password to remember.
- Passkeys
- Sign in with a passkey on any device that supports one.
- Two-factor authentication
- Time-based codes on your own account, with recovery codes.
- Device list
- See where you are signed in and sign a device out.
- Step-up authentication
- Changing two-factor or removing a passkey asks for a current code first, so a stolen session cannot quietly take the locks off.
- Security alert emails
- Two-factor changes, passkey changes, and sign-ins from a device we have not seen before are emailed to you.
- Connected apps
- See which agents and apps hold access, and revoke any of them.
- Profile and avatar
- Your name and picture, shown to your team and on invitations.
- Encrypted platform tokens
- Ad platform credentials are encrypted at rest.
- Signup abuse guards
- Disposable addresses are refused and new-account sends are rate limited.
- Account deletion
- Delete your account and its data from the app itself.
- Support requests
- Reach support from inside the dashboard, with your context attached.
- Backup codes
- At the two-factor step you can use a one-time backup code instead of the authenticator.
- Trust a device
- Mark a browser trusted so it stops asking for a code every time.
- Passkey autofill
- Saved passkeys are offered straight from the browser's own autocomplete.
- Sign-in remembers your method
- The page leads with whichever way you signed in last.
- Passkey sign-in from the desktop app
- The desktop app hands off to your browser for the passkey and picks the session back up.
- Secure your account on the way in
- New accounts are offered a passkey or an authenticator immediately, with a skip if you would rather not.
- Sign-in codes expire
- Six digits, ten minutes, single use, and throttled.
- Stay signed in for a month
- Sessions last thirty days and refresh as you work.
- Sign-in reopens your last workspace
- You land back where you were working.
- Change your sign-in email
- Move the account to a new address, approved from the old inbox and verified at the new one.
- First-run connection page
- A new workspace is walked through connecting Meta or TikTok.
- Named passkeys
- Passkeys are named per device and can be renamed, so you know which one you are removing.
- New backup codes on demand
- Generate a fresh set of recovery codes and copy them in one click.
- API key last used
- Every key shows when it was last used, and admins see who made each one.
Plans and billing
Priced on ad accounts, never on how many people look at the work.
- Four plans by ad account
- Pricing scales with the ad accounts you run, not with seats and not with spend.
- Free trial
- Try the app before paying for it.
- Annual billing
- Pay yearly and get two months free.
- Extra ad accounts
- Add accounts beyond your plan at a per-account price.
- Storage included per plan
- Each plan carries its own storage, with usage shown against it.
- Storage overage in blocks
- Going over bills in fixed blocks rather than cutting you off.
- Storage billing follows what you store
- Free up space and the extra storage stops billing, without you having to ask.
- Self-serve checkout
- Subscribe, change plan, and manage payment details yourself.
- Invoices
- Your billing history with hosted invoices and PDFs.
- Usage page
- Token balance, spend history, storage, and what was published this month.
- Free reviewers on every plan
- Reviewers are never billed, on any plan.
- Seven-day trial
- Started when you claim your workspace, with the days left shown as you go.
- Nothing is deleted when a trial ends
- Everything is frozen and comes back exactly as it was when you subscribe.
- Upgrade now, downgrade at renewal
- An upgrade charges only the difference and applies at once. A downgrade starts when the time you have paid for runs out.
- Cancellation runs to the end of the period
- Cancelling keeps everything working until the time you paid for is used up.
- Purchased tokens survive cancellation
- Only the monthly allowance is cleared; packs you bought stay.
- Annual plans get tokens monthly
- The allowance arrives every month rather than once a year.
- Promo codes at checkout
- Enter a code when you subscribe.
- Tax ID on invoices
- Add a VAT or tax ID at checkout so invoices carry it.
- Owner-only billing
- Only the owner changes the plan or buys packs, and everyone else is told who to ask.
- Storage overage warning
- Crossing into paid storage tells you what it will now cost per month.
- Ad account limits at connect time
- Connecting past what your plan covers is refused with a clear next step.
- Extra ad accounts bill monthly
- They are never prepaid, even on an annual plan, so dropping one stops the charge.
Apps and interface
Details that only matter when you are in it all day.
- Desktop app
- A native app for macOS, Windows, and Linux.
- Automatic desktop updates
- The desktop app updates itself.
- Signed macOS builds
- The Mac app is signed and notarised, so it opens without a fight.
- Dark and light themes
- Follows the system, or set it yourself.
- Streamer mode
- Blur what a shared screen should not carry: names, media, people, and money, each switched on its own.
- Hover to reveal
- In streamer mode, point at something to read it, after a delay you set, or never.
- Keyboard navigation
- Move through the library, the lightbox, and the tables from the keyboard.
- Custom dialogs
- Every prompt and confirmation is part of the app, never a browser box.
- Instant loads on return
- The app shows what you last saw immediately and refreshes it behind you.
- Publishing continues after you close the tab
- A big batch works through the queue on its own, whether or not anyone has the dashboard open.
- Bulk work stays out of your way
- A batch of five hundred launches runs behind whatever you are doing, so a big job never leaves you watching a spinner.
- Getting started guide
- A short checklist on the overview until the workspace is set up.
- Collapsible sidebar
- Collapse the navigation to icons only, and it stays that way.
- Tablet navigation
- At tablet widths the navigation shows as icons so the page keeps its width.
- Swipeable mobile navigation
- On phones the sections become a swipeable row that scrolls the current page into view.
- Attention count in the navigation
- The Ads row carries a live count of rejected or flagged ads.
- Attention counts per workspace
- The switcher shows how many ads need attention in each of your other workspaces.
- Upload progress in the tab title
- The browser tab counts finished files, so a big batch stays visible when you switch away.
- Connection warning in the header
- A connection about to expire shows a reconnect link at the top of every page.
- Right-click anywhere
- A menu offering the actions that make sense on the page you are on.
- Settings open over your work
- Every section opens over the page you were on, linkable and closed with browser back.
- Resizable assistant panel
- Drag the assistant's edge to widen it, or keep going to take over the page, and it reopens as you left it.
- Inline workspace rename
- Rename the workspace straight from the header.
- Start your own workspace
- Someone who has only ever joined other teams can create one of their own.
- Streamer mode from the account menu
- Blur client work the moment a call starts, without going to settings.
- Hold a key to unblur
- In streamer mode, hold a key to see everything for as long as it is down.
- Theme follows you
- Your light or dark choice is saved to your account and changes in every open tab at once.
- Ad account remembered per workspace
- The account you were working in comes back next visit, per workspace.
- Needs your attention
- One list of everything waiting: creatives assigned to you, reviews, rejected ads, failing flows, unopened client links, storage, and new leads.
- Best performer and wasted spend
- The overview names the best ad of the period and totals the spend that produced nothing.
- Top ads by spend
- The biggest spenders of the period with status, CTR, and results, on the home page.
- Remembered overview period
- Your 7-day or 30-day choice is remembered.
- Copy a platform media reference
- Copy the image hash or video ID the platform gave a finished delivery.
- Mixed-currency and partial-data notices
- The overview says plainly when one platform failed to load or when accounts run in different currencies.
- Deliveries grouped by batch
- Uploads are grouped into the batch they were sent in, with a tally and a collapse control.
- Upload from the creative picker
- Drop or choose files while picking a creative for an ad, and a single upload becomes the pick as soon as it is ready.
Affiliate program
For people who send other teams our way.
- Referral links
- Your own link, with clicks and signups tracked against it.
- Application-gated program
- Applications are read by a person before an account is approved.
- Commission dashboard
- Clicks, referred accounts, subscriptions, commissions, and payouts.
- Payouts
- Payout details you fill in once, and a payout history you can read.
- 25% for twelve months
- A quarter of every subscription invoice a referral pays in their first year.
- Ninety-day referral window
- A click is credited to you for ninety days, so a sign-up weeks later still counts.
- Thirty-day refund hold
- Commission becomes payable a month after the invoice, and is voided if that invoice is refunded.
- Partial refunds scale the commission
- A partly refunded invoice reduces the commission rather than voiding it.
- Monthly payouts above a minimum
- Balances roll forward until they are worth sending, then go out on the first.
- Choose your own referral code
- Pick the code in your link if it is free.
- New signups only
- A link never earns on someone who is already a customer, and never on yourself.
- Commission emails
- You are told each time a referral earns you one, and when it becomes payable.
- Self-billed credit note
- Every payout comes with a credit note carrying your name, address, and tax ID for your own books.
- Payout details stored once
- Your billing name, address, and tax ID are kept for the credit notes.
- Masked payout account
- A saved account shows only its currency and last four digits.
- Commission history
- Every commission with its status and the date it becomes payable.
- Clicks and commission charts
- Thirty days of clicks and twelve months of commissions.
Emails the app sends
Mail you get, and mail you can switch off.
- Onboarding sequence
- Welcome, then nudges to upload, connect an ad account, and publish, each sent only if that step is still undone.
- Trial reminders
- Two days before a trial ends, at expiry, and a few follow-ups after.
- Annual renewal heads-up
- Annual subscribers hear from us two weeks before the card is charged again.
- Payment problem emails
- A failed payment, a last-retry warning, and a note when it finally goes through.
- Mention emails
- Everyone @mentioned in a comment gets one.
- Publishing failure email
- When a creative could not reach the ad account after the retries.
- Scheduled ad warning
- The owner is told when a scheduled ad has not gone live.
- Automation failure email
- When a flow keeps failing, and again if it switches itself off.
- New key email
- Whoever creates an API key is told it happened.
- Bounced addresses are never mailed again
- An address that bounces is dropped rather than mailed forever.
- Unsubscribe takes a real click
- A confirmation page, so a mail scanner cannot opt someone out by accident.
- Product emails are optional
- One link switches off the non-essential mail; account and billing messages keep arriving.
Reliability
What happens when a platform is slow, busy, or wrong.
- Platform errors in plain language
- A rejection comes back as what to do about it, not as an error code.
- Automatic delivery retries
- A publish that hits a busy platform is retried on a widening schedule, waiting as long as the platform asks.
- Told when a delivery gives up
- After the retries run out you get an email naming the file and where to retry it.
- Waits for video processing
- A video becomes an ad only once the platform says it is ready, with the wait capped so a stuck file reports rather than hangs.
- Platform limits handled for you
- Calls are paced under the platform's own hourly budget, so one big job never locks the account out.
- Stale numbers cleared on change
- When a platform reports a change, the stored copy is dropped before your tabs refresh.
- Failed AI work costs nothing
- A creative the tagger cannot read gives its token back.
Not seeing something you need? Tell us what it is and we will look into adding it.
Request a featureFrom feedback
to Approved.
Comments pin to the exact frame. Versions stack on the same creative, and one click marks it Approved. Clients review from a share link with no account, and reviewers are always free, on every plan.
From Approved
to spending.
Send the approved creatives straight into an ad, one at a time or a whole batch at once: campaign, ad set, budget, copy, A/B test, written once and applied to every ad. No exporting, no re-uploading, no retyping it all into another tab. Go live now, start paused, or schedule it for Monday.
Kills the losers
while you sleep.
Set a threshold and walk away. Spent $50 with nothing to show for it, the ad pauses. A test picks a winner, its budget scales. Your rules watch the real numbers on Meta and TikTok and act on them, so a dud stops burning money at 3am instead of whenever you next open the tab.
Build it into your pipeline.
A REST API, a CLI, and an MCP server for agents. Everything the app can do, your scripts and tools can do too.
Read the docs# push a batch from your terminal $ uploadad upload hook_a.mp4 hook_b.mp4 --wait # expose upload.ad to your agent $ claude mcp add --transport http \ uploadad https://upload.ad/mcp
All of it is in every plan.
Nothing on this page is held back for a higher tier. Plans differ only in how many ad accounts, seats, storage and assistant tokens you get, and reviewers are always free.
One price for the whole pipeline.
Plans are metered on connected ad accounts, never on seats or spend. Reviewers on share links are free and unlimited on every plan.
Starter
For Brands
$59/mo
Billed monthly
- 1 ad account
- 2 team seats
- 250 GB storage then $5.99/250 GB per month
- 100 AI tokens per month
- Unlimited ad launches
- Publish to Meta and TikTok
- Batch launches with one ad per creative
- Carousels, existing posts, and Spark Ads
- Lead ads and Advantage+ enhancements
- Scheduled launches and drafts
- Folders, tags, and AI tagging
- Versions and approval statuses
- Review links with comments, passwords, and expiry
- Unlimited free reviewers
- Creative and team performance analytics
- Shareable client report links
- Automations with a visual flow builder
- Creative tests and budget scaling
- Ad comment inbox for Meta and TikTok
- Roles, permissions, and folder scoping
- Watched folders in Google Drive and Dropbox
- Slack, Discord, and Teams notifications
- API, CLI, MCP, and webhooks
- Desktop app
7 days free, no credit card
Growth
For Freelancers
$199/mo
Billed monthly
- 3 ad accounts
- 5 team seats
- 1 TB storage then $5.99/250 GB per month
- 300 AI tokens per month
- Unlimited ad launches
- Publish to Meta and TikTok
- Batch launches with one ad per creative
- Carousels, existing posts, and Spark Ads
- Lead ads and Advantage+ enhancements
- Scheduled launches and drafts
- Folders, tags, and AI tagging
- Versions and approval statuses
- Review links with comments, passwords, and expiry
- Unlimited free reviewers
- Creative and team performance analytics
- Shareable client report links
- Automations with a visual flow builder
- Creative tests and budget scaling
- Ad comment inbox for Meta and TikTok
- Roles, permissions, and folder scoping
- Watched folders in Google Drive and Dropbox
- Slack, Discord, and Teams notifications
- API, CLI, MCP, and webhooks
- Desktop app
7 days free, no credit card
Pro
For Small Agencies
$449/mo
Billed monthly
- 10 ad accounts
- 15 team seats
- 2 TB storage then $5.99/250 GB per month
- 600 AI tokens per month
- Unlimited ad launches
- Publish to Meta and TikTok
- Batch launches with one ad per creative
- Carousels, existing posts, and Spark Ads
- Lead ads and Advantage+ enhancements
- Scheduled launches and drafts
- Folders, tags, and AI tagging
- Versions and approval statuses
- Review links with comments, passwords, and expiry
- Unlimited free reviewers
- Creative and team performance analytics
- Shareable client report links
- Automations with a visual flow builder
- Creative tests and budget scaling
- Ad comment inbox for Meta and TikTok
- Roles, permissions, and folder scoping
- Watched folders in Google Drive and Dropbox
- Slack, Discord, and Teams notifications
- API, CLI, MCP, and webhooks
- Desktop app
7 days free, no credit card
Agency
For Large Agencies
$799/mo
Billed monthly
- 15 ad accounts then $15/month each
- Unlimited team seats
- 4 TB storage then $5.99/250 GB per month
- 1000 AI tokens per month
- Whitelabel review links Your branding on your own domain
- Unlimited ad launches
- Publish to Meta and TikTok
- Batch launches with one ad per creative
- Carousels, existing posts, and Spark Ads
- Lead ads and Advantage+ enhancements
- Scheduled launches and drafts
- Folders, tags, and AI tagging
- Versions and approval statuses
- Review links with comments, passwords, and expiry
- Unlimited free reviewers
- Creative and team performance analytics
- Shareable client report links
- Automations with a visual flow builder
- Creative tests and budget scaling
- Ad comment inbox for Meta and TikTok
- Roles, permissions, and folder scoping
- Watched folders in Google Drive and Dropbox
- Slack, Discord, and Teams notifications
- API, CLI, MCP, and webhooks
- Desktop app
7 days free, no credit card
The AI assistant
Included on every plan. Your monthly tokens are what it runs on.
- Launches whole ad batches to Meta and TikTok
- Runs creative tests and scales the winners
- Digs through performance data for you
- Builds automations that watch your ads
- Replies to and moderates ad comments
- Writes and rewrites ad copy
7 days free. No credit card required.