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
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 Web article:url — the property is identified by apple_podcast_id, and the audio asset uses a secured URL):
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
variant_id to distinguish between them:
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
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:Secured Asset Access
Many assets aren’t publicly accessible - AI-generated images, private conversations, paywalled content. The artifact schema supports authenticated access.Pre-Configuration (Recommended)
For ongoing partnerships, configure access once during onboarding rather than per-request:- Service account sharing - Grant the verification agent access to your cloud storage
- OAuth client credentials - Set up machine-to-machine authentication
- API key exchange - Share long-lived API keys during setup
Per-Asset Authentication
When pre-configured identity access isn’t possible, attach a short-lived, asset-scoped token to individual assets:- Pre-configured access - Set up service account access once during onboarding
- Shared token reference - Define tokens at the artifact level and reference by ID
- Signed URLs - Use pre-signed URLs where the URL itself is the credential
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 Access
service_account is identity-based — no credentials are sent in the response. During onboarding the seller grants the buyer’s (or verification agent’s) own service account read access to the asset store; at fetch time the client authenticates with that identity using the cloud provider’s normal credential chain (GCP Application Default Credentials, AWS SigV4).
For GCP:
Pre-Signed URLs
For one-off access without sharing credentials:Property Identifier Types
Theproperty_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.
Related
- Content Standards Overview - How artifacts fit into the content standards workflow
- calibrate_content - Sending artifacts for calibration