Tag Archives: cpa

Last night I attended an event here in Vancouver sponsored by neverblue ads. It was a chance to meet my affiliate manager in person to get some of his tips for taking things to the next level. I was also able to meet a ton of other affiliates and find out what was working for them and get a real feel for the industry right now.

One interesting thing that I learned that more advanced marketers are doing right now is to use PPC to do the initial testing and track down which keywords and which demographics are really working for a particular offer. Then they take that information and use it to intelligently purchase a media buy which could cost upwards of $10,000. That’s where the big boys are playing and making tens of thousands of dollars every day.

I was surprised to learn from my affiliate manager that of all the people that are actively working as an affiliate for CPA offers about 30% make more than $5000/month. That’s much higher than I expected.

Here’s a tip for you: if you haven’t heard of meetup.com. Signup right now and find out if there are any meetups of people with similar interests in your city. I’ve joined a bunch of groups and met hundreds of local people now that are interested in making money online. Going to events like meetup202 last night with they guys from Neverblue really keeps me motivated and focused on growing my business.

neverblue In the last few months I have been making extremely good money from promoting CPA offers from Neverblue and so I thought it would be worthwile writing a quick script to keep me from having to log into the site to check my statistics.

Neverblue has a feature called the Global Postback URL which they will ping every time a conversion is made and provide you with some details about the action. The most straight forward thing that I wanted to do was to convert that ping into an email. This works great for me since I’m only promoting the lower volume high profit items right now so I won’t get blasted with 100s of emails every day (I wish I had that problem).

Basically it’s a very simple PHP script that I put on my website. Here’s the neverblueemailer.php PHP script:

< ?php
$message = "Neverblue CPA Action Notification\n\n";
$message = $message. "affiliate_id:  " . $_GET["af"] . "\n";
$message = $message . "site_id:  " . $_GET["site"] . "\n";
$message = $message . "campaign_id:  " . $_GET["c"] . "\n";
$message = $message . "action_id:  " . $_GET["ac"] . "\n";
$message = $message . "subid:  " . $_GET["s"] . "\n";
$message = $message . "unique_conversion_id:  " . $_GET["u"] . "\n";
echo $message;
$to = 'me@example.com';
$subject = 'Neverblue CPA Action Notification';
$headers = "From: me@example.com\r\nReply-To: me@example.com";
$mail_sent = @mail( $to, $subject, $message, $headers );
echo $mail_sent ? "Mail sent" : "Mail failed";

You just need to edit your email information.

With that file uploaded to your website you can then hook it up to neverblue. Simply login to your account and put the URL in the Tools -> Global Postback URL -> Enter Your Non Site Specific Global Postback URL section. Then click Save Changes.


The URL you need is going to be something like this:


That’s it. Test it yourself by visiting the URL in your browser. You should immediately get an email in your inbox.

I cannot recommend neverblue enough. They have quickly become my biggest source of online revenue. It’s worth signing up for to give CPA a try.

nichemarketingbullseyeYesterday I found a website that got me thinking.

It’s a niche website with a lot of unique content that is heavily SEO optimized. The business model was very simple – they have 4 CPA lead generation offers on each page and the goal is quite apparent: keep people on the site long enough with the content and drive them to one of the CPA offers. I imagine that the site is very successful at making money.

It’s a model that is simple, and a website that is not technically difficult to create.  However when I started to think about how to duplicate this business model for myself I found it to be a mountainous undertaking.

And so I’m going to ask you: If you needed to get 30,000-50,000 words of high quality unique content that would keep people on your website for 10+minutes how would you get it? The two options I could think of are:

  1. Pay someone to research and write the content for you
  2. Buy a website that already has the unique content on it

Both of those options could cost $$$.  Is there another way to get great content fast without spending so much money?  Leave a comment with your thoughts.

By the way…  the interesting  website I found that started this train of thought is NursingSchool.org.  How much do you think a website like that would be making?  How much would it cost to develop?

