Black Hat SEO Reddit Community
I’ve created a Black Hat SEO Reddit community at http://www.reddit.com/r/blackhatseo/. I’ll be adding links that I find, but I sincerely hope that others will begin to submit sites and contribute comments and ratings. If anyone is interested in becoming a moderator, please let me know. You’ll have to excuse some of the shameless self promotion at first, but I know my links well, so I posted them first.
Intro to Tracking Affiliate Offer Completions
Introduction
We decided to make a little tutorial after reading a post on Black Hat World where a question regarding tracking IP addresses after offer completion was posed. While we realize that most seasoned affiliates are very aware of the technique we’re going to outline in this post, we hope that our less experienced readers learn something. What you are about to read is one of the most basic ways to really begin analyzing traffic and creating metrics to streamline and optimize your affiliate sales efforts.
Disclaimer
This is not an efficient or elegant way to go about tracking the people who complete your offers. However, if you’re not already currently tracking the leads you’re generating, it is a very simple way to start a process that will help refine your abilities as an affiliate marketer. We’re not going to offer that many code or SQL snippets because we firmly believe that some parts of the game are to be sold, not told. That said, nothing in this article is too complicated for a beginner to figure out.
What You’ll Need
Here are a list of things which you hopefully already have access to, but which are necessary to go forward with the procedure we’re about to discuss
- Shared Hosting (or better)
- PHP4 (or greater)
- MySQL 4 (or better) and the ability to create new DBs
- Text Editor
- FTP client
Getting Started
First off, you’ll want to create a MySQL DB to store and handle the information you’ll begin tracking from here on out. To do that, you’ll probably want to access phpMyAdmin. If you’re unfamiliar with how to use this web application, you should read the manual. You’ll want to create a table and a series of appropriate fields. The number of fields is dependent upon what you want to track. So, for very, very basic tracking you’ll want to create a field to track the user’s subid, the offer ID of the offer the user filled out, the date they filled it out, and their IP address. This is list of fields is very flexible.
Once you’ve created the DB, you’ll want to create a unique ID to begin to track the users that click on your offers. We’ve done this by simply creating a unique identifier with PHP that gets sent by path argument to each URL referrer page like so:
<?php function genKey ($length = 10) { $key = ""; $possible = "0123456789bcdfghjkmnpqrstvwxyz"; $i = 0; while ($i < $length) { $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); if (!strstr($key, $char)) { $key .= $char; $i++; } } return $key; } ?>
You can either put this code into a separate page, include it on your main page, and call the function or just run the entire process on your main page. The output will be a string similar to this: 8g2kbcz0qr
You’ll want to pass this unique identifier onto your referrer pages. You’ll then want to link to your affiliate page with something similar to this:
<a href="http://www.yoursite.com/offer.php?id=<?php echo $key?>" target="_blank">Click here to fill out your offer.</a>
Now you’ll want to figure out how your affiliate network handles subids. Subids are independently assigned path arguments that you can create to send very specific information to your affiliate networks which may then be sent back to you via a universal pingback upon offer completion. There is a fantastic list and small primer on subids located at Subids.com.
Once you’ve figured out how to process subids on your respective network, you’ll want to make sure that the unique ID you created earlier gets passed to the affiliate network. In this example, I’ll use Azoogle’s subid system. So, if you’ve setup a link like I specified earlier, this is the code you’d need to have on http://www.yoursite.com/offer.php:
<?php $sid = trim($_GET['id']); header( "Location: http://x.azjmp.com/%OFFERID%sub=".$sid) ; ?>
%OFFERID% is where you’ll want to place the unique offer ID provided for you by affiliate, which, in this example, is Azoogle.
If you want, you can also begin to track how many users that click your offer links actually complete your offers. To do this, you’ll want to create a record and leave the IP address or offer ID fields blank on the referrer page. This way, you can easily discern between records that have and have not completed offers.
Just like most affiliate networks, Azoogle’s universal pingback tool is very easy to setup. How these tools works is that they send a very basic hit with some path argument attached every time someone completes one of your offers. For this example, a very easy pingback URL to use would be:
http://www.yoursite.com/pingback.php?subid=%%SUB_ID%%&offerid=%%OFFER_ID%%
The %%SUB_ID%% indicates where your SubID will be. Your %%OFFER_ID%% indicates where the unique ID of your offer will be. When a user has completed an offer, http://yoursite.com/pingback.php will receive a “ping” from the affiliate network with all of the information you’ve requested attached via path argument, so you’ll want to be able to read these, right?
The code is very simple:
<?php $subid = trim($_GET['subid']); $oid = trim($_GET['offerid']); list($affid, $sid) = explode("-", $subid); ?>
This will grab each respective argument and store it into a variable. The reason for the explode() is that Azoogle returns each subid with your affiliate ID separated by a dash and then whatever subid you define. So, if you defined 8g2kbcz0qr as the subid and your affiliate ID is 12345 then the resultant argument would be: ?subid=12345-8g2kbcz0qr
Now, since you know that any ping to this page is the result of either a test of yours or an actual completion, you can easily begin to add information like the time and IP address to your database. This can be done by simply assigning the IP address to a variable with the following command:
$ip=$_SERVER['REMOTE_ADDR'];
Once you have the IP address assigned to a variable, adding it to your DB is very simple.
Hopefully everyone who has read this article and was previously unfamiliar with the basics of affiliate tracking now has a better idea of how to go about doing it. As I stated in the beginning, this is by no means the most elegant or efficient way to go about tracking, it’s just a very basic way that works.
Find vBulletin Forums That Allow IMG Code
After a post on BHW, I decided to begin exploring different Google queries that could result in finding lists of forums that allow IMG code. While we do not support stuffing public forums and believe that it will get you caught by your affiliates and banned from your network, it is still an interesting problem.
By default vBulletin uses a strong of “__________________” or 18 _’s to separate signatures from posts. This would be the first part of your query. By default vBulletin also lists Posting Rules that indicate which posting properties are allowed at the bottom of many pages. The string “[IMG] code is On” would indicate just what it says; that [IMG] codes will work.
So, a sample query for Google to find vBulletin forums with signatures that allow the [IMG] code would be:
“__________________” “[IMG] code is on”
If you wanted to find more niche-specific forums, you could add a keyword search on top of the original search. So your query could, for example, read:
“__________________” “[IMG] code is on” “blackhat”
Try it out and let us know what you think.
Video Update:
We decided to make a video to show our users just how effective this method can be if it is used the right way.
irc.MakeCash.org Video Tutorial
HaRRo and a few other members of Black Hat World and Pay-Per-Install have started a new IRC (chat) network to help facilitate communication among a wide variety of Internet marketers.
Server list:
- irc.makecash.org
- irc.pay-per-install.org
I decided to make a quick video tutorial for Windows users who want to connect to the IRC network and chat live with us.
Instructions:
- Go to mIRC.com
- Download the newest version of mIRC
- Install mIRC
- Run mIRC
- Enter your name, email address, and nickname.
- Add the server irc.makecash.org
- Double-click on the server name after you’ve added it
- Click Connect
- You will automatically join #MakeCash, to join other channels type /join #blackhatzen or /join #blackhatworld
Tutorial: Simple Email Scraper - PHPlist import
I had a user contact me who is having trouble importing email lists created by Email List Scraper into PHPlist so I decided I’d make a tutorial for everyone to benefit from.
First things first, we need to prepare the file for import:

