{
  "$comment": "Dated, sourced facts about AI ad channels, maintained by Admux. Every value links to the provider’s own page. Not a guarantee of approval or placement.",
  "url": "https://admux.ai/specs.json",
  "verifiedAt": "2026-11-10",
  "channels": [
    {
      "slug": "chatgpt",
      "name": "ChatGPT ads",
      "page": "https://admux.ai/specs/chatgpt",
      "specs": [
        {
          "field": "Title",
          "maxCharacters": 50,
          "limit": "3–50 characters",
          "status": "verified",
          "source": "https://developers.openai.com/ads/campaign-management",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Body",
          "maxCharacters": 100,
          "limit": "Up to 100 characters",
          "status": "verified",
          "source": "https://developers.openai.com/ads/campaign-management",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Image",
          "limit": "JPEG, PNG or WebP; at least 640 × 640 px",
          "status": "verified",
          "source": "https://developers.openai.com/ads/campaign-management",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Multi-image ads",
          "limit": "4–6 square (1:1) images sharing one title, body and destination URL; API accounts must be enabled",
          "status": "verified",
          "source": "https://developers.openai.com/ads/campaign-management",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Multi-image call to action",
          "limit": "'Learn more' is the only CTA; every image links to the same URL",
          "status": "verified",
          "source": "https://help.openai.com/en/articles/20001212-creating-ads-for-chatgpt-ads",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Destination URL",
          "maxCharacters": 2048,
          "limit": "HTTP or HTTPS, up to 2,048 characters, reachable by OpenAI's ad crawlers",
          "status": "verified",
          "source": "https://developers.openai.com/ads/campaign-management",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Brand name",
          "limit": "brand_name: the public advertiser name shown in ads",
          "status": "verified",
          "source": "https://developers.openai.com/ads/account-management",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Advertiser icon",
          "limit": "256 × 256 px (Account Management) vs 128 × 128 px (API Partner Setup)",
          "status": "conflict",
          "source": "https://developers.openai.com/ads/account-management",
          "verifiedAt": "2026-11-10"
        }
      ]
    },
    {
      "slug": "google-search-ai",
      "name": "Google AI Overviews and AI Mode ads",
      "page": "https://admux.ai/specs/google-search-ai",
      "specs": [
        {
          "field": "Headlines",
          "limit": "3 to 15 headlines",
          "status": "verified",
          "source": "https://developers.google.com/google-ads/api/docs/responsive-search-ads/create-responsive-search-ads",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Headline length",
          "maxCharacters": 30,
          "limit": "Up to 30 characters each",
          "status": "verified",
          "source": "https://support.google.com/google-ads/answer/7684791",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Descriptions",
          "limit": "2 to 4 descriptions",
          "status": "verified",
          "source": "https://developers.google.com/google-ads/api/docs/responsive-search-ads/create-responsive-search-ads",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Description length",
          "maxCharacters": 90,
          "limit": "Up to 90 characters each",
          "status": "verified",
          "source": "https://support.google.com/google-ads/answer/7684791",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Display path",
          "maxCharacters": 15,
          "limit": "path1 and path2 optional, up to 15 characters each; path2 requires path1",
          "status": "verified",
          "source": "https://developers.google.com/google-ads/api/docs/responsive-search-ads/create-responsive-search-ads",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Final URL",
          "limit": "At least one final URL is required",
          "status": "verified",
          "source": "https://developers.google.com/google-ads/api/docs/responsive-search-ads/create-responsive-search-ads",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Double-width characters",
          "limit": "Each double-width character (Korean, Japanese, Chinese) counts as 2",
          "status": "verified",
          "source": "https://support.google.com/google-ads/answer/7684791",
          "verifiedAt": "2026-11-10"
        }
      ]
    },
    {
      "slug": "gravity",
      "name": "Gravity ad network",
      "page": "https://admux.ai/specs/gravity",
      "specs": [
        {
          "field": "Headline",
          "maxCharacters": 80,
          "limit": "Up to 80 characters",
          "status": "verified",
          "source": "https://docs.trygravity.com/api-reference/advertiser/ad-groups",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Ad copy",
          "maxCharacters": 500,
          "limit": "Up to 500 characters",
          "status": "verified",
          "source": "https://docs.trygravity.com/api-reference/advertiser/ad-groups",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Call to action",
          "maxCharacters": 80,
          "limit": "Up to 80 characters",
          "status": "verified",
          "source": "https://docs.trygravity.com/api-reference/advertiser/ad-groups",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Brand name",
          "maxCharacters": 500,
          "limit": "Shown to users next to the ad; at most 500 characters; defaults to landing page host name.",
          "status": "verified",
          "source": "https://docs.trygravity.com/api-reference/advertiser/ad-groups",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Image",
          "limit": "Public PNG, JPEG, GIF or WebP, 10 MB or less; some delivery networks need an image on each ad.",
          "status": "verified",
          "source": "https://docs.trygravity.com/api-reference/advertiser/ad-groups",
          "verifiedAt": "2026-11-10"
        },
        {
          "field": "Campaign name",
          "maxCharacters": 255,
          "limit": "At most 255 characters",
          "status": "verified",
          "source": "https://docs.trygravity.com/api-reference/advertiser/campaigns",
          "verifiedAt": "2026-11-10"
        }
      ]
    }
  ]
}