> ## Content Index
> Fetch the complete content index at: https://barbarosozturk.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Meta's New UTM Parameter media_type - What It Means For Advertisers
- URL: https://barbarosozturk.com/blog/metas-new-utm-parameter-media_type-what-it-means-for-advertisers/
- Published: 2026-11-02T13:07:47.000Z
- Updated: 2026-11-02T13:07:47.000Z
- Description: Meta quietly added {{media_type}} to the Build URL parameter list. It lands exactly when a single ad becomes a container of 10 assets.
- Author: Barbaros
- Tags: Performance Marketing, Meta

In Ads Manager, Build a URL parameter now shows {{media\_type}} at the bottom of the list, under {{campaign.id}}, {{adset.id}}, {{ad.id}}, {{campaign.name}}, {{adset.name}}, {{ad.name}}, {{placement}}, {{site\_source\_name}} and the new {{media\_type}}.

This is new. The practically verifiable set was built around campaign, ad set, and ad identifiers and names, plus two delivery parameters. Meta's dynamic URL parameters are placeholders Meta replaces with live values at delivery, like {{campaign.name}}, {{campaign.id}}, {{adset.name}}, {{adset.id}}, {{ad.name}}, {{ad.id}}, {{placement}}, and {{site\_source\_name}}. That old list did not include media\_type.

Meta calls them dynamic URL parameters. The catalog is small, about a dozen useful ones, but the syntax is what trips people up. Double curly braces, all lowercase, dot separated path. Get it wrong and the token outputs literally.

So why add media\_type now?

