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.jsonRequired Fields
| Field | Description |
|---|---|
property_id | Where this artifact lives - uses standard identifier types (domain, app_id, apple_podcast_id, etc.) |
artifact_id | Unique identifier within the property - the property owner defines their scheme |
assets | Content in document order - text blocks, images, video, audio |
Optional Fields
| Field | Description |
|---|---|
variant_id | Identifies a specific variant (A/B test, translation, temporal version) |
format_id | Reference to format registry (same as creative formats) |
url | Web URL if the artifact has one |
metadata | Artifact-level metadata (Open Graph, JSON-LD, author info) |
published_time | When the artifact was published |
last_update_time | When the artifact was last modified |
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-configuration isn’t possible, include access credentials with 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
| Method | Use Case |
|---|---|
bearer_token | OAuth2 bearer token in Authorization header |
service_account | GCP/AWS service account credentials |
signed_url | Pre-signed URL with embedded credentials (URL itself is the credential) |
Service Account Setup
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:
| Type | Example | Use Case |
|---|---|---|
domain | reddit.com | Websites |
app_id | com.spotify.music | Mobile apps |
apple_podcast_id | 1234567890 | Apple Podcasts |
spotify_show_id | 4rOoJ6Egrf8K2IrywzwOMk | Spotify podcasts |
youtube_channel_id | UCddiUEpeqJcYeBxX1IVBKvQ | YouTube channels |
rss_url | https://feeds.example.com/podcast.xml | RSS feeds |
Artifact ID Schemes
The property owner defines their artifact_id scheme. Examples:| Property Type | Artifact ID Pattern | Example |
|---|---|---|
| News website | article_{id} | article_12345 |
r_{subreddit}_{post_id} | r_fitness_abc123 | |
| Podcast | episode_{num}_segment_{num} | episode_42_segment_2 |
| CTV | show_{id}_s{season}e{episode}_scene_{num} | show_abc_s3e5_scene_12 |
| Social feed | post_{id} | post_xyz789 |
Related
- Content Standards Overview - How artifacts fit into the content standards workflow
- calibrate_content - Sending artifacts for calibration