Technical Notes from VickeryHill

Web Development, Internet and other notes from the people at VickeryHill.com - from our primary office in Mad River Valley's Warren, Vermont to our remote offices in New Jersey and Fort Myers, Florida.

Tuesday, February 26, 2013

Universal Analytics new web property controls from Google

An introduction to Universal Analytics

Today we got the invite to Universal Analytics from Google and implemented it on vickeryhill.com's www and blog properties. There are some interesting and helpful settings on web properties that you can now configure and gain better insights into your visitors, without having to adjust snippet settings or custom code things.

Implementing Universal Analytics in your site(s)

Using our server-side include, we made sure to keep our existing ga.js asynchronous load so we maintain our existing tracking data.
As you can see, we simply commented above the now 'old' async ga.js load as well as the new analytics.js script snippet.

Right off the bat, the Tracking Info tab under your Web Properties shows the 4 additonal configuration tabs: Sessions Settings | Organic Search Sources | Referral Exclusion List | Search Term Exclusion List


I'll go into detail on each tab and show an example of how we use it to modify our specific analytics property for www.vickeryhill.com and blog.vickeryhill.com as we configure it.


Session Settings

In tyhe past, you could manually configure sessiom and campaign timeouts in Google Analytics by customizing _setSessionCookieTimeout and _setCampaignCookieTimeout.  Now this is controlled in the admin console of Universal Analytics. Navigate to your web property and click on the Tracking Info tab to access the new controls.

On our property, we modified the Session timeout down to 20 minutes (from a default 30 min.) and the Campaign timeout to 1 month (down from the default 6 months).

The session timeout modifies the amount of time before a single visit is counted as two. Looking at the last 12 months worth of data, we can see out of 5000 visitors, only 28 were on the site for more than 30 minutes. Additionally, considering that our page content is not extremely long, we think that 20 minutes is a good threshold to turn a single visit into 2.

Simlarly, we only really use Google AdWords and broadcast email campaigns to drive traffic to these sites. We send out broadcast email campaigns every other month or so, and wanted to drop the campaign timeout down to 1 months. If a visitor clicks on our email campaign and is tagged with the custom source/medium/name variables, but then returns to vickeryhill.com in 32 days, they will now be considered a (direct) visitor.


Organic Search Sources

Since google already sorts incoming referral traffic to your site (paid, organic) and has a default list of 40 referrers it considers organic search engines. So any traffic showing up on your site from one of these 40 sites is tagged as organic search traffic. Universal Analytics now lets us control the list of search engines and the order in which they are prioritized.

Looking back at a year's worth of data, we can see that our site has brought in 1500+ visits from organic search results from 11 sources;

Looking at our Referrals report, adding in a secondary dimension of "medium", we can see that there is some traffic coming from obvious search engines that is showing up incorrectly as referral traffic. We use an advanced filter on this report and include only those sources that have the word 'search' in them.
We will add these into our Organic Search Sources. At a minimum, you need to use the "Domain Name Contains" and "Query Parameter" fields. In our short list above, we simply visit each site and run a test search to get the query parameter.


So we add in each of the engines that sent us traffic and their domain name as well as the query parameter they use to designate the search term.



Referral Exclusions

Referral traffic is the traffic that arrives at your site from a medium other than organic or payperclick/costperclick (cpc). You can now exclude traffic from designated referral sources, specifically, traffic from your own site that shows up as self-referrals or even traffic that gets sent in incorrectly from a third party site, shopping cart or blogs. In our case, we see that 215 visits were tracked as self-referrals from 'vickeryhill.com'


Using the new capabilities in Universal Analytics, we exclude 'vickeryhill.com' and 'blog.vickeryhill.com' from referral traffic.



Search Term Exclusions

When traffic visiting your site is tracked from an organic source (search engine), the keyword phrase used to find your site is tracked as well from the search engine's query parameter. You can now exclude search terms that you do not consider actually valid keywords. A perfect example of this is the generation of web users (my mom!) who leave the home page of their browser to the default dell.com or google.com search engine and unknowingly use the search field as the 'address bar'.


