The Google Analytics extractor pulls raw data from the Google Analytics Reporting API.
In order to access your Google Analytics data, you will need:
This extractor supports service account based authorization, where an administrator manually creates a service account with the appropriate permissions to view the account, property, and view you wish to fetch data from.
To access your Google Analytics Account, it needs the Analytics Reporting API and the Analytics API enabled. These need to be enabled for a project inside the same organization as your Google Analytics account.
As a first step, you need to create or use an existing project in the Google Developers Console:
Sign in to the Google Account you are using for managing Google Analytics (you must have Manage Users permission at the account, property, or view level).
Open the Service accounts page. If prompted, select a project or create a new one to use for accessing Google Analytics.
Click "Create service account"
In the Create service account window, type a name for the service account, and select Furnish a new private key. Then click Save and store it locally as
If you already have a service account, you can generate a key by selecting 'Edit' for the account and then selecting the option to generate a key.
Your new public/private key pair is generated and downloaded to your machine; it serves as the only copy of this key. You are responsible for storing it securely.
A way to authenticate when accessing the Analytics APIs
When you create a service account Google gives you a json file with that service account's credentials called the
client_secrets.json, and that's all you need to pass to this tap.
The newly created service account will have an email address that looks similar to:
Visit the Google Analytics Reporting API dashboard and make sure that the project you used in the previous step is selected.
From this dashboard, you can enable/disable the API for your account, set Quotas and check usage stats for the service account you are using with the Google Analytics extractor.
Visit the Google Analytics API dashboard, make sure that the project you used in the previous step is selected, and enable the API for your account.
Optionally, you can provide an additional JSON file for the definition of the reports to be generated. You can check, as an example, the JSON file used as a default in tap-google-analytics/defaults/default_report_definition.json. Those report definitions could be part of the config.json, but we prefer to keep config.json small and clean and provide the definitions by using an additional file.
This property allows you to configure where you want your data set to start from. Otherwise, if left blank, it will try to fetch the entire history of the groups or projects specified.
This property allows you to configure where you want your data set to end in relation to the Start Date.
Open your Meltano instance and click "Pipelines" in the top navigation bar. You should now see the Extractors page, which contains various options for connecting your data source.
tap-google-analytics by clicking on the
Connect button inside its card.
For the Key File Location, you will need to upload your
client_secrets.json using the file uploader.
For the View ID, enter the ID you retrieved using Google Analytics Account Explorer
For the Start Date, choose the date when you want to start extracting data for.
For the End Date, it is set to yesterday by default if you do not configure a date. However, you can choose to set a specific end date for your data set if you want.
Save to finish configuring the extractor and progress to the next step: "Configure the Loader".
meltano add extractor tap-google-analytics
If you are successful, you should see
Added and installed extractors 'tap-google-analytics' in your terminal.
.envfile in a text editor
export GOOGLE_ANALYTICS_API_CLIENT_SECRETS="client_secrets.json" export GOOGLE_ANALYTICS_API_VIEW_ID="YOUR VIEW ID" export GOOGLE_ANALYTICS_API_START_DATE="2019-02-01T00:00:00Z"
export GOOGLE_ANALYTICS_API_REPORTS="cli_reports.json" export GOOGLE_ANALYTICS_API_END_DATE="2019-06-01T00:00:00Z"
Check the README for details.