Jump to Table of Contents

Google Analytics Integration

This article provides a setup by step guide and also a video for how to setup a Google Analytics integration.

Google Analytics Integration


We have one of the most advanced Google Analytics integrations available. It will not only send goals and phone call data into Google Analytics in real-time but also the call type and transaction value. This integration enables you to pass your call data into the 3rd party systems and it is complimentary on all packages.

This allows you to setup corresponding goals within your GA account so that you can use the data against your reports. It is important that you are using the latest version of Google Analytics rather than a classic version of Google Analytics, as we have now archived this integration.

The setup process for our Google Analytics integration is pretty straightforward. A good foundation prior to setting this up is working out which calls or goals you want to view within your GA account.

We have access to Google's API, which means we can pass through your individual calls and goals as events into GA with the CID information we have captured from the visitor. Google will then use this CID to match the call to the visitor trace in GA.

Our recommendation would be to send all calls into GA to start with, as these are broken down into their call goal type when the event is received into GA.

Setup Process


Firstly you need to check your existing JavaScript to see if the below line of JavaScript is present:


If this line of JavaScript is not present, please get it from our JavaScript config page by simply following the below steps:

  • Navigate to the Admin section of the Portal
  • Select Tracking Settings
  • Select JavaScript
  • Ensure the Google Analytics (GA) Integration button is ticked
  • Copy and paste this line of JavaScript and add to your main Infinity JavaScript as the example shows

Once this line of JavaScript has been confirmed or added, this step is complete.

Adding Integration to Portal

  • Navigate to the Admin section of the Portal
  • Select Integrations
  • Select Add Integration
  • Select Google Analytics Integration
  • Update the name if required
  • Add your Account Number
  • Event Value is not set as standard due to your goals usually being time based or your indicator. If you would like to send your call duration or bridge duration to GA, please update accordingly.
  • If you have transaction values which are captured via Infinity, you may want to use the GA Enhanced E-commerce Value Field field to send this to the E-commerce section within GA.

Removing Voids

If you do not want to send voided calls into GA, you will need to ensure you add this setting to the integration:

  • Under the 'What do you want to send?' Click +Add
  • Parameters to add - When outcome to is, is not, Void
  • Click the Green Tick
  • Select Save

Setting up Google Analytics Goals

Now you have completed the first two steps you now need to setup corresponding goals within your GA account.

  • Navigate to your GA account
  • Select Behaviour
  • Select Events
  • Select Overview
  • You should then see in your Event Category a row called Infinity Tracking Triggers
  • You can click down into Event Action where you will then see Infinity Call
  • To breakdown even further to see your Infinity Call Goals broken down select Event Label, this will then show you the event Labels that we have sent in
  • Now navigate to the Admin section of GA
  • Select Goals
  • Select +NEW GOAL
  • Select Custom
  • Select Continue
  • Enter the Goal Name e.g. Infinity Qualified Call
  • Select Event
  • Select Continue
  • Depending on what you would like to setup as a goal, you would configure the goal accordingly under the Event conditions:

    • If you would like to see all calls, you can enter to the Category of Infinity Tracking Triggers so that it pulls through all of your calls.
    • If you would only like to see specific events as goals, please copy and paste the front part of the event label into the event label of the goal config Infinity Call - ID 1236 - we recommend not copying and pasting the name as the goal name may change whereas the ID will not
    • If you want various Infinity call events to add data against a Google goal, use regular expression (regex) then input as follows:

^(Infinity Call - ID 98|Infinity Call - ID 100|Infinity Call - ID 101|Infinity Call - ID 102)

Please start with a caret, open bracket, copy in an Infinity goal label, add a pipe, then repeat until all of the Infinity event labels have been added. Finally, close the bracket. Make sure that there aren't any spaces.

  • For Use the Event value as the Goal Value for the conversion, select NO if you are not sending in Call or Bridge duration & yes if you are and would like to use this for this field. Please bear in mind that the Event Value is not related to Infinity transaction values
  • Select Verify this Goal - this will show you how often this Goal would have converted based on your data from the past 7 days.
  • Select Save

Google Analytics Ecommerce

To set up an Ecommerce integration using Infinity you will firstly need to understand the parameters that are being sent using our basic Google Analytics integration and the different parameters used for Google Analytics Ecommerce.

Basic Integration

Our basic Google Analytics integration sends our calls across as events. The event contains the following:

  • Event Category – this is shown as Infinity Tracking Triggers
  • Event Action – this is shown as Infinity Call {ACT}
  • Event Label – this will be shown based on your Goals that are setup within Infinity

Infinity do not support Event Values. This is due to the fact Google only use integer values for this field and these are unsuitable for monetary values.


Our Google Analytics Ecommerce integration sends across transactions which are sent as two types of hit. The hits we send are:

  • Item– this is the Infinity event action name
  • Transaction– This is the amount that is sent in via either a Transaction Value or a Goal Value and txr or row id. This will depend on your unique setup.

