Back to Blog
TikTok

TikTok Creator Fund vs TikTok Shop: Where the Money Actually Is

December 12, 2025
6 min read
S
By SociaVault Team
TikTokMonetizationCreator FundTikTok Shop

TikTok Creator Fund vs TikTok Shop: Where the Money Actually Is

For years creators chased raw views, assuming views equal income. The math says otherwise. View-based payouts on TikTok have always been tiny — the old Creator Fund paid somewhere around $0.02–0.04 per 1,000 views, so a million views might net forty bucks. (TikTok has since largely replaced that fund with the Creator Rewards Program, which pays more but only for qualifying longer videos.) Meanwhile a TikTok Shop affiliate can clear $5–20 on a single sale. One conversion can out-earn a viral video.

You can see this gap in public data. This guide builds a rough revenue estimator that compares a creator's view-based income against their Shop income, so you can see — for any creator — where the money is really coming from. Big honest caveat up front: these are estimates built on public numbers and assumptions, not the creator's actual bank statement. Treat the output as a directional comparison, not accounting.

Step 1: Estimate view-based revenue

Pull recent videos, sum the views, and apply a conservative RPM (revenue per 1,000 views).

const API_KEY = process.env.SOCIAVAULT_API_KEY;
const BASE = "https://api.sociavault.com/v1";
const RPM = 0.03; // conservative $/1,000 views — adjust to your assumption

async function viewRevenue(handle) {
  const res = await fetch(
    `${BASE}/scrape/tiktok/videos?handle=${handle}&amount=30`,
    { headers: { "x-api-key": API_KEY } },
  );
  const json = await res.json();
  if (!json.success) return { views: 0, est: 0 };

  const videos = json.data.aweme_list || [];
  const views = videos.reduce(
    (sum, v) => sum + ((v.statistics || {}).play_count || 0),
    0,
  );
  return { views, est: (views / 1000) * RPM };
}

Note the field path: views live at aweme_list[].statistics.play_count, not on a top-level stats object. That's the single most common mistake people make scraping TikTok videos.

Step 2: Estimate Shop revenue

Pull the products the creator is selling and apply an assumed commission rate. The shop products endpoint takes the shop url and paginates with a cursor.

async function shopRevenue(handle, commission = 0.1) {
  const res = await fetch(
    `${BASE}/scrape/tiktok-shop/products?url=${encodeURIComponent("https://www.tiktok.com/@" + handle)}`,
    { headers: { "x-api-key": API_KEY } },
  );
  const json = await res.json();
  if (!json.success) return { products: 0, est: 0 };

  // Log json.data once to confirm product field names (price, sold count).
  const products = json.data.products || json.data.items || [];
  let est = 0;
  for (const p of products) {
    const price =
      parseFloat(
        String(p.price ?? p.sale_price ?? "0").replace(/[^0-9.]/g, ""),
      ) || 0;
    const sold = p.sold_count ?? p.sales ?? 0;
    est += price * sold * commission;
  }
  return { products: products.length, est };
}

I'm reading price and sold-count defensively because the shop product fields can vary — confirm them against a real response before trusting the numbers. And sold is usually lifetime sales for the product, so this estimates cumulative commission, not monthly.

Step 3: Compare

async function compare(handle) {
  const [views, shop] = await Promise.all([
    viewRevenue(handle),
    shopRevenue(handle),
  ]);

  console.log(`\n💰 @${handle}`);
  console.log(
    `📺 View-based (last 30 videos): ${views.views.toLocaleString()} views → ~$${views.est.toFixed(2)}`,
  );
  console.log(
    `🛍️ Shop (${shop.products} products, lifetime): ~$${shop.est.toFixed(2)} est. commission`,
  );

  if (shop.est > views.est && views.est > 0) {
    console.log(
      `→ Shop earns ~${(shop.est / views.est).toFixed(1)}x the view-based payout`,
    );
  }
}

compare("mikaylanogueira");

What the comparison usually shows

Run this across creators in any shopping-adjacent niche (beauty, home, gadgets) and the pattern is stark: the Shop number dwarfs the view-based number, often by 10x or more. A 100k-follower creator who sells consistently routinely out-earns a million-follower creator who only chases views. That's the real shift in the creator economy — distribution is necessary, but monetization happens through selling, not through the view counter.

Keep the honesty in view, though: RPMs vary by region and program, commission rates differ by product and brand deal, and lifetime sales aren't monthly income. Use this to understand the direction and magnitude of a creator's revenue mix, and to decide whether a creator's audience is a buying audience — not to publish someone's precise earnings.

Frequently Asked Questions

How much does TikTok pay per view?

Historically very little — the old Creator Fund paid roughly $0.02–0.04 per 1,000 views, so even a million views was around $20–40. TikTok's newer Creator Rewards Program pays more but only for qualifying videos over a minute. Either way, view-based payouts are small compared to selling products via TikTok Shop.

Does TikTok Shop really pay more than the Creator Fund?

For creators with a buying audience, almost always yes. A single affiliate sale can pay several dollars in commission, so even modest sales volume tends to out-earn view-based payouts by a wide margin. The estimator in this guide lets you see the ratio for a specific creator.

Can you see a TikTok creator's exact earnings?

No. You can estimate revenue from public data — view counts with an assumed RPM, and product sales with an assumed commission — but these are directional estimates, not the creator's actual income. Real earnings depend on private factors like brand-deal rates, exact commission terms, and program eligibility.

Where do views live in the TikTok video data?

In each video's statistics object as play_count (along with digg_count for likes, comment_count, and share_count). A common error is looking for a top-level stats.playCount — for the videos endpoint, it's aweme_list[].statistics.play_count.

Are the Shop sales numbers monthly or lifetime?

Product "sold" counts are typically cumulative lifetime sales, not a monthly figure. So a commission estimate built on them reflects total historical earnings for those products, not current monthly income. Keep that in mind when interpreting the comparison.

Should creators abandon views entirely?

No — reach is what makes selling possible. The takeaway isn't "ignore views," it's "don't mistake views for income." Build the audience, then monetize it through Shop or brand deals rather than relying on view-based payouts alone.

The bottom line

Views are distribution; sales are revenue. Estimate both from public data and the gap is usually obvious — Shop income tends to dwarf view payouts for any creator with a buying audience. Just hold the numbers loosely: they're directional estimates, not someone's paycheck.

Want to analyze a creator's revenue mix? Start free with SociaVault with 50 credits.

Found this helpful?

Share it with others who might benefit

Ready to Try SociaVault?

Start extracting social media data with our powerful API. No credit card required.