Track API in Mobile SDKs

Learn about the track API call in the Android (Kotlin) and iOS (Swift) SDKs.

This guide explains how to use the track API in the RudderStack Android (Kotlin) and iOS (Swift) SDKs.

Overview

The RudderStack Android (Kotlin) and iOS (Swift) SDKs provide a track API that lets you record the user’s actions along with any properties associated with them.

Android (Kotlin)

The track method definition in the Android (Kotlin) SDK is as follows:

kotlin
analytics.track(
    name = "Product Added",
    properties = buildJsonObject {
        put("key", "value")
    },
    options = RudderOption()
)

The corresponding Java snippet is shown below:

java
HashMap<String, Object> properties = new HashMap<>();
properties.put("key", "value");

analytics.track("Product Added", properties, new RudderOption());

Method signature

The below table describes the track method signature in detail:

FieldData typeDescription
nameStringName of the event.
propertiesPropertiesAdditional properties describing the event that you want to send.

Note: The properties type in Java is Map<String, Object>.
optionsRudderOptionAdditional event options.

Example

A sample track event sent from the Android (Kotlin) SDK is shown below:

kotlin
analytics.track(
    name = "Product Added",
    options = RudderOption(
        customContext = buildJsonObject {
            put("currency", "USD")
        },
        integrations = buildJsonObject {
            put("Amplitude", true)
            put("INTERCOM", buildJsonObject {
                put("lookup", "phone")
            })
        },
        externalIds = listOf(
            ExternalId(type = "brazeExternalId", id = "1hKOmRA4GRlm"),
        ),
    ),
)

iOS (Swift)

The track method definition in the iOS (Swift) SDK is as follows:

swift
analytics.track(
    name: "Product Added",
    properties: [
        "key-1": "value-1"
    ],
    options: RudderOption()
)
Make sure to include the import RudderStackAnalytics statement before making the call.

The corresponding Objective-C snippet is shown below:

objectivec
[analytics track:@"Product Added"
      properties:@{
          @"key-1": @"value-1"
      }
      options:[[RSSOptionBuilder new] build]];
RSSOptionBuilder is an Objective-C–only helper class. It uses the builder pattern to create an RSSOption instance and lets you set custom context, configure integrations, and attach external IDs in a structured way.

Method signature

The below table describes the track method signature in detail:

FieldData typeDescription
nameStringName of the event.
propertiesPropertiesAdditional properties describing the event that you want to send.
optionsRudderOptionAdditional event options.

Example

A sample track event sent from the iOS (Swift) SDK is shown below:

swift
analytics.track(
    name: "Track at \(Date())",
    properties: [
        "key-1": "value-1"
    ],
    options: RudderOption(
        integrations: [
            "Amplitude": true,
            "INTERCOM": [
                "lookup": "phone"
            ]
        ],
        customContext: [
            "key-1": "value-1"
        ],
        externalIds: [
            ExternalId(type: "brazeExternalId", id: "value1234")
        ]
    )
)

Questions? Let's figure it out together.

Join the RudderStack Slack community to connect with other users, customers, and the RudderStack team — or reach out for direct support.