RunKeeper Elite Affiliates program shutdown

As part of our ongoing review of internal programs, RunKeeper (@runkeeper) has determined that our Elite Affiliates program has not generated enough new RunKeeper Elite memberships to justify the ongoing support and engineering effort required to continue the program. Because of this, we have decided to shut down the Elite Affiliates program.

If you are not an existing participant in the Elite Affiliates program, this does not affect you and no additional action is required on your part.

If you are an existing participant in the program, you can continue to accrue Elite Affiliates earnings for one more week, until Friday 4 October 2013, at which time new earnings will cease. We want to ensure you are able to remove any outstanding earnings you have accrued in your Affiliates account. Therefore we have removed the $50 USD minimum balance requirement (i.e. you may withdraw any amount of money you have accrued). Please withdraw your accrued earnings to your PayPal account within the next thirty days, by 27 October 2013, via:
https://runkeeper.com/partner/affiliate/account

Thank you for partnering with RunKeeper!

Bill Day (@billday) is Platform Evangelist & PM for RunKeeper where he helps developers learn about and use the Health Graph platform.


MyFitnessPal calories available via Health Graph API

A quick note for all Health Graph platform (@healthgraphapi) partners:

RunKeeper‘s (@runkeeper) recently announced integration with MyFitnessPal enables users to connect their accounts on the two systems to automatically sync MyFitnessPal tracked calories consumed (i.e. calories added) into RunKeeper while also syncing RunKeeper tracked fitness activities (calories subtracted) into MyFitnessPal. Weight measurements are also synchronized bidirectionally between the two systems so that your latest weight is consistent between the two.

MyFitnessPal calories consumed displayed in RunKeeper fitness feed

But there’s an added bonus for other RunKeeper partners and members of the Health Graph community. Both calories consumed and weight measurements synchronized from MyFitnessPal to RunKeeper are available to all Health Graph API developers. Calories appear as Nutrition sets with values in the calories field and weight measurements appear in Weight sets. Both of these nutrition and weight sets will have a source value of ‘MyFitnessPal‘ to indicate their origin.

We hope that access to the additional MyFitnessPal-originated data will help you build even more amazing things for our collective user community!

Bill Day (@billday) is Platform Evangelist & PM for RunKeeper where he helps developers learn about and use the Health Graph platform.


The Saga of your life

The Saga (@GetSaga) lifelogging app brings RunKeeper (@runkeeper) activities into a user’s location-based view of their life’s activities. Jeremy Bensley (@jbensley) walks us through how A.R.O., Inc. (@arodotcom), makers of Saga, use the Health Graph platform (@healthgraphapi) to show the saga of your life.

Bill Day: Please tell us about yourself and your work.

Jeremy Bensley

Jeremy Bensley: I’m the Director of Server Development at A.R.O., Inc. Running the platform development team means I’m involved with many tasks on a daily basis, but at my core I’m a data guy, and specifically I love tracking my movements, my activities, and my habits. My background is in machine learning, natural language processing, and making sense of lots and lots of (often noisy) output from sensors. Aside from managerial duties my primary tasks for Saga are the time segmentation of the LifeLog and integration with external APIs such as RunKeeper’s Health Graph API.

A.R.O. is a great place to work. We think the sensors in your smartphone can be used to power a wide range of awesome app experiences. Everything from contextually-aware systems like Google Now to virtual personal assistants like Siri, and we’ve only begun to scratch the surface on this potential.

BD: What is the “elevator pitch” for why someone should use Saga?

JB: Saga is a location lifelog. It creates a diary of your life based on where you go. The beauty of Saga is that it does this without requiring much attention from the user. Different people will like different aspects of Saga: Perhaps you will use it to figure out how to optimize your commute to work, or how you run your errands. Or as a beautiful way to tell the story of your amazing weekend.

BD: How did you get started using the Health Graph API?

JB: We wanted to include health details as part of the Saga lifelog. A first step is including information such as the details of your run from RunKeeper. For many runners, running is a part of your life, more than just the numbers of the run (distance, time, pace, etc). It’s about getting out to a unique location, having an amazing run or race, meeting up with fellow runners at the pub afterward, and basically just having a wonderful weekend.

And Health Graph users aren’t tracking just runs or other forms of exercise. Right now we’re focusing on run information, but soon we will incorporate other measurements available in Health Graph platform such as body measurements and food intake.

BD: How will the Health Graph platform benefit your business?

JB: People who use the Health Graph through a number of tools have already established a form of lifelogging practice, just very focused. We think they will be familiar with lifelogging in general, and appreciate the additional context that Saga will provide to their existing logging practice.

BD: Which portions of the Health Graph API do you use, and why?

JB: For our initial integration we are pulling the FitnessActivityFeed and associated FitnessActivities to display a summary of a user’s workout in their lifelog. We have plans in our roadmap for expanding upon this to include other activity feeds and eventually allow people to post into some of these feeds using data from Saga.

Saga screenshot

BD: What do you like about the Health Graph API? What would you like to see changed?

JB: It’s an amazingly comprehensive platform for tracking all of the health-related aspects of your life, and it’s fantastic that RunKeeper places such a strong emphasis and dedication to making this the best API for health tracking. My only complaint as a developer would be the lack of API versioning, or if it exists documentation on its usage. [Editor’s note: Please monitor “revisions” via this blog for updates and modifications to the Health Graph API and platform.]

BD: If you could request any new feature from the Health Graph platform, what would it be? How would you use it?

