I run a blog, which since you found this particular blog you, of course, know that, and like many others that run blogs or websites, I too have added a Google Analytics script to my blog. To be honest I’ve never really looked at the Google Analytics data since counting hits and other metrics hasn’t been a driver. That being said lately I’ve had some questions that made me decide to pull my Google Analytics data to Einstein Analytics (of course) using the out of the box connector guided by the official documentation. In this blog, I’ll explain the steps I had to complete in Google Analytics as well as Einstein Analytics to get access to the data.
Setting up credentials for Google Analytics
If you have worked with the Einstein Analytics connectors before, you probably know they are easy to set up, however, there is often work to be done in the source system prior to setting up the connector. It is not any different with Google Analytics.
We first need to navigate to the Google Cloud Platform console – https://cloud.google.com/ as it is here we can set up a service account to get access to Google Analytics via the connector. In the top right, you’ll find a link to go to the console.
Creating a project
If you don’t already have a project in Google Cloud Platform to use you need to create this first. It’s pretty straightforward. In the top blue bar, you can click to get a project view and create a new project from here.
In the dialog box, click on “New Project” in the top right corner. All you have to do is give your project a name and optionally choose a different location followed by saving your new project.
Creating the Service Account
Now that we have the project we can create the service account. Once you are in the console hit the three lines in the top left corner to show the menu and select “IAM & Admin” followed by “Service Account”.
Next, we click the “+ Service Account” to create the service account we need for the connector.
In the new window you just need to give your Service Account a name – I called mine SalesforceBloggerDemo. You can also decide to add a description, which can be helpful if you have multiple Service Accounts for different purposes. Once done just hit the “Create” button. You have the option in the following steps to grant access to projects and users – I’ve chosen to skip this step as it’s not needed for what we are doing.
While the Service Account has been created now we need to generate a key that will give us a client email and private key, which we need to use later. To generate this key in the action column with the three dots choose “Create Key”. We are gonna key JSON as the key type and can click “Create” right away. Note that this will start a download of a JSON file with all the keys. You must save this file as the key cannot be retrieved if lost.
Enable the Google Analytics API
While we are in the project we need to make sure the project and Service Account have the Google Analytics API enabled. Without this API we cannot access Google Analytics in Einstein Analytics.
In order to enable the API we need to go back to the menu and select “APIs & Services” followed by “Library”.
Once you are on the Library page you can search for existing APIs to use in your project. The one we want is the “Google Analytics API”; all you have to do is search for the API and select it. Once selected make sure to enable the API as shown below.
Giving access to the Service Account
We have now set up the Service Account that we need to get access, but at this stage, it isn’t allowed to grab any data from Google Analytics. In order to get access we need to open the JSON file we downloaded before with all the keys, find the client_email and copy the value that is in the form of an email.
Next, move to Google Analytics and head to the admin section. Here we need to add the client email as a user with “Read & Analyse” access. To add the user click on the “Account User Management”.
Next, click on the blue plus button in the top right and choose “Add users”.
All you have to do is add the service email to the email address section and optionally uncheck the notification. You can keep the default permissions “Read & Analysis” and just hit the “Add” button.
Finding the view id
When we set up the connector in Einstein Analytics we need the view id, which you can find in the admin section under the View Settings.
Make sure to copy and save the view id as you will need it later.
Setting up the Google Analytics connector
All the pre-work in Google Analytics has been done and we can now head to the Data Manager and the Connect page in Einstein Analytics.
Once on the Connect page click the blue “Connect to Data” button in the top right corner of the page. Select “Add Connector”, then find and choose “Google Analytics”.
It’s now all the keys and ids come in play. Give your connector a name, developer name, and description. I like to add the view id in the description, so I don’t always have to go look for it in Google Analytics when I want to connect a new object since the view id is needed every time we include a new virtual object from Google Analytics.
Next, add the client email from the JSON file before. We also need to add the private key; when you look in the JSON file it’s the very long string after —–BEGIN PRIVATE KEY—–\n and before \n—–END PRIVATE KEY—–\n
Once added hit the “Save & Test” button. Hopefully, it’s successful and you can now add a virtual object to be synced to Einstein Analytics.
Adding a virtual object
Once the connector has been set up, it is possible to select it from the connector overview. Like with any connectors you first have to select the object you want to connect to and pick the fields.
Clicking next you need to select the start date and the end date for the data you want to bring in. The format is yyyy-MM-dd or you can use a relative term like “today” – to see the full list of patterns and relative terms check this link out under start-date and end-date. Finally, you need to add the view id we looked up in Google Analytics.
Make sure to check if your measures exceed 18 characters, if they do you would need to change it as Einstein Analytics have a limit of 18 characters. You will see a warning in the measure column during the preview if there are any issues.
Once you have gone through the steps and added the objects make sure to set up a schedule to have data ready to use in a recipe or dataflow.
When you are connecting the objects I can recommend checking out the Google Analytics Dimensions & Metric Explorer to understand what fields are available. The Global Access Object is not available in the tool as it is generated by Einstein Analytics. Regardless be aware there is a restriction on how many dimensions and measures Google Analytics allow you to bring over.
When working with the connector make sure to check out the consideration section in the Salesforce Help for the Google Analytics Connector. There are some general considerations for all connectors like 100 connected objects, but additionally, make sure to understand the limitations specific to Google Analytics including:
- The connector can sync 10 million rows or 5 GB per object, whichever limit it reaches first.
- Google Analytics can sync up to 1 million records the rest will be grouped and marked as other by Einstein Analytics. Consider looking at a limited timeframe such as a day and use the dataflow to append newly synced data with the exciting dataset.
- You need to choose at least one measure for any object you want to sync.
- You can maximum connect 7 dimensions and 10 measures for each object.