Apify actor · whoareyouanas/creative-intelligence

Creative Intelligence - AI Ad Creative Analysis

Analyze existing ad creative assets using your own AI-provider key. Supply JSON, CSV, or a scraper dataset to produce structured creative observations, scoring fields, and improvement suggestions.

Documentation checked 2026-10-29 · deployed build 0.2.1 · run through your Apify account

01 / Overview

Match the actor to the job.

Use your own creative inputs

Provide public image or video URLs, CSV rows, or an existing Apify dataset.

Choose an AI provider

Use supported OpenAI, xAI, or Anthropic settings with your own provider credentials.

Batch or agent workflow

Run a bounded batch or use the documented MCP tools for asynchronous creative analysis.

02 / Input

Start with a clear, bounded input.

The deployed schema requires provider. Analysis also needs a matching provider key or configured provider environment credentials, plus creative assets. Replace the example asset URL and key; example.com is a placeholder, not a working creative.

input.json · example based on the deployed schema
{
  "provider": "openai",
  "apiKey": "YOUR_OPENAI_API_KEY",
  "creatives": [
    {
      "id": "creative-1",
      "brand": "Example Brand",
      "body": "Turn ad creatives into measurable insights.",
      "cta": "Learn More",
      "assetUrl": "https://example.com/ad.jpg",
      "assetType": "image"
    }
  ]
}

Replace example targets and credential placeholders before running. These are documentation examples, not a promise of currently available source results.

Deployed actor input fields, types, defaults, and descriptions
FieldType / requiredDefaultPurpose
modestring"batch"Batch analyzes the supplied creatives and exits. MCP serves agent tools at /mcp; Standby automatically selects MCP regardless of this setting.

Options: batch, mcp

providerstringRequired"openai"The AI provider to use for creative analysis.

Options: openai, xai, anthropic

apiKeystringYour credentialRequired for analysis unless CREATIVE_API_KEY or a provider-specific API key environment variable is configured. Stored encrypted by Apify. For MCP, configure this once in a task; keys are not tool arguments.
modelstringNot specifiedOptional model name. Leave empty to use a provider-specific vision-capable default.
creativesarray[]Simple JSON rows for anyone who has ad copy and creative assets. Each row needs at least an assetUrl, assetUrls, imageUrl, videoUrl, or mediaUrl. Common fields: id, brand, body, cta, assetUrl, assetType.
All other input controls (11)
Deployed actor input fields, types, defaults, and descriptions
FieldType / requiredDefaultPurpose
csvInputstringNot specifiedPaste CSV from a spreadsheet. Supported headers include id, brand, body, cta, assetUrl, assetUrls, mediaUrl, imageUrl, videoUrl, assetType, format, active, runTimeDays, multipleVersions, similarAdCount, totalPlatforms, platforms. Use semicolon, pipe, or new lines inside assetUrls for multiple assets.
sourceDatasetIdstringNot specifiedOptional Apify dataset ID/name from a previous ads scraper run. If set, the actor reads ads from this dataset.
adsarray[]Backward-compatible ad objects from scraper output. Each item can contain libraryID, brand, body, ctaText, format, images, videos, active, runTimeDays, multipleVersions, similarAdCount, and totalPlatforms.
maxAdsinteger100Maximum number of creatives to analyze from all source inputs. Set to 0 for all available creatives, capped at 10000 per run.

Minimum: 0 · Maximum: 10000

maxConcurrencyinteger2Number of ads to analyze in parallel. Provider rate limits and image/video size affect reliability; 1-3 is recommended.

Minimum: 1 · Maximum: 10

analyzeVideosbooleantrueIf enabled, video ads are downloaded and sampled into frames for multimodal analysis. Disable to skip video ads.
maxVideoFramesinteger8Maximum frames extracted from each video. More frames improve context but increase cost and latency.

Minimum: 1 · Maximum: 20

videoFrameIntervalSecondsinteger2Sample one frame every N seconds until max video frames is reached.

Minimum: 1 · Maximum: 30