- Once you’ve got a list you like, Export to TXT.
- Open the text file in TextEdit or another text editor.
- You will be presented with a list of email addresses.
- Make sure the first line of the file reads “email” (without quotes) so that it looks like this:
Now that you’ve properly prepared the list, you’ll want to open up PHPlist and go into the admin control panel. Once you’re into the admin control, you’ll want to find the import section:

Once you’ve entered the import section, you’ll want to click the “import emails with different values for attributes” link:

The last step in importing is selecting the text file you’ve exported and edited and uploading it:

Click Import and:
Success
Tutorial: Simple Email Scraper for OS X
To celebrate the release of our first foray into the Mac OS X black hat tool world, Simple Email Scraper 1.0, we’ve decided to write a brief public tutorial to give you a quick overview of how you can use the application to increase your sales.

After you’ve started the program, you will be presented with a screen very similar to the one above. Starting from the top, the Domain text box contains all of the domains for email services to search. We’ve provided a great top 20 list for you, but feel free to add or subtract any domains you wish. This is easy to do by separating each domain with a comma. The next text box down contains all of the keywords you wish to search on. You can search for more than one keyword at a time by separating each keyword with a comma. If you’re using the demo, you won’t be able to change the Time Delay, but if you’re using the full version, you’ll be able to adjust the delay in between separate queries. The slower the speed of the queries, the more likely you are to receive more emails without being temporarily blocked.

In this tutorial we’ll be pretending that the niche or product line we’re looking to market is the refrigerator market. Before you begin a search with Simple Email Scraper, it is always best to input as many keywords as you can think of. If you have trouble finding relevant keywords, a Thesaurus or keyword suggestion tool, like the ones located at DigitalPoint and Wordtracker, can be extremely helpful.
Once you’ve set your email domains and keywords, simple press the Search button.

Once you’ve created a list that you’re happy with, simply hit the Export to CSV or TXT button. Save the export file to any place you like. If you’re using a mailing program such as e3 Software’s Direct Mail or a spreadsheet program like Excel, you can easily either drag-and-drop or import the the file you’ve exported to create a fully-functioning email list.



