SlideShare a Scribd company logo
1 of 126
Download to read offline
USER BEHAVIOR TRACKING
with Google Analytics, Garb, and
                                      a
RailsConf 2010 | Baltimore, MD
Tony Pitale | @tpitale | Viget Labs
Google Analytics

     Garb

     Vanity
1. Track!
2. Interpret and
Identify
3. Alternate and
Refactor
1. Google Analytics
2. You w/ Garb
3. Vanity
QUESTIONS TO ANSWER:
WHICH LINKS ARE BEING
User Behavior Tracking with Google Analytics, Garb, and Vanity
WHERE ARE USERS LANDING?
User Behavior Tracking with Google Analytics, Garb, and Vanity
WHERE ARE USERS EXITING?
User Behavior Tracking with Google Analytics, Garb, and Vanity
WHERE DO USERS SPEND TIME?
User Behavior Tracking with Google Analytics, Garb, and Vanity
WHAT ARE LOGGED-IN USERS
         DOING?
User Behavior Tracking with Google Analytics, Garb, and Vanity
QUESTIONS TO ANSWER:
WHICH LINKS ARE BEING CLICKED?
GOOGLE ANALYTICS
User Behavior Tracking with Google Analytics, Garb, and Vanity
ASYNC TRACKING
_gaq.push
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-65432-1']);
_gaq.push(['_trackPageview']);
(function() {
  var ga = document.createElement('script');
  var src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www');
  src += '.google-analytics.com/ga.js';

  ga.type = 'text/javascript';
  ga.async = true;
  ga.src = src;

  var s = document.getElementsByTagName('script')[0];
  s.parentNode.insertBefore(ga, s);
})();
WHAT SHOULD WE TRACK?
TRACK EVERYTHING!
TRACK CLICKS AS VIRTUAL
      PAGEVIEWS
User Behavior Tracking with Google Analytics, Garb, and Vanity
_gaq.push(['_trackPageview', '/signup/header']);
_gaq.push(['_trackPageview', '/signup/call-to-action']);
Modal Windows
_gaq.push(['_trackPageview', '/new-repo/add']);
_gaq.push(['_trackPageview', '/new-repo/cancel']);
TRACK EVENTS
_gaq.push(['_trackEvent', 'signup-button', 'clicked']);
LIMITATIONS TO GA
A BETTER IDEA
def create
  @thing = Thing.new(params[:thing])
  if @thing.save
    track_pageview("/things/create")

    flash[:notice] = "Thanks for saving that thing."
    redirect_to thing_path(@thing)
  else
    render :action => :new
  end
end
def create
  @thing = Thing.new(params[:thing])
  if @thing.save
    track_pageview("/things/create")

    flash[:notice] = "Thanks for saving that thing."
    redirect_to thing_path(@thing)
  else
    render :action => :new
  end
end
def analytics_pusher_meta_tag
  meta_tags = ""
  
  if track_pageview?
    content = Rack::Utils.escape_html(session.delete(:pageview_to_track))
    meta_tags << %(<meta name="track-pageview" content="#{content}" />)
  end

  meta_tags.html_safe
end
var track_pageview = $('meta[name=track-pageview]').attr('content');

if(track_pageview !== undefined) {
  _gaq.push('_trackPageview', track_pageview);
}
WHICH LINKS ARE BEING CLICKED?
WHERE ARE USERS LANDING?
LET’S EXPORT SOME DATA
User Behavior Tracking with Google Analytics, Garb, and Vanity
GARB
LOGGING IN & SESSION
# access_token = Ruby OAuth Gem access token

# global, default
Garb::Session.access_token = access_token

# instance
session = Garb::Session.new
session.access_token = access_token
# global, default
Garb::Session.login('username', 'password')

# instance
session = Garb::Session.new
session.login('username', 'password')
ACCOUNTS & PROFILES
User Behavior Tracking with Google Analytics, Garb, and Vanity
# global session
accounts = Garb::Account.all

# explicit session; better
accounts = Garb::Account.all(session)
account = accounts.first
puts account.id
puts account.name

profile = account.profiles.first
puts profile.web_property_id # UA-65432-1
puts profile.table_id # internal id for GA
puts profile.title
puts profile.account_name # matches account.name
puts profile.account_id # matches account.id