When your mom opens her browser to find her son's website, she goes to the search field and types the address ('vickeryhill.com') or the keyword phrase ('vickery hill' or 'vickeryhill').
These visits will show up in analytics as an organic referral with the keyword phrase 'vickeryhill.com', when in reality, this should be counted as a direct visit. We run an Organic report with secondary dimension=Keyword and use Advanced Filter to include only those that contain 'vick' and you can see hundreds of visits from search engines that were obviously greatest-generation surfers

We will not include the ones that is someone typing (and/or misspelling) our name, but we do want to change those 'vickeryhill.com' ones into direct traffic as they should be. For simplicity sake, we just excluded one keyword phrase to catch most of those marked above.


Initial Conclusions

Now that we have Universal Analytics setup on our site(s) and custom configured to more accurately track visitors, in a few days, we will check back and see how much better our reporting is.





Friday, February 8, 2013

Tracking visitor scroll depth using Google Analytics

The Big Questions


  • How engaged are your website’s readers and how much of your website do they actual view or read? 
  • Do your page introductions (top content) encourage readers to continue reading through to the bottom or are they bored and moving on?
  • Are your calls-to-action buried below your typical viewers screen resolution page bottom?

We recently setup a single page, responsive website for a new Barre, Vermont restaurant and, during our goal planning, we realized it would be very helpful to see whether the visitor was actually reading the content 'below the fold'. Using a jQuery scroll tracking plugin and Google Analytics (GA) asynchronous snippet (as well a side note regarding an option for sites using the Traditional method), we'll setup tracking in an actual online example, then review reporting and recommendations for website optimization.

Real-world client summary

We recently launched a single-page responsive website for a restaurant in Barre, Vermont called the Cornerstone Pub & Kitchen. The single page site is built on a responsive WordPress template with a variety of content modules at the top for operational and social content functions (hours, directions, contact info, Facebook, and Twitter). We setup Google Analytics event tracking via anchor tag onclick calls to track iconic mouse click. 

Below these trackable features is the meat of the website (literally) in the form of mouth-watering menu items, the craft beer list, and a mission statement about the owners. Since this section of the content is a single, long scrolling page, we wanted a way to track the visitor reading down through the content region by scrolling.

First, we used existing GA report data to see what the typical visitor resolution is. As you can see, the top 10 visitor Screen Resolutions add up to almost 76% of all visitors.

Of those 76%, resolutions vary from iPhone 320x480px to the largest 1920x1080. Our 'tallest' screen resolutions tracked have a height of 1024px.

Looking at the site layout, we can see that at 1024 pixels, they can only read the mission statement and first line of the menu items.



The Solution: Analyzing Scroll Depth

Since Google Analytics’ doesn't include scroll depth tracking in its otherwise robust (and free) toolset, we found a method to trigger events at specific page percentages by a visitor using a jQuery plugin that records events using Google Analytics _trackEvent method.

Setting up Scroll Tracking using GA Asynchronous Method

Requirements:

  1. You need to load jQuery script library (version 1.7 or higher).  Download the latest version of jquery here.
  2. And call to a version of jquery.scrolldepth.js on/in your website’s script folder. Download jquery.scrolldepth.js via Scroll Depth Githhub Project Page.

