Meta Ads: programs & partnership ads

Set up creator programs, invite creators, and push their TikTok content to Instagram and Facebook as partnership ads — with payouts handled in Cruva.

Loading video…

The Meta Ads suite turns the TikTok videos that already sell into Instagram and Facebook ads. Creators join a program through a link, which licenses their TikTok content to your brand — then you push any of their videos into Meta ad sets in bulk, run them as partnership ads (or plain brand ads), and pay creators on the commission terms you set.

You'll find it at Dashboard → Ads → Meta Ads. The suite has its own workspace with five sections: Overview, Programs, Licensed content, Ads, and Payouts.

Connecting Meta

The whole suite sits behind one connection: click Connect Meta and authorize the Meta account that manages your Facebook Page and Instagram business account. If your token expires or permissions are missing, the suite tells you exactly what to reconnect or update — nothing else works until then.

If someone else manages the Meta account (an agency, or whoever owns the Page), click Copy share link next to Connect Meta and send it to them. It opens Meta's authorization screen for your shop without a Cruva login. The link only works for your shop and doesn't expire. Older share links stop working on November 24, 2026; if someone gets a "connect link is out of date" page, copy a fresh link and resend it.

The same Meta connection also powers Instagram creator search, Instagram automations and Instagram brand mentions in Social Listening. Those features ask for extra permissions, so a shop that connected Meta for ads may be asked to reconnect or grant permissions once. Your brand's TikTok account is connected separately, from Social Listening.

The bar across the top of the Overview shows where this shop pushes ads — its Meta destination — and manages the rest of the setup:

  • Meta destination — one Business Manager, one default ad account inside it, and one default Page with its Instagram, shown read-only as Business › ad account. Click Change to open the destination dialog: pick the Business Manager, then an ad account inside it, then a Page, and confirm the one-line summary. A Meta login that manages one Business is bound to it automatically; a login that sees several (an agency, for example) is asked to pick on first connect. Only ad accounts and Pages inside the bound Business appear anywhere in this shop's workspace, so an agency running many clients sees only this client's assets here. The ad account and Page are defaults, not a lock: each push can still pick any other ad account or Page inside the bound Business, so one shop can run ads from several ad accounts. Changing the Business doesn't touch ads already running; Licensed content, Programs and Permissions reload for the new Business.
  • Refresh from Meta (inside the dialog) re-reads the Businesses, ad accounts and Pages granted to the connected login — use it when a new asset was added under an "all current and future" grant. An asset that was never ticked on Meta's authorization screen can't be refreshed in: Reconnect Meta and tick it there.
  • Pages — connect the Facebook Pages your ads can run as. Each Page's linked Instagram account is the brand side of a partnership ad. A Page without a linked Instagram can still run ads — Facebook placements only, as the Page. Set one Page as the default; you can still pick a different one on every push.
  • An Ads Manager deep link, for when you want to work on Meta's side.

Programs

A program is a joinable offer for creators: commission terms, a payout schedule, and a license agreement, wrapped in a branded join page hosted on Cruva Creators. Once a creator joins (and, if you require approval, you approve them), all of their TikTok content for your shop becomes pushable to Meta ads.

Creating a program

Go to Programs → Create program. The configurator has two tabs and a live phone preview of exactly what creators will see on the join page.

Branding — colors, fonts, logo, and an optional header banner (1080 × 720 px, with a brightness slider). New programs inherit your Brand Hub's branding automatically. If your Discord is connected, you can generate a server invite link that shows as a button on the join page.

