UPDATE: I’ve had to remove the presentation due to a DMCA complaint. *sigh*
I wanted to share some interesting tid-bits with you all from a recent Ipsos Reid presentation (June 18th) on Social Network Marketing.
This presentation was made to BC Hydro, the major Power authority in British Columbia (that’s in Canada, dummy).
The average Canadian:
- 5.4 hrs/week spent on Social network sites, about 1/3 of total Online time.
- LinkedIn captures 70% of the share of Social Networking in the workplace.
- The stuff teens do online is very different from adults, and VERY limited: socializing, music, and gaming.
- 88% of Adults use the internet to visit a new or informational website, versus only 44% of teens.
- 68% of Adults have clicked a website advertisement versus 28% of teens.
- 70% teens are weekly social network users, versus 36% of adults
Highlights:
- Advertising budgets are not aligned to where people are spending their time - online expenditure lags significantly behind traditional mediums
- 58% of Canadians receive 51+ unsolicited commercial emails a week (17% don’t even know)
- 64% of people don’t open ANY unsolicited emails
- of the people that do open unsolicited emails, 53% do so out of curiosity, 28% because they thought it was legitimate
- Permission-based (opt-in) emails are still one of the best ways to market to your websites audience. Be diligent about collecting them
- 77% of Canadians are registered to receive some kind of opt-in email (2008 average number of sites registered with: 15.3)
- Top 3 reasons for opting-in: Personal Interest (42% ), Entertainment (38%), New and Information (32%)
- It’s worth noting that E-Commerce and Retail is the 7th most common reason (27%)
- Activities resulting from opting-in to an email list:
- 60% entered an advertiser’s contest
- 52% visited the advertiser’s website
- 17% purchase or received products at a later date
- 68% percent of Canadians are willing to provide their email address depending on reasoning
I’ve uploaded the full presentation for you all, which can be viewed here:
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!