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

# Set up UTM parameters for Ad Pay Protection

> Tag every ad URL with UTM parameters and campaign_id so Dash.fi can accurately match user events to campaigns and audit your ad spend.

The Dash.fi Ad Pay Protection pixel matches user events on your website with data from your ad platforms by reading URL parameters. When a visitor arrives from a Meta or Google ad, the landing page URL needs specific parameters — particularly `campaign_id`. These let the pixel link the session back to the exact campaign that generated it. Without these parameters, attribution becomes partial or inaccurate, which limits the pixel's ability to detect fraud and identify overcharges tied to specific campaigns.

***

## Required parameters

Include the following parameters in every ad destination URL. The more complete your tagging, the more precise your auditing and attribution data will be.

| Parameter      | Purpose                                                                                         | Example value                         |
| -------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------- |
| `campaign_id`  | **Most important.** The unique ID assigned by the ad platform. Enables exact campaign matching. | `123456789`                           |
| `utm_source`   | Identifies the traffic source                                                                   | `facebook`, `google`, `linkedin`      |
| `utm_medium`   | Describes how traffic was delivered                                                             | `cpc`, `social`, `email`              |
| `utm_campaign` | Campaign name for contextual reporting                                                          | `black_friday_sale`                   |
| `utm_content`  | Differentiates ad creatives within a campaign                                                   | `video1`, `headlineA`, `carousel_ad1` |
| `utm_term`     | *(Optional)* Tracks keywords for search campaigns                                               | `running+shoes`                       |

<Warning>
  The `campaign_id` parameter is the most critical. Without it, the pixel cannot perform exact campaign matching, and audit results for that traffic will be incomplete. Always include `campaign_id` in your ad URLs.
</Warning>

***

## Example of a well-tagged URL

The URL below includes all required parameters and demonstrates the correct format:

```
https://yourwebsite.com/?utm_source=facebook&utm_medium=cpc&utm_campaign=black_friday_sale&utm_content=carousel_ad1&campaign_id=123456789
```

***

## How to add campaign\_id in Meta Ads

Meta supports dynamic URL parameters that automatically insert the campaign ID into your destination URL at the time your ad serves. Follow these steps to enable it:

<Steps>
  <Step title="Open the ad in Ads Manager">
    In Meta Ads Manager, navigate to the specific ad you want to modify.
  </Step>

  <Step title="Find URL Parameters">
    Scroll down to the **URL Parameters** section within the ad settings.
  </Step>

  <Step title="Open the URL Parameter builder">
    Click **Build a URL Parameter** to open the parameter builder tool.
  </Step>

  <Step title="Add the campaign_id dynamic parameter">
    Choose `campaign_id` from the list of available dynamic parameters. Meta will automatically insert the correct campaign ID value when the ad delivers.
  </Step>

  <Step title="Save your changes">
    Save the ad. From this point on, every landing page URL generated by that ad will include `?campaign_id=12345` (with the actual campaign ID populated dynamically).
  </Step>
</Steps>

***

## Platform URL templates

Use these templates as starting points when building tagged URLs for your campaigns.

<Tabs>
  <Tab title="Facebook Ads">
    Add this as a URL parameter template in your Meta ad settings. Meta will populate `campaign_id` dynamically at ad delivery time.

    ```
    utm_source=facebook&utm_medium=cpc&utm_campaign=summer_launch&campaign_id={{campaign.id}}
    ```

    Or as a complete destination URL:

    ```
    https://yourwebsite.com/?utm_source=facebook&utm_medium=cpc&utm_campaign=summer_launch&campaign_id={{campaign.id}}
    ```
  </Tab>

  <Tab title="Google Ads">
    Add this as a **Final URL Suffix** in your Google Ads campaign settings. Google will replace `{campaignid}` with the actual campaign ID automatically.

    ```
    utm_source=google&utm_medium=cpc&utm_campaign=summer_launch&campaign_id={campaignid}
    ```

    Google's `{campaignid}` ValueTrack parameter is globally unique and auto-assigned — no manual ID entry is required.
  </Tab>
</Tabs>

***

## Best practices

<AccordionGroup>
  <Accordion title="Always include campaign_id">
    Platform-assigned campaign IDs are globally unique and auto-assigned. They are the most reliable way for the Ad Pay Protection pixel to perform exact campaign matching. Make `campaign_id` a standard part of every ad URL template you use.
  </Accordion>

  <Accordion title="Use consistent UTM parameters">
    Inconsistent naming (e.g., `Facebook` vs. `facebook` vs. `fb`) fragments your data and makes reporting less reliable. Establish naming conventions for `utm_source`, `utm_medium`, and `utm_campaign` and apply them uniformly across all campaigns.
  </Accordion>

  <Accordion title="Use auto-tagging and dynamic parameters">
    Leverage platform-native dynamic parameter tools (like Meta's URL Parameter builder or Google's ValueTrack parameters) wherever possible. These automatically populate the correct values and eliminate manual errors.
  </Accordion>

  <Accordion title="Double-check final URLs before launching">
    Before activating any campaign, click through your ad's destination URL and inspect the full URL in your browser's address bar. Confirm that all parameters — especially `campaign_id` — are present and correctly formatted.
  </Accordion>
</AccordionGroup>