Details — the substance:

  • Name and description. The description defaults to a standard license explainer (Cruva pulls the creator's TikTok content for your brand; the brand may use it within the program) — edit it freely.
  • Require approval to join — off by default, so creators are auto-approved the moment they join. Leave it off when you invite creators yourself. Turn it on when the program is listed publicly on the Earn tab and you want to review each creator first — then work the queue on the program's Creators tab (see Approving creators below). While anyone is waiting, the Programs item in the suite's left nav shows the number of creators waiting for approval, and the program's row and header show the pending count in amber.
  • Review uploads before they're added — off by default, so a video a creator uploads joins the program's content right away. Turn it on to approve each uploaded video first (see Reviewing uploaded videos below). TikTok links aren't affected.
  • Make this program private — off by default. Turn it on for an invite-only program: under Visible to, add the creators (by TikTok handle, from your CRM, a saved list, or a CSV) who are allowed in. Only a creator signed in with a handle on that list sees the commission rates and gets the Join program / Request to join button; everyone else — including anyone signed out — sees an invite-only notice on the same page, and the hub card hides the rates. The link still works, so you can share it freely. A private program needs at least one creator on the list.
  • Cruva Creators discovery — on by default: the program is listed on the Cruva Creators Earn tab, where creators can find it and request to join. Pick a category before launching (creators filter by it), or turn the listing off. Showing campaign GMV publicly is a separate opt-in, off by default. Private programs are never listed, whatever this is set to.
  • Payout trigger — how often payout rows are generated: weekly, bi-weekly, or monthly. The schedule queues payouts and each one waits for your approval, unless you turn on Auto pay (see Payouts below).
  • Commission rules — how creators earn. Rules stack, up to one of each type:
    • % of Meta Ad Spend — the recommended default: usage-based, a share of the ad spend on ads running their content, paid whether or not the ads convert.
    • % of Meta sales — the creator earns a share of the sales their pushed content drives on Meta.
    • Flat $ per order — a fixed amount for every order attributed to ads running their content.
    • Flat $ per approved submission — a fixed amount each time one of their videos is pushed to Meta from the program.
    • Flat $ per creator — a one-time amount when the creator joins.
  • Page sections — optional rich-text blocks on the join page (guidelines, FAQs, examples — up to 10).
  • Agreements — the usage-rights & whitelisting license creators accept when joining. You can paste text, plus either a PDF (Word files convert automatically) or a Contract to sign: one of your published Creator Contracts that creators e-sign when joining. Agreements are versioned and append-only: publishing a new version applies to new joiners, while existing creators keep the version they signed.

Click Launch program. Before anything is created you review the terms and agree to Cruva's 1.25% platform fee on the ad spend behind each creator's pushed content (plus payment-processing fees). The fee is based on ad spend, not on the sales the ads drive. On launch the join link is copied to your clipboard and you're offered the invite dialog right away.

Reviewing uploaded videos

With Review uploads before they're added on, a creator's uploaded video is a draft until you decide. Drafts waiting for you appear on the program's Reviews tab, oldest first, with a count on the tab.

Open one to watch it, leave comments (pinned to a moment in the video if you like), and decide:

  • Approve adds the video to the program's Content, where you can push it to Meta like any other upload.
  • Request changes sends it back with your note. The creator uploads a new version and sends it again; earlier versions stay one click away so you can compare.

The creator is told in your chat thread and by push notification. TikTok links creators submit are posts, not drafts, so they go straight to Content as before. Switching review off doesn't remove anything: drafts still waiting stay on the Reviews tab until you decide.

What the creator does

The join page walks the creator through everything — you don't have to explain the Meta side:

  1. Sign in on Cruva Creators and tap Join program (they accept your license agreement here, and sign it if it's a contract). As with campaigns, their TikTok account must be verified first — an unverified creator is sent to verify TikTok and the join continues when they come back.
  2. Link their Instagram account — the one that runs as paid partner.
  3. Approve your Partnership Ads permission request in the Instagram app.
  4. Connect Stripe for payouts.

After that they earn on autopilot as their content runs. A creator can only be in one program per brand at a time — if you approve someone who's already in another of your programs, Cruva asks to transfer them (existing content keeps its old terms; new content uses the new program's terms).

Needs your action

Every program page (and the suite's Programs tab, across all programs) has a Needs your action strip under the stat tiles — the same one campaign pages have. It only appears while something waits on you:

  • N creators to approve — the pending applications, oldest first. Each row shows the creator's level, followers and 30d GMV; click the name to open the creator card, or decide right there with Approve or the reject (×) button. Approving a creator who is already approved in another of your programs asks you to confirm the transfer.
  • N partnership requests to send — approved creators with Instagram linked who haven't been sent the Partnership Ads permission request yet. Send request on the row sends it to their Instagram.
  • N drafts to review — on a program that reviews uploads; opens the Reviews tab.
  • £X owed to N creators — booked payouts not yet sent (program page only). It turns red once the money has been owed for a day or more. Click it for the rows: Pay on each one sends that payout from your community balance, Pay all N sends every one of them. A creator who hasn't connected a payout account yet can still be paid: the money leaves your balance now, is held for them, and is released the moment they connect one; their row says so. Open Payments tab below the list takes you to the full ledger.

Click a chip to open its list, which shows five rows at a time with Show 5 more beneath; the full queue is also right below in the Creators tab. Beside each list's title is a whole-list action: Approve all N approves every pending application after a confirmation (creators already approved in another of your programs are skipped and named), and Send all N sends the partnership request to every listed creator one after another. When nothing is waiting, the strip reads "You're all caught up".

Approving creators

Open the program and go to its Creators tab (the suite-wide Programs → Program creators list works the same way across every program). Above the table, the All / Pending / Approved pills show how many creators are in each state and switch the view with one click; the Status column filter does the same thing.

To find the creators worth approving in a big queue:

  • Sort by any column except Commission by clicking its header (click again to flip the direction): Followers, 30d GMV, Applied, Level, Earned and Paid start highest first, the TikTok, Instagram and Program columns A to Z. On columns with a filter, click the name to sort and the filter icon to filter. GMV and followers come from the TikTok Shop creator directory, so a creator with no directory row sorts last.
  • Filter by Level (L0 upwards, the same tiers as the rest of Cruva), by whether an Instagram is linked, and by Whitelisting status.
  • Click a row to open the creator card — the same panel Sample Requests and the campaign review popout use — with their recent videos for every shop and for yours, views, GMV, and shop performance, so you can decide without leaving the page. The card's Meta programs section shows every program they've applied to or joined (with status, commission snapshot, what each membership has earned and is owed, and how many ads came from their content) and the lifetime performance of those ads: ad spend, Meta sales, ROAS, impressions and clicks.

Earned and Paid sit side by side for every creator. Earned is everything they've earned in the program: payouts already sent plus payouts booked but not yet paid, with the unpaid part shown underneath. Paid is what has actually been sent to them. A payout is booked when the program's payout cadence comes due, so commission from the period in progress isn't in Earned until then; tick Count creator commission above the table to add it.

Tick the checkbox on any pending rows (selection survives paging and filter changes), then click Approve N or Reject N in the bar above the table. Reject asks you to confirm. A creator who is already approved in another of your programs is left pending by the bulk action and named in the toast — approve them one at a time to transfer them. Approved rows keep their per-row actions (whitelisting, remove from program).

Chat cards for membership changes

Every membership decision posts a card in your chat thread with that creator, the same way campaigns do: approving posts "@handle was approved for Program", declining an application posts "@handle's application to Program was declined", and removing or leaving posts the cards described below. The creator sees the same card from their side, naming your brand, with links to the program and your brand page.

When a creator leaves

Creators can leave a program themselves from the program page in the creator app (Leave program, with a confirmation). When one does, a card lands in your chat thread with that creator: "@handle left Program", followed by how many ads made from their content are still running, the 30-day rule, and a View program link to the Creators tab. The default program agreement gives you up to 30 days to stop those ads. Their videos and uploads leave Licensed content immediately, so no new ads can be made from them; the 30 days only cover ads already running. On the Meta Ads page, every ad made from that creator's content carries a Creator left · pauses in N days badge for the whole 30 days, and a N ads about to pause button next to the date picker lists just those ads so you can decide what to do with them. Seven days before that window closes, a reminder card in the same thread tells you how many ads are about to be paused. Once the 30 days have passed, Cruva pauses every ad made from that creator's content on Meta, posts a card saying how many were paused, and marks each one Paused: creator left on the Meta Ads page. Each ad is paused once, so if you re-activate an ad after agreeing terms with the creator directly, it stays active. Pause or delete them yourself earlier if you want them gone sooner. Removing a creator yourself (Remove from program on the Creators tab) asks you to confirm first: the dialog says the creator will get a chat message about the removal, counts the ads made from their content, and reminds you to stop using them within 30 days. Confirming posts the matching "was removed from" card in the same thread, so the creator and your teammates see it too. A creator who left can join again through the normal approval flow.

Inviting creators

Click Invite on any program (it also pops up right after launch). The dialog searches your community creators, with min/max GMV filters and sorting by GMV, posts, or campaigns — the same targeting knobs the outreach bots use. Select creators, and each one gets a per-channel picker showing where they're actually reachable: Cruva message and/or email. The message is editable and the join link is always included. Emails go out from one of your own sender emails, picked under Send emails from; if you haven't added one, the dialog links to Manage Sender Emails.

The join link is public — you don't have to use the dialog. Copy it and distribute it through Automations, email campaigns, DMs, or anywhere else you reach creators. Pausing a program closes the link (nothing already running is touched); deleting a program kills the link but keeps existing members, their ads, content, and payout history.

Whitelisting (Partnership Ads permission)

Partnership ads show the creator's handle with your brand as paid partner, and Meta requires the creator to grant your brand permission first. Cruva tracks this per creator:

  • On a program's Creators tab, every member shows a Whitelisting column: Approved, Pending, Revoked, or Not requested. Use Send request to send the Meta permission request to their linked Instagram — the creator accepts it in the Instagram app.
  • The shop-wide view lives at Programs → Creator permissions, where you can also cancel a pending request or revoke a permission. It lists everyone from your creator community with a linked Instagram account, plus any handle you invite directly.
  • Request a creator not listed — the button top right of Creator permissions. It reaches the creators the table can't: community members who haven't linked Instagram in Cruva (the most common reason a licensed video can't run as a partnership ad), and anyone outside your community. Search your community by TikTok handle and tick any number of creators (only members without Instagram linked are listed — linked ones already have a button on their row), type each one's Instagram handle, and click Send N requests; or skip the search and type any Instagram handle — Enter or a comma adds another — then click Send request to @handle (or Send N requests). Switch to Paste or upload a list for many at once: one creator per line, either instagramhandle or tiktokhandle, instagramhandle (the TikTok handle ties it to that community creator), typed, pasted, or added with Upload CSV / TXT. Each row gets its own request, and any that Meta refuses stay in the list so you can fix and re-send them. Once an attributed creator accepts, their licensed videos can be pushed as partnership ads right away — the Content and Creators tables mark that Instagram as Requested via Meta because the pairing is yours, not the creator's; Meta still checks the permission at push. The request goes straight to that Instagram account and they accept it in the Instagram app, exactly as above — there is no Cruva step for them. The row appears as Pending with a Requested via Meta tag (and the creator's TikTok handle when you picked one — that pairing is on your say-so and stays unverified until the creator links Instagram in Cruva themselves, at which point the row merges into theirs), and flips to Approved when they accept — on the next page load, or within the hour from the background sync. The account must be a professional (Business or Creator) Instagram account with branded content enabled, or Meta refuses the request.
  • The Status column also shows when a pending request was sent and when an approved one was accepted, so you can see how long creators take to say yes.

Whitelisting isn't required to push — it's required for the partnership identity. Videos from creators without it can still run as regular ads from your Page (see below). Meta enforces the requirement at push time, so an unauthorized partnership push fails per video rather than blocking the batch.

Pushing TikTok content to Meta

Licensed content (suite-wide) and each program's Content tab list every TikTok post from your approved program creators, with GMV, views, likes, comments, and post date. Two more columns show how each video has done as a TikTok ad: GMV Max spend and GMV Max ROI (revenue ÷ spend) are its lifetime totals across every GMV Max campaign it ran in, the same numbers as on the GMV Max page, shown in your TikTok ad account's currency. Use them to pick creatives that have already proven profitable, not just ones with big GMV. A video that never ran in GMV Max (and any uploaded file) shows —. Search by title or handle from the column headers and set the posted-date window beside Filters; the Filters dialog narrows by program, products, Include tags / Exclude tags, whitelisting, ads, and Source (Submitted link for TikTok posts a creator submitted by link, Uploaded file for files a creator uploaded, Auto-collected for posts the scraper found on its own) — then select videos (selection survives paging) and click Push to Meta. Tags work like the ones on the Videos page: add them to selected videos and filter by them to group creatives your own way.

Push to Meta opens the push page, laid out like the program builder. Tabs across the top take you through Videos, Campaign, Ad set & ads and Review, in Meta's own order. Campaign picks the ad account, the Page the ads run as and the campaign. Ad set & ads starts with Choose an ad set (an existing one, or New ad set…), then that ad set's settings and, under them, the ads' copy, link, button and names. A new campaign always gets a new ad set, so there's nothing to choose there. Click any tab to jump around; Next checks the step you're on first. A step that still needs something turns amber and lists exactly what's missing at the top, and a finished step gets a check. Review shows every step at a glance with Edit links, and the push button sits there. If anything is still missing when you push, the page jumps to the first step that needs it. The column on the right shows an Ad preview with your primary text, headline and button. When you push several videos, the arrows step through them one ad at a time, each with its own creator. Press the play button on the preview to watch the video right there (tap it to pause; the corner buttons mute or stop it). The preview shows the whole text: names, primary text and headline wrap instead of being cut off, and a long primary text scrolls inside the preview. The preview stays in view as you scroll. Review holds the Summary: the videos, ad account, Page, campaign, ad set, budget and audience, and Creates, which counts the ads Meta will get (every selected video becomes an ad in every ad set you picked, so 5 videos in 2 ad sets is 10 ads). Once nothing is missing it says Ready to push. The back arrow, Cancel or Close returns to the list you came from. A refreshed push page keeps your videos, but a push started in one browser tab can't be opened in another.

What each step asks for:

  1. Videos — confirm the selection. Videos whose creator has no linked Instagram are flagged: they'll run as your Page, without a partnership tag.
  2. Run ads as — pick the Facebook Page (and its linked Instagram) the ads run from. Pages you haven't connected yet can be connected right from the picker; Refresh Pages from Meta pulls in newly created Pages.
  3. Destination — one of three:
    • This program's ad sets — append to an ad set the program has pushed into before.
    • Any existing campaign in your ad account, pulled live from Meta — append to one of its ad sets or create a new ad set under it.
    • New campaign… — created on the spot: name, objective (Sales by default, so ad sets optimize for purchases on your Pixel; or Traffic, Engagement, Awareness), budget per ad set or campaign-level, optional spend cap and special ad categories. With a campaign-level budget you can also pick the campaign's Bid strategy: Lowest cost (automatic), Bid cap, Cost cap, or (sales campaigns) ROAS goal. Lowest cost never asks for a cap amount. With a budget per ad set, each ad set picks its own strategy in the Ad set step. Saved campaign settings lets you save these (everything but the name) under a name and reuse them.
  4. Ad set — for a new ad set you configure budget (daily or lifetime), countries, age range, gender, placements (Instagram/Facebook Reels, Stories, Feed — TikTok video is 9:16, so feed placements letterbox it), optimization goal, bid strategy, Attribution setting, and schedule. This is set once at creation; videos appended later inherit it. The attribution setting is how long after a click or view a purchase still counts as the ad set's result: 7-day click + 1-day view by default (Meta's own default for purchase optimization), or 7-day click, 1-day click, 1-day click + 1-day view, or any of those with a 1-day engaged view (10+ seconds watched) — the same eight combinations Ads Manager offers. Meta accepts the full list only when the ad set optimizes for purchases or value; for every other optimization goal (link clicks, landing page views, reach, impressions, ThruPlay, engagement, ad recall) Meta allows 1-day click only, and the field says so. An existing ad set shows its current setting; Keep current leaves a window not in this list untouched. Pick it here rather than relying on the ad account's default, which is 1-day click on some accounts. Saved ad set settings lets you save a new ad set's configuration (everything but the schedule) and apply it next time. When appending, the page shows the ad set's live settings from Meta — any change you make updates the ad set itself. If the campaign bids with a minimum ROAS, the ad set gets a ROAS goal field (2.0 = 2×); left empty, the goal is copied from an existing ad set in that campaign. If the campaign bids with a Bid cap or Cost cap (picked for a new campaign above, or in Ads Manager), the strategy is shown as the campaign's rather than picked, and the Cap amount field is always there: Meta requires every ad set in such a campaign to carry its own cap. Left empty, the amount is copied from an existing ad set in that campaign; a new campaign's first ad set needs one entered. Under a campaign-level budget every ad set shares the campaign's bid strategy, so the ad set shows it instead of offering a choice. With a budget per ad set, picking Bid cap or Cost cap for the ad set needs a Cap amount. Cost cap doesn't work with the Reach optimization goal, and Push says so before anything reaches Meta. Below the basics, a new ad set has two more sections:
    • Targeting — Locations lists the countries the ad set runs in and takes more of them, plus regions, cities (with a 10–50 mi or 17–80 km radius) and postcodes. Type a country's name or code ("us" finds United States); a country you add here is the same one shown in the Countries field. Meta doesn't accept a region, city or postcode inside a country that is targeted whole, so adding one takes its country off the list (the ad set then runs only in the smaller area), and adding a country removes the smaller areas inside it. Exclude locations removes areas. Languages, Custom audiences and Exclude audiences come from your ad account; audiences Meta can't use right now (too small, flagged) are listed but can't be picked. Detailed targeting adds interests and behaviors, and Exclude people who match removes them. With Advantage+ audience on, Meta treats audiences, interests, age and gender as suggestions, and the minimum age must be 18–25 with the maximum fixed at 65; locations, the minimum age, languages and excluded audiences stay strict.
    • Delivery — for purchase-optimized ad sets, the Conversion event (Purchase by default; Add to cart, Initiate checkout and other standard events are available). Cruva always picks the pixel itself, the campaign's or your ad account's, because purchase tracking depends on it. A Frequency cap (1–90 times every 1–90 days) is offered when the ad set optimizes for Reach or ThruPlay. Under a campaign-level budget, an ad set can have a minimum spend and a spend limit. Run ads on a schedule picks days and hours in the viewer's or the ad account's time zone and needs a lifetime budget. A lifetime budget needs an end date; the page won't push without one. When the ad set reaches the EU, EU ad transparency asks who benefits from and who pays for the ads, unless the ad account has defaults set in Ads Manager. Push stays disabled with the reason listed until these follow Meta's rules, so nothing is refused halfway through a push. Saved ad set settings include these sections too, except custom audiences, which belong to one ad account.
  5. Ad creative — destination link (required), call-to-action, primary text, and the Identity card, which asks who the ads run as:
    • Brand page — a regular ad from your Facebook/Instagram Page. No creator tag, no authorization needed.
    • Partnership ads — the ad shows the creator's handle, which needs their linked Instagram and approved whitelisting; videos missing either fall back to running as your Page. Under it, Format picks what the ad's header shows: Dynamic identity (the default; Meta shows the primary identity alone or both, whichever it predicts performs best for each viewer), First identity only, or Both identities in header. Inside the selected format, Shown first picks which side is primary: Brand (the default, with the creator as paid partner) or Creator (with your brand as paid partner, Instagram placements only). Ads pushed before this option existed show both identities; editing one lets you change it. The card's footer shows the brand identity in use, which is the Instagram of the Page chosen in the Destination step. Advanced options cover headline, link description, URL tags (UTMs), Multi-advertiser ads (on by default, as in Ads Manager: Meta may show the ad alongside other brands' ads), and AI enhancements, which let Meta auto-crop the video for each placement, polish the text, and surface relevant comments. AI enhancements are off by default because a partnership ad runs under the creator's name. Use Saved creatives at the top of this section to save the primary texts, headlines, description, destination URL, UTMs, call-to-action, and the Multi-advertiser ads and AI enhancements switches as a named preset for the whole store, then apply it on any push. The identity choice isn't part of a saved creative: a new push starts from the identity, format and Page you used last in this browser, or, in a browser that hasn't pushed yet, from the store's most recent push.
    • Several texts on one ad. Add another primary text and Add another headline take an ad up to 5 primary texts and 5 headlines, as in Ads Manager. Meta shows each person the combination it expects to work best for them. Every ad in the push gets the same set, and a saved creative keeps all of them.
    • Copy per ad set. When the push goes into more than one ad set, Copy per ad set appears under the creative. The first ad set uses the copy typed above; each additional ad set can use Copy above or the primary texts, headlines and link description of a saved creative, so one push can carry a different message per ad set. The link, call to action and URL tags stay the same in every ad set. Only saved creatives with a primary text or headline are listed.

