Event Tracking Guide


Event types

You have the possibility to track various events which occur during the usage of Gini Capture SDK. Event types are partitioned into different domains according to the screens that they appear on. Each domain has a number of event types. Some events might supply additional details on a map.

Domain

Event enum value and details map keys

Comment

Introduced in (updated in)

Domain

Event enum value and details map keys

Comment

Introduced in (updated in)

Onboarding

OnboardingScreenEvent.START

Onboarding started

1.0.0

Onboarding

OnboardingScreenEvent.FINISH

User completes onboarding

1.0.0

Camera Screen

CameraScreenEvent.EXIT

User closes the camera screen

1.0.0

Camera Screen

CameraScreenEvent.HELP

User taps “Help” on the camera screen

1.0.0

Camera Screen

CameraScreenEvent.TAKE_PICTURE

User takes a picture

1.0.0

Review Screen

ReviewScreenEvent.BACK

User goes back from the review screen

1.0.0

Review Screen

ReviewScreenEvent.NEXT

User advances from the review screen

1.0.0

Review Screen

ReviewScreenEvent.UPLOAD_ERROR ReviewScreenEvent.UPLOAD_ERROR_DETAILS_MAP_KEY.MESSAGE ReviewScreenEvent.UPLOAD_ERROR_DETAILS_MAP_KEY.ERROR_OBJECT

Upload error in the review screen

1.0.0

Analysis Screen

AnalysisScreenEvent.CANCEL

User cancels the process during analysis

1.0.0

Analysis Screen

AnalysisScreenEvent.ERROR AnalysisScreenEvent.ERROR_DETAILS_MAP_KEY.MESSAGE AnalysisScreenEvent.ERROR_DETAILS_MAP_KEY.ERROR_OBJECT

The analysis ended with an error.

1.0.0

Analysis Screen

AnalysisScreenEvent.RETRY

The user decides to retry after an analysis error.

1.0.0

Analysis Screen

AnalysisScreenEvent.NO_RESULTS

The analysis ended with empty results.

3.5.0

The supported events are listed for each screen in a dedicated enum. You can view these enums in our reference documentation.


Enable event tracking

To subscribe to the events, implement the EventTracker interface and pass it to the builder when creating a new GiniCapture instance:

GiniCapture.newInstance() .setEventTracker(new MyEventTracker()); .build();

In MyEventTracker, you can handle the events you are interested in.

class MyEventTracker implements EventTracker { @Override public void onCameraScreenEvent(final Event<CameraScreenEvent> event) { switch (event.getType()) { case TAKE_PICTURE: // handle the picture taken event break; case HELP: // handle the show help event break; case EXIT: // handle the exit event break; } } @Override public void onOnboardingScreenEvent(final Event<OnboardingScreenEvent> event) { (...) } @Override public void onAnalysisScreenEvent(final Event<AnalysisScreenEvent> event) { (...) } @Override public void onReviewScreenEvent(final Event<ReviewScreenEvent> event) { (...) } }