<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

			<channel>
			<title>Adam Howitt&apos;s Blog - Google Analytics</title>
			<link>http://www.webdevref.com/blog/index.cfm</link>
			<description>A blog for ColdFusion, iPhone Development and other musings</description>
			<language>en-us</language>
			<pubDate>Wed, 08 Sep 2010 06:07:18 -0400</pubDate>
			<lastBuildDate>Wed, 03 Dec 2008 09:44:36 -0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>adamhowitt@gmail.com</managingEditor>
			<webMaster>adamhowitt@gmail.com</webMaster>
			<itunes:subtitle></itunes:subtitle>
			<itunes:summary></itunes:summary>
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords></itunes:keywords>
			<itunes:author></itunes:author>
			<itunes:owner>
				<itunes:email>adamhowitt@gmail.com</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			<itunes:image href="" />
			<image>
				<url></url>
				<title>Adam Howitt&apos;s Blog</title>
				<link>http://www.webdevref.com/blog/index.cfm</link>
			</image>
			<itunes:explicit>no</itunes:explicit>
			
			
			
			
			
			<item>
				<title>Seth Godin says my seminar is a lost cause</title>
				<link>http://www.webdevref.com/blog/index.cfm/2008/12/3/Seth-Godin-says-my-seminar-is-a-lost-cause</link>
				<description>
				
				&lt;p&gt;Well, close. &amp;nbsp;Jeff just sent me an &lt;a href=&quot;http://sethgodin.typepad.com/seths_blog/2008/12/gravity-is-just.html&quot; target=&quot;_self&quot; title=&quot;Evolution vs Gravity&quot;&gt;article from Seth&apos;s blog&lt;/a&gt; pointing out that marketing evolution is much harder than marketing gravity because gravity is something people already believe in.&lt;/p&gt;&lt;p&gt;I&apos;m banking on people believing that &lt;a href=&quot;http://webevolutionseminar.com&quot; target=&quot;_self&quot; title=&quot;Website Evolution Seminar&quot;&gt;evolving your website&lt;/a&gt; is cheaper and more productive than starting from scratch or paying for AdWords campaigns. &amp;nbsp;&lt;/p&gt;&lt;p&gt;The seminar follows a logical flow from fixing the problems for the visitors you get before chasing new visitors with SEO and AdWords campaigns.&lt;/p&gt;&lt;p&gt;The morning shows you how to use Google Analytics to analyze the traffic you get to find the problems on your website. &amp;nbsp;Next I&apos;ll cover Google Website Optimizer to help you split test a theory without fighting with the CEO over what goes on the home page.&lt;/p&gt;&lt;p&gt;The afternoon starts with Search Engine Optimization basics to make sure you&apos;re getting the best free traffic possible before you invest in pay-per-click, the focus of the last session of the day. &amp;nbsp;Google AdWords can be expensive if the material covered in the first 3 sessions isn&apos;t addressed and I&apos;ll teach you how to change the way you buy your campaigns to get the most for your dollar.&lt;/p&gt;&lt;p&gt;The first one day seminar is December 17th in Chicago and space is restricted to a cozy crowd of 10 to promote interaction and make sure everyone goes home with a personal action plan. &amp;nbsp;If you can&apos;t make it to Chicago for the day, let me know if you think there is a demand for the seminar in your city.&lt;/p&gt;&lt;p&gt;Sign up now for &lt;a href=&quot;http://webevolutionseminar.com&quot; target=&quot;_self&quot; title=&quot;Web Evolution Seminar&quot;&gt;Website Evolution&lt;/a&gt;!&lt;/p&gt;
				
				</description>
						
				
				<category>Google AdWords</category>				
				
				<category>SEO</category>				
				
				<category>Google Analytics</category>				
				
				<pubDate>Wed, 03 Dec 2008 09:44:36 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2008/12/3/Seth-Godin-says-my-seminar-is-a-lost-cause</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Website Evolution Seminar</title>
				<link>http://www.webdevref.com/blog/index.cfm/2008/11/25/Website-Evolution-Seminar</link>
				<description>
				
				&lt;p&gt;Up the expertise you bring to the table. One-day intensive covers designing for search engine results, split testing of Web pages, using Analytics to arrive at a best design. Google tools provide you with a slam-dunk answers to every client design request.&lt;/p&gt;&lt;p&gt;I&apos;m running a one-day four session seminar from the offices of Adam Howitt Consulting in Chicago on Wednesday, December 17th 2008.&lt;/p&gt;&lt;p&gt;Find out more about &lt;a href=&quot;http://adamhowitt.com/website-evolution.cfm&quot; target=&quot;_self&quot; title=&quot;Website Evolution Seminar Chicago&quot;&gt;Website Evolution!&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;
				
				</description>
						
				
				<category>Google AdWords</category>				
				
				<category>SEO</category>				
				
				<category>Google Analytics</category>				
				
				<pubDate>Tue, 25 Nov 2008 14:39:14 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2008/11/25/Website-Evolution-Seminar</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Clickbank vs. Google AdWords Discrepancies</title>
				<link>http://www.webdevref.com/blog/index.cfm/2008/10/30/Clickbank-vs.-Google-AdWords-Discrepancies</link>
				<description>
				
				A client recently contacted me to ask why Google AdWords was reporting conversions but the clickbank affiliate account the Google AdWords ad linked to showed zero conversions.&amp;nbsp; The names have been changed to protect the innocent.&amp;nbsp; That includes the site - I have no idea about websites selling pipecleaners.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;The &amp;quot;Basic&amp;quot; Process&lt;br /&gt;
