| Subcribe via RSS

Don’t Join the Stubhub Affiliate Program

August 27th, 2009 | 1 Comment | Posted in Affiliate Programs

For those of you looking to join Stubhub’s affiliate program, please don’t. Even if you think I’m a bloody wanker that doesn’t know what he’s spouting on about at least research and try out TicketNetwork and TicketsNow before you commit. Believe me over time you will thank me.

With that out of the way, let me welcome you to the fresh hell that was my July. I have some ticket related websites that send traffic over to Stubhub. It’s been a profitable relationship over the past year, but had been growing worrisome. They had a tiered commission structure where you were rewarded if you sold more product which was a positive thing. You should reward your best affiliates by giving them something extra for performing. Well that extra commission (everything earned over 7%), started getting tacked on to the following month’s commission check. Definitely a pain in reporting and annoying that they were holding onto a slice of your commissions for an extra month.

Then came the policy change. They decided they would stop paying for anything save the last click. In other words, if the traffic came in via a Google PPC ad or a natural search item, your cookie would be overlooked in favor of this newer channel. Effectively this pretty much kills the concept of cookie sales, but whatever I thought. This shouldn’t affect commissions by more than 10% or 20% at the most. Well I sign into my account one day and half of my commissions had been wiped out as being ‘Unqualified Leads.’ I contacted them about their mistake, and they were adamant that their systems were working properly. Well adding insult to injury, a couple of days later all of my commissions for the month had been erased, all tagged as ‘Unqualified Leads.’ I’d already been researching other options for sending my ticket traffic so I began the transition of moving my links over. For some real fun watch the debacle unfold in real time on ABestWeb.

Well wouldn’t you know it, but about a week later I get an email saying Stubhub had a major f%$k up in how they were logging traffic and all commissions for July would be reinstated. But had they really learned their lesson? Apparently not because at the bottom of the email they said they’d be reinstituting this failed experiment next month. It didn’t matter to me. I’d already lost all trust in this once profitable relationship and told myself I wouldn’t be dealing with this utter incompetence again.

So all is well and the commissions are back right? Not so fast sparky. After being reinstated for about a week, the commissions disappear once again. Stubhub said I’d broken a terms of condition issue of Commission Junction concerning forwarding traffic. There was an old defunct ticket website I used to run which got next to no traffic. I had no way of processing the stray orders that would filter in from time to time so I’d decided to temporarily forward these users over to Stubhub so they could find what they were looking for. Per the CJ reports, this website accounted for less than 1% of our total commissions for the month/year. Instead of backing out of these questionable transactions, Stubhub used this as an excuse to withhold our entire July commissions. This is just flat out theft at its best, and proved to me that they would go out of their way to find any excuse not to pay their affiliates for the commissions they’d rightful earned. Unfortunately there’s not much I can do to hold their feet to the fire. Affiliates hold little to no recourse when it comes to making a provider pay up past taking your traffic elsewhere.

This whole ordeal is baffling to me. Why would you want to piss off your affiliate base? These are the people who promote your company and drive traffic to your business. Unlike other advertising mediums, affiliates get paid on production. You know if you are shelling out money to them that there is a sale corresponding to it. Not to mention, the affiliate very possibly just brought you a lifetime customer, and all you had to pay for them is a small percentage of that first sale. These affiliates can just as easily switch their links over to promote your competition and utilize that once profitable forum to instead expose your shady business practices.

At the end of the day, I may have had a very costly month with regard to money lost, general headaches and lots of wasted time & effort, but hopefully this horrible experience will save you from having the same problems with this company.

Tags: ,

WordPress Replacing Ampersands in Javascript

August 19th, 2009 | Comments Off | Posted in Javascript, WordPress

As great as WordPress is for running a blog, it comes with more than its fair share of headaches for the developers out there. Today, I was putting some javascript code into the body of my post. Whenever you get more clever than basic text and html in the body of a post, watch out! So WordPress started chewing up all my ampersands and replacing them with & and of course the javascript was rendered useless. I searched high and low for a fix and nothing. I know there has to be a config file somewhere in this WordPress install that replaces those ampersands. I’m sure its for XHTML compliance issue or something like that, but I want to be able to rid myself of this intrusion. So while I didn’t find a solution, I did find a work around that should have occured to me earlier — just wrap the javascript up in its own file and make a reference to it from the post body. It would look something like this:

The key here is, if WordPress can’t process the javascript directly, it can’t mangle your ampersands. F%$kin’ A man!

Tags: ,

WordPress Running Slow on GoDaddy

August 18th, 2009 | 1 Comment | Posted in goDaddy, Javascript, WordPress

I don’t know what it is, but for the past week all my blogs have been running dog slow on GoDaddy. All my other sites (ASP.NET based) run fine. I contacted support and I got the ever so unhelpful “this problem is something on your side” or my personal favorite “you need to upgrade your account to a dedicated server.” What? You can’t support a measly blog, and you want me to shell out major bucks for a dedicated server? Not happening. After doing some investigation on the web, nothing could be further from the truth. Many, many, many people are having these slow crawling load times when running WordPress on GoDaddy. The solution — find another web host. Seriously, out of the four web forums I scoured no one had run across a solution past jumping ship.

