My good friends over at The Search Agency sent me some interesting data yesterday.
Frank Lee, Senior VP of Client Services, and his team found that their paid search clients are seeing dramatically improved results on Bing compared to Live Search. Even though impressions in the first 3 weeks of Bing have dropped 22% compared to the last 3 weeks of Live Search, Microsoft now seems to be serving far more relevant ads on each keyword.
The result for The Search Agency’s advertisers:
Click Through Rate up 15%
Conversions up 6%
Conversion rate up 18%
Cost per acquisition down 3%
Until now, all the industry reports on Bing have covered the increase in search volume, share of search, or total clicks. Their data is the first analysis of Bing’s impact on paid search advertising performance. With this growth in search volume, along with these improved metrics, advertisers might want to consider shifting more of their paid search spend to Bing.
You can read Frank’s full post their their blog The Search Agents.
I suggest you subscribe to their blog, as these guys really know what they’re talking about.
While many agencies seem to base marketing strategy on the sole-opinion of some conference-hopping SEO ‘guru’, The Search Agency always surprises me with their dedication to gathering real, actionable & measurable market data. They are one of those rare Search Marketing agencies that build strategies based on real, hard-earned market research, not a magic eight-ball.
One of my in development projects was getting triggering a ton of “Mysql::Error: Lost connection” errors recently, and I couldn’t figure out the root cause of it.
There are many of different reasons why this error can occur, and in my case, it was a reason that no one else has written about (that I could find), so I figured I’d post up the cause of my problem (and the solution).
This application was on a shared development server with a few other applications. They all used the same mySQL server. One of my other applications had a corruption in a few of its tables, and whenever this application was called, it would crash the mySQL server, triggering a “Mysql::Error: Lost connection” for all my other applications connected to the mySQL server at that same time.
I tracked down this issue by check the mysql logs, and then I simply reloaded last nights backup of the corrupt database, and everything was fine! It just goes to show you how important it is to always perform regular backups of your databases.
I hope this helps someone!
OK, I’ll admit, my last post was downright shameful…
The code was poorly presented, and poorly formatted. It wasn’t at ALL my normal caliber of work, so I went ahead and rewrote the concept into a tighter little wrapper.
I am using the Gattica gem to interact with the Google Analytics API.
This little script provides a wrapper around the gem that easily allows you to extract your sites organic keywords and sort them based on the number of unique entrances to your site via each keyword.
You may or may not have heard that Google has finally opened up their Analytics API to the public. You can read Googles official statement here.
I thought I’d show you all a quick crash introduction on how you can access the API using Ruby.
The following code uses Open-Uri to access the API and Hpricot to parse the response. In this example, we’re going to authenticate with the API, and then we’re going to use it to extract all the keywords (organic and paid) which have brought visitors to our site within the past year (limited to 100 keywords max)
NB: sorry for the shitty formatting. I tried like hell to get this code to display well, but I gave up. Just copy and paste..you’ll be able to sort it out.
require ‘rubygems’
require ‘open-uri’
require ‘hpricot’
USER_EMAIL=”XXXXXX” #Insert your Google Account email address here
USER_PASS=”XXXXXX” #Insert your password here
PROFILE_ID=”XXXXXX” #Insert your profile ID here (Find this in your analytics profile under profile settings)
results = {}
keywords = []
auth_url = “https://www.google.com/accounts/ClientLogin?Email=#{USER_EMAIL}&Passwd=#{USER_PASS}&accountType=GOOGLE&source=open-uri-limbo-v01&service=analytics”
auth_key = (open(auth_url).read).split(”\n”).last
#now query for keywords, you can change the date values as you see fit, as well as the max-results value
response = Hpricot.XML(open(”https://www.google.com/analytics/feeds/data?start-date=2008-10-01&end-date=2009-04-21&dimensions=ga:keyword&max-results=100&ids=ga:#{PROFILE_ID}&prettyprint=true”,
“Authorization” => “GoogleLogin #{auth_key}”).read)
## storing some of the extra information in a “results” hash in case we need it later
results[:total_results] = (response/’openSearch:totalResults’).inner_text
results[:start_index] = (response/’openSearch:startIndex’).inner_text
results[:items_per_page] = (response/’openSearch:itemsPerPage’).inner_text
results[:start_date] = (response/’dxp:startDate’).inner_text
results[:end_date] = (response/’dxp:endDate’).inner_text
results[:aggregates] = (response/’dxp:aggregates’).inner_text
results[:data_source] = (response/’dxp:dataSource’)
results[:entries] = (response/’entry’)
## the entries contain each individual keyword
## for my purposes, I’m not interested in visitors coming from search operators like “site:”
## so we’re scrubbing those out.
for entry in results[:entries]
keyword = (entry/’dxp:dimension’).first[:value]
keywords << keyword unless keyword.include? “site:” or keyword.match(/\(.*\)/)
end
## Now print out our keywords
keywords.each {|kw|
puts kw
}
UPDATE just seconds ago, a new gem was released called Gattica which you can use to access the Google Analytics API. How’s that for up to the minute blogging? Thanks Twitter!
Are you unemployed? Were you fired from your job as an accountant at a Fortune 500 company? Looking for a good way to make money, but don’t want to get back in the rat race? If you answered yes to any of those questions, you should consider building a WEB APP!
Web Applications are EASY to build! Anyone can do it!
First, you need an idea. This can be the hardest part. Basically, you just want to think about something people do every day that you can do better.
Here are some ideas to get you started:
- web-based makeup mirror (requires a webcam)
- sea-monkeys…give them facebook pages, make them twitter…put them up for adoption.
- a calculator, with lots and lots of ajax….and really big buttons.
These are just a few ideas, but you get the picture. Take some time coming up with your idea, and be patient! You have to refine the idea before you waste time building something no one will ever use. Take at least 30 minutes to decide.
Once you’ve decided on what your highly profitable Web App is going to do, you have to build it! This is the easiest part. You don’t even have to know how to write code. Really! There are new programming languages that don’t even require complicated things like squiggly brakets {} or dollar signs $. Thanks to the magic of Ruby on Rails, if you can write a grocery list, you can write a Web App. Seriously!
Do you know how to view the source code for an HTML page? Great! That means you know how to design a website! Now, I know, designing things is complicated, but don’t worry about it! NO ONE DESIGNS THEIR OWN WEBSITES ANYMORE! Seriously! All you need is a Template. There are even WEB APPS to build Templates for WEB APPS! Totally meta! Gnarly!
So, you’ve got your ruby, you’ve got your template….you’re almost done! Now, you need a LOGO! Most people say you should hire a designer to get a Logo done professionally, but you don’t want to spend any money out of pocket, do you? I mean, what are you, Mother Teresa?!? Hell no! I recommend you just rip one off for now, and once you make some revenue, you can buy some cheap stock Logo from istockphoto.com.
Remember, in order to maximize Web App profits, you need to always be vigilant so that no corners escape uncut. When building your Web App, you should be sure to try and burden yourself with as many of the details as possible. You need to be prepared to be the programmer, the tester, the designer, the marketer and the support staff, ALL IN ONE! But don’t get stressed out about handling a big workload, because it’s not like you have to do ANY of those things at 100% efficiency, as long as you’re the only one doing them. The people who will use your Web App are just nameless, faceless drones anyways; it’s not like you owe them timely responses to their emails. Always remember that your users are eternally indentured to you in exchange for access to your Web App.
OK, so you’ve got your Template, you’ve got your Logo……..it’s time to do some programming! First, you want to download as many plugins and gems as possible. The more the better, because the more gems you have, the less code you have to write. Remember when your teacher crushed your dreams and told you that there are no unique ideas left, that everything has already been done? Well, when it comes to Gems, its true! There is a Gem or Plugin for every possible thing you could ever conceive of wanting to do – now, or in the future. So basically, just get as many Gems and Plugins as possible, and just start plugging them in wherever you need content.
Look at you! You go-getter! You’ve just programmed your first Web App! It’s going to be the BEST CALCULATOR EVER! Don’t worry about scaling it up. If your users ever start calculating pi, you can just use the Cloud, man! The Cloud is where it’s at! In case you haven’t heard of the Cloud yet, I’ll tell you a bit about it. The Cloud is this place in the Amazon Basin, a humid, godless, no-mans-land inhabited by under paid savages (Amazonians). Anyways, the Cloud is like this giant parking garage, but instead of cars, they’ve parked hundreds and hundreds of servers which they’ve woven together with millions of long, tangled fibreoptic wires (hence the name ‘the Cloud’). Anyways, you just email your program to the Amazonians, and they’ll put your program on a piece of the cloud, giving you the ability to add as many mongrel instances to your server cluster as your heart desires. Scaling?!?! What Scaling?!?!
Now that you’ve got your Template, and your Logo and your Program on the Cloud, you’re ready to start marketing!!! This part is really really easy. You just need to stir the pot a little bit, & kick up a little media interest. For example, let’s say one of your Virtual Sea-Monkeys ends up having to see a Substance Abuse Counselor…..that’s marketing gold! Big-mouthed bloggers love stories like that! The more sensational the better, especially because people will put your media story on sites like Digg, or StumbleUpon. These sites will send you visitors who will really take the time to read your story, visit your site, interact with your product, and develop long-lasting, meaningful connections with your brand. You just have to keep your eyes open for marketing opportunities!
By now, thanks to your Web App, you’re probably well on your way to dealing with your delinquent mortgage payments and are no longer dodging your relatives. Congratulations! Feel free to send your former boss a cruel and insensitive e-card from someecards.com, because You’ve Arrived!!! You’re a big web success story! Expect to hear from Inc. Magazine within minutes.
But! But! But! Don’t stop there! This is just the beginning! Now that you’ve seen how easy it is to create one Web App, create more! Don’t worry about the Web Apps that you’re already managing, it’s OK to let them slide. If you want, you can start an affiliate program and get affiliates to keep marketing your old, stale Web Apps while you’re busy building new ones! You’ll want to get an Email Autoresonder so that you’re not burdened by time consuming support requests to have subscriptions canceled, you’ve got better things to do! You’re an entrepreneur!