I recently had a question from a user of my Simple Google Analytics zen cart module about how to differentiate between searches and keywords that come from Google Image Search vs. those that come from other Google search channels. As of this writing, Google will automatically log referrers from its image search engine; however, it lumps all keywords into one lump source as ‘(not_set’).
To get a more detailed keyword breakdown you need to customize the code you use within your Google Analytics tracking script.
The method I will describe here works for anyone using Google Analytics on their site regardless of how it is implemented.
The first thing you have to do in order to get this to work is to be running either the ga.js or the Asychronous version of the tracking script.
Depending on which version of the tracking script you have chosen you’ll then need to customize it with one of the following snippets, adding it to what you already have. Be aware that the order and placement of this code within the original tracking script is very important.
If you are using the ga.js version of the tracking script you’ll need to add the following lines of code (highlighted in bold) to that.
If you are using the ga.js tracking script your additions would look like this:
Doing this should breakout the individual searches by keyword so you have a more complete picture of what is happening with regard to the traffic that comes from Google Image Search.
Google help also offers more information on customizing search engines and referral traffic with your analytics tracking script.
Have you tried this method or have another way of doing it? I’d love to hear it. Post a comment below to join the discussion.
Thanks a lot for that script! Works great.
But unfortunately there’s a “bug”: Some image searches won’t be tracked correctly and still show as referred by google.com/imgres. Thats because the domain isn’t always images.google.* . So a better way to detect image serches is looking for imgres or imglanding in the url. Like stated here: http://blog.semetrical.com/the-new-google-images-and-why-youre-probably-not-tracking-it-properly/
Can your script be changed modified to work with the other detection?
Thanks for the info there. Yes, my script can be changed to accomodate. No new programmimg required. It does this out of the box if you use the ‘custom’ code section in the admin.
Just include the new tracking criteria as part of your custom code and save. Should work just fine.
And a last thing: Is it possible to tell Google Analytics what the filename of the selected image was? That would be great as we have slideshows with multiple similar images on our page.
This I am not sure of. I would guess you might be able to accomplish it with some added triggers attached to each image (to indicate what the image is.)
Ok, I think I found a solution:
var ref = document.referrer;
if (ref.search(/(images|www)\.google\.([^\/]+)\/(images|imghp|imgres|imglanding)/) != -1 && ref.search(/prev/) != -1) {
var regex = new RegExp(“google\.([^\/]+)/.*&prev=([^&]+)&”),
var match = regex.exec(ref);
_gaq.push([‘_addOrganic’,’images.google.’+match[1]+,’q’,true]);
_gaq.push([‘_setReferrerOverride’, ‘http://images.google.’+match[1]+unescape(match[2])]);
}
Now the only thing I’m still looking for is tracking of the image file name which has been clicked on. Any idea?