Installation:

  • Make sure to have your asynchronous tracking script set up in the head of your web pages with _gaq.push(['_trackPageview']); as this will be the method that our scrolling event’s will be tracked.
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_gaq.push(['_trackPageview']);
(function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
  • Make sure jquery.scrolldepth.js is installed in your site’s scripts folder.
  • Load Google jquery library; add script reference on site pages. 
  • Load scroll depth script AND scrollDepth function just above the closing body tag on your site pages:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="/ScriptLibrary/jquery.scrolldepth.js"></script>
<script> $(function() {  $.scrollDepth();}); </script>

Data and Results:

After successfully integrating the jquery Scroll tracking method as an event, we logged into Google Analytics a few hours later to see the events being triggered by visitors when they look down %'s of the page. 

In the initial days, we see (click to enlarge):
Google Analytics Asynchronous Scroll Tracking
  • Baseline (0%): by 100% of unique visitors
  • 25% Page Scroll: by 86% of unique visitors
  • 50% Page Scroll: by 82% of unique visitors
  • 75% Page Scroll: by 78% of unique visitors
  • 100% Page Scroll: by 68% of unique visitors
As you can see, nearly 70% of visitors scrolled all the way to the very bottom of the page letting us know they are reading the entire menu and the site is operating as hoped.

Knowing that a majority of visitors scroll to the bottom content, we could now test out future content/design ideas for the footer like banner advertisements, social media content feed or even navigation to take the visitor to future pages like job opportunities in Barre, catering, etc. 

Digging deeper, we can start to look at traffic sources, OS, browsers, or even better, screen resolutions to see which resolutions are looking how deep. In the following Google Analytics report screenshot we remove 'baseline' with an advanced filter to make the data more sensible (since everyone looking at the site sees the baseline).


Moving Forward:

Obviously 100% scroll depth by 100% of your visitors would be perfection but it’s not a realistic goal. Increasing scroll depth to 100% for an additional 5-10% would be huge and with modest effort testing, modifying menu items, and shortening mission statement content--it’s a realistic possibility.

Learning what the visitor is doing on your site with new mechanisms like scroll depth tracking can be very useful to test existing layout and content, as well as hypothesize about future enhancements.



ALTERNATIVE: If you are using 'traditional' (non-asynchronous) Google Analytics loading on your site:

If you are loading Google Analytics via the Traditional tracking script setup because of third-party constraints, you use the following setup and you can start by tracking a single % point on the page to track as an event when the visitor reaches it. In this example we chose 50% scroll depth.

Installation:

  • Scroll TrackingScript to add just below opening <head> tag:
<script src='http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js' type='text/javascript'></script>
 <script type='text/javascript'>
  /* <![CDATA[ */
 var IsDuplicateScrollEvent = 0;

 $(document).ready(function () {
 SetupGoogleAnalyticsTrackEvents();
 });

 function SetupGoogleAnalyticsTrackEvents()
 {
 TrackEventsForMinimumPageScroll();
 }

function TrackEventsForMinimumPageScroll()
{
$(window).scroll(function(){
var scrollPercent = GetScrollPercent();

if(scrollPercent > 50)
{
if(IsDuplicateScrollEvent == 0)
{
IsDuplicateScrollEvent = 1;
 // Set up event tracking that compliments your site's logic: ("Category", "Action", "Label", "Value") 
TrackEvent("Scroll Depth", "Percentage", "50%");
}
}
});
}

function GetScrollPercent()
{
var bottom = $(window).height() + $(window).scrollTop();
var height = $(document).height();

return Math.round(100*bottom/height);
}

function TrackEvent(Category, Action, Label)
{
pageTracker._trackEvent(Category, Action, Label);
}
/* ]]> */
</script>
Sample Screen Shot of GA Event Tracking Dashboard

  • Make sure your Traditional GA script is just above closing </body> tag, has pageTracker._trackPageview(); method listed and is updated with your GA website account credentials:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try{
var pageTracker = _gat._getTracker("UA-XXXXXX-X");
pageTracker._setDomainName("yourwebsite.com");
pageTracker._setAllowLinker(true);
pageTracker._trackPageview();
} catch(err) {}
</script>



Saturday, August 25, 2012

Cool symbols (emoticons) for your iPhone & iPad

Friends, clients and family members have been asking more and more lately: "hey, how did you get that cool icon of a beer mug, rocket, heart, horse, etc when you texted me?"

I think it was a friend who developed the Symbolicons set that first told me about it, but i guess people still haven't been shown how to add these neat, sometimes productive, icons to your iPhone/iPad's keyboard capabilities. I will detail the steps below using my iPhone 4S with iOS6 beta software.

What are they

Back in 2007 some folks at Google & Apple requested inclusion of a picture characters or symbols to the Unicode Standard. These Emoji characters are now included on Apple's iOS and Windows Phone 7. On Apple's iPhone & iPad, you simply have to add a 2nd keyboard in your settings to enjoy the latest emoticons in messages, mail, etc.

How to get the emoticons to show up on your iOS keyboard

Well it's as simple as clicking into your settings and adding a second keyboard, now standard in Apple's iOS, called Emoji.

First, click into SETTINGS on your iPhone, iPod or iPad > Scroll down & tap the GENERAL button

 


Now scroll to and tap the INTERNATIONAL button, then tap the KEYBOARDS button
 

Depending on what language you set your iPhone or other iOS device up as, you should now see a single keyboard ('English' in my example)

Simply tap the ADD NEW KEYBOARD button and then scroll down and select EMOJI
 

You should now see two keyboards. That's it. You're done.

Now go to any application that uses the keyboard (try texting your friend some cool emoticons).

Once in the keyboard, you can see the International keyboard symbol. Tap it to see the various sets of emoticons available in the Emoji keyboard
  


At the bottom of the Emoji keyboard, you will see 8 buttons on the bottom to help you navigate
From Left to Right, they are: RETURN to Keyboard | Recently Used | Faces | Flowers & Animals | Objects | Transportaton | Other Symbols | Backspace (Delete)

The RETURN globe will take you back to your standard keyboard.

The RECENTLY USED will display your latest 21 emoticons used.

The next 5 buttons are the Emoticons. Once clicked, you can swipe left and right to see the multiple pages of symbols on each one.



I hope this helped. Enjoy the new picture characters available on your keyboard. There are even more cool emoticons included in the soon-to-be-released Apple iOS6 this fall.

Monday, June 11, 2012

AvailabilityOnline.com - implementing new enhanced reservation features & google analytics

Recently we were asked to retrofit the website for a Vermont bed & breakfast. This lodging establishment uploads their room inventory supply to Inntopia for use in their local chamber and ski area websites, but they do not use Inntopia's Internet Booking Engine on their own site. They send their inventory data to AvailabilityOnline.com (AO) as well and present the AO calendar to their web visitors.

In the few months since any of us here have logged into AvailabilityOnline.com to manage a client's setup, a lot has changed: they announced their new "Enhanced Reservation System Released" on February 29, 2012.

Rather than review all the changes, we will go through the steps we figured out to successfully setup, modify and use the new AvailabilityOnline.com system in your web site for online availability and reservation requests, as well as proper integration of Google Analytics cross-domain tracking.

This post is meant to give a technical user quick reference to getting started on the path to better calendar and reservations management for clients that use AvailabilityOnline.com. There are many features/menus in AO that are not detailed here. If you have any questions, please contact VickeryHill.com. This first revision assumes that you have been using AO on your website prior to the Feb 29, 2012 update and the myriad of other settings on AO are already configured.

The enhancements to AvailabilityOnline include:

  • Multi-step Reservation Request form
  • Unit selection on step1 of new Reservation Request form
  • Maximum occupancy per room for adults & children
  • Additional guest fees (if premium AO subscriber)
  • Room rates calculated by date
  • Room-based availability search
  • Minimum stay requirements, by room & date
These enhancements allow you to input rates on all rooms across multiple dates, as well as input base guests, maximum guests and minimum stay requirements on rooms against specific dates. To activate the new enhancements, you first need to prepare.

ENABLING ENHANCED FEATURES | IMPORTANT:

  1. If you update your inventory automatically from your property management system, make sure that you have uploaded the latest inventory before beginning.
  2. To use the enhanced features, you will need to remove the ability of the guest to choose Room Choice 1 and Room Choice 2. Because the system now ties rates to rooms AND the reservation request to the availability of that room, the reservation request form will calculate the room rate against the date.


Configuring AvailabilityOnline.com Admin


Availbility Online Admin Login

















2. Selecting Enhanced Reservations Form style
On the left navigation, choose Reservation Management, then Reservation Form Settings, then Activate Form


3. Activate Form
In the Reservation Form Style section, you can now select "Enhanced (with occupancy & rates on first page)"

Note: Make sure you click SAVE to enable the new features


3. Setting Room Rates, Additional person fees and maximum occupancy settings
Following the setup of the enhanced features above, you can now implement some of the new features.

On the left nav go to Room Management, select Manage your Rooms


Use the pencil icon next to each unit to edit the occupancy settings


As you can see, all the details of each room can be edited here including:
  • Chart Display Name (how the room appears in the actual availability chart)
  • Active/Visible status
  • URL of the room (on your site) for back linkage
  • BBOnline URL of this room's page (if you have one and want to refer to it)
  • Description
  • Thumbnail Image URL (from your site)
  • Occupany Settings
    • Base Rate Occupancy (Guests)): the # of guests your base rate is based on
    • Max Occupancy (Adults): maximum number of adults
    • Mac Occupancy (Children): maximum number of children
    • Max Occupancy (Total Guests): maximum number of adults & children
    • Additional Adult Occupant Fee: how much to charge for each adult over the Base Occupancy Adult above
    • Additional Child Occupant Fee: how much to charge for each child over the Base Occupancy Children above
    • Under Occupancy Fee: Amount to charge per night for under-base occupancy.
      important note: you can use negative amounts here which, if occupancy is under the base #, will be subtracted depending on number of guests under the base occupancy. If your occupancy base is set to 4 for a room, 1 person books and this fee is set to -10.00, then the overall rate will be reduced by $30 (-10.00 x 3 under = -30.00)
  • Default Rates (by day): these are the default rates that will populate in the default calendar setup for each room, by day.
  • Default Minimum Night Stays: The default minimums you setup for each room, by day of the week.
