Hey there, fellow developer! Ready to dive into the world of Google Analytics API integration with Ruby? You're in for a treat. We'll be using the google-analytics-data
package to make our lives easier. This guide assumes you're already familiar with Ruby and have some context about Google Analytics. Let's get cracking!
Before we jump in, make sure you've got:
First things first, let's get that gem installed:
gem install google-analytics-data
Easy peasy, right?
Now, let's set up our service account credentials. Head over to your Google Cloud Console, create a service account, and download the JSON key file.
Once you've got that, set up an environment variable:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
Pro tip: Add this to your .bashrc
or .zshrc
file to make it permanent.
Time to get our hands dirty with some code:
require "google/analytics/data/v1beta" client = Google::Analytics::Data::V1beta::BetaAnalyticsDataClient.new
Boom! You've got a client ready to make some API calls.
Let's construct a basic request:
property_id = "YOUR_GA4_PROPERTY_ID" date_range = Google::Analytics::Data::V1beta::DateRange.new( start_date: "7daysAgo", end_date: "yesterday" ) metric = Google::Analytics::Data::V1beta::Metric.new(name: "activeUsers") dimension = Google::Analytics::Data::V1beta::Dimension.new(name: "date") response = client.run_report( property: "properties/#{property_id}", date_ranges: [date_range], metrics: [metric], dimensions: [dimension] )
Now that we've got our response, let's parse it:
response.rows.each do |row| date = row.dimension_values[0].value active_users = row.metric_values[0].value puts "Date: #{date}, Active Users: #{active_users}" end
Want to filter your data? No problem:
filter = Google::Analytics::Data::V1beta::FilterExpression.new( filter: Google::Analytics::Data::V1beta::Filter.new( field_name: "country", string_filter: Google::Analytics::Data::V1beta::Filter::StringFilter.new( value: "United States" ) ) ) # Add this to your run_report call dimension_filter: filter
Always wrap your API calls in a begin/rescue block:
begin response = client.run_report(...) rescue Google::Cloud::Error => e puts "Error: #{e.message}" end
And remember, respect those rate limits! Google Analytics has quotas, so don't go wild with your requests.
And there you have it! You're now equipped to integrate Google Analytics data into your Ruby projects. Remember, this is just scratching the surface. The GA4 API is powerful and flexible, so don't be afraid to explore and experiment.
Happy coding, and may your data always be insightful!