Understand reports and costs
Read Shop and Ads reports and review your daily contribution estimate.
Open dashboardGoal: compare dated business reports and estimate contribution from complete daily inputs.
Shop reports
- Sign in with the intended Shop. Open the dashboard or
/shop. - In Your Shop reports, choose a date offered by the date picker and select Refresh report.
- Check report date, retrieval time, freshness and report history. Shop dates use the Shop's timezone; retrieval/history times are shown separately.
- Compare the same reporting day with Seller Center. A legitimate zero, a missing value, an empty response and a failed request mean different things. Current-day reports can be incomplete.
Saved reports are historical snapshots. Refresh failures do not establish zero sales. If report refresh is paused, saved reports can remain visible. Use the displayed wait message if a request is already running or was recently submitted.
Ads reports, when available
- On the dashboard, find Your TikTok Ads. If enabled, confirm that the advertiser you select belongs with this Shop and choose Connect TikTok Ads.
- If this advertiser is already attached to the configured test sandbox, select the sandbox-move checkbox only when you want to remove its sandbox Ads token and saved Ads reports. The sandbox Shop stays connected. A fresh TikTok authorization must verify the advertiser before any deletion. Real-Shop conflicts cannot be moved this way.
- Authorize exactly one advertiser you manage. Reconnect with the same advertiser when requested.
- Choose an Ads report date and refresh. Allow five minutes between refreshes.
- Read campaign IDs, spend, impressions, clicks and conversions alongside the report currency and advertiser timezone. Compare against Ads Manager for the same date boundaries.
Ads conversions are not necessarily Shop orders. Shop ROAS uses campaign-attributed Shop revenue from the Ads report, never total Shop sales. Empty campaign rows do not prove there was no activity outside that report. Availability depends on the current beta configuration.
Enter daily costs
- Under Costs & estimated contribution, choose the Shop day and describe its reporting-day basis, such as your statement and timezone.
- Enter complete same-day USD net revenue after refunds and excluding sales tax, cost of goods, fees, fulfillment, allocated ad spend and other variable costs.
- Enter zero only when a value is known to be zero. Ad spend here is your allocation, not an automatically joined Ads total. Negative revenue can represent refund adjustments.
- Confirm all totals refer to the same Shop, currency and reporting day, then choose Save daily costs.
- Review the saved date, basis and estimated contribution. Use Saved days to revisit entries.
Estimated contribution equals entered net revenue minus entered variable costs. Margin is shown only for positive net revenue. The estimate excludes fixed overhead and income tax; it is not provider-verified net profit. No budget, bid, pause or creative changes are executed.
Success check: each report is reconciled against its own source and timezone, and the contribution estimate agrees with your complete cost records.
Campaign insights and daily brief
The dashboard brief uses your latest saved Ads reporting date. Connect an advertiser and refresh yesterday’s report, then the preceding day, using the advertiser timezone. Allow five minutes between Ads refreshes. Reloading the dashboard after a refresh rebuilds the brief; opt-in automatic reporting refreshes recent days while you are away.
Campaign rows show click-through rate, cost per click, and cost per reported conversion. Missing metrics, empty reports, zero denominators, and campaigns absent from the comparison day stay unavailable. Conversions are TikTok-reported events, not necessarily purchases or Shop orders.
Cost signals compare consecutive completed reporting days for the same advertiser, currency, and timezone. Both snapshots must have been retrieved after the day ended. Current signals require yesterday’s report retrieved within 48 hours, at least 20 conversions on each day, and a nonzero prior cost per conversion. A rise of at least 20% prompts review; a fall of at least 20% highlights improving recorded cost. These are screening rules, not statistical confidence or a profitability verdict. Check conversion objectives, attribution settings, and delayed attribution before acting.
Signals never execute budget increases or pauses. Campaign ROAS, margin-based scenarios and ad-level fatigue screening are available with sufficient data. Shop totals and seller-entered daily costs remain separate from campaign reporting.
Campaign growth insights
New refreshes request total_onsite_shopping_value and onsite_shopping at campaign level. ROAS is attributed Shop gross revenue divided by spend in the same advertiser/date/currency report; total ROAS is total revenue / total spend, never a mean of ratios. Old snapshots and missing metrics remain unavailable until refreshed. Shop-created Product/LIVE GMV Max campaigns are excluded by TikTok's standard Auction reporting endpoint. Website/app ROAS is not included.
The same refresh also requests ad-level spend, impressions, clicks and conversions, with campaign IDs. Ad pagination is validated independently. Ad-level failure marks creative reporting unavailable without losing campaign data. Refresh two complete consecutive dates to build a baseline. Fatigue is an explicitly labeled heuristic (CTR down ≥20%, CPA up ≥20%, each day ≥1,000 impressions/20 clicks/20 conversions), not TikTok's proprietary fatigue score. Freshness, currency, timezone and completed-day safeguards are inherited from the campaign brief.
Profit scaling is a per-campaign scenario using a customer-entered contribution margin before ads. Use Save margin to persist each assumption privately by seller, advertiser and campaign. Unsaved edits remain previews. Concurrent edits are rejected rather than overwritten. Inventory and attribution confirmation resets each visit. It never allocates shop-wide costs to campaigns. Break-even ROAS = 1 / margin, contribution = attributed revenue × margin − spend. A scale-review candidate requires two comparable fresh days, ≥20 Shop purchases each, positive contribution, ≥20% ROAS headroom and explicit confirmation of costs, capacity, inventory and attribution. No budget mutations occur. These thresholds are screening rules rather than statistical confidence or promised returns.
Metric definitions: https://business-api.tiktok.com/portal/docs/basic-reports-supported-metrics/v1.3
Automatic reports and campaign configuration
Enable Automatic reports to opt in. The cloud task runs daily at 09:00 America/Chicago. It refreshes the most recent calendar day completed across U.S. timezones for Shop analytics and the last three completed Ads days in the advertiser timezone, including repeated retrievals for attribution revisions. The task works while signed out, using stored provider authorizations. Disable the setting or disconnect to stop subsequent writes, including in-flight responses. Reconnect when authorization expires. A partial run preserves successful snapshots. The task processes at most ten sellers per call, with one-hour per-seller admission and existing provider/report cooldowns; the scheduled runner drains additional eligible batches.
Campaign names, operation status and budget settings come from /campaign/get/ at retrieval time. They are not historical settings for the performance date. Enabled does not guarantee delivery. Daily, dynamic daily, lifetime and unlimited campaign budgets are distinguished; ad-group budgets are not implied. Metadata failure does not erase performance data.