As you can see from the screenshot below, there are handy help floating content if you mouse over the blue quesiton mark.




Don't forget to click the Save button to save your changes!


Setting Room Rates
This post assumes you are already using AO, and therefore have room rates setup. To modify room rates for the system overall, navigate to Room Rates then click Set Nightly Rates.

AO has a nice internal color-coded mechanism that allows you to create various rates (per night), give them a name and even color code them for easy administration. The admin screen (while a little long with white space) , but it  you basically create a set of rates that



It seems to make sense to name the rates the same as the amount per night.

Assigning Rates to Rooms
Once you have all of your rates created and color-coded, you can use the calendar on the bottom to assign specific rates to rooms across a set of dates.
Note: Due to the nature of showing large enough numbers to read, the calendar is a bit wide. We like to use a widescreen monitor to avoid constant scrolling

First, click a colored rate from the top list that you want to apply to a room for a set of dates. Notice the "Active Value" shows that rate in the lower calendar area.


















Now that you have the rate "Active", you can use the calendar to Apply Rates by Room in multiple ways:
  • 1 Room for 1 Night: Click on a future date that corresponds to a specific room. It will change to the color/rate that is in the Active Value
  • 1 Rate for all Rooms on 1 Day: Click on the grey rectangle below the specific day of the week and the Active Value will be applied to all rooms on that day
  • 1 Rate for 1 room over the calendar view: click on the grey rectangle to the right of a specific room name and you will populate the entire displayed calendar with the active rate, for the entire month.

  •  1 Rate for All Rooms for the Entire Month: If you have a single rate for all rooms, or just want to get started by populating all rooms with a base rate, then modifying for special rooms, holidays and/or weekends, then you can click the grey rectangle below any month and all rooms for the entire month will get the Active Value rate