&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Joe the plumber (just to be topical) searches in Google for a phrase that triggers my client&apos;s AdWords ad for bestpipecleaners.com. &amp;nbsp;&lt;/li&gt;
&lt;li&gt;If Joe clicks the link, Google AdWords places a cookie on his machine that lasts 30 days to record the Ad that drove him to the site&lt;/li&gt;
&lt;li&gt;Google AdWords redirects Joe to the link in the Ad, in this case my client&apos;s clickbank affiliate link&lt;/li&gt;
&lt;li&gt;Clickbank creates a clickbank cookie good for 60 days to record the affiliate ID responsible for taking Joe to the clickbank destination URL, in this case, my client&apos;s landing page finally.&lt;/li&gt;
&lt;li&gt;Joe goes from the landing page to a few more pages and then hits the purchase button&lt;/li&gt;
&lt;li&gt;The purchase button goes to the clickbank checkout process &lt;/li&gt;
&lt;li&gt;Clickbank pulls the 60 day clickbank cookie from Joe&apos;s machine&lt;/li&gt;
&lt;li&gt;When he completes the sale, the affiliate ID from his cookie is credited with the sale &lt;/li&gt;
&lt;li&gt;Clickbank redirects Joe to the thank you page on my client&apos;s site&lt;/li&gt;
&lt;li&gt;The thank you page is tagged with the affiliate tracking code and Joe closes his browser and goes to fix some pipes.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Simple huh?&amp;nbsp; So in this case clickbank correctly accounts for one sale from my client&apos;s affiliate ID and Google AdWords records one conversion against the Ad that convinced Joe to purchase.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;The Blockage in the Pipes&lt;br /&gt;
&lt;/strong&gt;Josephine the plumber searches in Google for a phrase that triggers my client&apos;s ad and follows a similar path as Joe but when she gets to the landing pages, she doesn&apos;t trust the hype, leaves the website and goes to fix some pipes. &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
A week later she is still trying to solve her underlying problem so she goes back to her computer and finds another website on the topic, pipecleanerreviews.com. Unbeknownst to her, this site is also an affiliate of my client and after she sees a review of my client&apos;s product, she decides it might work after all and clicks the link to visit my client&apos;s landing page again at bestpipecleaners.com.&amp;nbsp; Behind the scenes, the URL she clicked on is a clickbank link with pipecleanerreviews.com&apos;s clickbank id instead of my client&apos;s clickbank id. &lt;br /&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Clickbank records the affiliate id as pipecleanerreviews.com in the cookie on Josephine&apos;s machine, replacing the original affiliate id of bestpipecleaners.com&lt;/li&gt;
&lt;li&gt;Clickbank redirects her to bestpipecleaners.com and she completes the sale&lt;/li&gt;
&lt;li&gt;Clickbank pulls the cookie from her machine (pipecleanerreviews.com&apos;s affiliate id) and so they get the credit for the sale&lt;/li&gt;
&lt;li&gt;Clickbank redirects her to the thank you page which is also tracked with pipecleanerreviews.com&apos;s conversion tracking code (in addition to bestpipecleaners.com&apos;s code), and she goes off to fix some pipes.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The problem in this scenario, is that the thankyou page has both Google AdWords conversion codes and so both AdWords accounts (bestpipecleaners.com and pipecleanerreview.com) will record a conversion, when clickbank only credited a single affiliate with the conversion.&lt;br /&gt;
&lt;br /&gt;
There are many other scenarios that play out in a similar way and she might have visited many sites.&amp;nbsp; In fact some of the links from my client&apos;s site bestpipecleaners.com points to pipecleanerreviews.com because it&apos;s a good idea to let people get third party opinions of your products to help them decide if it&apos;s worth buying. &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
To accurately measure the AdWords campaign, the first search she did was not responsible wholly for the sale but since conversions are absolute we have to decide who gets the credit.&amp;nbsp; Regardless of your opinion on this, clickbank believes the last affiliate ID used should get the credit since they ultimately generated the sale.&amp;nbsp; Google AdWords however has split the credit because of the conversion code existing for both affiliates on the thank you page. &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;The BestPipeCleaner for the job&lt;br /&gt;
&lt;/strong&gt;If we want to change this behavior to make it match clickbank we have to show only the Google AdWords conversion code for the affiliate recorded by clickbank.&amp;nbsp; Fortunately, Clickbank reports the affiliate ID (if there was one) in the URL as the variable cbaffi when the visitor is sent to the thank you page so it is a simple matter of detecting which affiliate ID was passed and showing the appropriate tracking code snippet.&amp;nbsp; This could be a google snippet, a Yahoo PPC snippet or any other conversion code really, we just need to show one or none.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;The URL will look something like this where zzzzzzz is the affiliate ID and ... means there is much more than I want to type out:&lt;br /&gt;
/common/thankyou.cfm?item=9&amp;amp;cbreceipt=xxxxxxx&amp;amp;time=1224443502&amp;amp;cbpop=yyyyyyy&amp;amp;cbaffi=zzzzzzz&amp;amp;cname=...&lt;br /&gt;
&lt;br /&gt;
For my solution I propose a database table of unique affiliate IDs mapped to their tracking code snippet but if you are only dealing with a few affiliates you could manually write this out to a property list or structure if you can carefully escape any quotes or double quotes that might break your code.&lt;br /&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If the affiliate ID is blank or isn&apos;t passed to the thank you page, do nothing and skip to the rest of the page&lt;/li&gt;
&lt;li&gt;If the affiliate ID is not blank, look-up the affiliate ID in the database:&lt;ol&gt;
&lt;li&gt;If there are no matches do nothing and skip to the rest of the page&lt;/li&gt;
&lt;li&gt;If there is one result, display the conversion tracking code and then show the rest of the page&lt;/li&gt;
&lt;li&gt;If there are mulitple results for the affiliate ID, loop over the rows and write each snippet out then show the rest of the page&lt;/li&gt;

&lt;/ol&gt;
&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Ideally, each affiliate would have only one snippet per ID but it is foreseeable that an affiliate might be promoting your site on Google, Yahoo and several other conversion tracking channels.&amp;nbsp; If you don&apos;t give them a unique affiliate ID per channel, they will record a conversion against each in the unlikely event that someone saw an affiliates Google ad, then their Yahoo ad before making a purchase.&amp;nbsp; It&apos;s a complex scenario but worth noting.&amp;nbsp; If you can, give them a unique affiliate ID for each separate ad medium they use (Google, Yahoo) so they can see the stats they need.&lt;/p&gt;&lt;p&gt;For help with your &lt;a title=&quot;Google AdWords Specialist&quot; target=&quot;_self&quot; href=&quot;http://www.adamhowitt.com/services/google_adwords&quot;&gt;Google AdWords &lt;/a&gt;issues take a look thru my &lt;a title=&quot;Google Analytics Specialists&quot; target=&quot;_self&quot; href=&quot;http://www.adamhowitt.com&quot;&gt;consulting site&lt;/a&gt; and &lt;a title=&quot;Contact Me&quot; target=&quot;_self&quot; href=&quot;http://adamhowitt.com/contact.cfm&quot;&gt;contact me&lt;/a&gt;.&amp;nbsp; If you need help with Clickbank I have to confess it&apos;s not my specialty but I can try to help.&amp;nbsp; &lt;/p&gt;&lt;p&gt;I&apos;ve also worked extensively with third party e-commerce providers to &lt;a href=&quot;http://www.adamhowitt.com/google_analytics&quot; target=&quot;_self&quot; title=&quot;Google Analytics Specialists&quot;&gt;configure Google Analytics&lt;/a&gt; to ensure revenue is recorded against the correct referral sources which is a related issue.&lt;br /&gt;&lt;/p&gt;
				
				</description>
						
				
				<category>Google AdWords</category>				
				
				<category>Google Analytics</category>				
				
				<pubDate>Thu, 30 Oct 2008 19:00:43 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2008/10/30/Clickbank-vs.-Google-AdWords-Discrepancies</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Eating my own dogfood</title>
				<link>http://www.webdevref.com/blog/index.cfm/2008/10/28/Eating-my-own-dogfood</link>
				<description>
				
				&lt;p&gt;AdamHowitt.com is my &lt;a href=&quot;http://www.adamhowitt.com&quot; target=&quot;_self&quot; title=&quot;Google Analytics Specialist&quot;&gt;Google Analytics consulting&lt;/a&gt; website and has been live for over a year since the inception of my business last year. &amp;nbsp;I built my own CMS a few years ago for &lt;a href=&quot;http://www.globrite.com&quot; target=&quot;_self&quot; title=&quot;Globrite&quot;&gt;a client project&lt;/a&gt; and recently implemented it for &lt;a href=&quot;http://www.ecosceneinc.com&quot; target=&quot;_self&quot; title=&quot;Ecoscene&quot;&gt;another client&lt;/a&gt;. &amp;nbsp;Finally, I have invested the time to implement the CMS for &lt;a href=&quot;http://adamhowitt.com&quot; target=&quot;_self&quot; title=&quot;Google Analytics Specialist&quot;&gt;my own site&lt;/a&gt; so it now blossoms with fresh content and a better insight into the services I have to offer.&lt;/p&gt;&lt;p&gt;Key features of Ham:&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Relationships between content items - for example, my portfolio items are related to services I offer and vice versa so the tool automatically makes the related items available for display&lt;br /&gt;&lt;/li&gt;&lt;li&gt;XML driven content specification - quickly add new fields to a content definition to make new fields available in the adminstrator&lt;/li&gt;&lt;li&gt;Content versioning to make it possible to rollback content to a point in history&lt;/li&gt;&lt;li&gt;Front-end display widgets for common tasks like looping over a list of related item, listing pages and list filters.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;That&apos;s it for now and I&apos;m trying to tidy up the code to make it open source some day. &amp;nbsp;Those in favor, please raise your hands :-)&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
				
				</description>
						
				
				<category>Google Analytics</category>				
				
				<category>SEO</category>				
				
				<category>Coldfusion</category>				
				
				<pubDate>Tue, 28 Oct 2008 12:12:41 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2008/10/28/Eating-my-own-dogfood</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Cross Domain Funnels in Google Analytics</title>
				<link>http://www.webdevref.com/blog/index.cfm/2008/9/3/Cross-Domain-Funnels-in-Google-Analytics</link>
				<description>
				
				&lt;p&gt;I&apos;ve been battling Google Analtyics for the last week for two
