# Messaging

To track an event using the messaging package, you can use the corresponding method on the tracker instance. For example:

## Example

{% tabs %}
{% tab title="Android" %}

```kotlin
val properties = MessagingMessageSentProperties(
    contextId = contextId
)
bird.tracker.messaging.messageSent(properties)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let properties = MessagingMessageSentProperties(
    contextId: contextId
)
bird.tracker.messaging.messageSent(properties)
```

{% endtab %}

{% tab title="Web" %}

```javascript
const properties: MessagingMessageSentProperties = {
    context_id: context_id
};
Bird.tracker.messaging.messageSent(properties, event_opts);
```

{% endtab %}
{% endtabs %}

## Methods

### messageSent()

{% tabs %}
{% tab title="Android" %}

```kotlin
val properties = MessagingMessageSentProperties(
    contextId = contextId
)
bird.tracker.messaging.messageSent(properties)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let properties = MessagingMessageSentProperties(
    contextId: contextId
)
bird.tracker.messaging.messageSent(properties)
```

{% endtab %}

{% tab title="Web" %}

```javascript
const properties: MessagingMessageSentProperties = {
    context_id: context_id
};
Bird.tracker.messaging.messageSent(properties, event_opts);
```

{% endtab %}
{% endtabs %}

#### MessagingMessageSentProperties

| Property         | Type   |
| ---------------- | ------ |
| context\_id?     | String |
| flow\_id?        | String |
| journey\_id?     | String |
| message\_id?     | String |
| platform\_id?    | String |
| use\_case\_type? | String |
| variation?       | String |

### messageRead()

{% tabs %}
{% tab title="Android" %}

```kotlin
val properties = MessagingMessageReadProperties(
    contextId = contextId
)
bird.tracker.messaging.messageRead(properties)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let properties = MessagingMessageReadProperties(
    contextId: contextId
)
bird.tracker.messaging.messageRead(properties)
```

{% endtab %}

{% tab title="Web" %}

```javascript
const properties: MessagingMessageReadProperties = {
    context_id: context_id
};
Bird.tracker.messaging.messageRead(properties, event_opts);
```

{% endtab %}
{% endtabs %}

#### MessagingMessageReadProperties

| Property         | Type   |
| ---------------- | ------ |
| context\_id?     | String |
| flow\_id?        | String |
| journey\_id?     | String |
| message\_id?     | String |
| platform\_id?    | String |
| use\_case\_type? | String |
| variation?       | String |

### messageBounced()

{% tabs %}
{% tab title="Android" %}

```kotlin
val properties = MessagingMessageBouncedProperties(
    contextId = contextId
)
bird.tracker.messaging.messageBounced(properties)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let properties = MessagingMessageBouncedProperties(
    contextId: contextId
)
bird.tracker.messaging.messageBounced(properties)
```

{% endtab %}

{% tab title="Web" %}

```javascript
const properties: MessagingMessageBouncedProperties = {
    context_id: context_id
};
Bird.tracker.messaging.messageBounced(properties, event_opts);
```

{% endtab %}
{% endtabs %}

#### MessagingMessageBouncedProperties

| Property         | Type   |
| ---------------- | ------ |
| context\_id?     | String |
| flow\_id?        | String |
| journey\_id?     | String |
| message\_id?     | String |
| platform\_id?    | String |
| use\_case\_type? | String |
| variation?       | String |

### messageDeliveryFailed()

{% tabs %}
{% tab title="Android" %}

```kotlin
val properties = MessagingMessageDeliveryFailedProperties(
    contextId = contextId
)
bird.tracker.messaging.messageDeliveryFailed(properties)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let properties = MessagingMessageDeliveryFailedProperties(
    contextId: contextId
)
bird.tracker.messaging.messageDeliveryFailed(properties)
```

{% endtab %}

{% tab title="Web" %}

```javascript
const properties: MessagingMessageDeliveryFailedProperties = {
    context_id: context_id
};
Bird.tracker.messaging.messageDeliveryFailed(properties, event_opts);
```

{% endtab %}
{% endtabs %}

#### MessagingMessageDeliveryFailedProperties

| Property         | Type   |
| ---------------- | ------ |
| context\_id?     | String |
| failure\_reason? | String |
| flow\_id?        | String |
| journey\_id?     | String |
| message\_id?     | String |
| platform\_id?    | String |
| use\_case\_type? | String |
| variation?       | String |

### messageDelivered()

{% tabs %}
{% tab title="Android" %}

```kotlin
val properties = MessagingMessageDeliveredProperties(
    contextId = contextId
)
bird.tracker.messaging.messageDelivered(properties)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let properties = MessagingMessageDeliveredProperties(
    contextId: contextId
)
bird.tracker.messaging.messageDelivered(properties)
```

{% endtab %}

{% tab title="Web" %}

```javascript
const properties: MessagingMessageDeliveredProperties = {
    context_id: context_id
};
Bird.tracker.messaging.messageDelivered(properties, event_opts);
```

{% endtab %}
{% endtabs %}

#### MessagingMessageDeliveredProperties

