Analytics

Understanding analytics

When recording or running your test, Waldo automatically intercepts the API calls to many popular analytics packages. This enables you to easily see exactly which analytics events are generated at each step of your test.

Displaying analytics events

Once you finish recording your test, you can see a list of all analytics events that are generated at each step of the test:

  1. Go to the Tests page and click on the test you would like to inspect. This is what we call the test detail page.
  1. Click on the particular step (screen) in the test you wish to examine. Waldo displays a modal window with a list of all assertions for this particular step.
  1. Click on the “Analytics” tab of the modal window. Waldo displays a list of all analytics events generated at this particular step.
  1. Click the > button on a list item to reveal details about that specific analytics event.

Supported analytics packages

Waldo currently supports intercepting API calls to the following analytics packages:

Amplitude

iOS

-[Amplitude initializeApiKey:userId:setUserId:]
-[Amplitude logEvent:withEventProperties:withApiProperties:withUserProperties:withGroups:withGroupProperties:withTimestamp:outOfSession:]

Android

AmplitudeClient.identify(com.amplitude.api.Identify);
AmplitudeClient.logEvent(...);

Firebase

iOS

+[FIRAnalytics logEventWithName:parameters:]
+[FIRApp configureWithName:options:]

Android

FirebaseAnalytics.logEvent(...);

Flurry

iOS

+[Flurry logError:message:error:withParameters:]
+[Flurry logError:message:exception:withParameters:]
+[Flurry logEvent:timed:]
+[Flurry logEvent:withParameters:timed:]
+[Flurry startSession:]

Android

Not supported yet

Heap

iOS

+[Heap setAppId:]
+[Heap track:withProperties:]

Android

Heap.track(...);
Heap.identify(String);

Keen

iOS

-[KeenClient addEvent:withKeenProperties:toEventCollection:error:]
-[KeenClient initWithProjectID:andWriteKey:andReadKey:apiUrlAuthority:]
+[KeenClient sharedClientWithProjectID:andWriteKey:andReadKey:apiUrlAuthority:]

Android

KeenClient.addEvent(...);

Localytics

iOS

-[LLBaseLocalyticsManager integrate:withLocalyticsOptions:]
-[LLAnalyticsSilo tagEvent:attributes:customerValueIncrease:extensionInfo:source:]

Android

AnalyticsHandler.tagEvent(...);

Mixpanel

iOS

-[Mixpanel initWithToken:launchOptions:flushInterval:trackCrashes:automaticPushTracking:optOutTrackingByDefault:]
-[Mixpanel track:properties:]

Android

MixpanelAPI.track(...);

mParticle

iOS

-[MPBackendController logCommerceEvent:completionHandler:]
-[MPBackendController logError:exception:topmostContext:eventInfo:completionHandler:]
-[MPBackendController logEvent:completionHandler:]
-[MPBackendController logNetworkPerformanceMeasurement:completionHandler:]
-[MPBackendController logScreen:completionHandler:]
-[MPBackendController logUserNotification:]
-[MParticle startWithOptions:]

Android

MParticle.logEvent(...);

Segment

iOS

-[SEGAnalytics initWithConfiguration:]
-[SEGAnalytics run:payload:]

Android

Analytics.identify(Traits, Options);
Analytics.track(Properties, Options);
Analytics.screen(Properties, Options);

Snowplow

iOS

-[SPEmitter addPayloadToBuffer:]
+[SPSnowplow createTrackerWithNamespace:network:configurations:]
+[SPTracker build:]

Android

Tracker.track(...);