Measurement Protocol

Setting up Ecommerce

You will need to follow all of the steps in the Google Analytics Integration video, which can be located within the Admin section of the Portal.

Now you have understood how to setup a basic Google Analytics integration, you will need to understand exactly what you would like to send to the Ecommerce section of Google Analytics. You can chose from one of the following:

  • Goal Value: this is the value associated with your goal which would either be a fixed value set within the goal, or a percentage of the captured transaction value e.g. Call Rating or CRM Integration values.

  • Transaction Value: this value would be the transaction value either captured using Call Rating or a CRM Integration. Using this method would not consider any values associated with your goals, e.g. fixed values.

  • Not Sent: this will ensure that no item or transaction hits are sent into your integration. You would most likely use this when Call Rating is being used and you do not want the value to be sent in twice if the call is ever post rated.

Once you have selected your value field, please ensure that you save the integration.

Your value will be shown within the Ecommerce section of Google Analytics.

If you have any questions in regards to setting this up, please contact our Support Team

Google Session Length & Infinity Events

When a visitor browses to your website the Infinity JavaScript captures the Google Client ID (CID) and stores it in the cookie. When an Infinity event has been completed, for example, a call ending, we will send the event with any relevant CIDs to Google Analytics (GA). GA will then use the CID to associate events to the online visitor as it was tracked in GA.

As a call can last longer than the default GA session length (30 minutes) or can occur after the session has finished (e.g. a repeat call hours later) the call event that Infinity sends into GA can sometimes be considered outside of the original visitor's session in GA.

This can cause issues with GA reporting when some visitor journey information is missing from the call event. This is because GA does not consider it part of the original session.

Whilst you can modify your GA session to be up to 4 hours long, there is no ability to dynamically extend a visitor's session in GA. Even if there were, it would not be feasible to extend all visitor's sessions by an indeterminate amount of time just in case they do call. And in the case of repeat calls it could be days/weeks later and the session would need to be kept alive indefinitely.

Within Infinity, calls to dynamic numbers will always be associated to the last online activity in a visitor's journey as we don't confine visits to timed sessions.

Google Analytics Troubleshooting

In the unlikely event that you encounter difficulty with your GA integration, we've collated a couple of issues you may encounter, what they mean and how to resolve them.

Why does my session data for calls appear as 'not set'?

Occasionally in Google Analytics reports, the column 'channel / session' will say 'Not set'. This means that the Google cookie and the call event have not been linked correctly. Sadly it can't be amended for those events, but you can correct it for the future.

Common causes of “Not Set”:

  1. Fixed Number Calls. The event data that we send in for fixed number calls don’t have cookies set against them, so it will always say “not set”. One option is to use Infinity’s Advanced mode when labelling a fixed number within infinity, it should at least send through campaign information.

  2. Code placement. The infinity code and the GA code are not placed together on the website. For example, one might be in a container, such as Google Tag Manager, and the other might be sitting outside of the container. Best practice is to place the two elements (GA code and Infinity code) using the same method; for example place both using the Tag Manager or don't place either of them using the Tag Manager - but ensure you do the same for both. Place the Infinity code immediately beneath GA wherever possible, this ensures accurate capture of the Google cookie (CID) and ensure the fastest possible dynamic number load time.

  3. Session expiry. The default session time on GA is 30 minutes; if a visitor browses your site and then calls more than 30 minutes after that session, GA won’t link the CID to the call event. You can amend the session time within the GA account, up to a maximum of 4 hours.

    There are a plethora of reasons why your GA data may state "Not Set". This blog post from Luna Metrics gives an excellent review of the 11+ places where "not set" can occur in Google Analytics.

Why does my call event say 'not provided'?

If you see Not Provided in Google Analytics next to the call event, it means that the caller is signed in to their Google account, and Google have therefore hidden the keywords for privacy purposes.

Geo IP Update

We have now implemented a Geo Override feature for all Google Analytics integrations. This means we now send a geographic location for every event we send into Google Analytics to enhance accuracy.

If Google Analytics fails to harvest a location for whatever reason, Infinity will now always use and send its own Geo IP lookup results from the visitor’s IP we harvest with our tracking code to a country level. However, when a location has been harvested by GA, this location will always win out over any location sent by Infinity.

In the event that the visitor’s GID is missing (if cookies have been disabled for example) or has expired, Infinity will create a fake GID to attribute the event to, and once again will perform a lookup. If neither GA or Infinity could find a location for the visitor, then Infinity sends a purposefully invalid country code to force Google Analytics into showing a ‘(not set)’ value. This will be particularly relevant for fixed number calls.

Please login to rate this article
  1. Getting Started
  2. Enhancing your Installation
  3. Frequently asked questions
  4. Call Management
  5. Number Management
  6. Infinity API