| Status | What it means |
|---|---|
Active | The ad is delivering. |
Scheduled | The ad has not reached its start yet. |
Paused | The ad, its ad set or ad group, or its campaign is switched off. |
Ended | The ad finished its schedule or was archived. |
Deleted | The ad was deleted at the network. |
In Review | The network is reviewing or processing the ad. |
Rejected | The ad failed the network's review. The tooltip carries the reasons. |
Issue | The ad is not delivering for another reason, such as an exhausted budget. |
Syncing | Created in viral.app, and no sync has returned it yet. |
Ads
See every TikTok Spark Ad and Meta partnership ad on the content you track, with what each one costs and delivers, and manage the ads you created in viral.app.
The Ads page under Analytics lists the TikTok Spark Ads and Meta partnership ads running on content you track, in one table: what each ad costs, what it delivered, and where it stands. A Spark Ad or partnership ad runs a creator's original post as an ad, under the creator's handle, from your own ad account.
The Ads area has three tabs:
- Ads: the ads table, covered on this page.
- Video Permissions: the TikTok and Instagram posts creators approved for ads, and the requests still open.
- Creator Permissions: Meta creators who let your brand run all their posts that tag it.
Create an ad walks through the Create Ad wizard, and Ad permissions explains both permission tabs.
Before you start
The Ads page reads from your own ad accounts. Connect at least one under Integrations:
- TikTok Spark Ads for TikTok advertiser accounts. See the TikTok Spark Ads integration.
- Meta Ads for Meta ad accounts, with the Facebook Page and Instagram account your brand advertises as. See the Meta Ads integration.
Owners and admins connect ad accounts. Members and above create, pause, resume and edit ads, and ask creators for permission. Viewers can read every tab. Creators have no access to the Ads area.
Which ads show up
The table lists:
- every ad created in viral.app, whatever happens later to the post's tracking or the ad account's syncing;
- ads created in Ads Manager on posts you track, from ad accounts whose syncing is on.
Ads on posts you don't track are left out, because viral.app has no creator or video analytics for them. A notice beside the title counts them, for example "12 other ads in your ad accounts run on posts you don't track", so a total lower than Ads Manager's explains itself. Track the creator's account and their ads appear. Turning syncing off for an ad account under Integrations hides its Ads Manager ads, from the table and the totals, without deleting anything.
An ad you create shows up right away as Syncing, and its numbers fill in once a sync returns it. If a later sync still doesn't return it, its tooltip asks you to check the ad in the network's Ads Manager, for example because the network rejected it; a row the network never returns drops off seven days after the create. On an ad account with syncing off, an ad you created stays listed but is no longer measured or updated.
Each row shows the network, video, ad, status, goal, spend, results, cost per result, paid views, impressions, schedule and source. The ad account, clicks, CTR, daily budget and last active day are a column toggle away. Money is in the ad account's own currency. For very large ad accounts the page holds 2,000 ads, those created in viral.app first, then the most recently active; a note under the table says so, and the totals, search and sorting cover those ads only.
KPI strip
The tiles above the table are Ad Spend, Impressions, Conversions, CPM, Paid Views, CTR, Cost / Conversion and Active Ads. They total the ads that match your filters and date range.
- Ad Spend converts every ad account's spend into your workspace's default currency at today's rates. Hover it for the amounts per currency.
- Conversions counts down-funnel results only: installs, app events, pixel conversions and leads. Video views, reach and clicks stay in each ad's Results.
- Cost / Conversion divides the spend of the ads that count conversions by those conversions.
- Paid Views counts the video plays the ads delivered, the paid share of each video's views in analytics.
- Active Ads counts the ads delivering right now, out of every ad in the filter.
Filters and statuses
- The search box matches the ad name, ad ID, campaign, ad account, the post's caption, and the creator's handle or name.
- The network toggle narrows the table to TikTok or Meta. With neither pressed, both show.
- Status, Goal and Source (Created in viral.app or Ads Manager) filter the rows, each with its count.
- The date range (Any time by default) keeps the ads that delivered in it and sums their numbers over those days. An ad still
Syncingstays listed whatever the range.
Both networks report their own delivery states. viral.app folds them into one set; hover a status for the network's own detail.
Goals and results
Every ad has a goal: what the network optimizes its delivery for. For an ad created in viral.app it is the goal you picked; for one created in Ads Manager, viral.app reads it from the campaign objective, and an objective it does not map counts as Video Views.
Results counts the unit that follows the goal, and Cost / Result divides the spend by those results. A cost under one unit of the currency shows up to four decimals, so a view that costs fractions of a cent never reads as zero.
Reach doesn't add up across days: one person reached on Monday and again on Tuesday is still one person. With a date range set, a reach ad shows no result; clear the range to see its lifetime reach.
Other lifetime figures are summed from the days viral.app has loaded. On Meta those start up to two years before you connected the ad account; on TikTok they go back to the ad account's creation, or two years when TikTok doesn't report it. An older ad can total less here than in Ads Manager.
Ad details
Click a row, or Show Details in its menu, to open the ad's sheet:
- Tiles: Spend, Results, Cost / Result, Impressions, Paid Views, CPM, Clicks and CTR, over the selected dates or the ad's lifetime.
- Metrics: a daily chart of up to four metrics, Per day or Cumulative.
- Details: the ad account, campaign, source, goal and optimization event, result unit, schedule, daily budget, last active day, and the network's detail behind the status.
The numbers are synced from the network once a day. The ad's menu, on the row's ⋮ button, a right-click, or in the sheet, also opens the ad in TikTok or Meta Ads Manager, opens the video, starts Create another ad from this post, and copies IDs and URLs.
Pause, resume and edit
Ads you created in viral.app get controls in their menu, for members and above. Ads created in Ads Manager stay read-only here: change those in Ads Manager.
- Pause Ad switches the ad off. The network stops delivery within minutes.
- Resume Ad switches the ad's campaign and its ad set (Meta) or ad group (TikTok) back on first, then the ad, so a campaign paused in Ads Manager can't hold it back.
- Edit Budget & End Date changes the Daily Budget, from the network's next delivery day, and the Last Delivery Day, a calendar day in the ad account's timezone up to a year ahead. A later last delivery day also restarts an ended ad.
viral.app refuses a resume or an edit when the ad account's syncing is off (the views the ad buys would not be measured), when another ad shares the campaign, ad set or ad group (for example one duplicated in Ads Manager: change it there), and on TikTok when the new end date passes the creator's permission. Deleted ads and ads archived in Meta can't run again. Meta refuses a second status change within about 30 seconds; wait a minute and try again.
The same controls are in the API for ads created through viral.app: POST /api/v1/integrations/ads/{tiktok|meta}/ads/{adId}/status and PATCH /api/v1/integrations/ads/{tiktok|meta}/ads/{adId}, where {adId} is the network's ad ID as GET /api/v1/ads lists it. The API reference has every field.
Paid and organic views
Once a post runs as an ad, its public view count includes the plays you paid for. With an ad account connected, viral.app splits each boosted post's views into organic and paid views across analytics, and view-based campaign payouts count organic views only. The TikTok Spark Ads integration and Meta Ads integration explain how each network's split works.