# Find the first profile with UA number, explicit session
profile = Profile.first('UA-65432-1', session)
# Find the first profile with this table id, global session
profile = Profile.first('1234567')
# Find the first profile with UA number, explicit session
profile = Profile.first('UA-65432-1', session)
REPORTS
class Landings
  extend Garb::Resource

  metrics :entrances
  dimensions :landing_page_path
end
RESULTS
Landings.results(profile)

Landings.results(profile,
  :limit => 20,
  :offset => 99,
  :start_date => (Date.today - 30),
  :end_date => (Date.today))
#<OpenStruct   landing_page_path="/", entrances="2529">
#<OpenStruct   landing_page_path="/team.html", entrances="26">
#<OpenStruct   landing_page_path="/features/control.html", entrances="14">
#<OpenStruct   landing_page_path="/contact.html", entrances="10">
#<OpenStruct   landing_page_path="/services.html", entrances="9">
#<OpenStruct   landing_page_path="/features/customer.html", entrances="5">
#<OpenStruct   landing_page_path="/features/complete.html", entrances="4">
#<OpenStruct   landing_page_path="/industry.html", entrances="4">
#<OpenStruct   landing_page_path="/blog.html", entrances="3">
#<OpenStruct   landing_page_path="/blog/las_vegas_trade_show.html", entrances="3">
#<OpenStruct   landing_page_path="/features/location.html", entrances="2">
#<OpenStruct   landing_page_path="/blog/imbibe-wine-and-spirits.html", entrances="1">
#<OpenStruct   landing_page_path="/blog/nrf_trade_show_2009.html", entrances="1">
#<OpenStruct   landing_page_path="/blog/retailer_incentive_program.html", entrances="1">
#<OpenStruct   landing_page_path="/home", entrances="1">
#<OpenStruct   landing_page_path="/support.html", entrances="1">
ADDING FILTERS & SORTING
class Landings
  extend Garb::Resource

  metrics :entrances
  dimensions :landing_page_path

  sort :entrances

  filters :landing_page_path.contains => 'blog'
  # OR
  filters do
    contains(:landing_page_path, 'blog')
  end
end
#<OpenStruct   landing_page_path="/blog.html", entrances="3">
#<OpenStruct   landing_page_path="/blog/las_vegas_trade_show.html", entrances="3">
#<OpenStruct   landing_page_path="/blog/imbibe-wine-and-spirits.html", entrances="1">
#<OpenStruct   landing_page_path="/blog/nrf_trade_show_2009.html", entrances="1">
#<OpenStruct   landing_page_path="/blog/retailer_incentive_program.html", entrances="1">
Operators on Metrics
    eql => '==',
    not_eql => '!=',
    gt => '>',
    gte => '>=',
    lt => '<',
    lte => '<='

Operators on Dimensions
    matches => '==',
    does_not_match => '!=',
    contains => '=~',
    does_not_contain => '!~',
    substring => '=@',
    not_substring => '!@'
REPORT ON-THE-FLY
report = Garb::Report.new(profile, :limit => 20, :offset => 99)

report.metrics :exits
report.dimensions :page_path
report.sort :exits

report.filters :page_path.contains => 'season'
# OR
report.filters do
  contains(:page_path, 'season')
end
WHERE ARE USERS LANDING?
WHERE ARE USERS EXITING?
COMMON CALCULATIONS
class Exits
  extend Garb::Resource

  metrics :exits, :pageviews
  dimensions :page_path
end
EXITS/PAGEVIEWS
  Exit Rate per Page Path
ABANDONMENT
TRACK GOALS
User Behavior Tracking with Google Analytics, Garb, and Vanity
User Behavior Tracking with Google Analytics, Garb, and Vanity
_gaq.push(['_trackPageview', '/contact/submit']);
User Behavior Tracking with Google Analytics, Garb, and Vanity
WHERE ARE USERS EXITING?
WHERE DO USERS SPEND TIME?
COMMON CALCULATIONS
class PageviewExitsAndTime
  extend Garb::Resource

  metrics :pageviews, :exits, :time_on_page
  dimensions :page_path
end
TIME/(PAGEVIEWS-EXITS)
   Average Time on Page, Per Page
