How To Track Campaigns Without A Tracking System

Affiliate marketing can be intimidating for newcomers.

You need ads, landing pages, offers, hosting and… a tracking system. Luckily, a lot of the work isn’t that hard:

  • Affiliate networks take care of the offers
  • If you have the most basic graphic/web skills you can make ads and LPs
  • Hosting is pretty cheap and simple to set up
  • You can install WordPress with 1-click

But a tracking system costs a couple hundred bucks. And even the free ones require installation and maintenance. These costs and setups can become a roadblock for new affiliates.

But, what if I told you you can track your campaigns without a tracking system at all?

Well, you can.

Running Raw

Some of the largest campaigns I’ve ever run, ran without a tracking system. They ran raw, using nothing but a little bit of php code and subids.

I still recommend using either CPVLab or Prosper202 on new campaigns. Because the amount of detail you get is very useful, especially if you’re new. But if you’re overwhelmed by setting up tracking this option works pretty well too.

I have two other main uses for it as well:

  • High Volume PPV. I’ve crashed many servers during high volume PPV campaigns. The tracking systems are just too heavy. And a dead server means 100% loss.
  • Well-tested campaigns. Tracking systems are great because they show exactly what time of day, ad and landing page convert best. But after I’ve learned what works best for a campaign, I’ll remove the tracking system completely.

Pros and Cons of Running Raw


  • Reliability. When people click your links they are routed through the tracking system. Sometimes pages get hung up or die completely during the redirect process. Not using a tracking system means more of your users can reach your page.
  • Faster redirects. When someone clicks an offer link on your page that is run through a tracking system, a lot of things happen. The click goes through the tracker, to a meta refresh, then the affiliate link (or multiple affiliate links), then to the advertisers offer page. If any of these redirects don’t work, the click is dead and you’ve lost the sale. When you run raw, they only have to go through one link.
  • It’s Free. If you’re a new affiliate, paying $200 for CPVLab may be out of the question. Tracking with subids is free.
  • Simple setup. Some affiliates aren’t web developers. Even a free tracker like Tracking202 requires an installation process. If you’re no good with databases, subids might be the best bet for you.


  • Loss of details. When you track without a tracking system you lose the reporting of things like time of day, day of week, etc. that can be helpful on a new campaign.
  • Manual LP split testing CPVLabs makes split testing very simple. When you’re doing it manually it takes a little bit more time and work. I use the Tracking202 landing page rotation script when I run without tracking.
  • Loss of cloaking (kind of). Tracking systems allow you to hide your landing page from the affiliate network and advertiser. When you track directly with subids your landing page may be exposed. (although you can manually cloak, more on that in a minute.)

How To Do It:

This little piece of code is going to be your new best friend. Save it somewhere on your computer because you will use it over and over again.

<?php echo $_GET[‘subidgoeshere’]; ?>

1. Ad network url

The first thing you’ll do is go to your ad network and create an ad with a destination url. For this example we’ll be using Facebook as the traffic source and Ad 1 as our ad name.

This url can now send the information to your landing page, which is going to be setup with php to accept the info that you send.

2. Landing page direct link to offer:

For this example we’ll use Hitpath as our affiliate network tracking software. Hitpath allows you to add up to 3 subids to your links. c1, c2 and c3. (Cake is s1, s2 and s3)

This is the link that your users will click when they are ready to see the offer you are promoting.

affurl/?c1=<?php echo $_GET[‘network’]; ?>&c2=<?php echo $_GET[‘adname’]; ?>

When the user clicks your ad and sends your subids to the landing page, the links on the page will turn into this.


3. Cloak Landing Page with a redirect

If you want to hide your landing page, you can create a redirect (or many redirects).

This way when a user clicks an offer link, they’ll be redirected before hitting the affiliate network’s servers.

To do this, the links on your landing page would look like this:
offer.php?c1=<?php echo $_GET[‘c1’]; ?>&c2=<?php echo $_GET[‘c2’]; ?>

