Asset data model

Updated:

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
idstringNoprovider asset resource name/id (e.g. Google Ads customers/{cid}/assets/{id}, TikTok image/video id, DV360 mediaId)
created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
organization_idstringNo
namestringNo
typeenumNoValues: IMAGE, VIDEO, YOUTUBE_VIDEO, MEDIA_BUNDLE, TEXT
urlstringNooutbound: public asset URL; inbound (create): source URL to fetch bytes from when content is not supplied
contentstringNoinbound create-only: base64-encoded image/media bytes to upload
mime_typestringNo
widthnumberNo
heightnumberNo
file_sizenumberNo
metadataAdsMetadata[]No
metadata[].idstringNo
metadata[].slugstringNo
metadata[].valueobjectNo
metadata[].namespacestringNo
metadata[].formatenumNoValues: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL
metadata[].extra_dataobjectNo

TypeScript

TypeScript
export type AdsAsset = {
	id?: string; // provider asset resource name/id (e.g. Google Ads customers/{cid}/assets/{id}, TikTok image/video id, DV360 mediaId)
	created_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	organization_id?: string;
	name?: string;
	type?: 'IMAGE' | 'VIDEO' | 'YOUTUBE_VIDEO' | 'MEDIA_BUNDLE' | 'TEXT';
	url?: string; // outbound: public asset URL; inbound (create): source URL to fetch bytes from when content is not supplied
	content?: string; // inbound create-only: base64-encoded image/media bytes to upload
	mime_type?: string;
	width?: number;
	height?: number;
	file_size?: number;
	metadata?: [];
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodAdsAsset = z.object({
	id: z.string().optional().describe("provider asset resource name/id (e.g. Google Ads customers/{cid}/assets/{id}, TikTok image/video id, DV360 mediaId)"),
	created_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	organization_id: z.string().optional(),
	name: z.string().optional(),
	type: z.enum("IMAGE", "VIDEO", "YOUTUBE_VIDEO", "MEDIA_BUNDLE", "TEXT").optional(),
	url: z.string().optional().describe("outbound: public asset URL; inbound (create): source URL to fetch bytes from when content is not supplied"),
	content: z.string().optional().describe("inbound create-only: base64-encoded image/media bytes to upload"),
	mime_type: z.string().optional(),
	width: z.number().optional(),
	height: z.number().optional(),
	file_size: z.number().optional(),
	metadata: z.array().optional(),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class AdsAssetType(str, Enum):
	IMAGE = 'IMAGE'
	VIDEO = 'VIDEO'
	YOUTUBE_VIDEO = 'YOUTUBE_VIDEO'
	MEDIA_BUNDLE = 'MEDIA_BUNDLE'
	TEXT = 'TEXT'

@dataclasses.dataclass
class AdsAsset:
	"""provider asset resource name/id (e.g. Google Ads customers/{cid}/assets/{id}, TikTok image/video id, DV360 mediaId)"""
	id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	organization_id: Optional[str]
	name: Optional[str]
	type: Optional[AdsAssetType]
	"""outbound: public asset URL; inbound (create): source URL to fetch bytes from when content is not supplied"""
	url: Optional[str]
	"""inbound create-only: base64-encoded image/media bytes to upload"""
	content: Optional[str]
	mime_type: Optional[str]
	width: Optional[int]
	height: Optional[int]
	file_size: Optional[int]
	metadata: Optional[PropertyAdsAssetMetadata]
Are we missing anything? Let us know
Was this page helpful?