WHERE DO USERS SPEND TIME?
WHAT ARE LOGGED-IN USERS
         DOING?
SETTING CUSTOM VARIABLES
_gaq.push(['_setCustomVar', 1, 'logged-in', 'member', 1]);
// or as an admin, to partition their data
_gaq.push(['_setCustomVar', 1, 'logged-in', 'admin', 1]);
_gaq.push(['_trackPageview']);
// track just this pageview to a custom variable
_gaq.push(['_setCustomVar', 1, 'purchase', 'level-2', 3]);
_gaq.push(['_trackPageview']);

// what do users do the rest of this session
_gaq.push(['_setCustomVar', 1, 'purchase', 'level-2', 2]);
_gaq.push(['_setCustomVar', 2, 'upgrade', '1', 2]); // use slot 2
_gaq.push(['_trackPageview']);
GREAT FOR SEGMENTS
User Behavior Tracking with Google Analytics, Garb, and Vanity
User Behavior Tracking with Google Analytics, Garb, and Vanity
User Behavior Tracking with Google Analytics, Garb, and Vanity
User Behavior Tracking with Google Analytics, Garb, and Vanity
SEGMENT ID IN REPORTS
User Behavior Tracking with Google Analytics, Garb, and Vanity
class Pageviews
  extend Garb::Resource

  set_segment_id 0
  metrics :pageviews, :visits
end
WHAT ARE LOGGED-IN USERS
         DOING?
HOW DO WE IMPROVE?
A/B TESTING
VANITY
METRICS
# in file experiments/metrics/signup.rb
metric "Signup (Activation)" do
  description "Measures how many people signed up for our awesome service."
end
# looks for the metric in experiments/metrics/signup.rb
# done in UsersController#create, for example
track! :signup
User Behavior Tracking with Google Analytics, Garb, and Vanity
A/B TEST
User Behavior Tracking with Google Analytics, Garb, and Vanity
ab_test "Tagline" do
  description "Testing to see if a different tag line increases number of signups."
  metrics :signup
end
<% tagline = (ab_test(:tagline) ? "Buy Now!" : "Signup for Free!") %>
<h1><%= tagline %></h1>
ab_test "Tagline" do
  description "Testing to see if a different tag line increases number of signups."
  
  alternatives "Buy Now!", "Signup for Free!", "Always Free, Signup Now!"
  
  metrics :signup
end
<h1><%= ab_test :tagline %></h1>
User Behavior Tracking with Google Analytics, Garb, and Vanity
INTEGRATE VANITY W/GARB
metric "Acquisition: Visits" do
  description "Visits"
  google_analytics "UA-65432-1", :visits
end
User Behavior Tracking with Google Analytics, Garb, and Vanity
CUSTOM VANITY/GARB
metric "Signups Welcomed" do
  google_analytics "UA-65432-1"

  # report is an instance of Garb::Report
  report.metrics :visits
  report.dimensions :page_path
  report.filters do
    eql(:page_path, 'welcome')
  end
end
REALLY CUSTOM REPORTS
metric "Activation" do
  description "Measure page views for /"

  def values(from, to)
    report = Garb::Report.new(ACTIVE_PROFILE, {:start_date => from, :end_date => to})
    report.metrics :pageviews
    report.dimensions :page_path, :date
    report.sort :date
    report.filters do
      eql :page_path, '/'
    end

    # hack because data isn't returned if it's 0
    data = report.results.inject({}) do |hash, result|
      hash.merge(result.date => result.pageviews.to_i)
    end

    (from..to).map do |day|
      key = day.strftime('%Y%m%d')
      data[key] || 0
    end
  end
end
HOW DO WE IMPROVE?
COMMON USES
ENCOURAGE USERS
User Behavior Tracking with Google Analytics, Garb, and Vanity
EASY ADMIN
User Behavior Tracking with Google Analytics, Garb, and Vanity
FOR THE ROAD
FOLLOW THE MONEY
NOBODY IS PAID BY THE PAGEVIEW
USER TESTING STILL WINS
RESOURCES
‣   http://vanity.labnotes.org/
‣   http://github.com/assaf/vanity
‣   http://wiki.github.com/vigetlabs/garb/
‣   http://github.com/vigetlabs/garb
‣   http://code.google.com/apis/analytics/docs/
‣   http://code.google.com/apis/analytics/docs/gaJS/gaJSApi_gaq.html
‣   http://code.google.com/apis/analytics/docs/gdata/
    gdataReferenceDimensionsMetrics.html