The one host that kept coming up time and again in my research was Bluehost. Even WordPress themselves had Bluehost listed first on their list of recommended web hosts. Everyone kept saying their support was great and load times were very quick. I just got setup yesterday with them, and I’m busy pulling over files and setting up databases. I’ll check back in to let you know how it goes.

Update [8/27/09]: One week on BlueHost, and I’m happy to confirm that all blogs are zipping right along. No delays, no unbearable load times, none of that Godaddy crap. The problem definitely wasn’t on my end. You’d think they’d be able to at least run a little WordPress blog. Guess I expect too much. As far as the transition over to BlueHost, it was fairly painless. Basically, you just export your mySQL database to a file comprised of a bunch of SQL statements. After creating the cooresponding database on your BlueHost mySQL account, you just import the SQL file and all your data is up. Then just download all your blog files and restore them to the new folder location you’ve setup for the site on BlueHost. Next you need to point the wp-config.php file to the new database as follows:

Your final step is just to go into your domain provider and point the DNS record to go to BlueHost. The DNS servers you are looking for are primary NS1.BLUEHOST.COM and backup NS2.BLUEHOST.COM. Then you just have to wait for the changes to propogate through the Internet’s hub routers. I’ve seen it take as quick as five minute to a couple of hours. No rhyme or reason to it. Whalah you’re setup and you’ve left Godaddy’s interminable crawl in the past.

Oh with regards to support, BlueHost was very responsive. I submitted 4 requests as I was getting setup and they were normally back to me within 30 minutes to an hour via email, and I didn’t get a single boneheaded answer that was cut and pasted out of the knowledgebase that had absolutely nothing to do with my issue. Of course that was the norm with Godaddy’s hosting support and many other hosts I’ve used in the past. Very satisfied so far with the whole hosting experience at BlueHost.

Tags: , ,

SQL OUTER JOIN: The When, the Where & the How To

August 14th, 2009 | Comments Off | Posted in SQL

So I’m trucking along wrapping up a project, throwing in a few last minute testing changes and I put in a new textbox that isn’t like any other others. All the previous were connected up via the database with a store item. This button is more of an aggregator for checkboxes or radiobuttons. So the essential problem was, it wasn’t pulling back in my stored procedure since it didn’t have that store item associate with it. No problem. We’ll just employ our OUTER JOINs. As you no doubt know, JOINs or INNER JOINs connect up two database tables and only return the results that exists in both databases. OUTER JOINS aren’t quite as picky. It will bring back the results regardless whether its contained in both tables or not. It is going to have the following syntax:

Tags:

Get NT Authenticated User in ASP.NET

August 12th, 2009 | Comments Off | Posted in ASP.NET, IIS

Sometimes we want to log who is making changes to the system. I’m sure there are some SQL tricks you could do to pick it up when the stored procedure is called, but I’m a programmer instead of a database guy so I opt for the ASP.NET solution. ASP.NET has the HttpContext class which can get at all sorts of interesting underlying processes like items in cache, whether debugging is enabled or even just pulling back the timestamp off the server. For our purposes, we are going to step down into the Current.User.Identity.Name to find out who our user is. Now for this to work we need to have our program setup on IIS as its own application with Security enabled (Windows Basic). This will force the user to login using their NT network credentials. The login will actually look something like DomainName\UserName. More than likely we won’t be interested in what network they were signing in over just who they are. Current.User.Identity.Name gives us that and nothing else. Pretty handy when you’re trying to pin a system screw up on a user.

Tags: , ,

Read from a File with CSharp (c#)

August 4th, 2009 | Comments Off | Posted in C#

I did the bookend post to this a couple weeks back (i.e. how to read from a file) so its time I wrapped this topic up. Where the writing function was StreamWriter, we instead use StreamReader to extract the text from the document. Pretty logical right? In the example below, I’m pulling a block of code out of a text file named code.txt so I can append it to the header of a document I’m getting ready to generate. So once I’ve told the StringReader which file we are working with, we need to loop through that file line by line to suck them into the reader. In this case I’m storing that output in a string variable I’ve called sCode. Finally, once we’ve captured all the file’s contents we close the StreamReader to release our resources. Don’t forget to make your reference to System.IO or Visual Studio is going to yell at you. Now I can take that sCode value and do with it what I will. Just like the StreamWriter class, we can accomplish a big task in a few lines of code, leaving more time to goof off looking for iPhone apps.

Tags: ,

Regular Expression Catch All Syntax

August 3rd, 2009 | Comments Off | Posted in Regular Expressions
One of the most used regular expressions in my arsenal is also one of the most simple. It is basically a catchall to find everything between to strings of text within a document. It is (.|\n)*? (see it in action below). As you can see in the example, we are looking to replace everything between the beginning and ending script tags, including the tags, with an empty string. It is very basic and very powerful so use with care.