| Property         | Type   |
| ---------------- | ------ |
| context\_id?     | String |
| flow\_id?        | String |
| journey\_id?     | String |
| message\_id?     | String |
| platform\_id?    | String |
| use\_case\_type? | String |
| variation?       | String |

### messageMarkedSpam()

{% tabs %}
{% tab title="Android" %}

```kotlin
val properties = MessagingMessageMarkedSpamProperties(
    contextId = contextId
)
bird.tracker.messaging.messageMarkedSpam(properties)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let properties = MessagingMessageMarkedSpamProperties(
    contextId: contextId
)
bird.tracker.messaging.messageMarkedSpam(properties)
```

{% endtab %}

{% tab title="Web" %}

```javascript
const properties: MessagingMessageMarkedSpamProperties = {
    context_id: context_id
};
Bird.tracker.messaging.messageMarkedSpam(properties, event_opts);
```

{% endtab %}
{% endtabs %}

#### MessagingMessageMarkedSpamProperties

| Property         | Type   |
| ---------------- | ------ |
| context\_id?     | String |
| flow\_id?        | String |
| journey\_id?     | String |
| message\_id?     | String |
| platform\_id?    | String |
| use\_case\_type? | String |
| variation?       | String |

### messageOpened()

{% tabs %}
{% tab title="Android" %}

```kotlin
val properties = MessagingMessageOpenedProperties(
    contextId = contextId
)
bird.tracker.messaging.messageOpened(properties)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let properties = MessagingMessageOpenedProperties(
    contextId: contextId
)
bird.tracker.messaging.messageOpened(properties)
```

{% endtab %}

{% tab title="Web" %}

```javascript
const properties: MessagingMessageOpenedProperties = {
    context_id: context_id
};
Bird.tracker.messaging.messageOpened(properties, event_opts);
```

{% endtab %}
{% endtabs %}

#### MessagingMessageOpenedProperties

| Property           | Type   |
| ------------------ | ------ |
| context\_id?       | String |
| flow\_id?          | String |
| inbox\_provider?   | String |
| journey\_id?       | String |
| message\_id?       | String |
| platform\_id?      | String |
| recipient\_domain? | String |
| use\_case\_type?   | String |
| variation?         | String |

### messageSubscribed()

{% tabs %}
{% tab title="Android" %}

```kotlin
val properties = MessagingMessageSubscribedProperties(
    contextId = contextId
)
bird.tracker.messaging.messageSubscribed(properties)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let properties = MessagingMessageSubscribedProperties(
    contextId: contextId
)
bird.tracker.messaging.messageSubscribed(properties)
```

{% endtab %}

{% tab title="Web" %}

```javascript
const properties: MessagingMessageSubscribedProperties = {
    context_id: context_id
};
Bird.tracker.messaging.messageSubscribed(properties, event_opts);
```

{% endtab %}
{% endtabs %}

#### MessagingMessageSubscribedProperties

| Property              | Type   |
| --------------------- | ------ |
| context\_id?          | String |
| flow\_id?             | String |
| journey\_id?          | String |
| message\_id?          | String |
| platform\_id?         | String |
| subscription\_action? | Any    |
| use\_case\_type?      | String |
| variation?            | String |

### messageUnsubscribed()

{% tabs %}
{% tab title="Android" %}

```kotlin
val properties = MessagingMessageUnsubscribedProperties(
    contextId = contextId
)
bird.tracker.messaging.messageUnsubscribed(properties)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let properties = MessagingMessageUnsubscribedProperties(
    contextId: contextId
)
bird.tracker.messaging.messageUnsubscribed(properties)
```

{% endtab %}

{% tab title="Web" %}

```javascript
const properties: MessagingMessageUnsubscribedProperties = {
    context_id: context_id
};
Bird.tracker.messaging.messageUnsubscribed(properties, event_opts);
```

{% endtab %}
{% endtabs %}

#### MessagingMessageUnsubscribedProperties

| Property              | Type   |
| --------------------- | ------ |
| context\_id?          | String |
| flow\_id?             | String |
| journey\_id?          | String |
| message\_id?          | String |
| platform\_id?         | String |
| subscription\_action? | Any    |
| use\_case\_type?      | String |
| variation?            | String |

### messageLinkClicked()

{% tabs %}
{% tab title="Android" %}

```kotlin
val properties = MessagingMessageLinkClickedProperties(
    contextId = contextId
)
bird.tracker.messaging.messageLinkClicked(properties)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let properties = MessagingMessageLinkClickedProperties(
    contextId: contextId
)
bird.tracker.messaging.messageLinkClicked(properties)
```

{% endtab %}

{% tab title="Web" %}

```javascript
const properties: MessagingMessageLinkClickedProperties = {
    context_id: context_id
};
Bird.tracker.messaging.messageLinkClicked(properties, event_opts);
```

{% endtab %}
{% endtabs %}

#### MessagingMessageLinkClickedProperties

| Property           | Type   |
| ------------------ | ------ |
| context\_id?       | String |
| flow\_id?          | String |
| inbox\_provider?   | String |
| journey\_id?       | String |
| message\_id?       | String |
| platform\_id?      | String |
| recipient\_domain? | String |
| url?               | String |
| use\_case\_type?   | String |
| variation?         | String |