customers with a similar issue - each has a multi-step goal configured
starting on one domain and ending on another.&lt;/p&gt;&lt;p&gt;As &lt;a href=&quot;http://www.google.com/support/analytics/bin/answer.py?answer=55532&amp;ctx=sibling&quot; target=&quot;_self&quot; title=&quot;Add tracking code to store and cart pages&quot;&gt;I understood it&lt;/a&gt;
you add the tracking code to your store site and your third party
shopping cart pages.&amp;nbsp; What I didn&apos;t realize and have never witnessed
before, is that you must add the code to &lt;strong&gt;every page &lt;/strong&gt;in your store and &lt;strong&gt;every page &lt;/strong&gt;in your third party cart.&amp;nbsp; I found this out when I found a different &lt;a href=&quot;http://www.google.com/support/analytics/bin/answer.py?hl=en&amp;answer=55503&quot; target=&quot;_self&quot; title=&quot;Add cross domain linker code to EVERY page&quot;&gt;Google Support&lt;/a&gt; page on the topic than the one I had read earlier.&lt;/p&gt;&lt;p&gt;The first &lt;strong&gt;symptom that something was wrong&lt;/strong&gt;
was a funnel with a required step only reporting the first page despite
a simple series of steps defined. &amp;nbsp;&amp;nbsp; I just couldn&apos;t understand why the
second page which was part of the same domain was no longer tracking
since I added the cross-domain linker updates.&lt;/p&gt;&lt;p&gt;Next I re-read the
page I referenced first above and realized that the cross-domain script
goes on the destination as well as the source page but it didn&apos;t fix
the funnel.&amp;nbsp; However, I was able to use the GA Navigation Summary
(Content &amp;gt; Top Content &amp;gt; Page detail &amp;gt; Navigation Summary) to
find each page of the flow.&amp;nbsp; Everything was being tracked here but not
in my funnel. Hmm.&amp;nbsp; If you are on the Navigation Summary you should see
step 2 of your funnel as the exit to step 1 but that wasn&apos;t the case.&lt;/p&gt;&lt;p&gt;I
searched for step 2 in the content dropdown and found it so I clicked
that to see the Navigation summary for step 2.&amp;nbsp; Here I saw entrances
but no step 1 as previous pages.&amp;nbsp; Stranger still, I could see step 3
(on the shopping cart domain) as a next page!&amp;nbsp; For step 3 as the
navigation summary though - I couldn&apos;t see step 4 so I was missing 1
&amp;amp; 4.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;It was clear GA wasn&apos;t tracking the progression from
step 1 &amp;gt; step 2 and starting a visit with step 2 somehow, recording
step 3 next then ignoring the progression to step 4. &lt;/p&gt;&lt;p&gt;The light
bulb moment came when I guessed correctly that the use of the linker
script on step 2 and 3 meant step 1 was tracked with one cookie before
step 2 announced the need to mark pages as part of the domain &amp;quot;none&amp;quot; so
it created a second cookie.&amp;nbsp; &lt;/p&gt;&lt;p&gt;The step 3 page also uses the
&amp;quot;none&amp;quot; domain and so continues with the second cookie since the linker
has passed enough info along to set a matching cookie on the new
domain.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Step 4 (thank you on shopping cart) didn&apos;t have the
linker script so GA created a third cookie because the shopping cart
domain didn&apos;t match the &amp;quot;none&amp;quot; domain set by the linker on step 3.&lt;/p&gt;&lt;p&gt;I ran a test and, sure enough, my funnel started working again.&amp;nbsp; Pah.&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;bottom line&lt;/strong&gt;
is that when I re-read the wording on the reference pages, I&apos;d missed
the subtle fact that you don&apos;t just tag the pages involved in the link
but every page in your domain that are to be tracked when you do
anything with third party domains to make sure your Google Analytics
setuprecords every click. &lt;br /&gt;&lt;/p&gt;
				
				</description>
						
				
				<category>Google Analytics</category>				
				
				<pubDate>Wed, 03 Sep 2008 00:08:52 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2008/9/3/Cross-Domain-Funnels-in-Google-Analytics</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Google Sitemaps made easy with Linux</title>
				<link>http://www.webdevref.com/blog/index.cfm/2008/4/10/Google-Sitemaps-made-easy-with-Linux</link>
				<description>
				
				&lt;p&gt;I just discovered that Google Webmaster now allows you to register Google Sitemaps in a variety of formats: RSS, Simple text or sitemap XML format. &lt;/p&gt;&lt;p&gt;This may not be exciting news to most but the simple text format makes life drastically simpler in terms of an entry point to creating a sitemap.&amp;nbsp;&lt;/p&gt;&lt;p&gt;I was about to fire up a text editor and some tunes to rip through a site to manually collect the page names when I realized that the find command in linux will spit out a carriage return separated list.&amp;nbsp; A quick &lt;div class=&quot;code&quot;&gt;find -name \*.\.htm&lt;/div&gt; yielded the foundation of what I needed.&amp;nbsp; Note that backslashes used to escape special characters.&amp;nbsp; This gave me output as follows:&lt;div class=&quot;code&quot;&gt;./index.htm&lt;br /&gt;./thanks_mailing.htm&lt;br /&gt;./resources.htm&lt;br /&gt;./closing copy.htm&lt;br /&gt;./header.htm&lt;br /&gt;./vegas_17.htm&lt;/div&gt;&lt;/p&gt;&lt;p&gt;The last step was to use the substitute sed command to replace the ./ at the start of the string with the site name and pipe it into the sitemap.txt file:&lt;div class=&quot;code&quot;&gt;find -name&amp;nbsp; \*\.htm | sed &apos;s/^./http:\/\/www\.mysite\.com/&apos; &amp;gt; sitemap.txt&lt;/div&gt;&lt;/p&gt;
				
				</description>
						
				
				<category>SEO</category>				
				
				<category>Ubuntu</category>				
				
				<category>Google Analytics</category>				
				
				<pubDate>Thu, 10 Apr 2008 20:03:04 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2008/4/10/Google-Sitemaps-made-easy-with-Linux</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Free Search Engine Optimization Tool</title>
				<link>http://www.webdevref.com/blog/index.cfm/2008/1/30/Free-Search-Engine-Optimization-Tool</link>
				<description>
				
				&lt;p&gt;Four years ago I began working with a content management system, &lt;a title=&quot;DuoCMS&quot; target=&quot;_self&quot; href=&quot;http://www.duocms.com&quot;&gt;DuoCMS&lt;/a&gt;, which was super flexible but the consequence was that the basic search engine optimization pieces could be missed when implementing anything other than a standard content block.&amp;nbsp; I developed a simple Search Engine Optimization spider to rip through pages of the site and generate a report of the meta data, keywords and titles on each page to help track down omissions.&lt;/p&gt;&lt;p&gt;Last October I started working in Analytics as an independent consultant and I see the demand for this kind of tool is certainly out there.&amp;nbsp; For that reason, I&apos;ve added a slimmed down version to start at your home page and find the first 5 pages on your site linked from the home page.&amp;nbsp; It shows you the title, heading, meta description tag, meta keywords and finally a rudimentary keyword density analysis for the page to give you some ideas about what to use in your meta keywords.&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;The intro paragraph to the tool gives some optimization recommendations but it should be enough to lift most pages lacking in any of these areas from mid-google obscurity to a respectable first page placement for your selected keywords.&amp;nbsp; The exceptions are going to be where you are going after the most competitve keywords.&amp;nbsp; If you find yourself in that boat, use your title and meta tags to carve out a niche in that competitive space.&amp;nbsp; For example, if dog walking is massively competitive (2 million pages last time I checked), try to focus on your most profitable or rewarding area of your business which might be large breed dog walking (311,000 pages).&amp;nbsp; If you add your city to the title, in my case Chicago, you get down to 82,000 competing pages.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To try the tool on your website visit my consulting website at&amp;nbsp; &lt;a href=&quot;http://www.adamhowitt.com&quot; target=&quot;_self&quot; title=&quot;Adam Howitt Consulting&quot;&gt;www.adamhowitt.com&lt;/a&gt; and select resources in the top right.&amp;nbsp; You&apos;ll find the tool listed as SEO Preview Tool and can find some of my presentations and white papers freely available for download.&amp;nbsp; I recommend my Google Technology for Better Content presentation for anyone getting started with Google Analytics.&lt;br /&gt;&lt;/p&gt;
				
				</description>
						
				
				<category>SEO</category>				
				
				<category>Google Analytics</category>				
				
				<pubDate>Wed, 30 Jan 2008 11:24:13 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2008/1/30/Free-Search-Engine-Optimization-Tool</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>A Year in Review and the year in Advance</title>
				<link>http://www.webdevref.com/blog/index.cfm/2008/1/2/A-Year-in-Review-and-the-year-in-Advance</link>
				<description>
				
				&lt;p&gt;This last year has been huge for me after buying our
