VASTlint

VAST macros / Identity and privacy

[IFA] VAST macro

Short answer: The device advertising identifier (IDFA, AAID, or CTV ad ID) for the request. Introduced in VAST 4.1.

What it means

Resolves to the resettable device advertising identifier used for frequency capping and attribution: IDFA on iOS/tvOS, AAID on Android, or a platform-specific identifier on connected TV. Empty when the user has opted out.

Example value

After the player substitutes the macro, [IFA] becomes something like:

38400000-8cf0-11bd-b23e-10b96e40000d

Where it is valid

Impression, tracking, and click URLs that need a device identifier.

Macros are case-sensitive and substituted only inside URL fields. A macro written in the wrong case, or placed where it has no defined value, is sent to the server as literal text instead of a value.

Using it in a tag

<Impression><![CDATA[https://t.example.com/i?val=[IFA]&cb=[CACHEBUSTING]]]></Impression>

VAST XML fragment only. This excerpt belongs inside a complete VAST document, so standalone validation will fail until it is wrapped in a full <VAST>response.

Related vastlint rules

Related macros

Validate your macros

vastlint flags unknown, mis-cased, deprecated, out-of-context, and unencoded macros in any tracking, click, error, impression, or media URL:

# CLI: exits non-zero on errors, ideal for pipelines
vastlint check creative.xml

Use the right tool for this failure

If you already have the resolved XML, run a pure spec check. If you only have a live tag URL, test that endpoint first. If the failure happens in the wrapper chain, inspect each hop.

Further reading