With a little bit of planning and rate creation (including defaults, holidays, weekends, etc) before hand, you can quickly populate a year or more of your calendar and be up and running in minutes!

Don't forget to APPLY THE CHANGES before navigating away from the Set Nightly Rates page or you will lose all the hard work.


4. To make the Enhanced Reservations work properly against rates,
you need to navigate Reservation Management, Reservation Form Settings, then to General Settings.
Scroll down the the Travel Information section and find Room Choice.
"Display 1st room choice drop down box on reservation form?" is selected.
"Make 1st room choice required?" is selected.
"Display 2nd room choice drop down box on reservation form?" is NOT selected.
"Make 1st room choice required?" is NOT selected.



If you don't choose only one room choice, the form will have no way of calculating rates against the chosen room.

Don't forget to before leaving this page

Now that you have rates published against rooms over dates, the Reservation Request Form is now a pseudo-online-booking form. The room names are listed in a drop-down on the form and rates for the chosen days are displayed.




When the visitor clicks the "Enter Contact & Payment Info" button, the customer information page now displays a 'sub total' that is based on the number of nights stayed against the rate. Caveat: while this is by no means the actual price the customer will be paying, it is a base rate that hopefully gets the visitor one step closer to actually booking.




Final Suggestions

  • If the majority of your rates are standard, and holidays are the exceptions, we would recommend setting up the default rates first, applying them across your entire calendar and then returning back to implement special/holiday rates.
  • Don't forget, if you don't have rates in for specific dates, the guest will not be able to see/calculate them. Since you have to login to AO to retrieve data from reservation requests securely AND guests have been known to plan vacations a year in advance, we would recommend adding in inventory and rates at least a year out, while already logged in to review requests.

Conclusions