‣   http://code.google.com/apis/analytics/docs/gdata/
    gdataReferenceValidCombos.html
‣   http://code.google.com/apis/analytics/docs/gdata/
    gdataReferenceCommonCalculations.html
THANKS!
            http://speakerrate.com/talks/3455




                                                Photo Credits
                                                  ‣   Fi
                                                  ‣   jstbtrflyz2
                                                  ‣   RobertClavarro
                                                  ‣   krm_gib
                                                  ‣   talllguy
                                                  ‣   fragglerawker
RailsConf 2010 | Baltimore, MD                    ‣   erica_marshall
Tony Pitale | @tpitale | Viget Labs
Q&A BONUS ROUND

More Related Content

What's hot

Desenvolvimento web com Ruby on Rails (parte 2)
Desenvolvimento web com Ruby on Rails (parte 2)Desenvolvimento web com Ruby on Rails (parte 2)
Desenvolvimento web com Ruby on Rails (parte 2)Joao Lucas Santana
 
Python for AngularJS
Python for AngularJSPython for AngularJS
Python for AngularJSJeff Schenck
 
Illuminated Hacks -- Where 2.0 101 Tutorial
Illuminated Hacks -- Where 2.0 101 TutorialIlluminated Hacks -- Where 2.0 101 Tutorial
Illuminated Hacks -- Where 2.0 101 Tutorialmikel_maron
 
High-level Web Testing
High-level Web TestingHigh-level Web Testing
High-level Web Testingpetersergeant
 
I18n
I18nI18n
I18nsoon
 
Preparing a WordPress Plugin for Translation
Preparing a WordPress Plugin for TranslationPreparing a WordPress Plugin for Translation
Preparing a WordPress Plugin for TranslationBrian Hogg
 

What's hot (6)

Desenvolvimento web com Ruby on Rails (parte 2)
Desenvolvimento web com Ruby on Rails (parte 2)Desenvolvimento web com Ruby on Rails (parte 2)
Desenvolvimento web com Ruby on Rails (parte 2)
 
Python for AngularJS
Python for AngularJSPython for AngularJS
Python for AngularJS
 
Illuminated Hacks -- Where 2.0 101 Tutorial
Illuminated Hacks -- Where 2.0 101 TutorialIlluminated Hacks -- Where 2.0 101 Tutorial
Illuminated Hacks -- Where 2.0 101 Tutorial
 
High-level Web Testing
High-level Web TestingHigh-level Web Testing
High-level Web Testing
 
I18n
I18nI18n
I18n
 
Preparing a WordPress Plugin for Translation
Preparing a WordPress Plugin for TranslationPreparing a WordPress Plugin for Translation
Preparing a WordPress Plugin for Translation
 

Viewers also liked

Switchyard design overview
Switchyard design overviewSwitchyard design overview
Switchyard design overviewMilind Punj
 
Green Storage 1: Economics, Environment, Energy and Engineering
Green Storage 1: Economics, Environment, Energy and EngineeringGreen Storage 1: Economics, Environment, Energy and Engineering
Green Storage 1: Economics, Environment, Energy and Engineeringdigitallibrary
 
Agile Product Management Basics
Agile Product Management BasicsAgile Product Management Basics
Agile Product Management BasicsRich Mironov
 
Practical introduction to hadoop
Practical introduction to hadoopPractical introduction to hadoop
Practical introduction to hadoopinside-BigData.com
 
college assignment on Applications of ipsec
college assignment on Applications of ipsec college assignment on Applications of ipsec
college assignment on Applications of ipsec bigchill29
 
Improving Utilization of Infrastructure Cloud
Improving Utilization of Infrastructure CloudImproving Utilization of Infrastructure Cloud
Improving Utilization of Infrastructure CloudIJASCSE
 
Compulsory motor third party liability in Mozambique
Compulsory motor third party liability in MozambiqueCompulsory motor third party liability in Mozambique
Compulsory motor third party liability in MozambiqueTristan Wiggill
 
