Skip to main content

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)