first home and leaving my full-time job to start my own consulting
business.&amp;nbsp; I am going to review some
highlights before setting some goals for the new year.&lt;/p&gt;&lt;p&gt;We saw in the new year in Williamsburg, Virginia where
Melissa&apos;s cousin was getting married.&amp;nbsp;
Unfortunately our departure back to Chicago was hampered by typical
holiday delays and we ended up being re-routed.&lt;/p&gt;&lt;p&gt;After the physical therapy for my ankle tendonitis, I
joined &lt;a title=&quot;Signed up for team in training&quot; target=&quot;_self&quot; href=&quot;http://www.walkjogrun.net/blog/index.cfm/2007/1/28/Raise-money-for-Leukemia-and-Lymphoma-research&quot;&gt;Team in Training&lt;/a&gt; in January to train for the San Diego marathon, based
on my success the previous year in &lt;a title=&quot;San Francisco marathon race day&quot; target=&quot;_self&quot; href=&quot;http://www.walkjogrun.net/blog/index.cfm/2006/8/2/We-are-the-champions-my-friend&quot;&gt;San Francisco&lt;/a&gt;.&amp;nbsp; We trained through the bitter cold with our
eyes on June 3rd.&amp;nbsp; The organization
raises money for Leukemia and Lymphoma so imagine my surprise when a week after
I signed up we discovered my wife&apos;s Niece had developed &lt;a title=&quot;Haidyn&apos;s page&quot; target=&quot;_self&quot; href=&quot;http://caringbridge.org/visit/haidyn&quot;&gt;Acute Lymphoblastic
Lymphoma&lt;/a&gt; at the age of 3.&amp;nbsp; It made me
even more resolved to succeed and I began my fundraising effort to generate
$3,900.&lt;/p&gt;&lt;p&gt;I &lt;strong&gt;received my Green Card &lt;/strong&gt;in February after 7 years of
immigration turmoil.&amp;nbsp; It was such a
relief to finally be able to stay in the country I call home.&lt;/p&gt;&lt;p&gt;In February the &lt;strong&gt;Chicago Flickr Meetup Group finally
opened the gallery show &lt;/strong&gt;we had been working on called &lt;a title=&quot;Digitally Entwined&quot; target=&quot;_self&quot; href=&quot;http://www.digitallyentwined.com&quot;&gt;Digitally Entwined&lt;/a&gt;.&amp;nbsp;
As the founder of the group I took the lead role in executing Bernie&apos;s
great idea and 15 of us put together an opening night that drew a croud of over
300 people.&amp;nbsp; The artwork was outstanding
and several people were able to sell some work.&lt;/p&gt;

&lt;p class=&quot;MsoPlainText&quot;&gt;I also attended the &lt;a title=&quot;Frameworks conference&quot; target=&quot;_self&quot; href=&quot;http://www.frameworksconference.com&quot;&gt;Frameworks conference&lt;/a&gt; in DC in
February where I got to spend quite a bit of time with the &lt;a title=&quot;Webapper&quot; target=&quot;_self&quot; href=&quot;http://www.webapper.com&quot;&gt;Webapper&lt;/a&gt; guys.&amp;nbsp; Later in the year this resulted in the contract
offer that allowed me to leave my job and become an independent
consultant.&amp;nbsp; The conference was fantastic
and sent me back to Chicago with a head full of ColdSpring and many good
things. &lt;/p&gt;



&lt;p class=&quot;MsoPlainText&quot;&gt;I ran a personal best at the &lt;a title=&quot;Shamrock Shuffle&quot; target=&quot;_self&quot; href=&quot;http://www.shamrockshuffle.com&quot;&gt;Shamrock Shuffle 8k&lt;/a&gt; in
March, finishing in 39:03.&amp;nbsp; We&apos;ve just signed up for the 2008 race so I can try to beat my time.&amp;nbsp; Realistically though after 3 months of 50 hour work weeks with no training I&apos;ll be happy to finish.&lt;br /&gt;&lt;/p&gt;



&lt;p class=&quot;MsoPlainText&quot;&gt;In April I received an intriguing email from &lt;strong&gt;recruiter at
Google &lt;/strong&gt;and began a 2 month mini-marathon interview process culminating with a
flight to San Francisco, a day of interviews and some waiting.&amp;nbsp; The Googleplex was a fascinating place and
the recruiter Ryan took me for lunch in the acclaimed cafeteria and a couple of
games of pool.&amp;nbsp; I had 4 phone screening
interviews over the period and after the onsite meeting I waited a little over
a week before I finally heard that the company had changed direction and were
no longer hiring for the position.&amp;nbsp; This
came as a bit of a shock and as my wife put it at the time &amp;quot;it felt like
we&apos;d been dumped&amp;quot;.&amp;nbsp; We&apos;d put a lot
of eggs in the Google basket and even planned to move out to San Francisco if
it came off so it was a big family decision to do it.&amp;nbsp; After a few weeks of sulking I turned around
and decided that we should make some changes, starting with buying our first
house to put roots down in Chicago and ultimately to plan to resolve my work
situation where I had been frustrated.&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;MsoPlainText&quot;&gt;June was a big month starting with the &lt;strong&gt;completion of the
San Diego marathon &lt;/strong&gt;five hours and forty-nine seconds.&amp;nbsp; It was nearly an hour slower than my San
Francisco time and resulted in some more ankle pain.&amp;nbsp; It was great to finish despite the heat and I
spent the rest of the month limping around.&amp;nbsp;
I gave a presentation to the attendees at &lt;a title=&quot;Web Content 2007&quot; target=&quot;_self&quot; href=&quot;http://www.webcontent2007.com&quot;&gt;Web Content 2007&lt;/a&gt; where my
&lt;strong&gt;Google Technologies presentation&lt;/strong&gt; received top marks despite a line-up including
Jason Fried and Salim Ismail.&amp;nbsp; Shortly
after that conference I flew to DC with three other Duo employees to attend &lt;a title=&quot;CF United &quot; target=&quot;_self&quot; href=&quot;http://www.cfunited.com&quot;&gt;CF
United 2007&lt;/a&gt;.&amp;nbsp; Another great conference
filled with exciting ideas and excellent tutorials even if I did end up being
coerced by my co-workers to sit in the &lt;strong&gt;dunk tank&lt;/strong&gt;.&lt;/p&gt;&lt;p class=&quot;MsoPlainText&quot;&gt;By July my ankle was fully recovered and Melissa and I
were training for the &lt;a title=&quot;Chicago Distance Classic&quot; target=&quot;_self&quot; href=&quot;http://www.chicagodistanceclassic.com/&quot;&gt;Chicago distance classic&lt;/a&gt; - a half marathon and my wife&apos;s
longest race ever.&amp;nbsp; We trained throughout
July and into August when finished together in two hours twelve minutes,
holding hands as we crossed the finish line.&amp;nbsp;
We had an incredibly relaxing &lt;strong&gt;week in Cape Cod &lt;/strong&gt;where Melissa&apos;s family
had rented a house and I even got to see &lt;a title=&quot;Whales breaching&quot; target=&quot;_self&quot; href=&quot;http://flickr.com/photos/earnshavian/sets/72157601713712889/&quot;&gt;humpback whales breaching&lt;/a&gt;.&amp;nbsp; It was a nice break after all the house
hunting we had done and brought us back energized and we found the &lt;a title=&quot;Our First home&quot; target=&quot;_self&quot; href=&quot;http://flickr.com/photos/earnshavian/sets/72157601272545307/&quot;&gt;place we
wanted to buy&lt;/a&gt;.&amp;nbsp; We signed the contract
later in September and &lt;strong&gt;moved in September 29th&lt;/strong&gt;.&amp;nbsp;
&lt;/p&gt;&lt;p class=&quot;MsoPlainText&quot;&gt;A week before we moved I received a call from Nat at Webapper asking if
I was available for a contract.&amp;nbsp; After
mulling it over and working out if we could afford to do it, &lt;strong&gt;I handed in my
notice&lt;/strong&gt; and accepted the 3 month contract, starting one week before we moved
house!&amp;nbsp; It has always been my dream to do
this but the Google situation, growing frustration at the office and finally
having a green card all resulted in the big move.&amp;nbsp; The day after we moved I spoke at &lt;a title=&quot;CF United Express&quot; target=&quot;_self&quot; href=&quot;http://express.cfunited.com/go/chicago/2007/&quot;&gt;CFUnited
Express&lt;/a&gt; on Amazon S3 and EC2.&lt;/p&gt;



