Custom event
Pre API 2.0
// Without properties
Smartlook.trackCustomEvent("sample_event")
// With properties
Smartlook.trackCustomEvent("sample_event", eventProperties: JSONObject)
Smartlook.trackCustomEvent("sample_event", eventProperties: Bundle)
Smartlook.trackCustomEvent("sample_event", validJsonString: String)
Smartlook.trackCustomEvent("sample_event", "key", "value")
// Without properties
Smartlook.trackCustomEvent("sample_event");
// With properties
Smartlook.trackCustomEvent("sample_event", JSONObject eventProperties);
Smartlook.trackCustomEvent("sample_event", Bundle eventProperties);
Smartlook.trackCustomEvent("sample_event", String validJsonString);
Smartlook.trackCustomEvent("sample_event", "key", "value");
API 2.0
JSONObject
, Bundle
, etc. are no longer supported and Properties
are used.
// Without properties
Smartlook.instance.trackEvent("sample_event")
// With properties
val properties = Properties().putString("sample", "event")
Smartlook.instance.trackEvent("sample_event", properties)
// Without properties
Smartlook.getInstance().trackEvent("sample_event");
// With properties
Properties properties = new Properties().putString("sample", "event");
Smartlook.getInstance().trackEvent("sample_event", properties);
Event name restrictions
- Cannot be empty or
null
.- The maximum length is 200 characters.
- Contains only alphanumeric characters and “_”, " ", “.”, “-”.
- Must start with an alphabetic character.
An event with an incorrect
name
will be dropped.
Navigation event
Pre API 2.0
Smartlook.trackNavigationEvent("SampleScreen", viewState: ViewState)
Smartlook.trackNavigationEvent("SampleScreen", type: ViewType, viewState: ViewState)
Smartlook.trackNavigationEvent("SampleScreen", ViewState viewState);
Smartlook.trackNavigationEvent("SampleScreen", ViewType type, ViewState viewState);
API 2.0
ViewState
and ViewType
are no longer part of the API:
ViewState
is not needed because there 2 methodsenter
andexit
.ViewType
navigation events do not have any types and it's universal for all cases (Activity
,Fragment
, "custom").
Smartlook.instance.trackNavigationEnter("SampleScreen")
Smartlook.instance.trackNavigationExit("SampleScreen")
Smartlook.getInstance().trackNavigationEnter("SampleScreen");
Smartlook.getInstance().trackNavigationExit("SampleScreen");
Navigation event name restrictions
- Cannot be empty or
null
.- The maximum length is 200 characters.
- Contains only alphanumeric characters and “_”, " ", “.”, “-”.
- Must start with an alphabetic character.
An event with an incorrect
name
will be dropped.
Global event properties
Pre API 2.0
Smartlook.setGlobalEventProperties(globalEventProperties: JSONObject, immutable: Boolean)
Smartlook.setGlobalEventProperties(globalEventProperties: Bundle, immutable: Boolean)
Smartlook.setGlobalEventProperties(globalEventPropertiesJson: String, immutable: Boolean)
Smartlook.setGlobalEventProperty(key: String, value: String, immutable: Boolean)
Smartlook.setGlobalEventProperties(JSONObject globalEventProperties, boolean immutable);
Smartlook.setGlobalEventProperties(Bundle globalEventProperties, boolean immutable);
Smartlook.setGlobalEventProperties(String globalEventPropertiesJson, boolean immutable);
Smartlook.setGlobalEventProperty(@NotNull String key, @NotNull String value, boolean immutable);
API 2.0
Smartlook.instance.eventProperties.putString("sample_name", "sample_value")
Smartlook.getInstance().getEventProperties().putString("sample_name", "sample_value");
Properties mutability
All event properties are now mutable. If immutability of certain properties is needed it must be ensured on the client-side.