Analytics (Deprecated)


Digits Analytics is not being migrated to Firebase Auth and will no longer work effective September 30th. For more information, please see our FAQ and migration guide.

Trust, but verify. This is especially true when you’re trusting your onboarding funnel to another service. Starting in version 2.3, Digits offers two analytics options:

  • Default - Just install Answers in your app and see login rates, common errors and other metrics, right out-of-the-box.
  • Advanced - Use our SDK’s logger delegate to hook in your own analytics tools.

Default: Integration with Answers

If Digits detects that you are using Answers in your app, it will automatically send key Digits events to your Answers Dashboard. The following events are available out-of-the-box:

Authentication flow:

  • Digits Login Start
  • Digits Login Success
  • Digits Logout

Contacts flow:

  • Digits Contact Uploads
  • Digits Contact Match

To calculate the conversion rate, you can compare the Digits Login Start (entrance into the Digits Authentication workflow) with Digits Logout Success (successful exit from the Digits Authentication workflow.) First, go to your Answers dashboard, and search for ‘Digits Login’ events (figure 1). For the following app, 2/2 users converted, meaning it has a 100% conversion rate.


figure 1: Digits Login events on Answers dashboard

You can also drill down into those events (figure 2) for more details about aggregated user attributes.


figure 2: Answers conversion rate

Advanced: Delegates

If you already have an analytics suite or you want to get more fine-grained analytics of your user’s activity within the Digits workflow, you can provide an authentication and / or contacts event delegate.

Implement one or both of the DGTAuthEventDelegate or DGTContactsEventDelegate protocols to receive the appropriate events for your use case.

Once you have your logger interface, attach it to your Digits instance:

// Objective-C
[Digits sharedInstance].authEventDelegate = yourConformingObject;
[Digits sharedInstance].contactsEventDelegate = yourConformingObject;
// Swift
let digits = Digits.sharedInstance()
digits.authEventDelegate = yourConformingObject;
digits.contactsEventDelegate = yourConformingObject;


The logger is meant as an analytics and metrics-gathering tool - it is not designed to replace error handling or callback behavior. The delegate’s methods will be called asynchronously on a background thread.