&lt;p class=&quot;MsoPlainText&quot;&gt;During November I spoke twice to the &lt;a title=&quot;ColdFusion Meetup&quot; target=&quot;_self&quot; href=&quot;http://www.coldfusionmeetup.com&quot;&gt;ColdFusion online
meetup group&lt;/a&gt; about Amazon S3 and EC2, splitting my CFUnited Express
presentation to allow me to go into more detail.&amp;nbsp; Later in the month we headed back to
Manchester, &lt;strong&gt;England for thanksgiving&lt;/strong&gt;.&amp;nbsp; I
know that we don&apos;t celebrate thanksgiving in England but my Mum made a turkey
and we celebrated anyway, including teaching my Nieces to draw turkeys by
tracing the outline of their hands.&amp;nbsp; I
&lt;strong&gt;met my new Nephew Archie &lt;/strong&gt;for the first time on this trip and we also made it to
Birmingham and Todmorden to meet the new babies that had meant my two good
college friends Kirsty and Taanya missed our wedding.&amp;nbsp; Beautiful children all round and I even got a
little broody myself! &lt;/p&gt;



&lt;p class=&quot;MsoPlainText&quot;&gt;December flew by as my contract with Webapper came to an
end I was accepted to speak at CFUnited for June 2008.&amp;nbsp; We spent the holidays in Boston and came back
in time to celebrate New Year&apos;s Eve (and our five years of knowing each other
anniversary) at a friend&apos;s house after some Singstar karaoke.&lt;/p&gt;



&lt;p class=&quot;MsoPlainText&quot;&gt;What is in store for 2008?&amp;nbsp; Some things I already know like the CF United
presentation and I have been asked to be a mentor for the early bird Chicago
Marathon Team in Training group.&amp;nbsp; We&apos;ll
be starting later this month and will ramp up slowly over the next nine months
to get ready to run the marathon here.&amp;nbsp;
I&apos;ll know for certain in the next week or so but I&apos;m really excited to
be able to help other people raise money and train for their first
marathons!&amp;nbsp; My personal goal for the race
is to beat my 4:06 personal best but if the weather is as hot as the last
Chicago marathon I think I&apos;ll just be happy surviving the race!&lt;/p&gt;