Now, we aren’t suggesting that you use our software or Direct Mail in any nefarious way. Obviously, spam is illegal. However, these kinds of research tools and scrapers can be very helpful to your marketing efforts in entirely legal ways.
Simple Email Scraper for OS X 1.0 Released
We’ve finally released the final edition of our first black hat marketing tool for the Mac, Simple Email Scraper. We’re offering a demo for all of those who are interested. It can be downloaded from here. If you’d like to make a purchase, either click the register button from within the program or go to this page.
As always, if you have any questions, please feel free to contact us.
Day Job Countdown
After reading a thread started by MontyzPython on Black Hat World, blackhatzen has decided to help Chris Monty out in his quest to quit his day job. We will be supplying some basic SEO services and private methods as well as helping to maintain the blog. If you’re interested in helping with SEO for the project, either leave a message on the thread or leave a comment here.
Here is Chris’ first post on the Day Job Countdown:
Hi, I’m Chris Monty. I’ve been trying to make money online for over 9 months now. I’ve decided that my biggest obstacle is the same obstacle that every one of us faces….MYSELF.
You see, I have trouble focusing on just one ’system’, ‘tactic’, ‘business model’, etc.
My current job is in an industry that’s suffering right now AND we’ve got THREE kids, so my wife wants me to get another J-O-B. After several heated discussions, I told her to give me 30 days!
That’s right, 30 days. If I’m not making enough money to quit my day job and make a living online by JULY 20, 2008, I WILL look for a new job.
So can I go from what I’m making now, to making $200 - $300 or more per day…within 30 days? Well, maybe I’m a little crazy, but…you’re damned right I can.
So stay tuned over the next 30 days. More to come!
Chris Monty
Please bookmark Day Job Countdown and check it out frequently.
Natural Patterns Pt. 2
I’ve decided to write a relatively brief follow-up to last week’s Natural Patterns in Cookie Stuffing Schema. Today I’d like to discuss something I’m going to call throttled click-through ratio patterns. As far as I know, this concept is not being discussed in the open and procedures to combat their obvious footprint have not been implemented into any cookie stuffing applications that are currently on the market.
In their most basic form, throttled CTR patterns are the tell-tale signs that a cookie stuffing application is controlling the click-through ratio by decreasing the number of users who are cookie stuffed while maintaining the number of impression pixels that are shown. The expressed intention of this method is to avoid detection by attempting to model the incoming traffic to affiliate networks like the eBay Partner Network and Amazon Associates so that it appears to be entirely legitimate traffic.
While CTR throttling is certainly a bright idea and one that has only been implemented into a small number of cookie stuffing applications, it has one major pitfall; in almost all cases the click traffic it creates is very easy to detect. To discuss this in greater detail, it is helpful for one to understand a little bit of math. For example, if we throttle the CTR to 10% that means that for every 100 visitors to the website, 10 will have their cookies stuffed. This, in and of itself, is fine. However, it is the linear order in which these cookies are stuffed that can become problematic. If exactly one visitor is stuffed and nine receive an impression pixel, it becomes very obvious, very quickly that there is something awry, especially if that pattern repeats itself. It becomes even more obvious as the number of hits increases.
As a quick example, if you receive 20 visitors and if your CTR is throttled at 10% without any kind of footprint randomization, this pattern emerges:
- Impression pixel
- Impression pixel
- Impression pixel
- Impression pixel
- Impression pixel
- Impression pixel
- Impression pixel
- Impression pixel
- Impression pixel
- Click
- Impression pixel
- Impression pixel
- Impression pixel
- Impression pixel
- Impression pixel
- Impression pixel
- Impression pixel
- Impression pixel
- Impression pixel
- Click
Obviously, this type of emergent pattern would be pretty easy to discover. Even if the clicks don’t fall on every multiple of 10, a pattern could still emerge. In my personal and humble opinion, the best way to create CTR throttling without being easily discovered, would be to randomize the 10% out over both time and a larger number of visitors. So, even at the end of the day, the same number of impression pixels are shown and the same number of clicks are made, but the order in which the occurred would not be as noticeable.
As always, if anyone would like to discuss in more detail methods for avoiding click-through ratio pattern detection, feel free to comment.
BHZ Link Service
blackhatzen is very pleased to be offering a high-end link service. Our crew of SEO professionals will analyze your website(s) with extremely accurate LSA software. We will then take a list of keywords that you provide us and create a custom link campaign. These sorts of link campaigns are an extremely powerful asset when trying to increase your search engine positions for certain keywords.
Use the contact form below for a free quote. Please include your URL and a list of at least 3 keywords you’d like to list for.
