May 12, 2008

Optimising your ebay affiliate profits

Filed under: Internet,Making money,PHP and MySQL — Joe Brewer @ 6:51 pm

A few months ago I came across phpBay – a WordPress plugin and API that integrates ebay listings easily into your website. When a user clicks on a product and places a winning bid, you receive a commission from Ebay.

One feature that I found that was missing was being able to show users local auction listings, for example show people from America US listings or people from the England UK listings. However this is now possible to do with my country class, and once installed will enable you to maximise your affiliate profits. To acomplish this you will need to purchase the web lookup service from MaxMind. The class can be downloaded here.

To make this work with wordpress, simply unpack country.php and geo.php, edit the geo.php so that it contains the key that you receive from MaxMind and upload the files to wp-content/plugins/phpBay/ and the phpBay plugin will take care of the rest. This will work on version 3.0 of phpBay

If you need to get this working on a non wordpress site using the API, then you will just need the country.php which contains the country class. To see it working, see my site DVD For A Dollar. Here is how I accomplished the country detection on that site.

At the top of each file I start a session using session_start() so that if a user browses more than one page of a site then it will be able to retreive the country from MaxMind once and then use it on all subsequent pages. Then I use the following code to initiate the class and retreive the country.


  1. include( ‘country.php’ );
  2. $ebayCountry = new country();
  4. if ( !isset( $_SESSION[‘country’] ) )
  5. {
  6. // replace the ‘x’s on the next line with your MaxMind key
  7. $ebayCountry->licenseKey = "xxxxxxxx";
  8. $ebayCountry->getCountryFromWeb();
  10. $_SESSION[‘country’] = $ebayCountry->ISO;
  11. } else
  12. {
  13. $ebayCountry->ISO = $_SESSION[‘country’];
  14. $ebayCountry->setReturnArray();
  15. }


Now you can initiate the phpBay class and set the country parameters like this:


  1. $ebay = new ebay();
  3. $ebay->eb_siteId = $ebayCountry->ReturnArray[ "siteId" ];
  4. $ebay->eb_language = $ebayCountry->ReturnArray[ "language" ];

If you want a combo box that displays a list of countries that defaults to the local ebay like the one on DVD For A Dollar, place the following code above the code that checks if the country session variable has been set:


  1. if ( isset( $_POST[‘country’] ) && strlen( $_POST[‘country’] ) == 2 )
  2. $_SESSION[‘country’] = $_POST[‘country’];

Here is the code that draws the combo box itself:


  1. function DrawCountryCombo() {
  2. $Countries = array(    "US" => "US Auctions",
  3. "AU" => "Australian Auctions",
  4. "AT" => "Austrian Auctions",
  5. "BE" => "Belgian Auctions",
  6. "CA" => "Canadian Auctions",
  7. "FR" => "French Auctions",
  8. "DE" => "German Auctions",
  9. "HK" => "Hong Kong Auctions",
  10. "IN" => "Indian Auctions",
  11. "IE" => "Irish Auctions",
  12. "IT" => "Italian Auctions",
  13. "NL" => "Dutch Auctions",
  14. "PL" => "Polish Auctions",
  15. "SG" => "Singapore Auctions",
  16. "ES" => "Spanish Auctions",
  17. "CH" => "Swiss Auctions",
  18. "GB" => "UK Auctions"
  19. );
  21. $form = ‘<form method="POST" action="">’ . "\r\n";
  22. $form .= ‘<select onchange="javascript:submit();" id="countrycombo" name="country">’ .
  24. "\r\n";
  26. foreach( $Countries AS $Key => $Value )
  27. {
  28. $form .= ‘<option’;
  29. $form .= ($_SESSION[‘country’] == $Key) ? ‘ selected’ : ;
  30. $form .= ‘ value="’ . $Key . ‘">’ . $Value . ‘</option>’ . "\r\n";
  31. }
  33. $form .= ‘</select>’ . "\r\n" . ‘</form>’ . "\r\n";
  34. return $form;
  35. }

To draw the combo box, simply use the following code:


  1. echo DrawCountryCombo();

And that’s all there is to adding country detection to your ebay affiliate sites. Huge thanks to Wade who wrote the phpbay class for his support with this project.

If you find this code useful, feel free to buy me a beer.


  1. Hi,
    Followed your post from DP thanks for the work on the script. To be honest I find it easier and of course less expensive (no Maxmind fees) to simply put subdomains for each country especially as I am using the Adwords content network, just launching my new site now selling DVD’s to the US, UK and Australia markets. Cool work though Cheers

    Comment by Jay — June 9, 2008 @ 8:12 am

  2. […] to use this feature, you have to go through some steps describe on Brewsterware’s “Optimising your ebay affiliate profits” […]

    Pingback by BANS vs phpBay - International Traffic — July 8, 2008 @ 5:34 pm

  3. Brewster, I did this and I’m unsure how to check if I did it correctly. I used a few online web proxies and saw that when I got to my site it does change to EURO’s but it doesn’t look like it goes to EBAY UK. I’m confused. My EPN DASHBOARD shows a few clicks from AU,CA,and HL but I’m unsure if this plugin is actually working correctly. Is there a way to check? That you could recommend?

    Comment by Dshot — September 13, 2008 @ 7:13 pm

  4. Dshot, I usually check by getting a few people from different countries to check whether they are seeing the correct ads. Did you try clicking on the ads to see which ebay you ended up at ?

    Comment by Joe Brewer — September 13, 2008 @ 7:40 pm

  5. Yes it looked like I went to different ones at first but now it looks like I’m only going to US.

    Comment by Dshot — September 13, 2008 @ 8:29 pm

  6. I think it’s working because I’m noticing in my my StatPress Plugin people clicking on different auctions and the ccid is different countries.

    Comment by Dshot — September 13, 2008 @ 9:00 pm

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress