Eventer SDK Integration Guide

Learn how to integrate and implement the Eventer SDK across multiple platforms. Customize these examples with your own service credentials and project details.

Table of Contents

Getting Started

First, add the Eventer SDK to your project. In your module’s Gradle file, include the following dependency. Note: Replace"your-service" and the version number with your actual module’s details.

Using a direct dependency:

dependencies {
    // Replace "your-service" and the version (1.0.0) with your actual service identifier and version.
    implementation("se.premex.eventer:your-service:1.0.0")
}

Alternatively, if you’re using a version catalog (libs.versions.toml), add:

dependencies {
    // Ensure "libs.se.premex.eventer.yourService" is defined in your version catalog.
    implementation(libs.se.premex.eventer.yourService)
}

Repository Setup

In your dependencyResolutionManagement block (typically insettings.gradle), add the Eventer Maven repository to access the SDK artifacts.

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven {
            // Replace the URL and credentials with your repository details if needed.
            setUrl("https://europe-maven.pkg.dev/eventer-artifacts/your-service-maven")
            credentials {
                username = "_json_key_base64"
                password = "YOUR_SECRET_KEY"
            }
        }
    }
}

Tracker Module (Android)

Next, create a tracker module that initializes and provides your Tracker. The following example uses Dagger Hilt. Note: Update the package names and tracker implementations as needed.

package com.yourcompany.yourapp.di

import android.util.Log
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import se.premex.eventer.Event
import se.premex.eventer.Eventer
import se.premex.eventer.Tracker
import se.premex.eventer.yourService.trackers.Kermit
import se.premex.eventer.yourService.trackers.Mixpanel
import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class)
object TrackerModule {
    @Provides
    @Singleton
    fun provideTracker(): Tracker {
        val kermit = object : Kermit() {
            override fun track(event: Event) {
                Log.v("Kermit", event.toString())
            }
        }
        val mixpanel = object : Mixpanel() {
            override fun track(event: Event) {
                // Implement your Mixpanel tracking logic here, if needed.
            }
        }
        // Initialize the global tracker with your chosen implementations.
        return Eventer.initialize(kermit, mixpanel)
    }
}

Tracking an Event

After initializing the Tracker, you can log events. For example, to track that a page was viewed, create a helper function. Adjust the event name and properties as required.

fun trackPageViewed() {
    // Replace "Pageviewed" with your event type and adjust parameters as needed.
    tracker.track(Pageviewed("application"))
}

Compose Integration Example

In an Android application using Jetpack Compose, you can trigger event tracking when a screen loads. For example, within your composable:

@Composable
fun YourScreen(viewModel: YourViewModel) {
    // Track events immediately after the composable loads.
    LaunchedEffect(Unit) {
        viewModel.trackPageViewed()
        viewModel.trackButtonInteraction("example_button", "YourScreen")
        viewModel.trackFeatureSaved(true) // Adjust the parameter as needed.
    }
    
    // ... rest of your Compose UI
}

This snippet demonstrates using LaunchedEffect to fire event tracking as soon as the screen is displayed.