The enhancements improve AO to be even more like an online booking engine. Not only will your visitor be less daunted by the old single, long reservation request form, but they will also be able to actually be guided by minimum stay requirements AND see a sub totaled cost of the reservation based on your room rates. While this is by no means a complete Internet Booking Engine like Inntopia, for those of you who demand a first-look what is NOT available and what IS available calendar, AO's enhanced reservations setup is an improvement.



ADVANCED FEATURES (optional, but recommended!)

So, you've now made your online availability calendar and reservation request form work a lot better than it used to. Your visitors can now actually get an idea of how much it might cost, while in the availability calendar, without having to flip between your website and the chart. Since you are most likely using an Availability Onlineare connection or button from your public website, why not go the extra mile - not only make the visitor feel like the calendar is part of your site, but also track their usage with Google Analytics?

Google Analytics (GA)

If you aren't tracking visitor usage with Google Analytics, maybe you should consider it. It's not only a very powerful tool to help determine how your website is functioning, how the visitor uses it, where the visitor comes from not to mention whether they are doing what you want them too.

If you are using GA, did you know that you can setup GA on your AO pages AND make GA treat the calendar pages and request forms as pages on your public site? You can create goals in GA to track successes and failures of visitors reaching specific pages or events on your site. We recommend at a minimum setting up 1 goal:
  • AO Reservation Completed: track visitors making it through the entire booking process from search results to reservation form, to contact data to reviewing the reservation request and submitting.
Tracking your GA account on your AO pages
First, to properly track pages on another domain (availabilityonline.com) as if the visitor were still on your site, you have to implement a cross-domain tracking solution. This involves not only modifying the analytics code on your existing site but also on the availabilityonline.com pages.

First, login to Google Analytics and (if you manage more than one property), go to the Property for the website that is tied to AO. Click the Admin button on the orange navigation



Navigate to the Tracking Code tab



In the "1. What are you tracking?" section, choose "Multiple top-level domains". You need to do this because your visitor will be looking at pages on both yourdomain.com and availabilityonline.com



Click on the text box containing the code within the "2. Paste this code on your site" secton


Now, right-click and COPY this code snippet to your computer's clipboard.
Make sure this code exists on every page of your website, above the closing head tag!

Now, within the Availability Online Administration, navigate to Calendar Management > Visual Settings > Traditional Calendar Display.

We use the Custom HTML Header to manually layout the AO page styles that match our client's site, so we paste in the GA script snippet into the </head > of the pages.


Verify that the code snippet is in your AO pages by navigating to Quick Links > Preview Search & Display.

You will see a listing of your rooms, hopefully formatted to match the look and feel of your site.

In your browser, right-click View Source to see the source code of the page. You should see the GA snippet.


Hint: This is a peek at even more options available to you for your site in the new AO!

The final step in setting up cross-domain tracking is to use a method that exists in the GA script to send the visitor from your domain to availalityonline.com without losing the existing source data. This is CRUCIAL to proper tracking, and while it requires modification of links on both your site and the AO pages that mimic your site - trust us, having original source/medium data tracked all the way through your site to the final reservation confirmation is the MOST IMPORTANT reason to use Google Analytics.

When using Google Analytics across two top-level domains (yours and AOs), each website link FROM one domain TO the other must call the '_link' method to send the visitor between both domains. This means links from yourdomain.com to availabilityonline.com AND links from your custom look on AO back to yourdomain.com have to properly call '_link' to retain the GA cookie data and treat the secondary domain as if it were page(s) on your own site.

Setting up Goal for Online Booking Requests

In GA, navigate to the Property that corresponds to the that ru You can use any of the goal slots for this, but it is easiest if you keep the lodging goals together in a common GoalSet.

You should also consider:
  • Additional Goals
  • Filtering Traffic (especially your own, your developers, etc)
  • Creating additional profiles to track ALL data and/or segment specific traffic.
  • Custom reporting including scheduled email reporting
  • URL Query Exclusions (uniqueIdentifier for AO)
  • Site Search terms
  • Using URL Builder to tag inbound URLs from email, banner, external sources

Once setup properly, the informative visitor data can be used to track external campaigns/links from emails, banner ads, membership sites, etc. 

On the most base level, you can see content pages your visitor sees including those on AO,

you can see what Traffic Sources converted into reservations