Product

Everything a TikTok buyer checks, in one place

Freshlytics is not a generic multi-channel dashboard. Every screen is built around the way TikTok Ads actually delivers: fast creative cycles, uneven pacing and decisions that have to be made during the day, not in the Monday report.

01 — Reporting

Cross-account reporting that agrees with itself

Freshlytics pulls campaign, ad group, ad and creative level reporting for every connected ad account and normalizes it into one model. Targets, naming conventions and currency conversion are applied the same way everywhere, so two accounts can finally be compared in one table.

  • Ad account, campaign, ad group, ad and creative breakdowns
  • Spend, impressions, clicks, CTR, CPM, CPC, conversions, CPA, ROAS and video engagement metrics
  • Your own target CPA and ROAS per campaign, applied across accounts
  • Multi-currency workspaces with a single reporting currency
  • Saved views per client, vertical, buyer or geo
  • Data refreshed every 15 minutes, with the last sync time always visible
app.freshlytics.site/workspace/overview
Workspace overview
6 ad accounts · last sync 4 min ago · last 7 days
Export report
Spend
$48,210
+12.4%
CPA
$21.06
−8.1%
ROAS
2.41×
+0.19
At risk
7
+3
Spend vs. CPA Spend CPA
Ad groups needing attentionranked by wasted spend
Ad groupSpendCPAFreq.Signal
US_BroadA_25-44Nova Skincare · ABO $4,120$38.103.8Creative fatigue
UK_Lookalike_2%Nova Skincare · CBO $2,860$19.401.9Scale +20%
DE_Retarget_30dKite Apparel · ABO $1,940$44.804.6Overdelivery
US_Interest_FitnessKite Apparel · CBO $1,510$22.902.1Learning phase
CA_Broad_18-34Halo Supp. · ABO $1,180$51.202.7CPA drift +64%

02 — Creatives

Creative fatigue, measured per creative

Account-level averages hide the one asset that is dragging the whole campaign down. Freshlytics scores each creative against its own history, so decline is obvious while there is still budget left to reallocate.

  • CTR and CVR trends compared with the creative's own first-week baseline
  • Frequency growth, 3-second and 6-second hold rates, average watch time
  • Cost-per-result drift with a significance threshold, so small samples never trigger a verdict
  • Duplicate detection: the same asset across ad groups and accounts is scored as one creative
  • Replacement tracking — did the new hook actually beat the one it replaced?
  • Thumbnails and creative IDs so you can find the file in your own library
app.freshlytics.site/creatives/fatigue
Creative fatigue radar
28 active creatives · hook retention & CTR decay, 14-day window
Rotate 4 ads
CreativeSpendCTR trend3s holdVerdict
hook_gym_v4.mp4live 19 days$9,340 21% −38%Replace now
ugc_review_02.mp4live 11 days$6,720 29% −11%Refresh hook
demo_split_a.mp4live 4 days$3,110 41% +16%Scale
static_offer_b.jpglive 26 days$2,480 18% −44%Replace now

03 — Pacing

Hourly pacing, not daily hindsight

Daily totals tell you what happened. Hourly pacing tells you what is about to happen, while you can still change it.

Spend curve vs. target

Every ad group is charted against the pace it should be holding to land on its daily budget, with the projected end-of-day spend updated on every sync.

Overdelivery windows

Freshlytics highlights the hours where an ad group burns budget without converting, and the converting hours it never reaches because the budget is already gone.

Reallocation suggestions

Ad groups that share a goal are compared on marginal cost per result, with concrete suggestions for moving budget between them.

Budget headroom

See which ad groups are budget-capped while still hitting target CPA — the cheapest scaling decisions you can make today.

Weekend and daypart patterns

Recurring patterns per account and per vertical, so scheduling changes are based on your own history rather than folklore.

Pacing alerts

Get told when an ad group has spent an unusual share of its budget before a chosen hour, with the numbers that triggered it.

04 — Automation

Rules that behave like a careful buyer

Rules read the same normalized data you see on screen. They run on a schedule, they explain themselves, and every guardrail exists because unattended automation on ad platforms is how accounts get wrecked.

  • Conditions on any metric, over any window, with minimum spend or minimum conversions required
  • Actions: adjust budget by percent or amount, change bid, pause or resume, or notify only
  • Approval mode — nothing is written back until a human confirms it
  • Dry run over the last 7–30 days before a rule is ever enabled
  • Rate limits per ad group and per account, protected entities, and quiet hours
  • Complete audit log: what changed, when, which rule, and the metric values behind it
app.freshlytics.site/rules/new
Rule: protect CPA on scaling ad groups
checked every 15 minutes · requires approval before changes are sent
Save rule
Scope 6 ad accountsstatus = ACTIVEobjective = CONVERSIONS
If cost_per_conversion>target × 1.35 overlast 2 days
And spend3 × target CPA (statistically meaningful)
And learning_phase=finished
Then reduce budget by 25%notify Slack #tiktok-alerts
Guard max 1 change per ad group / 24hnever pause above 2.0× ROAS
Dry run · last 7 dayswhat this rule would have done
4 budget reductions on ad groups above target CPA
Estimated saved spend $2,840 · no ad group with ROAS > 2.0× touched
simulated
2 changes blocked by the 24h guard
US_BroadA_25-44 was already adjusted 6 hours earlier
simulated

05 — Alerts

The message arrives while it still matters

Alerts are generated from the same sync that powers the dashboards, so a spend spike found at 10:52 reaches your phone at 10:53 — not in tomorrow's summary.

  • Spend spikes and pacing anomalies against each ad group's own pattern
  • CPA and ROAS drift beyond your thresholds, with a significance guard
  • Ad rejections and delivery problems that quietly cut an ad group down to one creative
  • Learning-phase entries and exits
  • Zero-delivery and zero-conversion watchdogs
  • Slack, Telegram, email and webhooks, with per-user routing and quiet hours
