Skip to main content
Proposes one ChatGPT Ads campaign test for the brand, built around its tracked questions, and lists what to test next. How it works:
  • Groups the brand’s active, non-branded tracked questions by persona and buying stage (consideration and decision only, the same unit a campaign test runs on). Other stages are left out and counted.
  • For each group, share of voice = the % of that group’s answers (in the window, for the chosen engine) that mention the brand. A group with fewer than 20 answers is listed as “too few answers yet”, never as 0%, and is never ranked.
  • Recommends ONE test: the measured group with the largest gap (groups need at least 20 answers to be ranked; ties go first to groups whose questions competitors already pay for (when competitor keywords are provided), then to more answers, then more questions), at the campaign-test default of $25/day for 7 days, stated as a starting point, not a forecast. Other groups are listed as “next” with no budget.
  • Each proposed ad group is built around one tracked question (up to 5 per test); its context hint is that question.
  • competitorKeywords (e.g. a Google Ads export) feed that first tie-break.
Use this when the user asks:
  • “Where should I spend on ChatGPT Ads?”
  • “What ChatGPT Ads test should I run first?”
Response shape: { engineTracked (false = Citable doesn’t track this engine’s answers, so nothing can be ranked), recommended, next[], tooFewAnswers[] (groups with 0–19 answers; shareOfVoicePct is null when there are 0; empty when engineTracked is false), excluded: { otherStages, noStage, noPersona } }. Each group: { personaName, stage, promptCluster, shareOfVoicePct, answersMeasured, proposedAdGroups[{ promptId, question, contextHints }] }; only recommended also has testBudget.

Inputs