Zixflow Core
// Initialize SDK
Zixflow.initialize(config: ZixflowConfig)
// Get instance
Zixflow.instance(): Zixflow
// Identify user
Zixflow.instance().identify(userId: String, traits: Map<String, Any?> = emptyMap())
// Track event
Zixflow.instance().track(name: String, properties: Map<String, Any?> = emptyMap())
// Track screen
Zixflow.instance().screen(title: String, properties: Map<String, Any?> = emptyMap())
// Set profile attributes
Zixflow.instance().setProfileAttributes(attributes: Map<String, Any?>)
// Set device attributes
Zixflow.instance().setDeviceAttributes(attributes: Map<String, Any?>)
// Clear user identification (also deletes device token and resets anonymousId)
Zixflow.instance().clearIdentify()
// Device token
Zixflow.instance().registerDeviceToken(deviceToken: String)
Zixflow.instance().deleteDeviceToken()
Zixflow.instance().registeredDeviceToken: String?
// Identity state
Zixflow.instance().anonymousId: String
Zixflow.instance().userId: String?
Zixflow.instance().isUserIdentified: Boolean
// Push / in-app metrics
Zixflow.instance().trackMetric(event: TrackMetric)
TrackMetric
import com.zixflow.sdk.events.Metric
import com.zixflow.sdk.events.TrackMetric
TrackMetric.Push(
metric: Metric, // Delivered, Opened, Converted, Clicked
deliveryId: String,
deviceToken: String
)
TrackMetric.InApp(
metric: Metric,
deliveryId: String,
metadata: Map<String, Any?> = emptyMap()
)
ZixflowConfigBuilder
ZixflowConfigBuilder(applicationContext: Application, apiKey: String)
.logLevel(ZixflowLogLevel) // NONE, ERROR, INFO, DEBUG
.region(Region) // US, EU
.apiHost(String)
.cdnHost(String)
.autoTrackDeviceAttributes(Boolean)
.autoTrackActivityScreens(Boolean)
.trackApplicationLifecycleEvents(Boolean)
.screenViewUse(ScreenView) // All, InApp
.flushAt(Int)
.flushInterval(Int)
.addZixflowModule(ZixflowModule)
.build(): ZixflowConfig
Modules
// Push notifications (FCM)
ModuleMessagingPushFCM(moduleConfig: MessagingPushModuleConfig = default)
MessagingPushModuleConfig.Builder()
.setAutoTrackPushEvents(Boolean)
.setPushClickBehavior(PushClickBehavior)
.setNotificationCallback(ZixflowPushNotificationCallback)
.build()
// In-app messaging
ModuleMessagingInApp(config: MessagingInAppModuleConfig)
ModuleMessagingInApp.instance()
ModuleMessagingInApp.instance().dismissMessage()
ModuleMessagingInApp.instance().inbox(): NotificationInbox
MessagingInAppModuleConfig.Builder()
.setEventListener(InAppEventListener)
.build()
// Location tracking
ModuleLocation(moduleConfig: LocationModuleConfig = default)
ModuleLocation.instance().locationServices
LocationModuleConfig.Builder()
.setLocationTrackingMode(LocationTrackingMode) // OFF, MANUAL, ON_APP_START
.build()
LocationServices.setLastKnownLocation(latitude: Double, longitude: Double)
LocationServices.setLastKnownLocation(location: Location)
LocationServices.requestLocationUpdate()
Compose
@Composable
fun InlineInAppMessage(
elementId: String,
modifier: Modifier = Modifier,
progressTint: Color? = null,
onAction: (message: InAppMessage, actionValue: String, actionName: String) -> Unit
)
Views (in-app)
InlineInAppMessageView
var elementId: String?
fun setProgressTint(@ColorInt color: Int)
fun setActionListener(listener: InlineMessageActionListener)