Keep separate rows for unpaid distribution, paid distribution and any post total whose split is unknown. Join those rows with the same creator and post IDs, then attach media spend and reporting scope to each. A creator's name on an ad does not make the resulting delivery organic. If the export cannot separate the two, report the result as blended and leave the organic figure unknown.
Here, organic means unpaid distribution. You may still have paid the creator to produce and publish the content. That creator fee belongs in your cost ledger even when media spend is zero.
Why the public post total can mislead
TikTok makes this boundary explicit. Its Spark Ads documentation says views, comments, shares, likes and follows gained through promotion are attributed to the original organic post. The post can therefore accumulate results from paid delivery while remaining the same creator post.
A larger post counter after promotion is insufficient evidence that the creator reached that audience organically. Nor should you add the paid report to that post total without checking whether the total already includes paid activity.
For Instagram campaigns, apply the same reporting discipline: identify the source and scope of each export before combining it. Do not assume a TikTok metric definition also describes an Instagram metric. This is a recommended reporting method, not a claim that both platforms expose identical breakdowns.
Give each distribution row its own identity
Create one parent record for the creative asset and one record for each publication. Under the publication, keep distribution rows with these fields:
- Creator ID, platform, post URL or ID, and creative version.
- Distribution status: organic-only, paid-only, blended or unknown.
- Ad account and ad ID where applicable, plus campaign objective and placement.
- Publication time, paid delivery start and end, report dates and time zone.
- Export name, exact metric label, metric definition and extraction time.
- Media spend, currency and a reference to separately recorded creator and usage fees.
A blank ad ID does not establish organic-only delivery. Ask the media buyer whether anyone promoted the post, including a different agency or account. If that answer is unavailable, keep the status unknown.
Capture a report before the first paid delivery when practical. Label it with its cutoff time. It documents the observed pre-promotion period; it does not predict what the post would have achieved without advertising later.
Choose comparable cutoff rules before ranking creators. The guide to choosing a reporting window helps prevent a two-day post from competing against a month-old post.
Use a split reporting table
The following is a hypothetical reporting layout. The dates and observations illustrate the method; they are not campaign benchmarks.
| Record | Period | Result to retain | Media spend | Use in the report |
|---|---|---|---|---|
| Post P17, before promotion | Sept 1-3 | Exported pre-promotion metrics | $0 | Observed unpaid-period performance, after confirming no ads ran |
| Post P17, paid ad A24 | Sept 4-10 | 600 Spark Ads paid clicks | $300 | Paid delivery performance |
| Post P17, public counter | Through Sept 10 | Displayed post total | Not applicable | Blended context; exclude from organic ranking |
| Post P17, organic-only export | Sept 4-10 | Unavailable | $0 | Unknown result; request a source-specific breakdown |
In this example, the paid cost per paid click is $300 divided by 600, or $0.50. That denominator matters. TikTok defines Spark Ads paid clicks as clicks on the CTA button and ad caption. Do not relabel them website sessions or purchases.
The $0.50 figure excludes production and usage fees. State that beside the result. Modash's whitelisting guide identifies content, usage rights and ad budget as distinct spending categories. Keep them separate in the ledger, then declare which categories each calculation includes. Use the complete campaign cost ledger when the decision concerns total program cost.
Avoid assigning the full creator fee to both the organic and paid rows and then summing them. Record shared costs once. Any allocation across those rows should carry a written rule.
Separate clicked traffic from attribution credit
Use different tagged destination links for organic placements and ads when those placements allow separate links. Keep the creator and asset identifier stable while changing the distribution medium.
For example, these hypothetical values distinguish two links for the same creative:
| Parameter | Organic placement | Paid placement |
|---|---|---|
| utm_source | tiktok | tiktok |
| utm_medium | organic_social | paid_social |
| utm_campaign | autumn_launch | autumn_launch |
| utm_content | creator17_post17 | creator17_post17 |
These are proposed naming values, not a guarantee of automatic channel classification. Google's URL tagging documentation explains how clicked UTM links identify referring campaigns. Values are case sensitive. Inspect the resulting source and medium in the report rather than trusting the URL alone. For a larger roster, use a consistent multi-creator UTM naming plan.
If paid and organic placements share one tagged link, the tag alone cannot tell you which placement produced a click. Record that limitation instead of dividing traffic by an assumed percentage.
Keep attributed outcomes in a separate section with their reporting system, event name, attribution model and lookback window. Google's attribution documentation distinguishes event-scoped credit from session-scoped traffic dimensions. Changing the reporting attribution model affects the former, while session source remains unaffected. Data-driven reporting can also assign fractional key-event credit.
Consequently, a traffic acquisition row and an attributed key-event row need separate labels. Do not add platform-attributed purchases to analytics-attributed purchases and call the sum unique orders. Without order-level reconciliation, you have no basis for assuming the sets are separate.
Request the missing split before ranking creators
Send the creator or reporting owner this checklist:
- Which post IDs and ad IDs refer to the same publication?
- Did any account promote it? Who can supply those reports?
- When did paid delivery begin and end, in which time zone?
- Does each supplied metric include paid activity, organic activity or both?
- Can you export the breakdown, including its exact metric names and definitions?
- What were media spend and currency? Where are production and usage fees recorded?
- Which destination links ran in each placement? Did they change during the campaign?
- For attributed outcomes, what event, model and window does the report use?
- Which figures are missing, and who owns the next data request?
A screenshot of a post total can document that total. It cannot supply an absent distribution split.
Only subtract paid results from a combined figure when the documentation establishes matching definitions, dates, scope and a non-overlapping partition. Otherwise, the subtraction creates an unsupported organic estimate. Even a documented split describes recorded delivery; it does not establish how many outcomes advertising caused.
Before your next creator ranking, flag every promoted post. Move unresolved totals into a blended column and send the checklist to whoever controls the ad reports. Keep those posts out of organic-only comparisons until their reporting scope is clear.



