It takes a lot of work to create the blog posts and code samples that I put in my blog, and I was curious about getting more detailed statistics about the posts.
I already aggregate some statistics for Microsoft Bloggers (see What is a Microsoft MVP? Calvin's List updated for the new century), but I was curious about which of my posts was the most downloaded, etc
I was watching the statistics accumulate in the log and I noticed that a few were hit much more often than others, especially as a result of a Google search.
The Referrer URL is something like http://www.google.com/search?sourceid=navclient&ie=UTF-8&rls=GGLG,GGLG:2006-25,GGLG:en&q=remote%20desktop%20ctrl%20alt%20del
The after UnEscaping it looks like this:
“http://www.google.com/search?sourceid=navclient&ie=UTF-8&rls=GGLG,GGLG:2006-25,GGLG:en&q=remote desktop ctrl alt del”
(See also Handling arbitrary strings in URLs: Escape, InternetCanonicalizeUrl, WinHttpCrackUrl and URI.EscapeUriString)
So I wrote 4 lines of code to query the hit statistics. They query the statistics for the Google click-throughs: when a user did a Google search for some string and clicked a result that was one of my blog posts. The code parses out the Google query string to make it easier to read.
SELECT *,PADR(SUBSTR(ref,AT("q=",ref)+2),200) as qexp FROM bloglog WHERE "google"$ref INTO CURSOR results readwrite
REPLACE qexp WITH LEFT(qexp,AT("&",qexp)-1) for AT("&",qexp)>0 all
SELECT title,qexp FROM results ORDER BY 1
SELECT title,COUNT(*) FROM results ORDER BY 2 DESC GROUP BY 1
With just a few days of statistics, the number of hits from Google for Reboot from remote desktop was far higher than any other post. Perhaps the remote desktop feature needs to make it more obvious how to reboot the remote machine.
# hits Title
595 Reboot from remote desktop
254 What is a C0000005 crash?
97 Calvin Hsia's WebLog
45 Creating a VFP application as a service:
43 Visual FoxPro
35 I want my own email! MSN Premium
34 Print a t-shirt
32 Cold Solder Joint
30 Generating VBScript to read a blog
29 Creating your own web browser for your SmartPhone
27 How to use DEVMODE
25 SQL Select data from a text file
24 Binding to Internet Explorer events: bug in Typelibrary
22 Start your Screen Saver NOW!
20 Dr. Watson: Please send in your error report
19 How to protect your web site pictures from being saved
19 Write your own Task Manager
18 Use Windows 2003 Server and remote desktops for debugging
18 What happens if external code throws an exception?
17 A Visual Basic COM object is simple to create, call and debug from Excel
17 Foxpro Performance tip: field name lookup for tables
The search strings that lead to my blogs are interesting too.
For this entry: Generating VBScript to read a blog, these were the search strings that were given to Google, which people then clicked on to get my blog post:
vb scripting replace
wsh quotes vbscript
wscript + read text with delimiter
WinHttpRequest VB help
read rss title by vbscript
vb script read rss title
html vbscript value read
winhttp createobject vbscript
InternetExplorer.Application VBScript get text
ASP -".net" transformNode CreateTextFile VBScript
vbscript read html InternetExplorer.Application
If command for a vb script
read html internetexplorer.application
quotes in vb script
WinHttp.WinHttpRequest.5.1 hosting script
CreateObject("WinHttp.WinHttpRequest.5") .Open "Get"
vbs "internetexplorer.application" createobject
script vbs CreateObject msxml
vb script to read text file
transform xml in html vbscript
read rss using vbscript