JB: I believe the Health Graph platform provides an amazingly comprehensive health tracking API. Nonetheless I’d like to see extra data to allow for timestamp normalization, by including either a UTC timestamp or the user’s timezone in the activity data.

BD: Can you share any future plans for Saga? What’s coming next that people will be excited about? Does the Health Graph platform play a role in that, and if so, how?

JB: In the future, Saga will incorporate more logging services (for example, a service to track mood, menstrual cycle, music listening) to include in the lifelog. The Health Graph platform will certainly be a part of that, as right now we have a very small subset of it included.

Bill Day (@billday) is Platform Evangelist & PM for RunKeeper where he helps developers learn about and use the Health Graph platform.


Validating tracked versus manual fitness activities using the Health Graph API

One question we receive fairly often from Health Graph (@healthgraphapi) partners is how to validate that fitness activities (runs, walks, bike rides, etc.) read out of the Health Graph platform were GPS-tracked versus manually entered by the user. Rewards partners a la Earndit and GymPact, corporate wellness providers like Virgin HealthMiles, and forward-thinking brands are often keen to differentiate between tracked versus manually entered activities as part of their programs’ anti-fraud efforts.

So how do you tell the difference between GPS and manual activities?

Each item in the Fitness Activity feed has ‘source‘, ‘entry_mode‘, and ‘has_path‘ fields. These let you determine whether the activity was originally submitted as a GPS-tracked activity. For example, a RunKeeper (@runkeeper) mobile app GPS-tracked run should have values of “RunKeeper“, “API“, and “true” for the aforementioned fields, respectively.

Health Graph fitness activity documentation

If you are interested in including GPS-tracked sources from other Health Graph partners’ activity trackers, you can include them in your ‘source‘ filtering. In addition, if you need to differentiate by type of activity (i.e. running, walking, cycling, etc.) you can use the ‘type‘ field.

Using these fields should let you skip any activities for which the user simply entered statistics, or originally entered the route map (path) via the Web. For more details on these fields and their usage, please refer to the Health Graph fitness activities documentation, especially the array structures section.

Caveat: The only reliable way to verify whether a user has subsequently edited the map associated with a saved GPS-tracked activity is to manually check each point’s ‘type‘ (a value of “manual” means it has been edited). For efficiency’s sake, we don’t save that information anywhere else in the Health Graph platform and we retrieve points only when full data for the activity is requested. That said, we have found that most users do not edit maps after the fact.

Bill Day (@billday) is Platform Evangelist & PM for RunKeeper where he helps developers learn about and use the Health Graph.


Bringing hackathon innovation into RunKeeper product

We’re very excited to have our new RunKeeper (@runkeeper) release out on Android now and iPhone soon!

Not only is RunKeeper now available in seven languages (English, Spanish, French, German, Italian, Brazilian Portuguese, and Japanese), but we’re also shipping our first internal hackathon-derived feature, personal fitness Insights for Elite users.

Here are some screenshots of Insights and other parts of the app in the various languages:
RunKeeper start screen in EnglishRunKeeper Me tab in FrenchRunKeeper Insights in JapaneseRunKeeper Goals in GermanRunKeeper Personal Records in PortugueseRunKeeper Activities tab in ItalianRunKeeper Settings in Spanish

Power tip: When you try out Insights, be sure and click on the different parts of the pie chart to change “focus” in the pace and distance charts. You can also change the time period and/or activity type under consideration via the settings icon at the top right.

I am particularly proud of how fast our team took Insights from hack to product-quality feature. This team never ceases to amaze me!

Enjoy and please let us know what you think!

Bill Day (@billday) is Platform Evangelist & PM for RunKeeper where he helps developers learn about and use the Health Graph.


RunKeeper hackathon recap

What happens when you give the RunKeeper crew two days to let imaginations run wild? A whole lot of awesome, I tell ya!

Our product team is always five steps ahead in terms of planning awesome updates to the app, but in the process, it seems each developer has some sort of other dream RunKeeper project they’d love work on if given the time. We decided to set two work days aside for engineers (and others throughout the company) to try to bring those to reality.

The community had lots of interesting ideas on what would make it into our first-ever hackathon, and many of the resulting hacks lined up with your hopes! There was a simple start widget for the home and lock screens on Android, much-improved data visualizations for your fitness reports, refreshed technology for GPS tracking, in-app strength training tracking, a pretty new website, and some ridiculously fun and motivating audio cues. And a few other things that are internal and top secret—for now :).

We’re cranking hard to turn some of these hacks into actual RunKeeper updates and features, so stay tuned! And in the meantime, the pictures and videos below are definitely worth (more than a) thousand words.

Kicking off some collaboration

image

Jacked Jim gears up for his commercial debut in the RoidKeeper strength training promotional video

image

This team gave a whole new meaning to the term long hours. (And garnished some awesome prizes in the process)

image

Makers of the aforementioned awesome audio cues hack demo their goods

image

A little hack to get some more real-time insights into our community

image

Working to build the perfect GPS algorithm

image

And this video really speaks to the need for that widget hack

One of our many rocking trophies

image

Cross-posted from the RunKeeper blog.


RunKeeper hackathon is on!

I’m very excited to have helped organize and be MCing this week’s first ever RunKeeper (@RunKeeper) internal hackathon!

Watch for posts to our @HealthGraphAPI Twitter account throughout the hackathon and for a wrap-up of all the goings-on here after we see what amazing things our teams build. And as always, please remember to:
Keep calm and hackathon!

Bill Day (@billday) is Platform Evangelist & PM for RunKeeper where he helps developers learn about and use the Health Graph.