Informatica transformation guide
Informatica transformation guideInformatica transformation guide
Informatica transformation guidesonu_pal
 
Top 8 print production manager resume samples
Top 8 print production manager resume samplesTop 8 print production manager resume samples
Top 8 print production manager resume sampleskelerdavi
 
Optimized Learning and Development
Optimized Learning and Development Optimized Learning and Development
Optimized Learning and Development AIESEC
 
How to measure illumination
How to measure illuminationHow to measure illumination
How to measure illuminationajsatienza
 
Ironport Data Loss Prevention
Ironport Data Loss PreventionIronport Data Loss Prevention
Ironport Data Loss Preventiondkaya
 
6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence
6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence
6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management ExcellenceChange Management Institute
 
Software QA Metrics Dashboard Benchmarking
Software QA Metrics Dashboard BenchmarkingSoftware QA Metrics Dashboard Benchmarking
Software QA Metrics Dashboard BenchmarkingJohn Carter
 
Promotion in the internet marketing mix
Promotion in the internet marketing mixPromotion in the internet marketing mix
Promotion in the internet marketing mixNadiaElSamsam
 
Advertising photography
Advertising photographyAdvertising photography
Advertising photographyRyan Broome
 

Viewers also liked (20)

Switchyard design overview
Switchyard design overviewSwitchyard design overview
Switchyard design overview
 
Green Storage 1: Economics, Environment, Energy and Engineering
Green Storage 1: Economics, Environment, Energy and EngineeringGreen Storage 1: Economics, Environment, Energy and Engineering
Green Storage 1: Economics, Environment, Energy and Engineering
 
Agile Product Management Basics
Agile Product Management BasicsAgile Product Management Basics
Agile Product Management Basics
 
Practical introduction to hadoop
Practical introduction to hadoopPractical introduction to hadoop
Practical introduction to hadoop
 
college assignment on Applications of ipsec
college assignment on Applications of ipsec college assignment on Applications of ipsec
college assignment on Applications of ipsec
 
Improving Utilization of Infrastructure Cloud
Improving Utilization of Infrastructure CloudImproving Utilization of Infrastructure Cloud
Improving Utilization of Infrastructure Cloud
 
Basics of print planning
Basics of print planningBasics of print planning
Basics of print planning
 
Compulsory motor third party liability in Mozambique
Compulsory motor third party liability in MozambiqueCompulsory motor third party liability in Mozambique
Compulsory motor third party liability in Mozambique
 
Informatica transformation guide
Informatica transformation guideInformatica transformation guide
Informatica transformation guide
 
Top 8 print production manager resume samples
Top 8 print production manager resume samplesTop 8 print production manager resume samples
Top 8 print production manager resume samples
 
Optimized Learning and Development
Optimized Learning and Development Optimized Learning and Development
Optimized Learning and Development
 
How to measure illumination
How to measure illuminationHow to measure illumination
How to measure illumination
 
Ironport Data Loss Prevention
Ironport Data Loss PreventionIronport Data Loss Prevention
Ironport Data Loss Prevention
 
6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence
6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence
6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence
 
Software QA Metrics Dashboard Benchmarking
Software QA Metrics Dashboard BenchmarkingSoftware QA Metrics Dashboard Benchmarking
Software QA Metrics Dashboard Benchmarking
 
Promotion in the internet marketing mix
Promotion in the internet marketing mixPromotion in the internet marketing mix
Promotion in the internet marketing mix
 
INTEL
INTELINTEL
INTEL
 
IHC
IHCIHC
IHC
 
Advertising photography
Advertising photographyAdvertising photography
Advertising photography
 
E learning Implementation strategy
E learning Implementation strategyE learning Implementation strategy
E learning Implementation strategy
 

Similar to User Behavior Tracking with Google Analytics, Garb, and Vanity

Making GA Work For You W/ Custom Variables
Making GA Work For You W/ Custom VariablesMaking GA Work For You W/ Custom Variables
Making GA Work For You W/ Custom VariablesMike P.
 
What's new in Rails 2?
What's new in Rails 2?What's new in Rails 2?
What's new in Rails 2?brynary
 
OSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialOSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialYi-Ting Cheng
 