offer.php simply redirects to the affiliate network’s url using a meta refresh with the url in it:<?php echo $_GET[‘c1’]; ?>&c2=<?php echo $_GET[‘c2’]; ?>

Your user is then sent to the offer with your subids attached:

*If you really want to hide your lp you can put the put the offer.php in a different directory, or on a different domain.

4. Checking stats

Subid Affiliate Tracking
A sample report from Hitpath

So now you can log into your affiliate network and see the subids. You can see traffic sources, ad names and whatever other information you’ve sent.

  • If you want to see all your sales from Facebook just sort by C1.
  • If you want to see all your sales from Ad 1, sort by C2.
  • If you want to see all your sales from Facebook and from Ad 1 sort by C1 and C2.

5. Testing Before Going Live

If you want to make sure that your subids are being passed correctly before your launch your campaign you can use the Live HTTP Headers extension for Firefox. Using this plugin you can see each redirect as it happens in the side panel of your browser.

Always check your links before you go live. It takes a few extra minutes but can save you a lot of money if you make a mistake.

And that’s it.

That’s how it works. That is how I track campaigns without a tracking system.

If you’re stuck on your campaign because you can’t setup tracking, I suggest you give this a try. Or – if you’re running a monster campaign and your tracker is slowing you down get rid of it and try this instead.

P.S. I am no php expert.

I have seen others that use subid tracking methods that are much more sophisticated than this. But this little script has worked for me for years and has never failed.

It’s fast and easy and it gets the job done.

And that my friend, is all that matters.

  • Pete

    Very useful for noobs, who can’t afford paid tracker or anyone struggling with the technicalities of free ones like Prosper202. Thanks Malan.

    • Malan Darras

      don’t forget. i actually prefer this method for my super-high volume campaigns that are well-tested.

      • Pete


        I just thought that there’s a workaround for this too:
        Loss of details…you lose the reporting of things like time of day, day of week, etc.”

        To get the timestamp, just use php to echo the current time stamp as another parameter (e.g. c3) using something like this as the LP direct link:


        (I’m no php expert either!)

        • Malan Darras

          Yes you can grab the date and time using php as well. But I didn’t want to make this post overwhelming.

          On some campaigns the affiliate tracking software was EST and i am PST so it was hard to tell exactly how many sales I was getting per day.

          So I put the date into “c2” or “c3” with php and it solved the problem. You can add time as well.

          • Matthew

            Is there a place where we could download a sample .php file?

          • Matthew

            trying to get my head around it. so we create 2 php files?

          • Matthew

            can anyone help?

          • Malan Darras

            Hey Matt – it looks like this:

            1. ad network url with subids: yoursite/?network=blah&ad=3
            2. Affiliates link on LP: afflink/?c1=phpherewithsubid-network&c2=phpherewithsubid-ad

            the comment system won’t let me publish PHP. so did my best.

  • David

    You just made tracking more difficult in the post – than it i with tracking software

    • Malan Darras

      haha. well, it’s seems more difficult because it’s something new. but once you’ve done it a few times, it only takes a minute or two to set it up.

  • Ruben

    I tried to tweet this page from my phone but it just sends me to someone’s profile. Not sure if there is a challenge on your mobile site but figured I would flag it for you. EXCELLENT post!

    • Malan Darras

      ah, thanks Ruben. very helpful. i’ll work on it.

  • Sam

    Hi Malan, thank you for this post. When running a direct linking PPV campaigns is it all right to track just using sub ids and postback urls? And would this method give the affiliate network too much info about my campaigns?


  • Nora

    Hi Malan, can you offer a tracking system for affilates for as you said “monster campaigns”, It doesn’t need to be free, just to be good. I have seen so many tracking solutions for affilaote networks, but what about affilaites that want to track their own google adwords campiagns and commissions?