imageInputModestring"url"Use URL mode for public images. Use download mode if the provider cannot fetch image URLs directly.

Options: url, download

imageDetailstring"low"Vision detail level. Higher detail can improve OCR and layout reasoning but usually costs more.

Options: low, high, auto

includeRawResponsebooleanfalseIf enabled, saves the parsed raw provider response in each dataset item for debugging. Leave off for cleaner output.

03 / Output

Know what each returned row represents.

Illustrative output shape · not a live run
{
  "analysis_status": "failed",
  "provider": "openai",
  "libraryID": "example-creative",
  "error": "Illustrative asset or provider error"
}

Example values illustrate the published contract. Available fields and populated values depend on the source, mode, and result status.

Fields in the documented output view

libraryID

Library ID

brand

Brand

analysis_status

Status

analysis_type

Type

provider

Provider

model

Model

ai_score

AI Score

performance_score.total

performance_score.total

total_weighted_score

Final Score

theme

Theme

tone

Tone

visual_style

Visual Style

hook

hook

product_display

product_display

human_display

human_display

offer_display

offer_display

improvement_suggestions

improvement_suggestions

error

error

Output views select columns. They do not necessarily filter record types or exhaust the full JSON payload. Use structured JSON when you need nested arrays or objects.

Dataset links and run artifacts (3)
Batch Summary
Batch totals: total, succeeded, failed. Run SUCCEEDED does not imply every creative completed.
Overview
Table view of analyzed ads with core scoring and classifications.
All Results
Full dataset items with metrics, extracted text, and suggestions.

04 / Pricing

Understand the billable unit.

These are the active public event prices checked on 2026-10-29, in USD. They describe each event, not a universal flat price for a run. Confirm your current Apify plan and run budget before starting.

Actor event prices and billing units
Billable eventRate (USD)When it applies

Actor Start

apify-actor-start

$0.00005 / event

Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).

Start units depend on allocated memory: one event per GB, with at least one event.

result

apify-default-dataset-item

$0.005 / event

Single result in the default dataset.

$5.00 per 1,000 of this event. Other events and separate services are additional.

  • AI-provider usage is billed separately to your provider account, in addition to Apify actor events.
  • Video frames, higher image detail, and larger batches can increase provider cost and runtime. Inspect failed rows and run charges.

A result limit and a spending cap are different controls. Account charges, applicable taxes, and separately billed providers or proxies must be considered where relevant. A cap setting is not a minimum invoice charge.

05 / API & automation

Use the same input from your workflow.

Test a small run in Apify Console, inspect its records and charges, then save a task or call the actor from your own application. Keep your Apify token in an environment variable. Source-specific credentials, if required, are separate from the Apify API token.

cURL · start an asynchronous actor run
# Save the input example as input.json and set APIFY_TOKEN.
# This request starts an asynchronous, potentially billable run.
curl --request POST \
  'https://api.apify.com/v2/acts/whoareyouanas~creative-intelligence/runs' \
  --header "Authorization: Bearer $APIFY_TOKEN" \
  --header 'Content-Type: application/json' \
  --data @input.json

The response identifies the run. Wait for it to finish, inspect its status, and use its default dataset and key-value store to retrieve results. A successful run can still contain partial or failed records; check the output contract above before continuing downstream.

Coverage & interpretation

Check the result before relying on it.

Questions

Before you build an integration.

What do I need to provide?

The deployed schema requires provider. Analysis also needs a matching provider key or configured provider environment credentials, plus creative assets. Replace the example asset URL and key; example.com is a placeholder, not a working creative.

What should I check in the output?
  • Rows include analysis_status, provider/model context, observed creative attributes, scores, and suggestions. Failed rows are saved with an error.
  • A successful run can contain failed creatives. Exclude failed rows from ranking, and treat scores as model judgments rather than measured campaign performance.
How do I budget the run?
  • AI-provider usage is billed separately to your provider account, in addition to Apify actor events.
  • Video frames, higher image detail, and larger batches can increase provider cost and runtime. Inspect failed rows and run charges.

Keep exploring

Practical guides for the next step.