Apple Health Data How to Export Analyze Visualize Guide



Did you know that the Apple Health App is recording your steps, mileage, and flights climbed data? This post will show you how to export, analyze and visualize your Apple Health data using both Excel and R. But first let’s establish that you may be sitting on a mountain of personal fitness data on your iPhone without even knowing it.

Send me your Apple Health export.xml file and I’ll analyze your fitness data for you.

Export Apple Health App Data
Transform Apple Health XML to CSV
Analyze and Visualize Apple Health Data in Excel
Analyze and Visualize Apple Health Data in R

On iPhones 5s and newer and iOS 8 and newer, the health data is automatically collected as long as you have your iPhone with you when you are walking, running or hiking. Senors on the iPhone including the gyroscope, accelerometer, GPS, and barometer are used to measure steps, miles and flights climbed. To access the Apple Health data find and tap the heart health icon in your applications shown below. Your quantified self data is already being captured and you may not even know it.


By default your Health dashboard should launch. If not tap the Dashboard icon on the bottom navigation. The dashboard will look like the screen shot shown below.


If you tap on any of the graphs twice, the first tap will bring you to a screen with a graph of just the single metric i.e. steps, and the second tap will launch a detailed table view of the data by day. This gives a nice quick view of your health data, but it makes it difficult to answer questions such as:

How do my steps this month compare to the same month to last year?
Am I more or less active on the weekdays or weekends?

The boxplot below shows my steps data by day of the week by year. This visualization was created using R and is just one example of what you will learn to create in this post.


This post will show you how to answer these questions and get started exporting, analyzing and visualizing your Apple Health steps, walking and running distance and flights climbed data.

Continue Reading

Google Search Console API R: Guide to get Started


This tutorial shows you how to setup a daily automated pull of Google Search Console data (formerly known as Google Webmaster Tools) using R. The example shows you how to save your Organic search data daily to get around Google’s current 90 day limit on historical data. Armed with this historical organic search data you can measure your content marketing and SEO efforts over months and years not just the previous 90 days. Take back your ‘not provided’ organic keyword data.

No previous knowledge of programming, APIs or R is necessary to complete this tutorial. Like my previous tutorial on getting started with the Google Analytics reporting API with Python (please check it out), I want to help you get started with a detailed example that you can use right now.

Continue Reading

Real-Time Reporting Adobe Analytics API Tutorial


Adobe has a nice real-time dashboard built directly into Reports & Analytics (SiteCatalyst). It is easy to configure and get up and running quickly. According to Adobe product manager Ben GainesReal-Time reports in Adobe Analytics has become one of the most popular features in Reports & Analytics.” What you may not know is that real-time data can be accessed via Adobe’s reporting API. Adobe has a great tutorial on how to get started with the Adobe Analytics Real-Time API that you need to check out. The example was used in a lab session at past Adobe Summits and it looks like it was offered again at the 2016 Adobe Summit. If you went to Summit let me know how the session was. I haven’t attended the session before, but I was in a search of a real-time API sample for Adobe Analytics and I stumbled upon this gem.

In this post I am going to walk you through Lesson 1 and Lesson 6 from this tutorial. Lesson 1 gives you the basic fundamentals needed to run a Adobe Analytics real-time report. Lesson 6 gives you a working real-time dashboard with snazzy D3.js visualizations that you can load right now in your browser. Hopefully you can use this as the foundation for building some actionable solutions that leverage real-time data at your organization. I look forward to hearing about the real-time dashboard you build or the real-time content and campaign optimization or the real-time site health alert tools. Please share what you create in the comments or @ryanpraski.

Continue Reading

Python Google Analytics API Over 1 mil Rows Unsampled Data + Pull Data From Multiple Profiles

How to pull large data sets with over 1 million rows from Google Analytics and avoid sampling?
How to pull the same data across multiple Google Analytics profiles?

This post provides a solution for exporting more than 10,000 rows (the example pulls over 1 millions rows) and a solution for the sampling limitations of Google Analytics. The solution uses the Google Analytics reporting API and Python. It checks for the presence of sampling before running a query and gives you the ability to break your query down into smaller 10,000 row pieces. The pieces are multiple smaller queries with shorter date ranges. All the data from the small queries are stitched together and output into a single CSV file for the full date range. With this solution you can also pull data from multiple profiles using this single Python application. If you work across multiple Google Analytics profiles with high traffic volumes and often run into sampling, then this solution should save you lots of time. If you’d like to see how to use the Google Analytics Sheets Add-on to pull more than 10k rows of data and avoid sampling check out my previous post.

Continue Reading

Pull More than 10k rows Unsampled using Google Analytics Sheets Add-on

How to pull a Google Analytics report with more than 10,000 rows?
How to get around Google Analytics Sampling Limitations?

Sample Google Analytics Sheet used in this tutorial (file make a copy to edit)


Google Analytics Sheet Add-on 119,421 rows of data

How do you pull a Google Analytics report with more than 10,000 rows? How do you get around Google Analytics Sampling Limitations? These were the most common questions I was asked after my recent Google Analytics reporting API Python tutorial. This new tutorial will show you how to export more than 10,000 rows using the Google Analytics Spreadsheet Add-on and how avoid the sampling limitations of Google Analytics. I also have another post in the works on how to use Python and the Google Analytics API to avoid sampling and pull even more data. Keep an eye out for the new post!

Continue Reading

Google Analytics Reporting API Python Tutorial

• Download Python 2
Register your application for the Analytics API in Google Developers Console 
Download the Google Python API Sample Code
Google Analytics Query Explorer
Python Code to Output Google Analytics API Query Data to CSV *save file as .py

Check out this new post on how to pull over 1 million rows of unsampled data using Python & how to pull data from multiple profiles

Check out this new post on how to pull more than 10000 rows of unsampled data using the Google Analytics Sheets Add-on.

This guide will go through step by step instructions on how to setup Python and pull your first query directly from the Google Analytics reporting API. I will show you how to install Python on Windows and add the Google API Python library. We will create a new project in the Google Developers Console and enable the Analytics API. Next we will use a prebuilt sample Python application to get data out of Google Analytics via the API. Then I’ll walk you through how to test your own query using the Google Analytics Query Explorer. Then we will edit the Python application code to create your very own query. And finally we will pull Google Analytics data directly into Excel using Python to write a CSV file containing the Google Analytics data.

Continue Reading

How to Add 100 Users to Adobe Analytics in Seconds


Website to add multiple users
Sample CSV file to upload to the website

The Problem: How to add 100 users to Adobe Analytics as efficiently as possible?

A client recently requested that I add 100 new users to an Adobe Analytics account. I didn’t want to go in and add each user one by one via user management in the administrative console. It could take an hour or more to fill in the required fields for each of the 100 users. Administrative upkeep and user management is tedious work that is prone to errors. There had to be a better way.

The Solution: Use a web application that leverages the Adobe Analytics API

Continue Reading