# FAQ

***

## Why is my Purchase event not being attributed in Trybe?

Attribution in Trybe requires a visitor ID (`vid`). EdgeTag resolves the `vid` in this order:

1. The `?trybe=CLICK_ID` query parameter captured from the affiliate landing URL
2. The `ugc_vid_{storeId}` cookie set by the Trybe pixel in the browser

If neither is present when the `Purchase` event fires, EdgeTag skips the attribution call entirely to avoid sending unattributable orders.

Make sure your affiliate links include the `?trybe=CLICK_ID` parameter, and that either the Trybe pixel is installed (to set the cookie) or the visitor arrived via an affiliate link.

***

## Do I need the Trybe pixel installed on my storefront?

Yes. The Trybe pixel initialises `window._trybe` in the browser, sets the visitor ID (`window._trybe.vid`), and enables browser-side event tracking. Without it:

* Browser events (`ViewContent`, `AddToCart`, `InitiateCheckout`, `Purchase`) will not fire to Trybe
* The `ugc_vid_` cookie fallback for server-side attribution will not be available

You can either let EdgeTag auto-inject the pixel using your Pixel Code and Pixel Domain settings, or install the pixel directly on your storefront — EdgeTag will detect it and skip re-injection.

***

## I already have the Trybe pixel installed on my storefront. Do I still need to configure Pixel Code and Pixel Domain in EdgeTag?

No. If the Trybe pixel is already present on the page (`window._trybe` is set), EdgeTag will detect it and skip auto-injection. You do not need to configure Pixel Code or Pixel Domain in that case.

However, you still need to provide the **API Key** and **Store ID** so that EdgeTag can send server-side attribution calls and read the `ugc_vid_{storeId}` cookie correctly.

***

## My affiliate click IDs are not being captured. What should I check?

EdgeTag captures the `?trybe=` query parameter automatically on page load and persists it at the edge for the session. If click IDs are not being captured:

* Verify your affiliate links include the `?trybe=CLICK_ID` parameter
* Check that the Trybe channel is active and deployed in EdgeTag
* Open the real-time logger on your EdgeTag Dashboard and inspect the `Purchase` event payload — look for the `vid` field to confirm the click ID was resolved

***

## How do I confirm the Trybe channel is set up correctly?

* Go to [app.edgetag.io](https://app.edgetag.io) and enable the **Real-Time Logger** on your site's analytics dashboard
* Fire a test `Purchase` event and check that it appears in the logger with a `vid` value
* In your Trybe Dashboard, navigate to **Attribution** and verify the order appears with the correct affiliate attribution

***

## Which events does Trybe support?

**Server-side (attribution):** Only `Purchase` is sent to the Trybe Attribution API. All other events are silently dropped on the server side.

**Browser-side (pixel):** `ViewContent`, `AddToCart`, `InitiateCheckout`, and `Purchase` are mapped to Trybe pixel methods. Events like `PageView`, `AddShippingInfo`, and `AddPaymentInfo` are not forwarded to Trybe.

***

## Can I exclude specific events from Trybe?

Yes. Use the **Excluded Events** multi-select in the EdgeTag channel configuration to suppress specific events. Excluded events are skipped on both the browser side (no `window._trybe.track*` call) and the server side.

Note: Since server-side attribution only processes `Purchase`, excluding non-Purchase events only affects browser pixel calls.

***

## The Trybe pixel is injected but `window._trybe.vid` is not set. Why?

`window._trybe.vid` is populated by the Trybe pixel (`pixel.js`) after it loads and processes the visitor's session. If it is not set:

* The pixel may still be loading — browser events will be skipped until `vid` is available
* The visitor may not have a recognised session in Trybe (e.g. first visit with no affiliate link and no prior cookie)

EdgeTag waits for `window._trybe.vid` to be set before firing any `window._trybe.track*` calls. If `vid` is never set, browser events are silently skipped.

***

## Does EdgeTag deduplicate Purchase events between browser and server?

The browser-side `trackCheckoutCompleted` and the server-side Attribution API call both fire for `Purchase`, but they serve different purposes:

* **Browser** — tracks the conversion in the Trybe pixel for engagement/analytics
* **Server** — sends the order to the Attribution API for affiliate payout

Trybe handles deduplication internally using the `orderId` field. Ensure you send a consistent `orderId` in your `Purchase` event payload.
