← Files Ad Reporting by PaidSync.aiARCHIVED FILE

.codex-plugin/plugin.json

5.86 KB · Nov 3, 2026 · 19:25 UTC

↓ Download file

{
  "author": {
    "name": "Advanced Technology Labs LLC"
  },
  "description": "Ad Reporting by PaidSync.ai reports on the ad accounts you own across ten ad platforms, when you ask ChatGPT in plain language.\n\nWhat you can do:\n- Report spend, clicks, conversions and cost per result for the dates you choose.\n- Break Google Ads results down by campaign, ad, keyword and search term.\n- Break Meta results down by campaign, ad set and ad.\n- Report on Microsoft Advertising, TikTok, LinkedIn, Snapchat, Pinterest, Reddit, X and ChatGPT Ads accounts.\n\nHow it works:\nSign in with your PaidSync.ai account, then connect each platform through that platform's own sign-in screen; PaidSync never asks for a platform password in chat. ChatGPT names the account, property or container to read on each question where the tool takes one, or reads the account selected in PaidSync. This app only reads: it changes nothing in your ad accounts, properties or containers.\n\nPaidSync.ai is independent and is not made or endorsed by Google, Meta, Microsoft or the other platforms it connects. Security details: https://paidsync.ai/security",
  "interface": {
    "capabilities": [],
    "category": "Business & Operations",
    "defaultPrompt": [
      "Show spend, clicks and conversions for each of my ad platforms last month.",
      "Compare this month's Google Ads campaign performance with last month.",
      "Which Meta ads had the lowest cost per result in the last 14 days?"
    ],
    "developerName": "Advanced Technology Labs LLC",
    "displayName": "Ad Reporting by PaidSync.ai",
    "longDescription": "Ad Reporting by PaidSync.ai reports on the ad accounts you own across ten ad platforms, when you ask ChatGPT in plain language.\n\nWhat you can do:\n- Report spend, clicks, conversions and cost per result for the dates you choose.\n- Break Google Ads results down by campaign, ad, keyword and search term.\n- Break Meta results down by campaign, ad set and ad.\n- Report on Microsoft Advertising, TikTok, LinkedIn, Snapchat, Pinterest, Reddit, X and ChatGPT Ads accounts.\n\nHow it works:\nSign in with your PaidSync.ai account, then connect each platform through that platform's own sign-in screen; PaidSync never asks for a platform password in chat. ChatGPT names the account, property or container to read on each question where the tool takes one, or reads the account selected in PaidSync. This app only reads: it changes nothing in your ad accounts, properties or containers.\n\nPaidSync.ai is independent and is not made or endorsed by Google, Meta, Microsoft or the other platforms it connects. Security details: https://paidsync.ai/security",
    "privacyPolicyURL": "https://paidsync.ai/privacy",
    "shortDescription": "Google Ads & Meta ad reports",
    "supportURL": "https://paidsync.ai/docs",
    "termsOfServiceURL": "https://paidsync.ai/terms",
    "websiteURL": "https://paidsync.ai/",
    "logo": "./assets/logo.png",
    "composerIcon": "./assets/logo.png"
  },
  "name": "paidsync-ad-reporting",
  "version": "1.0.0",
  "mcpServers": "./.mcp.json",
  "extensions": {
    "com.openai": {
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Lists the accounts to report on.",
              "prompt": "List my connected Google Ads accounts.",
              "tools_triggered": "list_accounts",
              "expected_behavior": "Returns each Google Ads account with its id, name, currency and status. If the platform is not connected yet, it calls connect_platform and returns a sign-in link instead."
            },
            {
              "description": "Account overview.",
              "prompt": "Give me a summary of my Google Ads account for the last 30 days.",
              "tools_triggered": "get_account_summary",
              "expected_behavior": "Returns spend, clicks, impressions and conversions for the account and period. If the platform is not connected yet, it calls connect_platform and returns a sign-in link instead."
            },
            {
              "description": "Campaign report.",
              "prompt": "Show my Google Ads campaign performance for last month.",
              "tools_triggered": "get_campaign_performance",
              "expected_behavior": "Returns each campaign with spend, clicks, conversions and cost per conversion for last month. If the platform is not connected yet, it calls connect_platform and returns a sign-in link instead."
            },
            {
              "description": "Keyword report.",
              "prompt": "Which of my Google Ads keywords drove the most conversions in the last 30 days?",
              "tools_triggered": "get_keyword_performance",
              "expected_behavior": "Returns keywords sorted by conversions with their cost and clicks. If the platform is not connected yet, it calls connect_platform and returns a sign-in link instead."
            },
            {
              "description": "Meta accounts.",
              "prompt": "List my Meta ad accounts.",
              "tools_triggered": "list_fb_ad_accounts",
              "expected_behavior": "Returns each Meta ad account with its id, name, currency and status. If the platform is not connected yet, it calls connect_platform and returns a sign-in link instead."
            }
          ],
          "negative": [
            {
              "description": "A change to an ad account: this app only reads, so it should not run.",
              "prompt": "Pause my Google Ads campaign called Brand Search."
            },
            {
              "description": "Creating a campaign, which this app does not do.",
              "prompt": "Create a new Facebook campaign with a 50 dollar daily budget."
            },
            {
              "description": "Unrelated task.",
              "prompt": "Translate this sentence into Spanish: good morning."
            }
          ]
        }
      }
    }
  },
  "apps": "./.app.json"
}

SHA-256: 157d16e408a1e73cc4ea2fde59aea4ce1f14a9d221fcbf8aec566a0ab3a5ed0c