I’ve been using the BANS software (Build a Niche Store) for the past couple of months to quickly and easily create eBay sites that are automatically populated with the categories, sub-categories, and product listings from eBay. I had been wanting to diversify my income stream, which was coming primarily from AdSense. BANS is only $97, and the license is for use on unlimited sites. Best of all, you get the full source code, so it’s possible to modify the script as much as I want.
I figured what the heck, I’ll try it out. I had used Commission Junction for my affiliate marketing attempts, but had never had much success. It seemed that no matter what approach I used, it just didn’t result in a lot of sales. I tried targeted product ads on pages that talked about that specific product. I tried banner ads. I tried product listings from CJ’s datafeed. I tried it with photos of the product, with text links within the copy, with and without listing the price. I only got the occasional commission, and AdSense continued to dominate my passive income streams.
Almost immediately upon launching my first BANS site, I started getting commissions. My commission income is now at about one-third of my AdSense income, but it’s growing, and I expect that it may well exceed my AdSense income within the next few months.
The above graph shows my CJ earnings trend. My first affiliate commission was last May. Earnings stayed pretty moribund throughout 2007. It was in mid-December of 2007 that I bought BANS. It was in January that I started building BANS sites in earnest. You can see the progress I’ve made with affiliate commissions since starting to work with BANS.
I love that the script comes as full php source code — I’ve spent a lot of time customizing and modifying my BANS script so that it looks and behaves more the way I want it to. Some of the modifications I’ve done include:
Code Output/CSS/HTML
I edited the core files to remove the stupid non-breaking spaces, hard-coded table widths and table cell widths, and various other presentational code that was hard-coded into the script files.
The navigation is automatically populated with eBay’s categories and subcategories, and the navigation elements are indented by one, two, three or more non-breaking spaces. I removed those and added specific classes to each level of indent, along with specific ids for each level when the link is the current page. This allows me to target each category level with my css — I generally make the top-level categories bold-face and in fairly large type, then the sub-categories indented by a few pixels, and non-bold face but still in large type, then the sub-sub-categories indented by more pixels, non-bold-face and small type, and so on.
Also, by removing the hard-coded table and table cell widths, and adding specific css classes to each table cell, I can target those easily with my css as well. I’ve done this with the product listings, the search form, the site navigation, the “view more on ebay,” the pagination — pretty much all the code that’s output by the script. This gives me much greater flexibility in targeting these page elements with my css, which is very important to me, as I don’t use any of the boring default templates that come with a BANS purchase.
Call To Action
I edited the core source files to add a line of text below the item name, which reads either “Buy now,” “Bid on this item now,” or “Buy or bid now,” depending on whether the item is BIN only, auction only, or both. That line of text is a clickable link that takes the user to the product on eBay, just like the item name. This is the classic marketer’s “call to action.” You must tell the visitor what you want them to do. I’ve seen my click-through rate to eBay go way up since implementing this little hack.
I also edited the source files to make the Buy It Now button a clickable link. It struck me, whenever I’m looking at one of my own BANS sites, that I expect to be able to click that Buy It Now button, so probably other people do too. Let ‘em click it! Get that cookie planted!
Search Form
I edited the source files to automatically populate the search box with the user’s search query after they conduct a search. If someone searches for, say, “Masonic rings” they might want to refine their query to search for “Masonic gold rings.” I say, make it easy for them. Along with their search results, I give them a search box that contains their already-searched-for term so that they can easily refine that search.
View More Items on eBay
There’s a line automatically displayed at the bottom of each listing page that says “View more items on eBay.” This line is a link that takes you to the appropriate category on eBay, with your custom query already applied. This is a nice touch. I edited that line so that instead of the default “view more items on eBay” text, it reads “Visit eBay to see more [product name].” For example, on my Knife site, on the page for Santoku knives, below the listing of Santoku knives it reads “Visit eBay to see more Santoku Knives.”
Fixing Stupid Listing Formatting
I noticed that a lot of eBay sellers write item titles like this:
Product—feature—feature—feature—feature—feature
or this:
Product~feature~feature~feature~feature~feature~feature
This approach forces the product name to not wrap, which forces the listing to take up way too much space horizontally. I design my templates so that this doesn’t kill my page layout, but it does force a page width that’s way too wide for users on smaller monitors.
I used php’s simple string replacement function to replace instanced of — or ~ with space – space or space ~ space. This allows the product name to wrap appropriately.
Fixing BANS Quirks
I also added php’s mysql_real_escape_string in appropriate spots in the source code to fix a few bugs that shouldn’t exist. It’s impossible, for example, with the default BANS script, to use apostrophes in the page content, or to use quotation marks around a custom search query, or to use apostrophes in the link name for a category page.
The BANS programmers did such a bang-up job with this script, I’m astonished that they didn’t use the escape string everywhere that apostrophes and quotation marks might need to be inserted into the database. But they didn’t. Fortunately, with source code in hand, I’m able to fix that myself.
Custom Templates
I use my own template designs — none of that default stuff for me. I generally rotate among 4 or 5 different standard templates, which I’ve designed specifically to make it easy for me to place a product-related photo in the header. My templates use different color schemes, and I generally just choose whatever color scheme seems most appropriate for the particular niche I’m targeting.
I use a detailed stylesheet to style the navigation links, item listings, and other items just as I want them to appear. I generally remove the PayPal logo from the product listings, place the search box at the bottom of the page instead of the top, and repeat the navigation in the footer. Since I applied special css classes to my navigation links, I can target the main categories, sub-categories, and sub-sub-categories differently in my footer than in my header. I’ve been experimenting with showing only the main categories in the footer, by using display:none for the sub-categories in my css for the footer nav links.
Easy Privacy Policy
With the requirement of a privacy policy for all sites that use CJ and AdSense, I made that easy, too. I wrote a generic privacy policy, which lives on one of my websites, and I have a very basic, very easy page on each site that simply pulls in that page as a php include. It’s linked to from my footer. It exists as an actual page, so it automatically gets included in each site when I upload my files — I don’t have to mess around in the BANS admin area creating a new content page every time. It’s just automatically there. And by including the actual policy, if I ever need to rewrite the policy, I can re-write it once and have it updated on every single site. I love timesaving techniques.