Drafts — the push page's footer has Save draft. It stores everything in the form (the selected videos, destination, campaign and ad set settings, creative, and naming) under a name, so a push cut short by a Meta refusal or an interruption can be finished later from any seat on the store. Saved drafts sit in a Drafts menu next to Moderate at the top of the Licensed content table and of a program's Content tab (the menu only appears once a draft exists). Pick a draft to continue it: the push page opens with everything filled in. Videos that are no longer eligible are skipped and the page says how many. Update draft on the page writes your changes over the draft; the trash icon in the menu deletes one. A draft is deleted on its own once its push starts.

When a push fails — nothing has to be rebuilt. If Meta refuses the campaign, the ad set or any of the ads, Cruva saves the whole setup as a draft on its own and says so under the error. The page stays pointed at whatever was already created on Meta, so trying again continues in the same campaign and ad set instead of making a second pair. When some videos fail and others go through, a red notice at the top of the page gives each of Meta's reasons in full with what to do about it (the failed rows carry a red mark), and Fix and try again brings the form back with only the failed videos ticked. Fix what Meta named (for example add a payment method in the ad account's billing settings), then push again.

Submitting starts a background job: each video is uploaded to your Meta ad account's media library and becomes a paused partnership ad in the target ad set. You can close the window — the ads keep being created and progress shows per video. Review and activate them in Ads Manager, or straight from the Ads tab. Every pushed ad reports website events to its ad set's pixel (or your ad account's most recently used pixel), so purchases are counted without any setting to turn on.

To put videos in your Meta library without creating any ads, select them in Licensed content and click Upload to library. You can name the uploads with your own pattern, including a video id token for the TikTok video id, and reuse Saved patterns across the store.

Editing a video before it goes to Meta — on the push page's Videos step and in Upload to library, the pencil on a video's row (Edit video) opens the editor. The timeline under the player shows the edited video: the sections you keep sit side by side, and when you delete one, the rest close up.

  • Cut. Click the timeline to move the playhead, then Split to cut the section there in two. Click a section to select it and Delete section to remove it (with nothing selected, it removes the section under the playhead). An edit always keeps at least one section.
  • Adjust. Drag a section's edge to change where it starts or ends; the player shows the frame at the edge as you drag. Dragging an edge outward brings back footage you cut. Zoom in for frame-level precision.
  • Check. Play the video to watch the final edit: it plays straight through the cuts and loops. Final length shows how long it will run.
  • Undo and redo step back and forward through your changes. Remove audio drops the sound, and Replace file loads a different video file into the editor so you can cut that one instead.
  • Keyboard. Space plays and pauses, the arrow keys step one frame (Shift: one second), S splits, Delete removes a section, [ and ] move the section's start or end to the playhead, and ⌘Z / Ctrl+Z undoes.

Save edited version puts the edit in your Meta library. Every push of that video uses it from then on, and its row shows Edited version. Opening the editor again starts from the saved edit, not the original; Reset to original goes back to the untouched video. Ads already created keep the version they ran with.

To download the list as a spreadsheet, click Export to CSV above the table. You get a CSV of every video in the current view, across all pages, using the same filters, search, sort and folder as the table. It includes the TikTok link, creator, Instagram, program, stats, GMV Max spend and ROI, whitelisting, Meta library and push status, products and tags. To export everything filed in one folder whatever your filters are, open the folder dropdown and click the download icon (Export folder) on that folder's row. An export holds up to 10,000 videos; narrow the filters if you have more.

Tracking performance

Overview is the suite's home: ad spend, Meta sales, ROAS, and creator earnings for any date range (click a tile to chart it), a live activity feed (ads created, creators joining, payouts), and a "where the spend went" ranking by creative or creator.

Ads is the Ads-Manager-style tree — campaigns → ad sets → ads — with spend, impressions, clicks, CTR, purchases, revenue, and ROAS summed over your picked range (synced daily). You can pause/resume and edit daily budgets at every level right from the table, or deep-link into Ads Manager. Edit campaign, Edit ad set and Edit ad all open the campaign's edit page, on the tab for what you clicked. It has three tabs: Campaign, Ad sets (every ad set in the campaign, with how many ads each holds) and Ads (every ad in the campaign as a video tile, which you can narrow to one ad set). Pick an ad set or ad to edit it below the list. On the right, the Ad preview steps through the campaign's real ads with their copy, link and button and plays each one in place, and Unsaved changes lists everything you've edited so far; a blue dot marks edited items and an amber dot one that needs fixing. Edits stay while you move between tabs and items, and Save changes sends them all to Meta at once: the campaign first, then ad sets, then ads, and only what changed. Leaving with unsaved edits asks first; nothing changes on Meta until you save. Ads made in Ads Manager are listed too, with Meta's thumbnail. On a campaign with a campaign-level budget, the Campaign tab also changes its Bid strategy. Switching to Bid cap or Cost cap lists the campaign's ad sets, each with its own Cap amount (prefilled with its current one), under a same for all amount that fills any row left empty; Apply to all copies it into every row. Meta doesn't allow changing the bid strategy of a ROAS goal campaign after it's created, or of a campaign-budget campaign with more than 70 ad sets. An ad set under a campaign-level budget shows the strategy as the campaign's; in a Bid cap or Cost cap campaign you can change its own cap amount. Ad sets also have the Targeting and Delivery sections, filled from what the ad set runs with on Meta; the conversion event is fixed once an ad set exists. The Campaign tab can also Switch to ad set budgets, which turns the campaign budget off and lists the ad sets the same way, one daily budget each (the same-for-all amount starts as the campaign budget split evenly) (Meta doesn't allow this on campaigns with more than 70 ad sets). Each ad's row menu also has Duplicate ad (copies it, paused, into up to 5 ad sets in the same ad account) and Delete ad (deletes it on Meta; spend already booked stays in reporting).

All money in the suite is shown in your Meta ad account's currency, which can differ from your shop's region currency.

One caveat on revenue: the Revenue (Meta) column is Meta-attributed purchase value, which requires your site to send purchase events via the Pixel or Conversions API. TikTok Shop sales don't appear there.

Paying creators

The Payouts section (and each program's Payments tab) is a ledger. Every payout period, each creator gets a row showing their period's Meta-attributed GMV, ad spend, units sold, new creatives, commission, the computed Payout, the Cruva fee on that row, and the Total the two add up to.

The fee is never taken out of the creator's payout. Payout is what the creator receives in full; Cruva fee is Cruva's 1.25% of the ad spend behind that creator's content for the period (hover the amount to see the rate), and Total is what leaves your balance when you pay the row. The two fee columns only appear on accounts that pay a fee; during your free first 30 days the fee column reads "—" and the No Cruva fee until… badge says when it starts. Like every other column they can be hidden from the column picker.

With Auto pay off, nothing moves automatically. The Payouts overview is laid out like the campaigns list. When money is owed, a red banner at the top reads "$X still owed to N creators across M programs", with how many rows are ready and how many are waiting on a creator's payout setup, and a Deposit $X link when your balance is short of what's ready. Pay all N opens one dialog for every payable row, and the chevron opens one line per program with its own Pay N. If a program's auto pay charge was declined, a separate red banner above it says so with a Fix payment button.

Below the banners, one overview card. On the left, Paid out for the date range picked in the page's title row (the last 30 days by default, the same picker as the Meta overview), with how many payouts went to how many creators and the average per creator, a green or red change against the same number of days just before the range, a red N failed chip when any payout has failed (click it to filter the ledger below to those rows), and a daily chart; click the chart to open it full size with a per-day tooltip. On the right, Next payout lists every live program with its cadence, approved creators, next run date (or Paused), and what is still Owed from past runs. With Estimate to date on, an Est. next run column adds the ≈ amount each program's next run is expected to book, creator payouts plus the Cruva fee, and for how many creators. The community balance those payouts draw on sits in the page's title row as the same balance button as on the Campaigns page: it shows the current balance and opens Payments in a side panel, where you can add funds and see every top-up and deposit. Under the card is the Payout history ledger. Deposits are not listed here: open the balance button to see Deposit History in the Payments panel, with its cancel and invoice actions, CSV export and Invoice Billing Info button.

The table is the one list of every payout. Filter it from the column headers: Program narrows it to one program, Period to one payout period (every program whose period ended that day), and Status to pending, paid or failed rows. Tick any unpaid rows (the selection survives paging and filter changes) and click Pay N in the bar above the table to pay them together; each pending row also has its own Pay button. The pay dialog shows each creator's payout with its Cruva fee underneath, and the footer splits Creator payouts from Cruva fees before the Total from community balance, which is what the send button charges. You can optionally text the creator a payment notification. Paid rows show their date; failed rows show the error and can be retried with the same button. The creator receives the money in their Stripe account via Cruva Creators.

A program's own Payments tab is the same overview card and table scoped to that program: paid out over the last 30 days, this program's next run, owed amount and estimate, and its ledger beneath. The ledger header has the same balance button as the Campaigns page (opens the Payments panel, with Add funds and the deposit history).

Rows only appear after each program's payout run. To see what creators have earned since the last run, turn on Estimate to date: estimated rows are marked with ≈ and included in the pending totals. Final amounts are set when the program's payout runs.

Auto pay

Turn on Auto pay in the program's configurator and pick a saved payment method (the same cards and US bank accounts as campaign auto pay). Each time a payout period is booked, Cruva charges that method for the period's creator payouts plus the Cruva fee, and pays the creators as soon as the funds clear. The program page, and its line in the owed banner on the Payouts overview, show one status line at a time: Pending while funds clear, Failed with a Fix method link if the charge was declined, or Paid with a receipt link. Tick Use payout balance first to spend what is already on your Cruva balance before anything is charged; only the difference goes to the method, and nothing is charged when the balance plus clearing deposits covers the period. Creators are paid once the settled balance covers it, so a period funded by a clearing bank deposit waits for that deposit to land. It is off by default. A failed charge never retries by itself; fix the method or pay the rows by hand.

Common questions

"My push failed for some videos." The most common causes: the creator hasn't linked their Instagram, or their whitelisting isn't approved yet, while the push used a partnership identity. Failures are marked per video with the reason. Either get the whitelisting approved (Creators tab → Send request) or re-push with Brand page.

"My campaign uses Lowest cost, but the new ad set asks for a cap amount." The campaign itself is set to Bid cap on Meta. Campaigns created in Cruva with a campaign-level budget before November 12, 2026 could come back from Meta as Bid cap even when Lowest cost was picked; campaigns created since are always Lowest cost unless you choose otherwise. To fix an older one, open the Ads table, choose Edit campaign and switch its Bid strategy to Lowest cost (automatic). New ad sets then stop asking for a cap.

"The edit page says Meta is rate-limiting this ad account." Meta caps how often Cruva can read and change each ad account, and everyone using Cruva on that account shares the cap, along with Cruva's own background sync. Large accounts with thousands of ads reach it sooner. Cruva keeps what it last loaded, so when Meta is refusing reads the edit page shows that copy with a note instead of an error, and saving still goes straight to Meta. Wait a few minutes and open the page again to see the latest from Meta.

"I launched the ads as Active but nothing is running." Launch new ads as sets the status of the ads only. A new ad set, and a new campaign, is always created paused, and the page says so when you pick Active. Turn the ad set (and campaign) on in the Ads table or in Ads Manager and the ads start.

"Which currency are budgets and cap amounts in?" The currency of the ad account the push lands in, which is shown next to each amount. Type the amount as you would read it: 50 for $50 a day, 50000 for ₩50,000 a day. This holds for every currency, including the ones without cents (won, yen, forint and others).

"I have hundreds of pending creators — how do I find the good ones?" On the Creators tab, click the Pending pill, sort by 30d GMV, and filter by Level to the tiers you want. Click a row to see what they've posted and sold. Tick the rows and click Approve N. See Approving creators above. For a short queue, the Needs your action strip at the top of the program page lists them with Approve/Reject on each row.

"A creator isn't in my Cruva community (or hasn't linked Instagram). Can I still get partnership access?" Yes — use Invite by Instagram handle on Programs → Creator permissions. The request goes to that Instagram account directly, with nothing for the creator to set up on Cruva first; they accept it in the Instagram app and the row turns Approved.

"I manage several clients from one Meta login. How do I keep their ad accounts apart?" Each Cruva shop is bound to one Business Manager (the Meta destination in the bar at the top). Pick the client's Business for their shop and only its ad accounts and Pages show up in that workspace — in the header, the push page and the library upload. The push page pre-selects the default ad account every time; choosing a different account inside the same Business is allowed and the page says so in amber.

"I connected Meta but the ad account isn't listed." The account wasn't ticked on Meta's authorization screen, or it sits in a Business Manager the login has no role on. Open Change → Refresh from Meta first; if it still isn't there, Reconnect Meta and tick the account (and its Business) on Meta's screen. Being an admin of an agency's Business is enough — the client's owner account doesn't need to log in.

"What can I still only set in Ads Manager?" Leads and App promotion campaigns, Advantage+ sales campaigns, A/B tests, budget scheduling, reach and frequency buying, turning a campaign budget back on, image, carousel and catalog ads, a different video or text per placement, multiple text options, Instant Experiences, brand safety filters and block lists, and app or offline event tracking. Anything set there stays in place when Cruva pushes into the ad set.

"Where are the ads Cruva created?" In your ad account, paused, inside the ad set you targeted — the Ads tab links each one to Ads Manager. The videos themselves land in your ad account's media library.

"Can I cut something out of the middle of a video before pushing it?" Yes. On the push page's Videos step or in Upload to library, click the pencil on the video's row. Click the timeline where the part you don't want starts and click Split, then do the same where it ends. Select the section in between, click Delete section, and play the video to check it. Save edited version makes every push of that video use the cut version.

"Can one ad have more than one primary text or headline?" Yes, up to 5 of each. On the push page's Ad set & ads step, in the Ad creative card, use Add another primary text and Add another headline; the Ads tab of the campaign's edit page shows and changes them later. Meta picks the combination per viewer, so there is no per-text breakdown in Cruva's reporting.

"Can each ad set in a push have its own copy?" Yes, for the additional ad sets. Save each set of copy under Saved creatives first, then pick one per ad set under Copy per ad set. The copy is taken as it is when you push; changing or deleting the saved creative later doesn't change ads already created.

"Can the same video run in more than one ad set?" Yes. "Pushed" is informational, not terminal — push it again to another ad set; the Ads column counts how many ads run it.

"Can I make a program invite-only?" Yes — turn on Make this program private in the configurator and list the creators under Visible to. The join page stays reachable, but only creators on the list (signed in with that TikTok handle) see the rates and can join; everyone else sees an invite-only notice. You can add or remove handles any time; members who already joined are unaffected.

"A creator says they're asked to verify TikTok before joining." Joining a program needs a verified TikTok account, exactly like joining a campaign — the program's content is pulled from that handle. The creator taps Verify TikTok to Join, completes the TikTok login, and lands back on the join page to finish.

"What does pausing a program do?" It only closes the join link. Existing members, live ads, and payouts are untouched. Deleting closes the link for good and releases the members: they're no longer counted as being in that program, so you can approve them in another of your programs without a transfer, and they can join any of your programs again. Ads, content, and payout history are all kept.

"Why does a video show — for GMV Max spend?" It hasn't run in a TikTok GMV Max campaign, or your TikTok Ads account isn't connected to Cruva. Connect it (see GMV Max & TikTok Ads) and the numbers fill in after the next sync. The columns can't be sorted, and they cover the whole history Cruva has synced (about six months), not the posted-date range picked above the table.

"How is this different from usage rights + licensed content?" Usage-rights offers license individual videos one at a time for a flat fee. Programs license everything a member posts, continuously, with ongoing commission — built for running creator content as ads at scale. The older flow is covered in Meta Ads, Spark codes & usage rights.

Was this article helpful?

Related articles