We just released our native n8n integration!» Try now
OnlyFans API
Guides

Meta Pixel-Like Revenue Tracking for OnlyFans Media Buyers

Track fans and revenue generated from your media buying campaigns based on Country, Creative, UTM, Click ID, or anything else. Integrate directly with Meta Pixel or set up your own Postbacks. 10x your media buying volume from most accurate revenue attribution in the space.

Imagine you're running Meta Ads for a creator and you need to know which ad creative, which ad set, or which campaign is actually making money. Traditional pixels can miss events, get blocked by ad blockers, or lose data when users switch devices. Smart Links solve all of that with server-side tracking that never fails.

Think of a Smart Link as your one-stop tracking URL. You use it in your ads, and it automatically tracks everything: who clicked, who subscribed, and every dollar they spend—forever.

Here's what a Smart Link looks like:

https://trk.of-traffic.com/go/XXXXXXXXXX?ecid={{YOUR_EXTERNAL_CLICK_ID}}

When someone clicks this link, here's what happens behind the scenes:

  • We record the click instantly (no JavaScript needed)
  • We create a unique connection between that click and the fan
  • We track every subscription and transaction that fan makes
  • We send you postbacks in real-time so you can optimize your campaigns

The best part? No pixels, no JavaScript, no lost events. It all happens server-side, so it's impossible to block or miss.


Who This Is For

Media buyers who are tired of guessing which ads are profitable. Whether you're running Meta Ads, Google Ads, native traffic, push notifications, or adult traffic—Smart Links give you the accuracy you need to scale confidently.

Agencies managing multiple creators and dozens of campaigns. You need to know which creator's campaigns are performing, which traffic sources convert best, and where to double down your ad spend.

Developers and BI teams who need clean, reliable data. Smart Links provide deterministic attribution that you can trust for reporting, optimization, and building custom dashboards.


Let's walk through a real scenario:

