# TrafficGuard Destination

## 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 **TrafficGuard** 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.

[TrafficGuard](https://trafficguard.ai/?utm_source=segmentio\&utm_medium=docs\&utm_campaign=partners) detects, mitigates, and reports on ad fraud before it hits digital advertising budgets. Three formidable layers of protection block both general invalid traffic (GIVT) and sophisticated invalid traffic (SIVT) to ensure that digital advertising results in legitimate advertising engagement.

This destination is maintained by TrafficGuard.

## Getting Started

1. From the Segment web app, click **Catalog**.
2. Search for "TrafficGuard" in the Catalog, select it, and choose which of your sources to connect the destination to.
3. Enter the "API Key" into your Segment Settings UI which you can find in the property in the TrafficGuard dashboard.

![Connecting with Segment interface showing API key and copy button.](https://docs-resources.prod.twilio.com/f6049e2b00b6649e67a29129c526fe07e9829f097b428366a6dad9c1c8533fee.png)

4. Calls will now be visible in TrafficGuard dashboards in real-time.

NOTE: For TrafficGuard to successfully validate calls, `context.ip` and `context.userAgent` values as well as either `context.campaign.source`, `context.app.name` or `properties.url` will need to be sent. Calls without those values will return an error.

## Page

If you're not familiar with the Segment Specs, take a look to understand what the [Page method](/docs/segment/connections/spec/page/) does. An example call would look like:

```text
analytics.page()
```

Page calls will be sent to TrafficGuard as a `pageview` event.

## Screen

If you're not familiar with the Segment Specs, take a look to understand what the [Screen method](/docs/segment/connections/spec/page/) does. An example call would look like:

```text
[[SEGAnalytics sharedAnalytics] screen:@"Home"];
```

Screen calls will be sent to TrafficGuard as a `pageview` event.

## Track

If you're not familiar with the Segment Specs, take a look to understand what the [Track method](/docs/segment/connections/spec/track/) does. An example call would look like:

```text
analytics.track('Clicked Login Button')
```

The following `track` calls will be sent to TrafficGuard as events.

| Segment Call                                       | TrafficGuard event |
| -------------------------------------------------- | ------------------ |
| Application Installed                              | `install`          |
| Application Opened, Email Opened                   | `open`             |
| Products Searched                                  | `search`           |
| Product Viewed, Product Reviewed, Promotion Viewed | `viewcontent`      |
| Product Added                                      | `Add`              |
| Checkout Started                                   | `checkout`         |
| Product Shared, Cart Shared                        | `share`            |

All other calls will be recorded as `pageview` events until TrafficGuard supports ad hoc event types.

## 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.

> \[!NOTE]
>
> Real-time audience syncs to TrafficGuard  may take six or more hours for the initial sync to complete. Upon completion, a sync frequency of two to three hours is expected.

## Settings

Segment lets you change these destination settings from the Segment app without having to touch any code.

| Field   | Description                                                                                      | Required | Type   |
| ------- | ------------------------------------------------------------------------------------------------ | -------- | ------ |
| API Key | Your API Key can be found in your TrafficGuard property when the INPUT value is set to 'Segment' | Yes      | string |
