# Image Trackers

Some third-party images set cookies as soon as they load — tracking pixels, social badges, and embed previews. A browser requests an image the moment it parses a live `src`, so those cookies land **before the visitor makes a consent choice**, and Consent Pro cannot intercept the request.

A cookie-setting image therefore needs one manual change to the markup. After that, Consent Pro loads it once the visitor accepts the required categories.

## Find them

Run a scan from **Consent manager**, then look for trackers carrying a **from Image** badge. Open a tracker with **Edit** to see the image it was attributed to.

For how detection works — including `httpOnly` cookies read from response headers — see [Image Trackers](/runtime/image-trackers#how-detection-works) in the JavaScript API docs.

## Block one

The image has to render without a `src`, so this change belongs wherever the markup lives — a component, layout, or page template in your codebase.

1. Find the element that renders the image.
2. Remove the `src` attribute.
3. Put the URL in `fs-consent-src` and add `fs-consent-categories`.
4. Deploy the site.

```html
<img fs-consent-src="https://example.com/tracking-pixel.svg" fs-consent-categories="marketing" alt="" />
```

Consent Pro sets `src` when the visitor accepts the category, and removes it again if consent is revoked.

**tip Essential images need no change**
Essential cookies don't require consent, so an image that only sets an essential cookie can keep its normal `src`. Label the tracker as **Essential** in **Consent manager** so it is still disclosed.


For the category values and multi-category behaviour, see the [category reference](/runtime/image-trackers#category-reference).

## Related

- [Image Trackers](/runtime/image-trackers) — detection details and full attribute reference
- [Sitemap Setup](/web-app/sitemap) — review discovery and scan coverage
- [Publishing Changes](/web-app/publishing) — tracker labels reach visitors only after a publish
