Divergent Events Labeling, Google Analytics, Sheets, Scripting

I’ve been assigned to a project at work that is going to require a significant amount of quantitative and qualitative user data to complete. Our main product is an app that was released in 2012, it’s on it’s 3 major version. Some significant bits about it:

  • Localized in 18 languages.
  • Content in 1600+ languages.
  • 120,000 total videos.
  • Android and iOS app.
  • Separate contractor development teams.
  • Managed by same internal person.
  • Android: 65% of users (~67,000 in 2017)
  • iOS: 35% of users (~36,000 in 2017)

Analytics Platforms

  • GA
  • Adobe
  • Crashalytics
  • ME2
  • Flurry
  • Currently testing AppSee and UXCam

As I’ve dug through data, I’ve begun to realize that our event reporting is inconsistent between OSes. Event labels have not been given precise and clear definitions. This is going to be a significant hurdle, so I’ve been seeking to sort that out first.

Signs of Trouble

The first sign of problems was discovered during the final feature build before the research project was to begin. One part of the feature integration was adding an icon/button to an already-crowded interface. The new feature was one that was to be highlighted as it was a part of an integration with an app that we wanted to promote the use of. It was clear that we were going to need to consider placing one or two previously-existing icons within a context menu to make room for the new one. We did not have the time resources to run a round of user testing to help determine how which ones were going to be harder to find, so I was asked to make recommendations based on analytics alone.


From the collected event data in GA, I discovered the following anomalies:

  • Of all of the events possible to perform with the icons on the taskbar in question, the “Sharing – Generic” action was reported as 90% of all actions.
  • Of the “Sharing – Generic” actions, 90% of those were Android (Android user share was ~65%).
  • For all other actions on this taskbar, 90% of the events were iOS.
  • “Sharing – Generic” was 98.5% of all Android actions for this taskbar.
  • “Sharing – Generic” was 30% of all iOS actions for this taskbar.

The UI for the two OSes are different but do not seem different enough to warrant such vastly different event reporting numbers.
I met with the development teams and discovered that they were using “Share – Generic” in completely different ways. For Android every single time a user touched this button it logged “Share – Generic” and only that event. For iOS they were logging it only if it was successfully shared using an app outside of the ones that had their own specific sharing event assigned, e.g. “Sharing – Facebook”, and some recent versions of the app logged the string of the app name, e.g. “com.apple.reminders.RemindersEditorExtension”.

Digging into the data

Prior to this point, I didn’t have access to some of the analytics platforms. I had previously been assigned only as a UI designer and was still onboarding into the UX role. I was granted access to Adobe Analytics and Flurry. The learning curve on AA was too steep for the quick turnaround that was necessary for the project, and I discovered that Adobe wasn’t consistently logging events to Flurry at all.
I decided to stick with GA to pull out the data that I could to begin a full event-logging audit.

I generated two reports and pulled them into a spreadsheet:

  • All events logged in 2017.
  • All events logged by any app version released 1 January – 31 May  2018 (This was to ensure completely different data sets.)

Using Google’s scripting features I scripts determine & extract:

  • “All Event Labels 2017” – Unique event labels and total events logged for each across all OSes and Versions used in 2017.
  • “All Event Labels 2018 Releases” – Unique event labels and total logged in each app version released in the first 5 months of 2018.
  • “Android Only”/“iOS Only”/“Both” – Which events were common or unique to either OS, that is which events were only logged in only Android, only iOS, or to both.
  • “None in 2018” – Which events were logged last year, but not logged at all in the first 5 months of 2018

I line-by-lined through “None in 2018” comparing it with “All Event Labels 2017” to determine which ones were likely to be deprecated intentionally, and which ones seemed to be accidentally dropped. Some of these were confirmed with conversations and live-testing in GA’s “Live View.” (Neither developer team had a comprehensive list of currently integrated events.)

Pursuing Solutions

I compiled a spreadsheet with the following categories:

  • iOS Only Reported
  • Android Only Reported
  • Both Reported
  • Reported in 2017, but not 2018
  • Confirmed Deprecated
  • Not reporting, but should be

I have asked the developers to look through the lists and confirm which ones should belong where along with notes of data parameters that are currently being collected with each.

After determining which ones are currently in use, I will work with the developers to define clearly what should trigger each event, which events need to be added, and how to sync up the two platforms to make sure they’re reporting the same, or at least functionally equivalent data.

1995 Chevy Lumina Battery Access, or “Did the designers ever OWN a car?”

Broken socket-connector & cracked socket.

Broken socket-connector & cracked socket.

In the continuing saga that started Tuesday night with our car breaking down…

Took the car to an Auto Zone to get the alternator and batter tested – short story shorter, the battery had to be replaced and I had to do it. Auto Zone, I believe, will usually change your battery for you, but not for me. The designers that GM employed to design the Chevy Lumina (at least the 1995 version), must have been new on the job.

The process to get the battery out was this:

1) Open hood.

Simple enough, that makes perfect sense.

2) Remove three bolts. Remove two bolts one one end and swing a support strut out of the way.

One was frozen, but I am so strong that I broke a socket and a socket connector (pictured). For the record, I am super strong. [Note: This is sarcasm. I am not super strong.] Swing the stupid arm that shouldn’t be over the battery out of the way. Why would you put the battery under a support strut?

3) Disconnect and remove the windshield-washer fluid reservoir?!?@!

Why would someone put the windshield-washer fluid reservoir over the battery? This is the stupidest thing ever.

4) Oh, crap. There’s another piece of metal over top of the battery. I guess I’ll remove that too.

I shouldn’t have guessed that would be easy. It wasn’t.

Hello busted knuckes!

I couldn’t get at the bolts very well – there was a hidden one, too. After I wrestled it out from underneath the air filter housing I did a piece-of-metal-etcomy, that thing didn’t go back in. It was far too bent up to be useful anymore.

5) What the crap? Why isn’t the battery moving now?!

There was some other random stupid bolt that was holding it down. Got it.

6) How do I disconnect this thing?

Now – granted – this is my own stupidity here, but I wasn’t sure that I wouldn’t be shocked as I unscrewed the connectors from the side of the battery.

I wasn’t, I’m still alive.

7) The re-insertion.

No problems, just too much to re-insert.

I had avoided, for a lot of years, having to replace the battery in this thing myself. I have hated the thought of it for the 6 years that I’ve been a co-owner of it and now I know that my fear and loathing of the thought were warranted.

After owning this car and other stories that I’ve heard, I will never buy a GM car if I can help it.

The battery was under the windshield-wiper fluid!!!! What the heck?