GA Konferenz-2011 Nick Mihailovski_API
GA Konferenz-2011 Nick Mihailovski_APIGA Konferenz-2011 Nick Mihailovski_API
GA Konferenz-2011 Nick Mihailovski_APIe-dialog GmbH
 
The Art of AngularJS in 2015 - Angular Summit 2015
The Art of AngularJS in 2015 - Angular Summit 2015The Art of AngularJS in 2015 - Angular Summit 2015
The Art of AngularJS in 2015 - Angular Summit 2015Matt Raible
 
Digital analytics with R - Sydney Users of R Forum - May 2015
Digital analytics with R - Sydney Users of R Forum - May 2015Digital analytics with R - Sydney Users of R Forum - May 2015
Digital analytics with R - Sydney Users of R Forum - May 2015Johann de Boer
 
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.pptDevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.pptVinoaj Vijeyakumaar
 
DevFest Chiang Mai - Implementing Google Analytics - 2011-09-24.ppt
DevFest Chiang Mai - Implementing Google Analytics - 2011-09-24.pptDevFest Chiang Mai - Implementing Google Analytics - 2011-09-24.ppt
DevFest Chiang Mai - Implementing Google Analytics - 2011-09-24.pptVinoaj Vijeyakumaar
 
implemetning google analytics - 2011-09-24 Google Devfest Chiangmai
implemetning google analytics - 2011-09-24 Google Devfest Chiangmaiimplemetning google analytics - 2011-09-24 Google Devfest Chiangmai
implemetning google analytics - 2011-09-24 Google Devfest ChiangmaiPawoot (Pom) Pongvitayapanu
 
GTUG Philippines - Implementing Google Analytics - 2011-10-11
GTUG Philippines - Implementing Google Analytics - 2011-10-11GTUG Philippines - Implementing Google Analytics - 2011-10-11
GTUG Philippines - Implementing Google Analytics - 2011-10-11Vinoaj Vijeyakumaar
 
JAVASCRIPT NÃO-OBSTRUTIVO com jQuery
JAVASCRIPT NÃO-OBSTRUTIVO com jQueryJAVASCRIPT NÃO-OBSTRUTIVO com jQuery
JAVASCRIPT NÃO-OBSTRUTIVO com jQueryZigotto Tecnologia
 
Building Web Interface On Rails
Building Web Interface On RailsBuilding Web Interface On Rails
Building Web Interface On RailsWen-Tien Chang
 
Action Controller Overview, Season 2
Action Controller Overview, Season 2Action Controller Overview, Season 2
Action Controller Overview, Season 2RORLAB
 
Django - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosDjango - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosIgor Sobreira
 
Boston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on RailsBoston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on RailsJohn Brunswick
 
Writing Software not Code with Cucumber
Writing Software not Code with CucumberWriting Software not Code with Cucumber
Writing Software not Code with CucumberBen Mabey
 
Page Caching Resurrected
Page Caching ResurrectedPage Caching Resurrected
Page Caching ResurrectedBen Scofield
 
Using Geeklog as a Web Application Framework
Using Geeklog as a Web Application FrameworkUsing Geeklog as a Web Application Framework
Using Geeklog as a Web Application FrameworkDirk Haun
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on RailsDiki Andeas
 

Similar to User Behavior Tracking with Google Analytics, Garb, and Vanity (20)

Making GA Work For You W/ Custom Variables
Making GA Work For You W/ Custom VariablesMaking GA Work For You W/ Custom Variables
Making GA Work For You W/ Custom Variables
 
What's new in Rails 2?
What's new in Rails 2?What's new in Rails 2?
What's new in Rails 2?
 
OSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialOSDC 2009 Rails Turtorial
OSDC 2009 Rails Turtorial
 
GA Konferenz-2011 Nick Mihailovski_API
GA Konferenz-2011 Nick Mihailovski_APIGA Konferenz-2011 Nick Mihailovski_API
GA Konferenz-2011 Nick Mihailovski_API
 
The Art of AngularJS in 2015 - Angular Summit 2015
The Art of AngularJS in 2015 - Angular Summit 2015The Art of AngularJS in 2015 - Angular Summit 2015
The Art of AngularJS in 2015 - Angular Summit 2015
 
