Analyze paid-ad creative
Generate and persist creative analysis from one stored ad’s owned media.
Download Markdown ↓POSThttps://api.peekpanda.com/v1/paid-ads/{platform}/{archiveId}/analysis
Request
The command has no request body. It accepts mirrored image or video media up to 25 MB. A concurrent generation returns 409, while a ready analysis is returned from storage.
Parameters
platformpathmeta | tiktokYesAdvertising platform.archiveIdpathstring, 1–255YesProvider archive id.Response
Returns the persisted creative analysis and its generation-time provenance. Treat creative observations as analysis, not a performance or policy claim.
Response fields
summarystringvisibleText[]string[]hookNotes[]string[]timestampNotes[].timestampSecondsnumbertimestampNotes[].notestringeditingPatternstringreusablePromptIngredients[]string[]modelstringgeneratedAtstringAuthentication
Requires Bearer API credential or OAuth access token. Scope content:write. MCP calls refresh with action ad_analysis.
Errors
400invalid_request for an invalid filter, identity or limit.401authentication_required for a missing or invalid credential.402subscription_required when access is not entitled.403authorization_required for a missing scope or unavailable preview access.403workspace_not_accessible when x-genviral-tenancy names a workspace the credential cannot reach.404not_found when the record is outside the accessible catalogue.429rate_limited; honor Retry-After when present.429daily_call_limit; the plan's daily API and MCP calls are used until 00:00 UTC.409conflict when the write would duplicate an exclusive row.MCP request
Call refresh with action ad_analysis. Path fields go in params, filters in query, and a write body in body.
{
"name": "refresh",
"arguments": {
"request": {
"action": "ad_analysis",
"params": {
"platform": "<platform>",
"archiveId": "<archiveId>"
}
}
}
}
Source
Stored public advertising-library observations with source dates. Spend is unavailable unless the public record reports it.
Refresh
An explicit generation uses the owned mirror and persists its result. Repeating after settlement returns the stored result without generating it again.
AI agent or LLM? Read this page as markdown