Skip to main content

Artifacts

An artifact is a unit of content adjacent to an ad placement. When evaluating brand suitability, you’re asking: “Is this artifact appropriate for my brand’s ads?”

What Is an Artifact?

Artifacts represent the content context where an ad appears:
  • A news article on a website
  • A podcast segment between ad breaks
  • A video chapter in a YouTube video
  • A social media post in a feed
  • A scene in a CTV show
  • An AI-generated image in a chat conversation
Artifacts are identified by property_id + artifact_id - the property defines where the content lives, and the artifact_id is an opaque identifier for that specific piece of content. The artifact_id scheme is flexible - it could be a URL path, a platform-specific ID, or any consistent identifier the property owner uses internally.

Structure

Schema: artifact.json

Required Fields

Optional Fields

Variants

The same artifact may have multiple variants:
  • Translations - English version vs Spanish version
  • A/B tests - Different headlines being tested
  • Temporal versions - Content that changed on Wednesday
Use variant_id to distinguish between them:
The combination of artifact_id + variant_id must be unique within a property. This lets you track which variant a user saw and correlate it with delivery reports.

Asset Types

Assets are the actual content within an artifact. Everything is an asset - titles, paragraphs, images, videos.

Text

Roles: title, description, paragraph, heading, caption, quote, list_item Each text asset can have its own language tag for mixed-language content.

Image

Video

Audio

Metadata

Artifact-level metadata describes the artifact as a whole, not individual assets:
This is separate from assets because it’s about the artifact container, not the content itself.

Secured Asset Access

Many assets aren’t publicly accessible - AI-generated images, private conversations, paywalled content. The artifact schema supports authenticated access. For ongoing partnerships, configure access once during onboarding rather than per-request:
  1. Service account sharing - Grant the verification agent access to your cloud storage
  2. OAuth client credentials - Set up machine-to-machine authentication
  3. API key exchange - Share long-lived API keys during setup
This happens during the activation phase when the seller first receives content standards from a buyer.

Per-Asset Authentication

When pre-configuration isn’t possible, include access credentials with individual assets:
Note on token size: For artifacts with many assets, per-asset tokens can significantly increase payload size. Consider:
  1. Pre-configured access - Set up service account access once during onboarding
  2. Shared token reference - Define tokens at the artifact level and reference by ID
  3. Signed URLs - Use pre-signed URLs where the URL itself is the credential
The url field is the access URL - it may differ from the artifact’s canonical/published URL. For example, a published article at https://news.example.com/article/123 might have assets served from https://cdn.example.com/secured/....

Access Methods

Service Account Setup

For GCP:
For AWS:

Pre-Signed URLs

For one-off access without sharing credentials:
The URL itself contains the credentials - no additional authentication needed.

Property Identifier Types

The property_id uses standard identifier types from the AdCP property schema:

Artifact ID Schemes

The property owner defines their artifact_id scheme. Examples: The verification agent doesn’t need to understand the scheme - it’s opaque. The property owner uses it to correlate artifacts with their content.