Ad Headline and CTA Intelligence avatar

Ad Headline and CTA Intelligence

Pricing

$30.00 / 1,000 ad copy corpus reports

Go to Apify Store
Ad Headline and CTA Intelligence

Ad Headline and CTA Intelligence

Find repeated headlines and phrases across up to 500 supplied ads. The report compares CTA labels and character counts, with original ad IDs in the CSV. Send your ad JSON to the Actor to inspect the copy before your next creative test.

Pricing

$30.00 / 1,000 ad copy corpus reports

Rating

0.0

(0)

Developer

Daniel Michałek

Daniel Michałek

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Security

Limited permissions

Share

Compare supplied ad copy before preparing a client report or the next creative brief. The Actor groups repeated headlines and text, shows shared phrases with exact ad IDs, and compares explicit CTA labels across a corpus.

What it does

It processes one to 500 supplied advertisements without opening websites, connecting ad accounts or calling an AI model. One complete dataset report contains per-ad rows, original text, Unicode character and word counts, duplicate groups, repeated phrases, supplied CTA distribution and custom-limit findings.

Repetition is descriptive. It does not establish creative fatigue, expected CTR, Quality Score, policy compliance or sales. Missing CTA means that no nonblank CTA label was supplied; it is not inferred from the ad text. The product does not scrape Meta, Google or TikTok.

Input

Use the example below or examples/input.json. Each ad needs a unique ASCII id of 1 to 64 characters starting with a letter or digit and a nonblank headline. Optional text and cta must be strings; explicit null is rejected. Unknown properties are rejected.

Headline, body and CTA are bounded at 300, 2,000 and 80 Unicode code points respectively. The complete serialized input is limited to1,500,000 UTF8 bytes and100,000 Unicode words. Oversized inputs fail before artifact or dataset delivery. Character counts use original code points rather than UTF16 units or grapheme clusters.

limits can contain headlineCharacters, textCharacters and ctaCharacters. Only supplied limits are checked; equality is allowed. These limits belong to the customer and are not advertised platform rules. maxPhrases caps the returned phrase list at 1..100; phraseLength is 2..4 words; minPhraseAds is 2..500. maxItems is fixed at 1 report.

Output

AD_COPY_AUDIT and the dataset row contain rows, findings, duplicateHeadlines, duplicateTexts, ctaDistribution and phrases. Every duplicate or repeated phrase lists the corresponding ad IDs. Counts cover all accepted ads; complete:true does not mean a full market sample. matchingPhraseCount and phrasesTruncated disclose the top-phrase cap.

Duplicate keys use NFKC, lowercase, whitespace collapse and trim; punctuation remains significant. Original supplied strings remain in JSON. Words use Unicode letters/numbers with internal apostrophes. Repeated phrases count distinct ads, do not cross headline/body boundaries and exclude CTA labels. There is no stopword removal or semantic grouping. Stable ties use code-unit lexical order.

AD_COPY_CSV has one row per ad and quotes all cells, including newlines. Formula-like cells receive an apostrophe; numeric-only IDs also receive an apostrophe to preserve zeros and precision in spreadsheet imports. Other accepted IDs, such as dates or scientific-looking strings, can also be auto-converted by spreadsheets. Import the ID column as text; automatic spreadsheet interpretation is not guaranteed. JSON IDs remain exact. Automated CSV consumers must account for these intentional spreadsheet-safety prefixes.

REPORT is a brief Markdown summary. Private input and ad text are stored in the run's dataset/KV outputs, so configure retention and access appropriately. Text is not sent to an LLM or a third-party analyzer and is not written to logs.

Pricing and cost control

The active Store price is USD 0.03 for one copy-audit-report covering up to 500 supplied ads. A controlled cloud run with four supplied ads delivered one report and confirmed one priced event. That run recorded USD 0.000394 of platform usage, while production cost depends on input and storage. Send your ad JSON to compare the supplied copy in a complete report.

PRICING.json preserves the original engineering proposal and its USD 0.002 planning allowance. The historical USD 0.003 adjacent benchmark refers to base ad extraction events. Current prices are shown in the Store, and production margin requires further cost measurements.

There is one dataset emission and intended named event per complete report. Artifacts are saved before emission, and data before the shared charger. A paid event must be confirmed before the delivery marker is complete. Invalid input, failed storage or uncertain delivery do not trigger an automatic retry. Local unmonetized SDK runs have zero named charges.

Limitations and fair use

The supplied corpus is not independently verified advertising data or a representative sample. Only process text you may use. The Actor does not send campaigns, change budgets, fetch links, contact leads, or validate advertising claims. Custom-limit findings are checks against your input, not platform approval.

Unknown pricing stops delivery before the PREPARED marker or emission. A definite SDK charging model and pricing fingerprint are required; a pricing change cannot reuse a completed delivery. A PREPARED marker or unconfirmed paid event requires reconciliation. Completed same-input replay verifies the runtime fingerprint, JSON/CSV/report hashes and the physical single dataset row, then performs no emission. Changed source/input or missing output requires reconciliation. Do not clear storage to force retry. A new intentional run has separate storage.

Example

{
"ads": [
{
"id": "meta-1",
"headline": "Free delivery for teams",
"text": "Compare annual plans and see included services.",
"cta": "Compare plans"
},
{
"id": "meta-2",
"headline": " FREE delivery for teams ",
"text": "Compare annual plans with included support.",
"cta": "Compare plans"
},
{
"id": "search-1",
"headline": "Try the workflow demo today",
"text": "See the demo before you choose a plan.",
"cta": "Book a demo"
},
{
"id": "search-2",
"headline": "Try the workflow demo today",
"text": "See the demo before you choose a plan."
}
],
"limits": {
"headlineCharacters": 24
},
"maxPhrases": 20,
"minPhraseAds": 2,
"phraseLength": 2,
"maxItems": 1
}

The example input was verified in a public Apify build with one complete dataset report, JSON, CSV and a readable summary. A separate local SDK capacity check covered 500 supplied ads. The repository includes an icon, schemas, a pinned dependency lock, a Dockerfile and offline tests. Customer revenue verification is tracked separately from the owner's acceptance runs.