app.freshlytics.site/alerts
Alerts
delivered to Slack, Telegram and email
Configure
Spend spike: US_BroadA_25-44 burned 68% of daily budget before 11:00
$2,040 of $3,000 · CPA $38.10 vs $24.00 target · suggested: cap hourly pacing
12 min ago
3 ads rejected in Kite Apparel — creative review
Ad group DE_Retarget_30d is now delivering on 1 of 4 creatives
1 h ago
UK_Lookalike_2% held CPA below target for 5 days at rising spend
Suggested: +20% budget, keep bid strategy unchanged
3 h ago
Learning phase finished: US_Interest_Fitness
52 conversions in 7 days · results are now comparable to your benchmarks
yesterday

06 — Launch

Build a hundred ad groups without opening Ads Manager

The campaign builder turns a matrix — accounts × audiences × creatives — into a batch of campaigns, ad groups and ads created through the TikTok Marketing API. Everything is a draft until you press publish.

  • Upload videos and images once, reuse them across accounts and ad groups
  • Templates for objective, optimization event, bid strategy, schedule and placements
  • Naming conventions applied automatically, so reporting stays readable a month later
  • Pre-flight validation: budgets, currencies, account limits, duplicate names, creative specs
  • Publish in one action, with a per-entity result log and safe retry on partial failures
  • Clone an existing winner into new geos or audiences without rebuilding it by hand
app.freshlytics.site/launch/new-batch
Bulk launch · 24 ad groups
3 ad accounts · 8 creatives × 3 audiences · draft
Review & publish
Accounts Nova Skincare USKite Apparel UKHalo Supp. DE
Objective CONVERSIONSpixel: Nova_Webevent: COMPLETE_PAYMENT
Budget $120 / day per ad groupbid: lowest cost
Creatives 8 videos uploadedauto thumbnailidentity: Nova Skincare
Naming {geo}_{audience}_{creative}_{date}
Pre-flight checksrun before anything is created
24 ad groups validated against account limits and currency
No naming collisions · total daily budget $2,880
passed
2 creatives are below the recommended resolution
hook_gym_v6.mp4, ugc_review_09.mp4 — publish anyway or replace
warning
Draft saved — nothing has been sent to TikTok yet
Publishing creates campaigns, ad groups and ads via the Marketing API
now

07 — Catalogs

Product catalogs that stop breaking quietly

Catalog problems rarely announce themselves: a feed stops updating, a few hundred products go out of stock, images get rejected, and the campaign keeps spending on what is left. Freshlytics watches the catalog the same way it watches delivery.

  • Create and sync catalogs and product feeds through the official API
  • Scheduled feed refresh with a diff of what changed since the last sync
  • Rejection reasons per product, grouped so you fix a cause rather than 200 rows
  • Out-of-stock and price-change monitoring, with alerts before delivery collapses
  • Product set coverage: which sets a product belongs to and which ad groups use them
  • Catalog health tied back to spend — what the broken products were actually costing
app.freshlytics.site/catalogs/nova-eu
Catalog: Nova EU · 4,812 products
feed synced 26 min ago · 41 products rejected · 3 feeds
Re-sync feed
In catalog
4,812
+126
Active
4,640
96.4%
Rejected
41
+9
Out of stock
131
−18
ProductPriceStockSetsStatus
Hydra Serum 30mlSKU NS-1042 €29.904123Active
Night Repair CreamSKU NS-2210 €41.00882Active
Retinol Booster 15mlSKU NS-3381 €34.5001Out of stock
Clay Mask DuoSKU NS-4417 €22.002192Image rejected
Vitamin C PackSKU NS-5502 €54.00634Syncing

08 — Audiences, events and leads

The pieces around the campaign

A campaign is more than ad groups. Freshlytics manages the objects it depends on, with the same audit log and the same permissions model.

Audiences

List, create and refresh custom and lookalike audiences for targeting in a launch batch. Customer identifiers are hashed before they are sent to TikTok, and are never used for any other customer of ours.

Pixels and conversions

Read your pixels and their events so a batch points at the right optimization goal, and manage custom conversions used as campaign objectives.

Server-side events

Forward conversions from your own backend or CRM, so optimization sees the results the pixel misses — refunds, approved orders, qualified leads.

Lead forms

Pull submissions from lead generation ads and deliver them to your CRM or a webhook within minutes instead of a daily CSV export.

Ad comments

Read and moderate comments on your own ads — hide spam, pin the useful ones, reply where it matters. Organic content is never touched.

Delivery diagnostics

Rejection reasons, learning status and delivery blockers pulled straight from the API, so an alert can tell you why an ad group stopped rather than just that it did.

09 — Workspace

Built for teams that run other people's money

Roles and permissions

Owner, admin, buyer and read-only client access. Client users see only the accounts you assign, and never your other customers.

Multi-client workspaces

Group ad accounts by client or brand, with separate targets, alert routing and reporting currency per group.

Scheduled reports

Daily or weekly PDF and CSV summaries per client, sent automatically to the people who ask for them every Monday.

Exports and webhooks

CSV, Google Sheets and JSON webhooks into your own warehouse, tracker or attribution stack. No lock-in on your own numbers.

Audit log

Every change written back to TikTok, every rule edit and every export is recorded with user, timestamp and reason.

Historical depth

Thirteen months of history so you can compare this quarter with the same period last year, not just with last week.

See it running on your own accounts

During the closed beta we connect your ad accounts with you on a call, so the first thing you see is your own data — not a demo workspace.