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

# Snowplow - Integration Instructions

> Connect Snowplow first-party behavioral events to SourceMedium through your warehouse.

## Follow this integration guide to connect your Snowplow data to SourceMedium.

Snowplow is a behavioral data platform. You run the pipeline, and it loads enriched first-party events into a warehouse you control. SourceMedium reads those events from that warehouse and runs them through its funnel and multi-touch attribution pipelines, so on-site behavior links to orders for session-to-order and attribution analysis.

<Info>
  This integration is set up with help from SourceMedium rather than in the self-serve picker. To enable it, reach out to your account manager or [integrations@sourcemedium.com](mailto:integrations@sourcemedium.com).
</Info>

### How it works

There is no API key and no SourceMedium-hosted collector. Your Snowplow pipeline writes enriched events to your warehouse, and SourceMedium reads the event table from that dataset.

Because Snowplow event schemas are defined per brand rather than fixed by the vendor, the mapping from your events to SourceMedium's canonical funnel events is agreed during setup rather than assumed.

<Steps>
  <Step title="Load Snowplow events into your warehouse">
    In the Snowplow Console, go to **Destinations → Connections**, select **Set up connection**, choose **Loader connection**, and pick your warehouse. Then go to **Destinations → Destination list**, open the **Available** tab, select the same warehouse, and choose the pipeline, the connection, and **enriched events** to deploy the loader.

    Snowplow's setup asks for your cloud project and region, the dataset name, an allow-list entry for Snowplow's IP addresses, and a service account with permission to write to the dataset. See Snowplow's guide: [Load Snowplow data to BigQuery](https://docs.snowplow.io/docs/destinations/warehouses-lakes/bigquery/). Self-hosted pipelines configure the same thing through the [Loader API reference](https://docs.snowplow.io/docs/api-reference/loaders-storage-targets/bigquery-loader/) instead.
  </Step>

  <Step title="Share the destination details with SourceMedium">
    Send the project, dataset, and the access SourceMedium needs to read it to your account manager or [integrations@sourcemedium.com](mailto:integrations@sourcemedium.com), not in a public channel.
  </Step>

  <Step title="Agree the event mapping">
    Tell SourceMedium which of your Snowplow events represent page views, add to cart, checkout steps, and purchase. We map those to SourceMedium's canonical funnel events. Events with no canonical equivalent are not carried through.
  </Step>

  <Step title="SourceMedium validates and syncs">
    Once events are landing, SourceMedium confirms the table is readable, applies the agreed mapping, and begins running your events through funnel and attribution reporting.
  </Step>
</Steps>

### What data SourceMedium reads

SourceMedium reads first-party behavioral events and lands the mapped ones in `obt_funnel_event_history`, the same unified table used for GA4, RudderStack, and other tracking sources. From there they feed SourceMedium's multi-touch attribution models.

Snowplow events surface under two `source_system` values:

| `source_system` | What it is                                                      |
| --------------- | --------------------------------------------------------------- |
| `snowplow`      | Events from your Snowplow pipeline                              |
| `snowplow_ga4`  | Events arriving through the GA4 bridge stream, where configured |

<Tip>
  Filter on both values when you query Snowplow volume directly. Counting only `snowplow` undercounts any brand running the GA4 bridge.
</Tip>

### Data coverage notes

* Snowplow loads all events into a single events table, with atomic fields such as `app_id`, `event_id`, and `user_id` as columns. SourceMedium reads from that table.
* Only events mapped to a canonical SourceMedium funnel event are ingested. Bespoke micro-steps that have no canonical equivalent are not carried through.
* Snowplow feeds funnel and attribution reporting, not order or catalog tables. Order data comes from your commerce platform integration.
* Because the pipeline is yours, history depth is whatever your warehouse already holds. Confirm the backfill window during setup.

### Troubleshooting

* **Events not appearing?** Confirm the loader is active in the Snowplow Console under **Destinations → Destination list**, and that events are landing in the dataset you shared with SourceMedium.
* **Missing a funnel step?** Only mapped events become canonical funnel events. If you added or renamed an event, tell your SourceMedium team so the mapping can be updated.
* **Volume looks lower than expected?** Check whether some traffic arrives as `snowplow_ga4` rather than `snowplow`.
* **Attribution looks incomplete?** Snowplow captures first-party on-site events only. Combine it with your ad platform and commerce integrations for full multi-touch attribution.
