Project

gosquared

0.01
No release in over 3 years
Low commit activity in last 3 years
GoSquared is the all-in-one growth software for SaaS businesses. This gem is for posting data from your application to the GoSquared Tracking API and fetching metrics from the GoSquared Reporting API.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
 Project Readme

GoSquared Ruby Gem

Build Status

Please feel free to open an issue if you find anything not working, or to leave feedback for improvement. You can also get in touch directly: integrations@gosquared.com

This gems works with the GoSquared API, You can use it for both fetching metrics from your GoSquared account and also posting new events and contacts.

Note: if you are looking to set up GoSquared for the first time and install Analytics, People CRM and Live Chat within a Rails app, you can do so by using our [GoSquared-Rails gem] (https://github.com/gosquared/gosquared-rails)

All functions listed in the API documentation are methods you can call on the GoSquared class.

You can generate an API key from your GoSquared Account Settings.

#Installation

gem install gosquared

Then require GoSquared in your application

require 'gosquared'

#Tracking API This is for sending data to GoSquared. It allows you to track:

  • Events
  • Transactions
  • People profiles

##Track Events

gs = Gosquared::RubyLibrary.new("your_API_key","your_project_token")

gs.tracking.event({ event: { name: 'event' } })

#builds the url to the 'GoSquared Tracking' endpoint with the "events" dimension and an event to add to the events list

gs.tracking.post

#posts the data to the 'GoSquared Tracking' endpoint

Response Message: OK
=> #<Net::HTTPOK 200 OK readbody=true>

##Track Transactions

gs = Gosquared::RubyLibrary.new("your_API_key","your_project_token")

gs.tracking.transaction({
  transaction: { id: "1", revenue: 50, quantity: 1,
  previous_transaction_timestamp: Time.new }
  })

gs.tracking.post

Response Message: OK
=> #<Net::HTTPOK 200 OK readbody=true>

##Create or Update People profiles

This method is useful for importing existing user profiles into GoSquared people and updating profiles you have already added.

It's highly recommended that you also implement the front end javascript 'identify' method on your site. This enables us to track a the user's session activity and browser information against their People profile.

We also recommend using an email address for the person_id. To do this, the email address needs to be prefixed with email: like in the example below.

gs = Gosquared::RubyLibrary.new("your_API_key","your_project_token")

gs.tracking.identify({
  person_id: "email:user@test.com", # Required

  # Reserved property names
  properties: {
    name: "Test User",
    username: "testuser",
    phone: "+44123456789",
    created_at:"2016-06-07T15:44:20Z", # ISO 8601 formatted String
    company_name:"GoSquared",
    company_industry:"Customer Analytics",
    company_size: 15000,

    # Custom properties
    custom: {
      # custom_property_name: "custom property value"  # You can track as many custom properties as you like
    }
  }
})

gs.tracking.post

Response Message: OK
=> #<Net::HTTPOK 200 OK readbody=true>

#Reporting API This is for pulling data from your GoSquared account. It is split into 3 sections;

  • Now - realtime data
  • Trends – historical data (includes ecommerce)
  • People - user data
  • Account - administration

##Now The Now API provides real-time concurrent information about your sites and apps, such as the number of concurrent visitors online, the most popular pages right now, the most influential traffic sources, and much more.

Now Example:

gs = Gosquared::RubyLibrary.new("your_API_key","your_project_token")

#instantiates new GoSquared object

gs.now.concurrents

#builds the url to the 'GoSquared Now' endpoint with the "Concurrents dimension"

gs.now.fetch

#fetches the data from the 'GoSquared Now' endpoint

=> {"visitors"=>3, "returning"=>1, "pages"=>0, "active"=>0, "tagged"=>0}

##Trends The Trends API provides historical analytics information for any given period in a project's history. The data for the current period updates in real-time, so the figures are always fresh and up-to-date.

Trends Example:

gs = Gosquared::RubyLibrary.new("your_API_key","your_project_token")

gs.trends.browser.from('2016-06-30').to('2016-07-07')

#builds the url to the 'GoSquared Trends' endpoint with the "Trends dimension" and date filters

gs.trends.fetch

#fetches the filtered data from the 'GoSquared Trends' endpoint

=> {"list"=>[{"id"=>"chrome", "browser"=>"chrome", "name"=>"Chrome", "metrics"=>{"visits"=>3}}], "cardinality"=>1, "dimension"=>"browser", "range"=>{"from"=>"2016-06-30T00:00:00+01:00", "to"=>"2016-07-07T23:59:59+01:00"}, "interval"=>"day"}

##People

gs = Gosquared::RubyLibrary.new("your_API_key","your_project_token")

gs.people.smartgroups

#builds the url to the 'GoSquared People' endpoint with the "people" dimension.

gs.people.fetch

#fetches all smartgroups associated with the account.

##Account The Account API allows you to perform administrative actions against GoSquared accounts. This includes actions like changing settings, configuration, and listing resources under the account.

Account Example:

gs = Gosquared::RubyLibrary.new("your_API_key","your_project_token")

gs.account.blocked.ips.ip('5.10.148.50')

#builds the url to the 'GoSquared Account' endpoint with the "Blocked dimension" and ip address to add to the blocked list

gs.account.post

#posts the data to the 'GoSquared Account' endpoint

Response Message: OK
=> #<Net::HTTPOK 200 OK readbody=true>

gs.account.sites.token("your_site_token")

#builds the url to the 'GoSquared Account' endpoint with the "Sites" dimension and token you want to retrieve the site by.

gs.account.sites.fetch

#Tests

rspec