---
"@context": https://schema.org
"@type": TechArticle
"@id": https://www.twilio.com/docs/segment/connections/destinations/catalog/actions-vibe-conversions#article
headline: Vibe Conversions Destination
description: Connect the Vibe Conversions destination to Twilio Segment to send server-side conversion events to Vibe for streaming TV (CTV) campaign attribution.
url: https://www.twilio.com/docs/segment/connections/destinations/catalog/actions-vibe-conversions
inLanguage: en
dateModified: 2026-09-29T13:24:34.000Z
author:
  "@type": Organization
  name: Twilio Developer Education Team
publisher:
  "@type": Organization
  name: Twilio
---

# Vibe Conversions Destination

> \[!IMPORTANT]
>
> This feature is in active development and may change before general availability.

## Destination Info

* Accepts [Page](/docs/segment/connections/spec/page), [Alias](/docs/segment/connections/spec/alias), [Group](/docs/segment/connections/spec/group), [Identify](/docs/segment/connections/spec/identify), [Track](/docs/segment/connections/spec/track) calls.
* Refer to it as **Vibe Tracking Event** in the [Integrations object.](/docs/segment/guides/filtering-data/#filtering-with-the-integrations-object)
* This integration is **partner owned.** Please reach out to the partner's support for any issues.
* This destination is **Beta.**

[Vibe](https://www.vibe.co/?utm_source=segmentio\&utm_medium=docs\&utm_campaign=partners) is a streaming TV advertising platform that lets brands run performance-based CTV campaigns and measure them like digital campaigns. The Vibe Conversions destination sends your conversion events (like purchases, sign-ups, and page views) to Vibe's server-to-server conversion API, where Vibe matches each event to a household by IP address and attributes it to your Vibe campaigns.

Vibe maintains this destination. For any issues with the destination, [contact the Vibe support team](mailto:team-integration@vibe.co).

## Getting started

### Prerequisites

Before connecting the Vibe Conversions destination, you need a Vibe Pixel set up in your Vibe account. To find your **Pixel ID**:

1. Log in to your Vibe account.
2. Go to **Settings > Web Tracking**.
3. Copy your **Pixel ID**.

### Set up the Vibe Conversions destination in Segment

1. From your workspace's [destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog), search for "Vibe Conversions".
2. Select **Vibe Conversions** and click **Add destination**.
3. Select an existing source to connect to Vibe Conversions.
4. Enter your Vibe **Pixel ID** in the destination settings and save your changes.
5. In the **Mappings** tab, review the prebuilt mappings for `Order Completed`, `Page Viewed`, and `Signed Up`, or create a new **Track Conversion** mapping for other events.
6. Enable the destination.

## Destination Settings

| Field    | Description                                                                    | Required | Type   |
| -------- | ------------------------------------------------------------------------------ | -------- | ------ |
| Pixel ID | The Vibe pixel ID associated with the advertiser. Found in the Vibe dashboard. | Yes      | string |

## Available Presets

Vibe Tracking Event has the following presets

| Preset Name     | Trigger                         | Default Action   |
| --------------- | ------------------------------- | ---------------- |
| Order Completed | Event event = "Order Completed" | Track Conversion |
| Page Viewed     | Event type = "page"             | Track Conversion |
| Signed Up       | Event event = "Signed Up"       | Track Conversion |

## Available Actions

Build your own Mappings. Combine supported [triggers](/docs/segment/connections/destinations/actions/#components-of-a-destination-action) with the following Vibe Tracking Event-supported actions:

> \[!NOTE]
>
> Individual destination instances support a maximum of 5 mappings.

* [Track Conversion](#track-conversion)

### Track Conversion

Send a conversion event to Vibe.

Track Conversion is a **Cloud** action. The default Trigger is `type = "track" or type = "page"`

| Field               | Description                                                                                                                         | Required | Type     |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | -------- | -------- |
| Event Type          | The action/event type that was performed.                                                                                           | Yes      | STRING   |
| Event ID            | Unique event ID. Must be unique for each event. UUID format is recommended. Defaults to the Segment messageId.                      | Yes      | STRING   |
| Timestamp           | Timestamp of the event, in ISO 8601 format or UNIX milliseconds. Must be within the last 7 days. Sent to Vibe as UNIX milliseconds. | Yes      | DATETIME |
| IP Address          | IP address of the user who performed the action. Must be IPv4.                                                                      | Yes      | STRING   |
| Event Data          | Additional event data to send with the event.                                                                                       | No       | OBJECT   |
| Google Analytics ID | Google Analytics ID for cross-platform attribution.                                                                                 | No       | STRING   |
| User Agent          | User Agent string.                                                                                                                  | No       | STRING   |
| Page URL            | The URL of the page where the action occurred.                                                                                      | No       | STRING   |

## Troubleshooting

#### Why are events from my server-side source rejected with a missing IP Address error?

Vibe uses the IP address to match each conversion to a household, so **IP Address** is required and must be a valid IPv4 address. By default, it maps to `context.ip`. Browser and mobile libraries populate this automatically, but server-side libraries (like Node.js or Python) don't. When you send events from a server, set `context.ip` to the end user's IPv4 address, or map **IP Address** to another field that contains it.

#### Why are some of my events dropped because of their timestamp?

Vibe only accepts conversion events with a timestamp from the last 7 days. Events older than that, like replayed or backfilled historical data, are rejected.

#### Which Event Type should I choose for a custom event?

**Event Type** must be one of `call`, `install`, `lead`, `page_view`, `purchase`, or `signup`. The prebuilt mappings set this for you. When you create a new Track Conversion mapping, choose the value that best matches the event you're sending.

#### How do I send revenue to Vibe?

Map the purchase amount to **Price (USD)** inside **Event Data**. By default, this maps to `properties.price_usd`. If your events store revenue in a different property (like `properties.revenue`), update the mapping to point to that property.

## Engage

You can send computed traits and audiences generated using [Engage](/docs/segment/engage) to this destination as a **user property**. To learn more about Engage, schedule a [demo](https://segment.com/contact/demo).

For user-property destinations, an [identify](/docs/segment/connections/spec/identify/) call is sent to the destination for each user being added and removed. The property name is the snake\_cased version of the audience name, with a true/false value to indicate membership. For example, when a user first completes an order in the last 30 days, Engage sends an Identify call with the property `order_completed_last_30days: true`. When the user no longer satisfies this condition (for example, it's been more than 30 days since their last order), Engage sets that value to `false`.

When you first create an audience, Engage sends an Identify call for every user in that audience. Later audience syncs only send updates for users whose membership has changed since the last sync.
