Google Analytics needs you to specify part of a query string in order for you to get specialized "Site Search" reports. However in Drupal you might have nice Clean URLs like this:
http://example.com/search/bananas
instead of what GA wants, something like
http://example.com/search?query=bananas
You can still get Site Search reports for searches using Clean URLs, using the Google Analytics API.
You just need to:
- Use the "new" GA handling code.
- Add code like this at the end of your page; I recommend putting it inside a Block (be sure to mark the Input Format to be "PHP code"):
<?php
if (arg(0) == 'apachesolr_search' || arg(0) == 'search') {
$keys = search_get_keys();
?>
<script type="text/javascript">
pageTracker._trackPageview('/site_search?query=<?php echo $keys; ?>');
</script>
<?php
}
?>
After a day of logging, your GA reports will include the report. See a site searching report sample.
4 comments:
thanks...i think. I have implemented the code, but all I am seeing in analytics re: what is being searched is [INSERT CURRENT KEYWORDS HERE]
did I miss something?
Well, actually, you have to get the keywords from Drupal using a bit of PHP. I just updated the post to include the full PHP code and JS to include in a custom block.
If you use
http://drupal.org/project/google_analytics
under advanced settings it has a 'track search' button
which then adds:
var pageTracker = _gat._getTracker("UA-*****-*");pageTracker._initData();pageTracker._trackPageview("/search/node?search=xxx");
to the page
I never thought that google analytics can really do that. I really want to track searches in drupal and I never thought that google analytics is the answer for it.
Post a Comment