> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Monitor top ads

> Centralize ad performance and see which creatives actually pay off.

export const Connectors = ({items}) => <div style={{
  margin: "8px 0 20px"
}}>
    <style>{`
      .connectors-list, .connectors-list * { margin-top: 0 !important; margin-bottom: 0 !important; }
      .connectors-row {
        display: flex !important;
        align-items: flex-start !important;
        gap: 10px !important;
        padding: 4px 0 !important;
        min-height: 0 !important;
        height: auto !important;
      }
      .connectors-row img {
        width: 20px !important;
        height: 20px !important;
        max-width: 20px !important;
        max-height: 20px !important;
        margin: 2px 0 0 !important;
        display: block !important;
      }
    `}</style>
    <div className="connectors-list">
      {items.map((item, i) => <div key={item.id} className="connectors-row" style={{
  borderTop: i === 0 ? "none" : "1px solid rgba(130,130,130,0.22)"
}}>
          <img src={`/images/connectors/${item.id}.svg`} alt="" width={20} height={20} />
          <div style={{
  minWidth: 0
}}>
            <div>
              <strong>{item.name}</strong>
              {item.why ? <span style={{
  opacity: 0.72
}}> · {item.why}</span> : null}
            </div>
            {item.auth === "api-key" ? <div style={{
  fontSize: "11.5px",
  lineHeight: 1.35,
  color: "#F26207",
  marginTop: "2px"
}}>
                Not a native connector. Agent will ask for your API key.
              </div> : null}
          </div>
        </div>)}
    </div>
  </div>;

export const AiPrompt = ({children}) => {
  return <CodeBlock className="relative block max-w-full overflow-x-hidden font-sans !whitespace-pre-wrap !break-words" style={{
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
      <div className="pr-7" style={{
    whiteSpace: "pre-wrap",
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
        {children}
      </div>
    </CodeBlock>;
};

Pull last week's ads from TikTok Ads, Snapchat Ads, Meta Ads, and Google Ads. Centralize
performance and identify top ads by spend, click-through rate, cost per acquisition, and
return on ad spend. Rank winners and losers so
you know which creatives to scale or pause across platforms.

## Best for

* Performance marketers who need a weekly creative review across Meta, Google, TikTok, and Snapchat.
* Growth leads who need to know which ads to scale and which to pause.

## Connectors

<Connectors
  items={[
{
  id: "tiktok-ads",
  name: "TikTok Ads",
  why: "Short-form creative performance",
},
{
  id: "snapchat",
  name: "Snapchat Ads",
  why: "Snap and story ad performance",
},
{
  id: "google-ads",
  name: "Google Ads",
  why: "Search and display performance",
  auth: "api-key",
},
{
  id: "facebook",
  name: "Meta Ads",
  why: "Spend, click-through rate, cost per acquisition, return on ad spend",
  auth: "api-key",
},
]}
/>

## Before you start

Connect TikTok Ads and Snapchat Ads in Replit. For Google Ads and Meta Ads, have your API
key ready. Agent will ask for it when it needs to pull data. Pick a date range and say
which metrics matter most (return on ad spend vs cost per acquisition).

## Prompt the agent

<AiPrompt>
  Create a routine that runs every Monday at 9:00. Pull last week's ads from
  TikTok Ads, Snapchat Ads, Meta Ads, and Google Ads. Centralize performance and
  identify top ads by spend, click-through rate, cost per acquisition, and
  return on ad spend. Rank winners and losers, and tell me which creatives I
  should scale or pause.
</AiPrompt>

## What to expect

Agent builds a ranked table of creatives across platforms. Spot-check totals against each
ad manager before you change budgets. Date ranges and time zones often differ, so match
the window in each ad manager first. Pick the top ad and the bottom ad, open them in the
ad manager, and confirm spend matches before you move budget.

## Make it work for you

<AiPrompt>
  Group by creative theme, not just campaign name. Show which themes win on
  which platform.
</AiPrompt>

<AiPrompt>
  Post a Monday Slack recap: top 3 ads, bottom 3 ads, and suggested budget
  moves.
</AiPrompt>

## Troubleshooting

* **Google Ads or Meta Ads fail to pull:** those two are not native connectors. Agent will ask for your API key. Have it ready, and confirm the key can read the ad accounts you care about.
* **Totals don't match the ad manager:** date ranges and time zones often differ. Ask Agent to use the same window as each platform (usually last week, Monday to Sunday) and spot-check spend before you change budgets.
* **A platform is missing from the table:** connect TikTok Ads and Snapchat Ads in Replit first. If a native connection expires, reconnect and rerun the routine.

## Related

<CardGroup cols={2}>
  <Card title="Create social icons and banners" href="/use-cases/create-social-kit">
    For marketers who also need profile and cover assets per network.
  </Card>

  <Card title="Analyze customer feedback" href="/use-cases/analyze-customer-feedback">
    See if ads match what customers actually say.
  </Card>
</CardGroup>
