read_ad_image
Extract and analyze images from Meta ads to review creative assets and optimize visual content for advertising campaigns.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ad_id | Yes | ||
| meta_access_token | No |
Implementation Reference
- The `read_ad_image` function fetches an ad's creative, extracts the image hash, resolves it to a URL, downloads the image, and converts it into an MCP `Image` object. If the primary image hash is missing, it falls back to parsing creative data from the ad.
async def read_ad_image(ad_id: str, meta_access_token: Optional[str] = None) -> Image: if not ad_id: _ad_image_error(str(ad_id), "validation", "No ad ID provided") ad_account_id, ad_creative_id = await _get_creative_id_for_ad(ad_id, meta_access_token) ad_image_hashes = await _extract_creative_image_hashes(ad_creative_id, meta_access_token) image_source_url = None if ad_image_hashes: image_source_url = await _load_image_url_from_hash(ad_account_id, meta_access_token, ad_image_hashes[0]) fallback_creatives: Optional[Dict[str, Any]] = None if not image_source_url and not ad_image_hashes: fallback_creatives = await _load_fallback_creatives(ad_id, meta_access_token) fallback_hash = _fallback_creative_image_hash_from_payload(fallback_creatives) if fallback_hash: image_source_url = await _load_image_url_from_hash(ad_account_id, meta_access_token, fallback_hash) if not image_source_url: if fallback_creatives is None: fallback_creatives = await _load_fallback_creatives(ad_id, meta_access_token) image_source_url = _fallback_creative_image_url_from_payload(fallback_creatives) if not image_source_url: _ad_image_error(ad_id, "extract_image_url", "No image URLs found in creative") image_bytes = await download_image(image_source_url) if not image_bytes: _ad_image_error(ad_id, "download_image", "Failed to download image from creative URL") try: return _build_image_from_bytes(image_bytes) except Exception as exc: # noqa: BLE001 _ad_image_error(ad_id, "process_image", f"Error processing image: {exc}")