Automating Website Analytics with Python and MongoDB
Tracking and analyzing website performance is crucial for optimizing user experience and improving conversion rates. By automating website analytics with Python, MongoDB, and Google Analytics, businesses can save time on manual tracking and gain real-time insights into their website’s performance.
Lillqvist Strat provides comprehensive solutions to automate this process, ensuring you get the most out of your website data.
1. Website Analytics Intro
Why Website Analytics Matter
Website analytics help businesses:
- Monitor traffic and understand user behavior.
- Optimize marketing campaigns by identifying which channels drive the most traffic.
- Increase conversions by analyzing how users interact with the website.
Tools for Automating Website Analytics
- Google Analytics: Provides detailed traffic and user behavior data.
- MongoDB: A flexible NoSQL database for storing analytics data.
- Python: The programming language for automating data collection and processing.
- Pandas: A Python library for analyzing and visualizing analytics data.
2. MongoDB Traffic Data
Setting Up MongoDB for Analytics
MongoDB is used to store web traffic data, allowing you to scale and query large amounts of website data efficiently. Here’s an example of how you can store website analytics data.
from pymongo import MongoClient
# Connect to MongoDB
client = MongoClient("mongodb://localhost:27017/")
db = client["website_analytics"]
traffic_data = db["traffic_data"]
# Example traffic data to insert
data = {
"timestamp": "2025-02-23T10:00:00Z",
"source": "Google",
"visitors": 1200,
"pageviews": 3500,
"bounce_rate": 45.3
}
# Insert traffic data into MongoDB
traffic_data.insert_one(data)
3. Python Data Collection
Connecting Python to Google Analytics API
To collect website traffic data from Google Analytics, you need to use the Google Analytics Reporting API v4. Below is an example of how to authenticate and fetch data using Python.
Step 1: Install Google Analytics API Client
First, install the required package for Google Analytics:
pip install google-api-python-client oauth2client
Step 2: Set Up Google Analytics API
Create a project in Google Cloud and enable the Google Analytics Reporting API. Download the credentials.json file and authenticate your Python script.
Step 3: Fetch Analytics Data
from googleapiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
# Authenticate and initialize Google Analytics API
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'credentials.json',
scopes=['https://www.googleapis.com/auth/analytics.readonly']
)
analytics = build('analyticsreporting', 'v4', credentials=credentials)
# Fetch data (e.g., sessions, pageviews, etc.)
response = analytics.reports().batchGet(
body={
'reportRequests': [
{
'viewId': 'YOUR_VIEW_ID',
'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
'metrics': [{'expression': 'ga:sessions'}, {'expression': 'ga:pageviews'}],
'dimensions': [{'name': 'ga:source'}]
}
]
}
).execute()
# Print the response data
print(response)
4. Pandas Visitor Insights
Analyzing and Visualizing Website Data with Pandas
Once you’ve fetched the data, you can use Pandas to clean, analyze, and visualize website traffic insights.
import pandas as pd
# Sample data: Replace this with the actual response from Google Analytics
data = [
{"timestamp": "2025-02-23T10:00:00Z", "source": "Google", "sessions": 1200, "pageviews": 3500},
{"timestamp": "2025-02-23T11:00:00Z", "source": "Facebook", "sessions": 900, "pageviews": 2500},
{"timestamp": "2025-02-23T12:00:00Z", "source": "Direct", "sessions": 1500, "pageviews": 4500},
]
# Convert data to DataFrame
df = pd.DataFrame(data)
# Analyze data
df['sessions_per_pageview'] = df['sessions'] / df['pageviews']
df['average_session_duration'] = df['sessions'] * 2 # Example calculation
# Visualizing with Pandas
import matplotlib.pyplot as plt
df.plot(x='timestamp', y='sessions', kind='line')
plt.title('Website Sessions Over Time')
plt.xlabel('Timestamp')
plt.ylabel('Sessions')
plt.show()
5. Reporting
Automating Reports and Dashboards
Once you have your data stored and processed in MongoDB and Pandas, you can generate automated reports. For example, using Python and Matplotlib, you can create visual dashboards.
Example: Generate a Website Traffic Report
# Generate a summary report for website traffic
traffic_summary = df.describe()
# Save the report to a CSV file
traffic_summary.to_csv('website_traffic_report.csv')
# You can also generate a PDF report using libraries such as ReportLab (optional)
Conclusion
Automating website analytics using Python, MongoDB, and Google Analytics helps businesses track and analyze real-time website performance efficiently. By integrating these tools, companies can make informed decisions, optimize marketing campaigns, and improve user experience based on accurate data insights.
Key Benefits
- Automated data collection from Google Analytics.
- Real-time analysis using MongoDB and Pandas.
- Automated reporting for ongoing performance monitoring.
Lillqvist Strat can help you integrate automated website analytics into your business workflows to improve performance and optimize strategies.

Lillqvist Strat consults on business developement, software projects, automation, SOPs, analytical tools and more.
Contact me today to get started on our journey to higher profits, more revenue and happier employees!
Go to Contact now