SELECT AGENCY is running Meta Ads for a creator named Madison. They create a Smart Link and use it as the destination URL in their Meta Ads campaign.

  1. A user named John sees SELECT AGENCY's ad on Facebook and clicks it
  2. John gets redirected through trk.of-traffic.com (this happens in 50-80ms—so fast he won't even notice)
  3. OnlyFans API generates a unique subscription link just for John (this could be a free trial or paid subscription, depending on the creator's settings)
  4. John subscribes to Madison's page and starts spending money on the creator
  5. Every transaction gets tracked and sent to SELECT AGENCY via postbacks, so they know exactly which ad brought in John and how much he's worth

Real-world performance:

  • Redirect happens in 50-80ms (faster than most people can blink)
  • 99.98% uptime means it works when you need it
  • No JavaScript means it works even when ad blockers are active

Here's the basic format:

https://trk.of-traffic.com/go/{SMART_LINK_ID}?ecid={{EXTERNAL_CLICK_ID}}

You can replace the {{EXTERNAL_CLICK_ID}} parameter with any external click ID you want to track. This could be from Meta, Google Ads, or your own tracking system.

Real Example

Let's say SELECT AGENCY has a creator called Madison who wants to track her Meta Ads campaign. They create a Smart Link in the dashboard and get this ID: 01KE2JN9RBPAZNYSXKMYHR4JP2

In Meta Ads, they set up their campaign to pass the click ID as a parameter. Their final tracking URL looks like:

https://trk.of-traffic.com/go/01KE2JN9RBPAZNYSXKMYHR4JP2?ecid={{ad.id}}

When a user clicks the ad, Meta's system automatically replaces {{ad.id}} with the Ad ID from their platform, so SELECT AGENCY can match conversions back to specific ads in Meta's dashboard.

Parameters

ParameterRequiredDescription
SMART_LINK_IDYour unique Smart Link ID. Find it in the Smart Links dashboard after you create one
ecidAny external click ID you want to track. This could be from Meta, Google Ads, or your own tracking system

Attribution Rules (What You Need to Know)

Click Deduplication & Fraud Prevention

The problem: Some users (or bots) might click your ad multiple times, inflating your click numbers and making it look like you're getting more traffic than you actually are.

The solution: Smart Links use browser fingerprinting to detect and prevent double-clicks. Each legitimate click gets a globally unique click_id that you can use to track that specific user's journey.

Real example: If John accidentally double-clicks SELECT AGENCY's ad, we'll only count it as one click. But if John clicks, then his friend Mike clicks from a different device, we'll count both as separate clicks.

Conversion Window

How it works: When someone clicks your Smart Link, they have 90 minutes to subscribe. If they subscribe within that window, the conversion is attributed to your click.

Why this matters: This prevents old clicks from getting credit for new subscribers. If someone clicked your ad last week but only subscribes today after seeing a different ad, the attribution goes to the most recent click.

Real scenario: John clicks SELECT AGENCY's ad at 2:00 PM. He browses around, checks out the creator's social media, and finally subscribes at 2:45 PM. That conversion is attributed to that ad click. But if John waits until 3:30 PM (more than 90 minutes), the attribution window has closed.

Click → Fan Binding

Once a fan is bound to a click, they stay bound unless something significant changes:

  • They switch to a different browser or device
  • The ?ecid= parameter changes

What this means: If John subscribes after clicking your Smart Link, all of his future spending is attributed to that original click—even if he comes back days or weeks later.

The rule: Attribution always goes to the most recently clicked Smart Link.

Real-world scenario:

  • Monday: John clicks SELECT AGENCY's Smart Link A (Meta Ads campaign)
  • John subscribes → attributed through the Smart Link A
  • John spends $50 over the next two weeks → all attributed through the Smart Link A
  • Two weeks later: John clicks SELECT AGENCY's Smart Link B (Google Ads campaign)
  • From that moment forward, all of John's spending is attributed through the Smart Link B

Smart Links are creator-scoped, meaning attribution rules only apply within the same creator's account. If John clicks a Smart Link for Creator A (Madison), then later clicks a Smart Link for Creator B (Sarah), each creator's attribution is tracked separately—clicking Creator B's link doesn't affect attribution for Creator A.


Lifetime Revenue Attribution (The Game Changer)

This is where Smart Links really shine. Once a fan subscribes through your Smart Link, every dollar they spend gets attributed to your original click—forever.

Real Example Timeline

Let's follow John's journey:

Monday, Jan 1 at 12:00 PM
  → John clicks SELECT AGENCY's Smart Link A (Meta Ads / Madison / Creative #1)
  
Monday, Jan 1 at 12:10 PM
  → John subscribes to Madison's page ($10/month)
  → Attribution: Smart Link A
  
Tuesday, Jan 2 at 3:00 PM
  → John tips $25 for a PPV message
  → Attribution: Smart Link A (still!)
  
Monday, Jan 15 at 12:00 PM
  → John's subscription renews ($10/month)
  → Attribution: Smart Link A (yes, renewals count too!)
  
Monday, Jan 20 at 2:00 PM
  → John clicks SELECT AGENCY's Smart Link B (Google Ads / Madison / Creative #2)
  → Attribution switches to Smart Link B
  
Monday, Jan 20 at 2:05 PM
  → John tips $15
  → Attribution: Smart Link B (newest click wins)

Why this matters: SELECT AGENCY can see that their Meta Ads campaign (Smart Link A) generated $45 in revenue from John, even though he only subscribed once. This gives them the true lifetime value (LTV) of their ad spend, not just the initial subscription.


Events & Postbacks (Getting Your Data)

Smart Links send you real-time notifications when important things happen:

  • new_subscriber - Someone who clicked your link just subscribed
  • new_transaction - A subscriber made a purchase (tip, PPV, renewal, etc.)

How postbacks work:

  • They're GET requests (simple URL calls)
  • They're fire-and-forget (we send them, but don't wait for a response)
  • They might arrive out of order (so make sure your system can handle that)
  • Each event has a globally unique click_id so you can match it to the original click

Setting Up Postbacks: Real Examples

Example 1: Meta Pixel Integration

SELECT AGENCY wants to send conversions back to Meta so they can optimize their campaigns. They set up a postback URL like this:

https://www.facebook.com/tr?id=YOUR_PIXEL_ID&ev=Purchase&cd[value]={amount_gross}&cd[currency]=USD&external_id={external_click_id}

When someone subscribes, Meta gets notified with the exact revenue amount, and SELECT AGENCY can see it in their Meta Ads dashboard.

Example 2: Custom Tracking System

Mike runs his own tracking system and wants to log all conversions. He sets up a postback URL:

https://tracking.mikeads.com/webhook?click_id={external_click_id}&amount={amount_net}&fan_id={fan_onlyfans_id}&conversion_type={conversion_type}

His system receives the data and stores it in his database for reporting.

Example 3: Slack Notifications

An agency wants to get notified in Slack when big conversions happen. They set up:

https://hooks.slack.com/services/YOUR/WEBHOOK/URL?text=New+{conversion_type}+from+{creator_onlyfans_username}+%24{amount_gross}

Now they get instant notifications when subscribers convert.

Available Postback Variables

You can use these variables in your postback URL to get the data you need:

Creator Information

VariableDescriptionExample
{ofapi_account_id}The Creator's OnlyFans API Account IDacct_XXXXXXXXXXXXXXXXXXXXX
{creator_onlyfans_id}The Creator's OnlyFans User ID1234567890
{creator_onlyfans_username}The Creator's OnlyFans Usernamemadison420ivy
{creator_onlyfans_name}The Creator's Profile NameMadison Ivy
VariableDescriptionExample
{smart_link_id}The Smart Link ID01KE2JN9RBPAZNYSXKMYHR4JP2
{smart_link_name}The Smart Link Name (you set this when creating the link)Meta Ads / Madison / Creative A

Conversion Details

VariableDescriptionExample
{conversion_type}The type of conversionnew_subscriber or new_transaction
{click_id}The unique click ID from when they first clicked01ke2ndttgbvnmaxegbyhr9z3v
{external_click_id}The external click ID you passed in the URL (via ?ecid=)meta-click-12345 or google-ads-67890
{conversion_at}When the conversion happened (UTC)2026-01-04T04:40:40+00:00
{amount_gross}The total amount before OnlyFans takes their cut10.00 (for a $10 subscription)
{amount_net}The amount after OnlyFans takes their 20% cut8.00 (your actual revenue)

Fan Information

VariableDescriptionExample
{fan_onlyfans_id}The Fan's OnlyFans User ID999999999
{fan_onlyfans_username}The Fan's OnlyFans Usernamejohndoe123
{fan_onlyfans_name}The Fan's Profile NameJohn Doe

Transaction Details (only for new_transaction events) ⚠️

VariableDescriptionExample
{transaction_type}What kind of transaction it wasnew_subscription, recurring_subscription, tip, post, message, stream, or other
{transaction_description}A description of the transactionPayment for message from <a href="https://onlyfans.com/u999999999">John Doe</a>
{transaction_status}The current status of the transactionloading, done, pending_return, or undo

Financial Details (The Money Stuff)

Currency: All amounts are in USD

Precision: All amounts are rounded to 2 decimal places

Understanding Gross vs Net:

  • {amount_gross} = The total amount the fan paid (before OnlyFans takes their cut)
  • {amount_net} = The amount the creator actually receives (after OnlyFans takes their 20% cut)

Real example:

  • John subscribes for $10/month
  • {amount_gross} = 10.00
  • {amount_net} = 8.00 (OnlyFans keeps $2, creator gets $8)

Why this matters: When you're calculating ROI, you probably want to use {amount_net} since that's what the creator actually earns. But if you're tracking total customer value, {amount_gross} shows the full amount the fan spent.


Dashboard & Reporting (See Your Results)

The Smart Links dashboard gives you everything you need to understand your campaign performance:

Key Metrics:

  • Clicks - How many people clicked your link
  • Subscribers - How many of those clicks converted to subscribers
  • Revenue - Total revenue generated (you can toggle between gross and net)
  • CR % - Conversion rate (subscribers ÷ clicks)
  • ARPS - Average Revenue Per Subscriber

Reports:

  • Clicks Report - See when clicks happened with a time-series chart and detailed table
  • Conversions Report - See when conversions happened with revenue breakdowns

Real use case: SELECT AGENCY runs three different ad creatives and wants to know which one is most profitable. They create three Smart Links (one for each creative) and compare them in the dashboard. They can see that Creative A has a 3.2% conversion rate and $45 ARPS, while Creative B has a 2.1% conversion rate and $32 ARPS. They double down on Creative A.


Common Use Cases

Use Case 1: Tracking Multiple Ad Creatives

The problem: You're testing 5 different ad creatives and need to know which one converts best.

The solution: Create 5 Smart Links (one for each creative) and use them as destination URLs in your ad platform. Compare conversion rates and revenue in the dashboard.

Use Case 2: Tracking by Traffic Source

The problem: You're running ads on Meta, Google, and native networks. Which source is most profitable?

The solution: Create separate Smart Links for each traffic source. Name them clearly (e.g., "Meta Ads", "Google Ads", "Native - TrafficJunky") so you can easily compare in reports.

Use Case 3: Tracking by Country or Campaign

The problem: You want to know if your US campaigns perform better than your UK campaigns.

The solution: Create Smart Links with descriptive names like "Meta Ads - US" and "Meta Ads - UK". Use the ?ecid= parameter to pass additional data like campaign ID or ad set ID from your ad platform.

Use Case 4: Agency Reporting

The problem: You manage 10 creators and need to show each one which campaigns are working.

The solution: Create Smart Links with creator names in them (e.g., "Meta Ads - Madison", "Meta Ads - Sarah"). Use the dashboard filters to show each creator their specific performance.


Summary

Smart Links give you server-side, pixel-perfect attribution that you can actually trust. No more guessing which ads are profitable, no more lost conversions, no more incomplete data. Just clean, accurate tracking that helps you scale your media buying with confidence.

Whether you're a solo media buyer or an agency managing dozens of campaigns, Smart Links provide the accuracy you need to make data-driven decisions and maximize your ROI.

On this page