neverblueNeverblue is a CPA network that I have found to be one of the better ones out there. If you are not familiar with the CPA side of internet marketing it’s where you get paid for each person you refer that performs a certain action (CPA = Cost Per Action) The action could be anything from providing a Zip Code, or email address, to purchasing a sample. The marketer who promotes the offer can get quite a good payout – anything from $0.05 to $50+.

Marketers find offers to promote using services like that provided by neverblue. And neverblue acts as the middle man by finding and paying the marketers, and finding businesses with offers for them to promote.

Neverblue is unique in that they program their own platform and have developed some nice APIs and interfaces for getting your performance and tracking statistics programatically. I promote a bunch of their offers and and make a decent amount of money through them so I thought I should write a script that can download my statistics and keep it stored somewhere mesh it with my PPC data to calculate return on investment numbers per keyword.

Getting data from Neverblue is a 3 step process:

  1. Request a report to be generated
  2. Wait for that report to finish
  3. Request the results of the report

This is a bit more complex than most of the processes that download information, but it is a pretty flexible way to request bigger datasets without timing out on the HTTP request.

So here’s a short Python script I wrote based on Neverblue’s sample PHP script. I just prints out the payout information for yesterday.

Example Usage:

$ python NeverblueCheck.py
2009-08-20 $40.00

Here’s the Python code that gets the statistics from neverblue:

#!/usr/bin/env python
# encoding: utf-8
Created by Matt Warren on 2009-08-12.
Copyright (c) 2009 HalOtis.com. All rights reserved.
import urllib2
import time
import csv
import os
from urllib import urlencode
    from xml.etree import ElementTree
except ImportError:
    from elementtree import ElementTree
username='Your Neverblue login (email)'
url = 'https://secure.neverblue.com/service/aff/v1/rest/'
schedule_url = url + 'reportSchedule/'
status_url   = url + 'reportStatus/'
download_url = url + 'reportDownloadUrl/'
REALM = 'secure.neverblue.com'
def install_opener():
    # create a password manager
    password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
    # Add the username and password.
    password_mgr.add_password(REALM, url, username, password)
    handler = urllib2.HTTPBasicAuthHandler(password_mgr)
    # create "opener" (OpenerDirector instance)
    opener = urllib2.build_opener(handler)
    # Install the opener.
    # Now all calls to urllib2.urlopen use our opener.
def request_report():
    params={'type':'date', 'relativeDate':'yesterday', 'campaign':0}
    req = urllib2.Request(schedule_url + '?' + urlencode(params))
    handle = urllib2.urlopen(req)
    xml = handle.read()
    tree = ElementTree.fromstring(xml)
    # parse the reportJob code from the XML
    reportJob = tree.find('reportJob').text
    return reportJob
def check_status(reportJob):
    params = {'reportJob' = reportJob}
    for i in range(0, SERVER_RETRIES):
        req = urllib2.Request(status_url + '?' + urlencode(params))
        handle = urllib2.urlopen(req)
        xml = handle.read()
        tree = ElementTree.fromstring(xml)
        reportStatus = tree.find('reportStatus').text
        if reportStatus == 'completed':
    return reportStatus
def get_results(reportJob):
    params = {'reportJob':reportJob, 'format':'csv'}
    req = urllib2.Request(download_url + '?' + urlencode(params))
    handle = urllib2.urlopen(req)
    xml = handle.read()
    tree = ElementTree.fromstring(xml)
    downloadURL = tree.find('downloadUrl').text
    report = urllib2.urlopen(downloadURL).read()
    reader = csv.DictReader( report.split( '\n' ) )
    for row in reader:
        print row['Date'], row['Payout']
if __name__=='__main__':
    reportJob = request_report()
    reportStatus = check_status(reportJob)
    if reportStatus == 'completed':

If you’re interested in trying to make money with CPA offers I highly recommend using Neverblue to find some really profitable offers and probably the most advanced platform for doing international offers out there right now.