> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hightouch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Snapchat

> Empower your marketing team to run highly granular campaigns on Snapchat

## Supported syncing

| Sync type | Description | Supported sync modes | API reference |
| - | - | - | - |
| [**Segments**](#syncing-segments) | Create and keeps audience segments up-to-date in Snapchat | Add, Remove, Update | [Audience segment docs](https://marketingapi.snapchat.com/docs/#create-an-audience-segment) |
| [**Conversion Events**](#syncing-conversion-events) | Create and send conversion events to Snapchat | Insert | [Conversions API docs](https://marketingapi.snapchat.com/docs/conversion.html#conversions-api) |

For more information about sync modes, refer to the [sync modes](https://docs.hightouch.com/syncs/types-and-modes.md#sync-modes) docs.

## Connect to Snapchat

Go to the [**Destinations** overview page](https://app.hightouch.com/destinations?from=docs) and click the **Add destination** button. Select **Snapchat** and click **Continue**. You can then authenticate Hightouch to **Snapchat**.

For the **Authentication method**, select **Log in to Snapchat** and log into your Snapchat account.
Then, authorize Hightouch to access your Snapchat account:

![OAuth flow for Snapchat](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-snapchat-oauth-connect.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=910cd39e386e038a0f44c977f844f62b)

Once successful, you will be redirected back to Hightouch.
There, select the Snapchat business organization you want to sync data to.
Finally enter a descriptive name for your destination to complete setup.

## Sync configuration

Once you've set up your Snapchat destination and have a [model](https://docs.hightouch.com/getting-started/concepts.md#models) to pull data from, you can set up your sync configuration to begin syncing data. Go to the [**Syncs** overview page](https://app.hightouch.com/syncs?from=docs) and click the **Add sync** button to begin. Then, select the relevant model and the Snapchat destination you want to sync to.

### Syncing segments

You can use Hightouch to create and keep audience segments in Snapchat up-to-date using [Snapchat's Ads API](https://marketingapi.snapchat.com/docs/).
Begin by selecting the Snapchat Ad Account your audience segments should belong to.

#### Select an existing audience or create a new one

You can create a new audience segment or use an existing one. When creating a new audience, you can optionally enter a name; otherwise, Hightouch defaults to the name of the associated model. To use an existing audience, select the desired audience from the dropdown.

#### Audience member retention

You can specify a custom retention period that an audience segment should retain members.
Snapchat's default is 9,999 days.
You can only set custom values when first creating an audience segment.
If you want to set a new retention period, you need to create a new sync.

#### User identifiers

To identify which users to add or update in an audience, select model columns and the corresponding Snapchat fields. You can match on any of the following Snapchat fields:

* Email
* Phone
* Mobile ID

> [!TIP]
>
> Increase match rates in Snapchat audience segments by enabling [Match Booster](https://docs.hightouch.com/match-booster/overview.md).

> [!NOTE]
>
> If you map an identifier field that contains an array of values, Hightouch automatically fans out each element into a separate record when syncing to Snapchat. Learn more about [array identifier fan-out](https://docs.hightouch.com/syncs/array-identifier-fan-out.md).

### Syncing conversion events

> [!WARNING]
>
> Version 2 is Snapchat's legacy Conversions API. New syncs default to Version
> 3\. Hightouch doesn't migrate existing Version 2 syncs automatically: they keep
> running on Version 2 until you switch the version in the sync configuration
> and map your fields in the Version 3 mapping groups.

Snapchat's [Conversions API](https://marketingapi.snapchat.com/docs/conversion.html) requires the following event parameters:

* event name (named `event_type` in Snapchat's Conversions API)
* event conversion type (`event_conversion_type`)
* event tag (`event_tag`)
* timestamp

The sync configuration form ensures all these are set and provides some additional options.
For more information about Snapchat's Conversions API and it's prerequisites, check out [Snapchat's API help article](https://businesshelp.snapchat.com/s/article/api-apply?language=en_US).

> [!WARNING]
>
> To ensure syncs send each event, your event model must use a truly unique [primary key](https://docs.hightouch.com/getting-started/concepts.md#unique-primary-key-requirement). See the [events syncs](https://docs.hightouch.com/syncs/types-and-modes.md#event-syncs) documentation for more information.

#### Event name and conversion type

Providing an event name is required to send an event to the Conversions API. You can either provide a static value or select to **use a column** from your model.
You can select your event conversion type in the same way.

Snapchat's Conversions API accepts the following values:

| Name | Values |
| - | - |
| `event_type` | "PURCHASE," "SAVE," "START\_CHECKOUT," "ADD\_CART," "VIEW\_CONTENT," "ADD\_BILLING," "SIGN\_UP," "SEARCH," "PAGE\_VIEW," "SUBSCRIBE," "AD\_CLICK," "AD\_VIEW," "COMPLETE\_TUTORIAL," "INVITE," "LOGIN," "SHARE," "RESERVE," "ACHIEVEMENT\_UNLOCKED," "ADD\_TO\_WISHLIST," "SPENT\_CREDITS," "RATE," "START\_TRIAL," "LIST\_VIEW," "APP\_INSTALL," "APP\_OPEN," "CUSTOM\_EVENT\_1," "CUSTOM\_EVENT\_2," "CUSTOM\_EVENT\_3," "CUSTOM\_EVENT\_4," "CUSTOM\_EVENT\_5" |
| `event_conversion_type` | "OFFLINE," "WEB," "MOBILE\_APP" |

See the [Snapchat Marketing API documentation](https://marketingapi.snapchat.com/docs/conversion.html#parameters-for-event-type-platform) for more information about event parameters.

#### Event timestamp

You can optionally select a column that contains timestamps of when events occurred. If this field is empty, Hightouch uses the time the event arrives at the server.

If you select a column, it should be in UNIX timestamp, calculated in seconds or milliseconds.

#### Field mapping

Hightouch lets you sync event properties via field mapping.
You must include the **event tag** field that Snapchat's Conversions API requires for each event.
Event tags are custom values you create, for example, "in-store," "weekend sales," "back-to-school campaign," etc.

Check out Snapchat's [Conversion parameters documentation](https://marketingapi.snapchat.com/docs/conversion.html#conversion-parameters) for more information about the parameters you can map.

**Version 3**

The new version of the conversion API takes many of the same parameters as the previous version but they are split into multiple mapping groups.

Checkout Snapchat's version 3 [Conversion parameters documentation](https://docs.snap.com/api/marketing-api/Conversions-API/Parameters) for more information about the parameters you can map.

### PII hashing

Snapchat requires identity information to be normalized and hashed using a SHA256 hash.
Enable PII hashing if you wish for Hightouch to normalize and hash these values for you.
If you turn off PII hashing, you must ensure your model data is hashed before sending it to Snapchat.

## Tips and troubleshooting

To see the exact API requests and responses from each sync run, use the [live debugger](https://docs.hightouch.com/syncs/debugger.md). To get notified by Slack, PagerDuty, SMS, or email when a sync fails, set up [sync alerts](https://docs.hightouch.com/syncs/alerting.md). If you run into an issue this page doesn't cover, [contact support](#pylon-chat).

### Matched users count

Below only applies to the segment sync type.

Hightouch retrieves the audience metadata from Snapchat Ads in real-time. The matched number displayed in Hightouch should reflect what you see in Snapchat Ads. Note that the matched numbers are approximated to maintain privacy thresholds. Hightouch takes the matched count to calculate a match rate for your sync, where applicable. The calculation breakdown:

`matched_user_count / # of rows queried in the latest sync run`

The match rate is **not** calculated when:

* syncing to an existing segment because the total number of records to ever be uploaded to the segment is unknown
* removed users from your model is not removed in Snapchat Ads because the matched user count would be inflated in the calculation

Common causes for low match rates:

* Your audience model is too small. Most ad platforms do not display the matched number unless there's at least one thousand matched users to maintain privacy thresholds.
* The upload is still processing. We recommend waiting at least **72 hours** from the first sync run for numbers to settle.
* Your data isn’t cleaned or hashed properly. Hightouch normalizes and hashes your data according to destination requirements, but it’s still good to make sure that the data is as clean as possible. Note that Hightouch cannot clean your data if you opt to hash it yourself. In that case, ensure you follow the data cleaning requirements for Snapchat Ads.