&lt;p class=&quot;MsoPlainText&quot;&gt;Now my Webapper contract is over I have been working on
some other projects but my goal is to find another short to medium term
contract around the three month mark.&amp;nbsp; In
the last 3 months I&apos;ve been working 50 hour weeks between my clients but without
the contract I&apos;m down to about 60% utilization in the coming month so if anyone
has any projects they need an experienced hand with, let me know!&amp;nbsp; I&apos;ve been using my spare time to learn Flex
to broaden my skills.&amp;nbsp; The Webapper
contract I was the CF and DB guy writing the service layer for a Flex front end
and it certainly gave me a better appreciation for the potential of Flex.&amp;nbsp; I worked in a vacuum, using test driven
development to build CFCUnit tests before coding each method and using those to
gauge my success with no interface to refer to initially.&amp;nbsp; This is a practice I want to pursue in the
new year and continue to work with Cruise Control for continuous builds and
test execution.&amp;nbsp; &lt;/p&gt;&lt;p class=&quot;MsoPlainText&quot;&gt;We donated all the books we had in storage we had read
between Christmas and New Year so my goal for this year is to read the 26
fiction titles that remain.&amp;nbsp; At one every
two weeks it will definitely be a challenge but I think I can do it.&amp;nbsp; I just need to finish the last two Harry
Potter books first.&amp;nbsp; My last goal is to
beat my wife at Singstar.&amp;nbsp; We bought the
Singstar 80s game after Christmas and have been addicted ever since.&amp;nbsp; It&apos;s essentially Karaoke for your living room
but you are scored on your performance based on pitch and timing.&amp;nbsp; I have only managed to beat Melissa at
Blondie&apos;s Heart of Glass using a falsetto voice so I&apos;m desperate to improve to
save my dignity ;-)&lt;/p&gt;
				
				</description>
						
				
				<category>Google Analytics</category>				
				
				<category>Coldfusion</category>				
				
				<pubDate>Wed, 02 Jan 2008 11:59:21 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2008/1/2/A-Year-in-Review-and-the-year-in-Advance</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Google Adds Site Search to Google Analytics</title>
				<link>http://www.webdevref.com/blog/index.cfm/2007/11/2/Google-Adds-Site-Search-to-Google-Analytics</link>
				<description>
				
				&lt;p&gt;One of the most important but least tracked aspects of your website is how people use search to find things on your site.&amp;nbsp; Google Analytics has been updated to include a new section for tracking site searches by category. &lt;/p&gt;&lt;p&gt;I&apos;ll explain why it&apos;s important to track search, describe each of the new reports Google Analytics provides, offer some conclusions you may be able to draw from the reports and then explain how to configure Google Analytics to track searches.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why track searches?&lt;br /&gt;&lt;/strong&gt;People typically resort to searching your site when they are either in a hurry or can&apos;t find what they are looking for.&amp;nbsp; It can also be argued that if they are in a hurry and can&apos;t find what they are looking for that you still have an issue in that your site doesn&apos;t make the important information obvious enough.&amp;nbsp; Given that the average person spends around 8 seconds on each page of your site you might notice that it seems like everyone is in a hurry! &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What reports will using Google Analytics provide to help me?&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visits: Who searched and when?&lt;/li&gt;&lt;ul&gt;&lt;li&gt;When did visitors use site search? - Trends over time to let you know when people are searching.&amp;nbsp; The drop down box on this report allows you to dig deeper to see how many visitors searched, total unique searches, how many result pages were viewed per search, percentage of people leaving after seeing your search results page (hint: they didn&apos;t find what they were looking for), percentage of people refining their search to be more specific (hint: your search results were not very helpful), time spent on your site after they searched and lastly how many results did they user click on to find what they needed.&amp;nbsp; All of these sub-reports should help you be more critical of your current embedded search.&amp;nbsp; If people are constantly refining searches or leaving but you know the content they needed was there, maybe it&apos;s time to consider Google&apos;s site search or another service.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;How do visitors who searched compare to those who didn&apos;t? - This report has the standard 3 tabs you may be familiar with from elsewhere in Google Analytics &amp;quot;Site usage&amp;quot;, &amp;quot;Goal Conversion&amp;quot; and &amp;quot;Ecommerce&amp;quot;.&amp;nbsp; The site usage tab allows you to use the drop down boxes to compare visitors that searched against those who did not in terms of how many pages were viewed, how many people after just one page (a &amp;quot;bounce&amp;quot;).&amp;nbsp; If you have configured goals for your site you can switch to the goal conversion tab and, for example, compare visitors who added an item to their cart who used search versus those who did not to see if searches are more or less likely to purchase from you.&amp;nbsp; If you have e-commerce configured for analytics you can go one step further and the e-commerce tab will tell you if you get more revenue from people who search than those who don&apos;t.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Search: What did visitors search for?&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Which search terms did visitors use? This report can tell you what the top terms used to search your site were and gives you the same 3 tabs as the previous report.&amp;nbsp; This means that you can see whether people were more likely to leave your site or buy something based on the terms they used to search.&amp;nbsp; Clearly if you do track revenue based on visitors to your site and you see that a popular search term results in substantial revenue, it is a strong indicator that this item or product isn&apos;t prominent enough in your navigation but has good demand.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Which categories did visitors search?&amp;nbsp; This report tells you how many people are using the more advanced category based searches. You can investigate whether one category of search causes more people to leave the site or purchase something than the other categories of search.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Content: Where did visitors search?&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Where did visitors start their searches?&amp;nbsp; Searchers always have a starting page and this report can tell you which page was the last page they visited before they gave up clicking your navigation and tried to search instead.&amp;nbsp; This doesn&apos;t necessarily mean that the starting page was the dud because they may have bounced around your site with the navigation first.&amp;nbsp; People want to be successful and feel empowered when they use your site and you can improve this feeling by making visitors feel like they were able to find what they needed by clicking.&amp;nbsp; It&apos;s a small victory but it makes people feel a little happier to use your site so if they resort to searching it can be very disappointing.&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Which pages did visitors find?&amp;nbsp; Once they searched, where did they end up?&amp;nbsp; This report will tell you where people went for each type of search.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;What should you look for?&lt;br /&gt;&lt;/strong&gt;Take a look at the top 10 search terms on the site and think about the role of your website.&amp;nbsp; Are any of the search terms valid terms for someone interested in reaching the ultimate goal of your website?&amp;nbsp; The ultimate goal might be signing up for a newsletter, filling out an application, buying something or submitting a contact form.&amp;nbsp; If the terms are for this type of content then you may have an information architecture problem.&amp;nbsp; The solution to this problem is broader than the scope of this post but you should probably gather some of your team together to brainstorm some ideas.&amp;nbsp; Here are some general pointers but for more information checkout Steve Krug&apos;s &amp;quot;&lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/0321344758/thesurgerepor-20&quot; target=&quot;_self&quot; title=&quot;Don&apos;t make me think&quot;&gt;Don&apos;t make me think&lt;/a&gt;&amp;quot;.&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Emphasis is an accent&lt;/strong&gt;.&amp;nbsp; If everything on a page is emphasized, nothing on a page is emphasized. &amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Prioritize&lt;/strong&gt;.&amp;nbsp; Your web page reads from top to bottom so the most important messages should appear at the top.&amp;nbsp; There is only one number one slot on the page.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Keep it above the fold&lt;/strong&gt;.&amp;nbsp; Not everything deserves to appear in the top part of the page, the trick is deciding which content doesn&apos;t belong there.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Think like your visitor&lt;/strong&gt;.&amp;nbsp; Try to get some people who are unfamiliar with your website to review any different concepts for reorganizing your pages to make sure they can find the new elements you introduce.&amp;nbsp; An alternative is to try the Google Website Optimizer to test the new designs side by side, otherwise known as an A/B test.&amp;nbsp; Google serves your new and the old design to a fraction of your existing traffic so you can monitor changes in search behavior and navigation behavior.&amp;nbsp; Ultimately you can track how many more people converted/ purchased/ signed up because of the new design and make the switch if you have positive results.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;To setup search analytics for your site in &lt;a href=&quot;http://analytics.google.com&quot; target=&quot;_self&quot; title=&quot;Google Analytics&quot;&gt;Google Analytics&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Go to Analytics Settings for the site where you want to monitor searches&lt;/li&gt;&lt;li&gt;Click the edit link on the far right of the &amp;quot;Main Website Profile Information&amp;quot; section&lt;/li&gt;&lt;li&gt;You should see a site search section with &amp;quot;don&apos;t track site search&amp;quot; selected&lt;/li&gt;&lt;li&gt;Change this to &amp;quot;Do track site search&amp;quot; and you should see a new field appear for query parameter and categories&lt;/li&gt;&lt;li&gt;The query parameter is the part of your URL which is used to tell your web server which search term was used.&amp;nbsp; To work this out, go to the search box on your site, enter a search term and hit submit.&amp;nbsp; Look at the URL on the search results page and you should see something like q=my+search+term or search=my+search+term or something similar.&amp;nbsp; &amp;quot;q&amp;quot; and &amp;quot;search&amp;quot; are query string parameters and &amp;quot;my+search_term&amp;quot; is the search term.&amp;nbsp; You may have more than one pair of parameters and search terms, especially if your search has options like cat=my+category where you filter a search based on a category of your website.&lt;/li&gt;&lt;li&gt;Enter a list of each query string parameter found in the previous step, separated by commas. So we would use q or search for our example above.&lt;/li&gt;&lt;li&gt;If you found that you do have different categories of search like &amp;quot;search people&amp;quot;, &amp;quot;search offices&amp;quot;, &amp;quot;search products&amp;quot; and there is a query string parameter used to differentiate each search type, select yes where it asks &amp;quot;Do you use categories for site search?&amp;quot; and enter the list of category parameter names.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
				
				</description>
						
				
				<category>SEO</category>				
				
				<category>Google Analytics</category>				
				
				<pubDate>Fri, 02 Nov 2007 13:00:25 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2007/11/2/Google-Adds-Site-Search-to-Google-Analytics</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Google Analytics reports zero visits but Google Ads shows clicks</title>
				<link>http://www.webdevref.com/blog/index.cfm/2007/10/9/Google-Analytics-reports-zero-visits-but-Google-Ads-shows-clicks</link>
				<description>
				
				I&apos;ve been working with a client to troubleshoot his Google Analytics setup and discovered a documented issue you should look out for.&amp;nbsp; The Google Adwords campaign summary was reporting over 2000 clickthrus but the Google Analytics AdWords campaign summary showed zero visits for the same period.&amp;nbsp; After some investigation it became clear that the issue manifested itself after the new site was launched.&amp;nbsp; In my mind if a click was occuring but not recording a visit my concern was that the adunit was redirecting to a page that had gone away.&amp;nbsp; I clicked the link in the adunit but it took me to a valid page.&amp;nbsp; Knowing that 301 redirects are used to redirect clients to new permanent homes of content I fired up Fiddler 2 to inspect the actual http request and discovered a 301 redirect.&amp;nbsp; My instinct told me that a 301 redirect wouldn&apos;t pass on the campaign data from the original page and was ready to set up my own experiment to test the theory when I came across the definitive answer on the Google Analytics support page &lt;em&gt;&lt;a href=&quot;http://www.google.com/support/googleanalytics/bin/answer.py?hl=en&amp;answer=55610 &quot; target=&quot;_self&quot; title=&quot;Why do AdWords and Analytics show different figures in my reports&quot;&gt;&amp;quot;Why do AdWords and Analytics show different figures in my reports?&amp;quot;&lt;/a&gt;&lt;/em&gt;.
				
				</description>
						
				
				<category>SEO</category>				
				
				<category>Google Analytics</category>				
				
				<pubDate>Tue, 09 Oct 2007 16:43:12 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2007/10/9/Google-Analytics-reports-zero-visits-but-Google-Ads-shows-clicks</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Glo-Brite Heavy Duty Section Launched</title>
				<link>http://www.webdevref.com/blog/index.cfm/2007/9/14/Glo-Brite-Heavy-Duty-Section-Launched</link>
				<description>
				
				&lt;p&gt;It&apos;s always a big relief to see a client really embrace a CMS and throw resources at it to get the website moving.&amp;nbsp; &lt;a href=&quot;http://www.glo-brite.com&quot; target=&quot;_self&quot; title=&quot;Globe Specialty Company&quot;&gt;Glo-Brite &lt;/a&gt;is