Digital analytics with R - Sydney Users of R Forum - May 2015
Digital analytics with R - Sydney Users of R Forum - May 2015Digital analytics with R - Sydney Users of R Forum - May 2015
Digital analytics with R - Sydney Users of R Forum - May 2015
 
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.pptDevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
 
DevFest Chiang Mai - Implementing Google Analytics - 2011-09-24.ppt
DevFest Chiang Mai - Implementing Google Analytics - 2011-09-24.pptDevFest Chiang Mai - Implementing Google Analytics - 2011-09-24.ppt
DevFest Chiang Mai - Implementing Google Analytics - 2011-09-24.ppt
 
implemetning google analytics - 2011-09-24 Google Devfest Chiangmai
implemetning google analytics - 2011-09-24 Google Devfest Chiangmaiimplemetning google analytics - 2011-09-24 Google Devfest Chiangmai
implemetning google analytics - 2011-09-24 Google Devfest Chiangmai
 
GTUG Philippines - Implementing Google Analytics - 2011-10-11
GTUG Philippines - Implementing Google Analytics - 2011-10-11GTUG Philippines - Implementing Google Analytics - 2011-10-11
GTUG Philippines - Implementing Google Analytics - 2011-10-11
 
Code Management
Code ManagementCode Management
Code Management
 
JAVASCRIPT NÃO-OBSTRUTIVO com jQuery
JAVASCRIPT NÃO-OBSTRUTIVO com jQueryJAVASCRIPT NÃO-OBSTRUTIVO com jQuery
JAVASCRIPT NÃO-OBSTRUTIVO com jQuery
 
Building Web Interface On Rails
Building Web Interface On RailsBuilding Web Interface On Rails
Building Web Interface On Rails
 
Action Controller Overview, Season 2
Action Controller Overview, Season 2Action Controller Overview, Season 2
Action Controller Overview, Season 2
 
Django - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosDjango - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazos
 
Boston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on RailsBoston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on Rails
 
Writing Software not Code with Cucumber
Writing Software not Code with CucumberWriting Software not Code with Cucumber
Writing Software not Code with Cucumber
 
Page Caching Resurrected
Page Caching ResurrectedPage Caching Resurrected
Page Caching Resurrected
 
Using Geeklog as a Web Application Framework
Using Geeklog as a Web Application FrameworkUsing Geeklog as a Web Application Framework
Using Geeklog as a Web Application Framework
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Rails
 

Recently uploaded

COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfAnna Loughnan Colquhoun
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceMartin Humpolec
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIUdaiappa Ramachandran
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
20200723_insight_release_plan
20200723_insight_release_plan20200723_insight_release_plan
20200723_insight_release_planJamie (Taka) Wang
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 

Recently uploaded (20)

COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your Salesforce
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AI
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
20200723_insight_release_plan
20200723_insight_release_plan20200723_insight_release_plan
20200723_insight_release_plan
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 

User Behavior Tracking with Google Analytics, Garb, and Vanity

Editor's Notes

  1. Title: &amp;#x201C;Build it and they will come&amp;#x201D; &amp;#x2026; Sucks. Summary: User behavior tracking can be difficult. If done properly, it can be invaluable in helping to shape the evolution of your product. Done poorly, and it can lead to expensive mistakes. Learn the tools and techniques that will help you make the right choices. Abstract: The most successful applications start off with a good idea. From this idea, features and services are created to fulfill the needs of users. Determining how users act when given features has proven to be the best method for guiding feature design. Unfortunately, making this determination is often an expensive challenge, especially if done improperly. This talk will provide you with new tools and techniques to aid gathering information to make these decisions. With the bulk of the talk I will cover all you will need to know to get information back out of Google Analytics (GA), using Garb to access the API provided by Google. In addition, I will discuss, in-depth techniques and examples for gathering the best data using GA. I will touch briefly on the benefits of A/B testing in order to introduce Vanity. Lastly, I will present techniques for combining data gathered with GA and metrics from Vanity to create a vivid picture of user behavior and how this data might be presented to encourage users. All in all, Google Analytics provides the gateway to a more complete analysis of user behavior, and an invaluable tool for planning the features and growth of your application. Let me show you how to leverage them.