Advertised assets and creative API
These /performance-marketing/v2 routes require an advertiser dashboard Authorization: Bearer session. They are console endpoints, not a standalone advertiser API key interface. The advertiser owner is resolved for each request.
| Method and path | Input | Response |
|---|---|---|
POST /campaigns/validate-asset | JSON advertiserId, assetUrl, assetIdentifier, platforms. | 200 validation result containing valid, assetId, and asset details. |
GET /assets/upload-capability | None. | 200 {enabled,environment,maximumBytes,allowedMimeTypes,productionApproved}. |
GET /assets/{assetId}/creatives | Optional owner-selection advertiserId query. | 200 {items} with safe creative metadata and a contentUrl. |
POST /assets/{assetId}/creatives | Multipart field file; advertiserId form field if needed. | 201 validated creative metadata. Development only. |
GET /assets/{assetId}/creatives/{creativeId}/content | Optional advertiserId query. | Binary creative with its content type. Development only. |
validate-asset requires a public HTTPS URL. Android requires a Google Play host, iOS an App Store host; a web asset uses its hostname. The asset identifier must match the property, and the campaign's single platform must match the validated asset. The validation record expires for readiness purposes after 24 hours. A private or local host, URL credentials, or explicit port is rejected.
POST /performance-marketing/v2/campaigns/validate-asset
Authorization: Bearer DASHBOARD_TOKEN
Content-Type: application/json
{"advertiserId":"ADVERTISER_ID","assetUrl":"https://advertiser.example/","assetIdentifier":"advertiser.example","platforms":["web"]}
The capability response currently reports maximumBytes: 10485760, MIME types image/jpeg, image/png, image/webp, and video/mp4, and productionApproved: false. Upload accepts one file of at most 10 MiB, checks its MIME type against the file signature, and requires a validated unexpired asset belonging to the advertiser. A newly uploaded creative is marked DEVELOPMENT_VALIDATED; campaign readiness also checks that supplied creative IDs belong to the same advertiser and asset.
Availability: POST .../creatives and content retrieval are gated to non-production environments with creative uploads enabled. A production campaign that lacks a pre-provisioned validated creative cannot satisfy this readiness rule through the current upload API. Do not present this endpoint as a production self-service upload path. See creative and review guide.