a client I&apos;ve been working with for the last year and we launched their
site about six months ago.&amp;nbsp; We stalled for a while but finally got back
on track as Paul dedicated a resource to load all his &lt;a href=&quot;http://www.globrite.com/heavy_duty/stop_turn_tail_lamps.cfm&quot; target=&quot;_self&quot; title=&quot;Heavy Duty Truck Parts&quot;&gt;heavy duty truck parts&lt;/a&gt;, uploading images, creating page titles and descriptions from their catalog.&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;The site is driven by my home grown CMS &amp;quot;Ham&amp;quot; (an anagram of my
initials).&amp;nbsp; It is driven by an xml configuration file and includes
rollback, file and image uploads and allows you to relate one object
class to another.&amp;nbsp; It runs on MySQL and BlueDragon.&amp;nbsp; Image uploads are
resized using the native java AWT image
library.&lt;div class=&quot;code&quot;&gt;&amp;lt;cffunction name=&amp;quot;scaleImage&amp;quot; access=&amp;quot;private&amp;quot;
output=&amp;quot;false&amp;quot; returntype=&amp;quot;boolean&amp;quot; description=&amp;quot;Scales an image by a
factor or to fit within a max width/max height or both with
configurable quality settings&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;cfargument name=&amp;quot;inFile&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;cfargument name=&amp;quot;outFile&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;cfargument name=&amp;quot;scale&amp;quot; type=&amp;quot;numeric&amp;quot; required=&amp;quot;false&amp;quot; default=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;cfargument name=&amp;quot;intMaxWidth&amp;quot; type=&amp;quot;numeric&amp;quot; required=&amp;quot;false&amp;quot; default=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;cfargument name=&amp;quot;intMaxHeight&amp;quot; type=&amp;quot;numeric&amp;quot; required=&amp;quot;false&amp;quot; default=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;cfargument name=&amp;quot;quality&amp;quot; type=&amp;quot;numeric&amp;quot; default=&amp;quot;0.30&amp;quot; required=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;cfscript&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fs = createObject(&amp;quot;java&amp;quot;,&amp;quot;java.io.FileInputStream&amp;quot;).init(arguments.inFile);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; jpegCodec=createObject(&amp;quot;java&amp;quot;,&amp;quot;com.sun.image.codec.jpeg.JPEGCodec&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; decoder = jpegCodec.createJPEGDecoder(fs);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; srcImg = decoder.decodeAsBufferedImage();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fs.close();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (arguments.scale neq 0 OR (arguments.intMaxWidth eq 0 AND arguments.intMaxHeight eq 0)) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; variables.scale = arguments.scale;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; w=srcImg.getWidth();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; h=srcImg.getHeight();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (arguments.intMaxWidth neq 0 AND arguments.intMaxHeight eq 0) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; variables.scale = arguments.intMaxWidth / w;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (arguments.intMaxWidth eq 0 AND arguments.intMaxHeight neq 0) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; variables.scale = arguments.intMaxHeight / h;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (h lt w) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; variables.scale = arguments.intMaxWidth /w;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; variables.scale = arguments.intMaxHeight / h;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/cfscript&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;cfscript&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; af = createObject(&amp;quot;java&amp;quot;,&amp;quot;java.awt.geom.AffineTransform&amp;quot;).getScaleInstance(variables.scale, variables.scale);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; hints = createObject(&amp;quot;java&amp;quot;,&amp;quot;java.util.HashMap&amp;quot;).init();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rh = createObject(&amp;quot;java&amp;quot;,&amp;quot;java.awt.RenderingHints&amp;quot;).init(hints);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; transform = createObject(&amp;quot;java&amp;quot;,&amp;quot;java.awt.image.AffineTransformOp&amp;quot;).init(af,rh);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; destImg = transform.createCompatibleDestImage(srcImg, srcImg.getColorModel());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; transform.filter(srcImg, destImg);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; out = createObject(&amp;quot;java&amp;quot;,&amp;quot;java.io.FileOutputStream&amp;quot;).init(outFile);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; encoder = jpegCodec.createJPEGEncoder(out, jpegCodec.getDefaultJPEGEncodeParam(destImg));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; par = encoder.getDefaultJPEGEncodeParam(destImg);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; par.setQuality(JavaCast(&amp;quot;float&amp;quot;,arguments.quality), true); // set jpeg quality to 30 percent&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; encoder.setJPEGEncodeParam(par);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; encoder.encode(destImg);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; out.close();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/cfscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/cffunction&amp;gt;&lt;/div&gt;&lt;br /&gt;
I&apos;ll post a follow up to this to explain how I arrived at this code as
this was my first experiment at leveraging Java objects within my
applications and once you get it, the process is actually really
straightforward.&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;The site is configured with Google Analytics and we are tracking
the goal that clients are submitting the contact form as the way to
evaluate the performance of the content on the site and ad campaigns
they are going to run.&amp;nbsp; Some areas are still a little rough but the
client was willing to work on a &amp;quot;more content online is better than
none while we wait for final sign off on every piece&amp;quot; basis.&amp;nbsp; There
will be a few more design tweaks, plenty of content updates and the car
and light duty AJAX driven part browser will be the last piece to
launch.&lt;br /&gt;
&lt;/p&gt;
				
				</description>
						
				
				<category>SEO</category>				
				
				<category>Google Analytics</category>				
				
				<pubDate>Fri, 14 Sep 2007 09:57:14 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2007/9/14/Glo-Brite-Heavy-Duty-Section-Launched</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Tracking customers beyond domain boundaries</title>
				<link>http://www.webdevref.com/blog/index.cfm/2007/9/13/Tracking-customers-beyond-domain-boundaries</link>
				<description>
				
				&lt;p&gt;When a user clicks a link on your site, taking them to a new domain or sub-domain, your Google Analytics reports show an abandonment from the first domain and a referral on the second.&amp;nbsp; This poses problems if you are trying to track things like a sales funnel because you get artificially high abandonment rates.&lt;/p&gt;&lt;p&gt;You can install the Google script on both domains but because the cookie is tied to the first domain it is recorded as an abandonment for one and a referral for the second site you go to.&amp;nbsp; &lt;/p&gt;&lt;p&gt;To get around this Google has instructions about &lt;a title=&quot;Tracking domain changes in Google Analytics&quot; target=&quot;_self&quot; href=&quot;http://www.google.com/support/googleanalytics/bin/answer.py?answer=55532&amp;hl=en%20&quot;&gt;tracking domain changes&lt;/a&gt; as your customers navigate from one domain to another and back again.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The intent of this approach is for things like third party shopping carts where you may have control over the layout to be able to show your script but the domain name is that of the provider.&amp;nbsp;&lt;/p&gt;
				
				</description>
						
				
				<category>Google Analytics</category>				
				
				<pubDate>Thu, 13 Sep 2007 17:44:54 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2007/9/13/Tracking-customers-beyond-domain-boundaries</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Profitable Online Marketing with Google Analytics</title>
				<link>http://www.webdevref.com/blog/index.cfm/2007/9/10/Profitable-Online-Marketing-with-Google-Analytics</link>
				<description>
				
				After 9 years of working for other people I&apos;ve decided to go solo and start my own &lt;a href=&quot;http://www.adamhowitt.com&quot; target=&quot;_self&quot; title=&quot;Adam Howitt Consulting&quot;&gt;consulting business&lt;/a&gt;.&amp;nbsp; The site is rudimentary right now as I only handed in my notice today.&amp;nbsp; As regular readers may be aware, I&apos;ve evolved from an entry level programmer to a Senior Application Architect in my current role since getting my Masters in Software Engineering and developed an interest in implementing &lt;a href=&quot;index.cfm?t=Google_Technology_Presentation_selling_out_fast&amp;mode=entry&amp;entry=73714B13-86F9-13EE-784190BF9FD83CD4&amp;dv=link&quot; target=&quot;_self&quot; title=&quot;Google Technologies presentation&quot;&gt;Google technologies&lt;/a&gt;.&amp;nbsp; In my spare time I&apos;ve been fostering a worldwide smash-hit, &lt;a href=&quot;http://www.walkjogrun.net&quot; target=&quot;_self&quot; title=&quot;WalkJogRun.net&quot;&gt;WalkJogRun.net&lt;/a&gt;, with over 4,000 visitors per day and 100,000 routes worldwide.&amp;nbsp; I&apos;m addicted to Google Analytics and have a white paper due out under my current employers, &lt;a href=&quot;http://www.duoconsulting.com/blog&quot; target=&quot;_self&quot; title=&quot;Duo Consulting&apos;s Blog&quot;&gt;Duo Consulting&lt;/a&gt;, explaining how to monitor the effectiveness of your marketing campaigns and tune the content on your website.&lt;br /&gt;
&lt;br /&gt;
The last three years at Duo has been a fantastic experience for me giving me the freedom to explore exciting new technologies and all under billable hours because our clients are willing to try new things.&amp;nbsp; I&apos;ve load tested and refined the &lt;a href=&quot;http://programs.chicagoparkdistrict.com/programBrowser&quot; target=&quot;_self&quot; title=&quot;Chicago Park District Program Browser&quot;&gt;Chicago Park District programs website&lt;/a&gt; to support as many as 3,000 transactions in the first 3 minutes of registration every quarter, debugged and load tested third-party ColdFusion CMS tools and built a &lt;a href=&quot;http://cicadas.lcfpd.org/cicadamap/&quot; target=&quot;_self&quot; title=&quot;Cicada Mashup&quot;&gt;Cicada Emergence Google Mashup&lt;/a&gt; in the last year alone.&amp;nbsp; I&apos;ve implemented Google Analytics for many of our clients resulting in important business changing results.&amp;nbsp; Clients have paused underperforming ad campaigns, monitored the performance of redesign work, reallocated advertising dollars and even redesigned their shopping cart checkout process on the strength of tell-tale numbers through my analysis.&lt;br /&gt;
&lt;br /&gt;
The primary focus of my new business will be helping clients to install Google Analytics, establish their goals for the websites and then monitor the effectiveness of their sites and the advertising campaigns they create.&amp;nbsp; I&apos;ll help them identify areas of their sites underperforming and evaluate their ad campaigns to get the most out of every dollar.&amp;nbsp; I have colleagues who can help with content development, Duo will be my first referral as far as deeper restructuring work and I can do development work too. &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
The secondary focus for my business will be to load test web applications and either help developers benchmark the sites or discover the bottlenecks and resolve them.&amp;nbsp; I see this as a huge opportunity as the web continues to grow and web applications surpass the lowly traffic expectations they were initially conceived to handle.&amp;nbsp; In some cases the trouble will be at the database level, sometimes it is the JVM, sometimes it&apos;s an innocuous ColdFusion funciton like createUUID that hit the OS behind the scenes and crash JRun every 10 concurrent visitors. &amp;nbsp;&lt;br /&gt;
If you have read any of my posts in the past and value the expertise you have found, or if you have read this description and think you or someone you know would value from this kind of service, please pass on the link or get in touch.&amp;nbsp; I can be reached by email at adamhowitt@gmail.com or by phone at +1 (312) 714 9229.&amp;nbsp; Thanks for reading and stay tuned for more of the same tips, tricks and commentary.
				
				</description>
						
				
				<category>Google Analytics</category>				
				
				<category>SEO</category>				
				
				<category>Coldfusion</category>				
				
				<category>SQL</category>				
				
				<category>ChicagoParkDistrict</category>				
				
				<pubDate>Mon, 10 Sep 2007 23:51:44 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2007/9/10/Profitable-Online-Marketing-with-Google-Analytics</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Hotmail spam blocker</title>
				<link>http://www.webdevref.com/blog/index.cfm/2007/7/13/Hotmail-spam-blocker</link>
				<description>
				
				&lt;p&gt;I did my first newsletter mailing today to the 6,000 members who opted in over the last year to &lt;a href=&quot;http://www.walkjogrun.net&quot;&gt;WalkJogRun&lt;/a&gt; for infrequent email updates and I&apos;ve got to tell you - it was a blast!  I wrote the content and Jeff put together a design for the format, correcting a few things here and there.  We used &lt;a href=&quot;http://www.campaignmonitor.com&quot;&gt;Campaign Monitor&lt;/a&gt; to send the messages and the tools are perfect.  I uploaded a CSV list from my database of the opt-in members while Jeff uploaded the &lt;a href=&quot;http://walkjogrun.cmail1.com/e/213416/l/&quot;&gt;HTML&lt;/a&gt; and ran a few tests to make sure his semantic markup looked good in a range of email clients.  They currently charge $5 base cost plus one cent per email so it cost us just over $65 for the list.  At 1pm CST 6,000 WalkJogRun members emails were on their way and we had 5 mins to wait before the stats started to come in.  

&lt;/p&gt;&lt;p&gt;The first response of course is all the bounces from mail servers around the world declaring hard and soft bounces for their domains.  Next was a swarm of Out of Office replies in the reply to email address box.  Some of these were &amp;quot;I&apos;ll be out of the office until...&amp;quot; but some were &amp;quot;I&apos;ll be out of the office - forever!  I no longer work at ...&amp;quot;.  Some of these were really funny to read, others straightforward.  Being obsessive about things like this, every 15 minutes I would hit refresh to see the open rate and clickthrough rate climbing.  As it stands at 2pm (26 hours into the mailing) there have been 1,729 unique opens and a 486 clickthroughs to the site or the articles, 34 people have unsubscribed and 176 emails bounced (101 hard).  The reports give you a great overview of the campaign progress to date and allow you to drill down to view opens over time, unsubscribes over time, link activity and plenty more.

&lt;/p&gt;&lt;p&gt;My only concern is that we are 30% deep into the open rate with 0.26% spam reports.  On further investigation, all but one of the spam reports are from hotmail accounts.  I&apos;m very familiar with their process for spam having witnessed my wife innocently configuring her email.  I&apos;m not sure if it&apos;s a default setup but her email is set to only receive mail from people in her address book.  All other mail goes to the spam trap.  Every few days she looks in the spam trap and reads messages in place, transfers some to her inbox and just outright deletes others.  The majority of these are offers from companies she gave permission to keep in touch with her.  She doesn&apos;t think of it as spam and the separate bucket is just a convention to her for reviewing offers.  I believe she, and many other hotmail users are inadvertently flagging marketing messages they opted-in for as spam, but not appreciating the way hotmail treats these reports.  Campaign monitor has a 0.25% tolerance for spam at which point they will terminate your account according to the guidelines so I emailed them to let them know that there is a disturbing trend that of the 15 spam complaints, all but 1 was a hotmail account.  My theory is that there is something other than a deliberate spam report decision being made.  Fortunately the campaign monitor guys are Australian so it was 1pm their time when I sent my message at 11pm from Chicago last night.  Within minutes I had a hand crafted response thanking me for my attention to spam and letting me know that I should be in touch again if it continues to rise.  I just emailed Matthew with a note to say that we are considering a double opt-in procedure and a note to say &amp;quot;please add adam@w... to your address book&amp;quot; so hopefully that will cool the waters.  I&apos;m also sure that this is just teething trouble for our first mailing and subsequent emails will run more smoothly.

&lt;/p&gt;&lt;p&gt;If I could do it all over again I would have used the database to categorize the members by membership duration to see if there is a pattern in unsubscribes or spam reports since it is over a year since people opted in.  I&apos;m going to speak to the Campaign monitor guys to see if there is a way to update my list with categories after the fact for this purpose.   We have another 5,000 members in our database who opted out who will never receive a message from us and lastly 5,000 members who joined before we added the opt-in box.  For this last group, we&apos;re going to add a yes no question next time they visit the site to see if they want to opt-in.  This should make sure we keep growing the list without irritating people!&lt;/p&gt;
				
				</description>
						
				
				<category>Google Analytics</category>				
				
				<category>Coldfusion</category>				
				
				<pubDate>Fri, 13 Jul 2007 16:13:18 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2007/7/13/Hotmail-spam-blocker</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Google Technology Presentation selling out fast</title>
				<link>http://www.webdevref.com/blog/index.cfm/2007/6/12/Google-Technology-Presentation-selling-out-fast</link>
				<description>
				
				&lt;p&gt;I&apos;ve just had some exciting news that my &amp;quot;&lt;a href=&quot;http://www.webcontent2007.com/programsDetails.html#google&quot; target=&quot;_self&quot; title=&quot;Using Google Tools to optimize content for business results&quot;&gt;Using Google Tools to optimize content for business results&lt;/a&gt;&amp;quot; presentation at &lt;a href=&quot;http://www.webcontent2007.com/speakers.html&quot; target=&quot;_self&quot; title=&quot;Web Content 2007&quot;&gt;Web Content 2007&lt;/a&gt; is filling up fast.&amp;nbsp; The presentation explains how to manage the risk assoicated with making changes to your website through Google&apos;s A/B testing tool &amp;quot;Website Optimizer&amp;quot; and how to use Google Analytics to measure the effectiveness of your changes.&amp;nbsp; It wraps up with an explanation about how to run a profitable Google AdWords campaign.&lt;/p&gt;&lt;p&gt;If you are interested in attending, the two day seminar is in Chicago on June 18th and 19th and includes &lt;strong&gt;Jason Fried&lt;/strong&gt; of &lt;a href=&quot;http://37signals.com&quot; target=&quot;_self&quot; title=&quot;37signals &quot;&gt;37signals&lt;/a&gt; amongst other big names.&lt;br /&gt;&lt;/p&gt;
				
				</description>
						
				
				<category>Google Analytics</category>				
				
				<pubDate>Tue, 12 Jun 2007 19:09:14 -0400</pubDate>
				<guid>http://www.webdevref.com/blog/index.cfm/2007/6/12/Google-Technology-Presentation-selling-out-fast</guid>
				
			</item>
			
		 	
			</channel></rss>