More Info »
How to find the best CPA offers
Find and compare CPA offers on your computer
With little knowledge in programming (any language), you can make your database of offers from all CPA affiliate networks (where you are a member). That database can be used for searching for new offers and for price (commission) comparison.
Also, the biggest problem for CPA affiliates is that offers are expiring without notice and although they are redirected to similar offer or some portal with all offers, your promotion can show bad results until noticed that offer is expired.
I will describe here process only, it is not problem to code it in programming language you are familiar with. This can be programmed from scratch, using any language (even perl, php). Personally, I am using perl scripts due to simplicity when parsing routines have to be adapted due to changes in downloaded HTML.
Step one - downloading list of offers
When logged, save list of all offers as HTML only in that network folder. You can do that automatically, using some downloading software if it is available for your affiliate network. If list of offers is available in *.csv format, you can skip next.
Step two - parsing list of offers
For parsing that page Perl script is used, since code changes in downloaded file can make your generated database unusable, due to different fields position. Because of that, I suggest option that generated database is also displayed on screen, on that way you can see if parsing was correct. HTML parsing functions you can find everywhere can do this work good, but additional work is sometimes required. That is why parsing is described with more details.
In most cases, table is used to format list of offers. First step is to find starting tag for that table, then table row (tr) = database row. It will be good to add all lines to one variable since you will find that table row is not always in one line in HTML page source. Next step is to split using table row closing tags (/tr) as line breakers.
Some rows must be skipped, categories names for example, looking for difference between offer (row) and row with category name (link for example, if exists in offer rows and not in category name row)
Every row (line) have to be cleaned. Table cell tag (td) is replaced with separator (pipe or some other),
what means table cell = database field. In case that offer number is displayed only in url (link),
you need to pull out that number. Next step is to delete all other HTML tags from row (br,img etc..),
duplicated separators, unused fields...
Resulting database row could look like this:
222|Offer title|available desc.|added date|expiring date|commission|CR|geotarget
It is up to you what fields you will add in database. CR is network conversion ratio for that offer, geotarget is when offer is targeted to one Country only. Important here is that in rows in all network databases all fields have the same order, since we will later join all those databases into one. Fields which are not not common can be left empty.
At this point, list of offers you can import into Excel, or in any database software and make comparison there.
Step three - finding expired offers
One script and one database per network. Due to above mentioned problem with HTML parsing, I am using one script for one affiliate network. In that case, you can adapt parsing routine faster. For any new network, it is enough to copy and adapt existing script.
To find expired offers, you need to have similar database with your active offers, i.e. offers you are promoting. Format could be the same (copy/paste row), only addition will be affiliate link you are using or affiliate network tracking domain.
The same script used for parsing is doing fast comparison too. Pattern for search used is affiliate network tracking domain and merchant (offer) number.
First routine is searching for tracking domain in your database. When match, merchant number is taken and search (exact match) is performed on that network database. If that merchant number is not found in network database, offer is expired and that is displayed on screen.
Step four - join databases
Now, we have one offers database per affiliate network. Joining all those databases into one, we will make search and comparison faster. Only what we need to add here is an one more field with name of network. That network name cold be taken from database name. When naming databases for networks, use some name what will show you from what network are offers in that database.
It is assumed that all databases are of the same format (same number of fields). If any field in some network database is not filled, leave empty.
Since joining databases is not complicated, it is easy done with script what is used for searching later, just switch (or checkbox) is added for joining databases.
After joining all offers into one database, we can do even more. All offers database remains in the same folder where script are. Make sub-folder history, backup, bak, or with some other name, copy that base in that folder and rename it to today date (20131208 for Dec 08, 2013). Date is used for file name (without extension), since we need it for sorting files in that folder.
This above is automatically done by script after joining databases. Script is then sorting those archived databases, taking last archived database to compare with newest. Comparing both databases (last archived and newest) you will see the list of newest and recently expired offers from all networks. Expired and newest offers found could be added to separate bases for later use. At last, script is archiving newest database.
Step final - offers search and comparison
Since you have a flat txt database, it can be imported in any suitable software. However, that search script mentioned above, have already added set of keywords and variations. Since only titles of offers are present, keyword variation is neccessary.
Script is producing simple HTML page displayed in browser. Every keyword has its own table where found offers are displayed along with commission and name of network. You can include your database of offers you are promoting, to see if any better commission is offered for the same offer on some another network. Do not change titles in your database for that reason.
History (or database backups) can be used for offer tracking. On some networks, there are network conversion ratio displayed near every offer, and that can be used too.
Sounds complicated? It is not. Once coded, software do not need maintenance except adapting parsing routines from time to time. But, when you find that the same offer you are promoting has 30% better commission (real example) on another affiliate network, you will be sorry why you didn't make this long time ago.
This process is not restricted to CPA affiliate networks.
However, when ever you have an available list of offers/products, this kind of software is really timesaver. And, if it is coded by yourself, you have a total control. Commercial packages? Due to required support (url changes, parsing changes) support have to be very strong.
CPA statistic (clicks, leads) is another story. There are some commercial packages, but there is no reason to not code it yourself. HTML Parsing routine is the same, and once in csv format, you can import anywhere. Anyway, That will be the next theme soon, subscribe to RSS Feed to be informed.