![](https://storage.ghost.io/c/64/81/648165b7-979e-43dd-9c43-02101159f467/content/images/2026/11/1.jpg)

### 1\. The Discovery - New Token Spotted

If you have used UTMs on Meta before, you know the pattern. 

For UTM tags, use the campaign parameters Google Analytics reads as keys: always utm\_source, utm\_medium and utm\_campaign, plus utm\_content to differentiate creatives.

Practical default for most website campaigns, keep utm\_medium static, use {{site\_source\_name}} for utm\_source, use {{campaign.name}} for readable campaign reporting, use {{campaign.id}} as a stable join key in utm\_id, and pass ad and ad set IDs as custom parameters.

Up to now utm\_content={{ad.name}} was as granular as you could get in GA4 without manual work. Placement told you where the ad served, site\_source\_name told you fb, ig, msg, an, or th (Threads). 

But you could not tell if the click came from the image version or the video version inside the same ad. {{media\_type}} closes that gap.

![](https://storage.ghost.io/c/64/81/648165b7-979e-43dd-9c43-02101159f467/content/images/2026/11/2.jpg)

### 2\. Why Now - Multi-Media Ads Era

Timing matters. May 2026, Multi-Media Ads documented in the Marketing API. Adsuploader reports that in May 2026 Meta documented a new Marketing API construct called Multi-Media Ads with per-asset customization of text, destination URLs, placements, and cropping.

Meta is rolling out a new creative workflow that lets advertisers upload up to 10 images and videos inside a single ad, with per-creative URLs, per-creative placement opt-ins, and a Media breakdown for asset-level reporting.

For each asset you can provide three cropped aspect ratios, customize the primary text and the URL destination, and opt in or out of specific placements like Reels or Feed.

The genuinely useful addition, hidden in the reporting layer, is a new Media breakdown under reporting for asset level performance.

Context of 2026:

- Flexible Format removed March 2026, automation is now distributed across Format Display Options, Flexible Media, and Advantage+ Creative. No more single toggle.
- Feed URL footers removed March 2026
- Dynamic Media enabled automatically for catalog ads starting September 2025
- Meta opened Threads advertising to all advertisers globally early 2026
- $14 to $15B AI infra and 11 new AI advertising tools announced at Cannes Lions 2025

An ad is no longer single media. It is a container. You need container level tracking. {{media\_type}} is the missing link.

![](https://storage.ghost.io/c/64/81/648165b7-979e-43dd-9c43-02101159f467/content/images/2026/11/3.jpg)

### 3\. What It Solves - Creative Attribution Gap

Old problem: you run an Advantage+ Creative test with 3 images and 2 videos in one ad. In GA4, all 5 show as utm\_content=Summer\_Sale\_v1\. You know ad performed, but not which asset drove the click.

With {{media\_type}} you get a third dimension:

- {{placement}} = where, feed, story, reels
- {{site\_source\_name}} = which network, fb, ig, th
- {{media\_type}} = what format, likely image, video, carousel, collection, and in future ai\_image, ai\_video

Use cases that become possible today:

1. **GA4 breakdown:** Conversion rate by media\_type. You may find video wins on Reels but image wins on Feed.
2. **Creative learning:** Stop guessing if video outperforms image. Measure at analytics layer without manual tagging.
3. **Post click personalization:** Landing page reads media\_type and adapts. If video clicked, continue video story. If image clicked, show static gallery. Same ad ID, different intent.
4. **Catalog and dynamic media:** Meta announced plan to enable Dynamic Media automatically for Advantage+ Catalog ads. When Meta chooses media automatically, {{media\_type}} tells you what it actually served.

![](https://storage.ghost.io/c/64/81/648165b7-979e-43dd-9c43-02101159f467/content/images/2026/11/4.jpg)

### 4\. How To Use It - UTM Templates That Work

Meta dynamic value auto fills per ad. This string uses Meta dynamic parameters. Meta replaces {{...}} with the live campaign, ad set, and ad names at delivery, so one template tags every ad correctly, no per link editing.

**Recommended template for 2026:**

Code

```
utm_source={{site_source_name}}&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}_{{media_type}}&utm_term={{adset.name}}&utm_id={{campaign.id}}&media_type={{media_type}}&ad_id={{ad.id}}
```

Three practical ways:

- **Way 1 - Append to content:** `utm_content={{ad.name}}_{{media_type}}` cleanest for GA4 reports, you keep creative name plus format.
- **Way 2 - Custom param:** `&media_type={{media_type}}&ad_id={{ad.id}}` keeps UTMs clean, adds custom dimension for data warehouse joins.
- **Way 3 - Post click:** Use JavaScript on landing to read `media_type` param and swap hero. Video click sees video continuation, image click sees image.

**GA4 setup:**

Create custom dimension called media\_type. In GA4, at insertion time the preview still shows the raw macros, so skipping the post-launch GA4 check means you only discover empty utm\_campaign values or unexpected characters like spaces or uppercase once real money has shipped. 

Always validate with a live click. Preview shows raw macros, live shows resolved values.

Then build exploration: sessions and purchases broken down by media\_type + placement + site\_source\_name. You finally get creative format ROI outside Ads Manager.

![](https://storage.ghost.io/c/64/81/648165b7-979e-43dd-9c43-02101159f467/content/images/2026/11/5.jpg)

### 5\. Future Implications - AI Creative and New Formats

Meta's stated roadmap is a system where an advertiser inputs a product URL and a budget, and Meta generates and optimizes the entire campaign: creative, copy, targeting, bidding. That was announced with 11 new AI advertising tools at Cannes Lions 2025.

If Meta generates images, videos, UGC styles, AI backgrounds automatically, your old utm\_content={{ad.name}} becomes meaningless. You need {{media\_type}} to differentiate proven ROI for new formats.

Expect values to expand. Today likely image, video. Tomorrow maybe:

- `carousel`, `collection`
- `ai_image`, `ai_video`, `ai_bg`
- `flexible`, `dynamic`

Early adopters get first mover edge:

- Train landing pages to match creative intent
- Feed back to CAPI and Pixel with creative format dimension
- Future proof when Meta adds new media types
- Combine with Media breakdown under reporting layer for asset level reporting inside Ads Manager, and mirror that breakdown in GA4 via {{media\_type}}

Brands that relied on monetization through advertising need trust by AI agents. Same logic applies to creative. 

As creative becomes AI generated, measurement must capture format, not just placement.

![](https://storage.ghost.io/c/64/81/648165b7-979e-43dd-9c43-02101159f467/content/images/2026/11/6.jpg)

### 6\. Title Summary - From Ad Level to Asset Level

This small token change signals a big architecture change.

Meta goes from single media to container. From Flexible Format single toggle to Format Display Options, Flexible Media, Advantage+ Creative. From ad level reporting to Media breakdown for asset level reporting.

{{media\_type}} is Meta's bridge to make external analytics keep up.

**Action list for this week:**

1. Update your global URL parameter template to include {{media\_type}}
2. Add media\_type custom dimension in GA4 and your data warehouse
3. Launch one Multi-Media Ad with 10 assets, each with per asset URL and placement opt ins, and watch media\_type values populate
4. Build a GA4 report: media\_type vs conversion rate vs placement
5. Use it for landing page personalization

The era of spray and pray creative is ending. The era of certainty and proven ROI for each asset is starting. {{media\_type}} is how you track it outside Meta.