Skip to main content
Glama
EfrainTorres

ArmaVita Meta Ads MCP

list_insights

Fetch performance insights for Meta Ads accounts, campaigns, ad sets, or ads to analyze metrics and optimize advertising strategies.

Instructions

Fetch insights for an account, campaign, ad set, or ad.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
object_idYes
meta_access_tokenNo
date_rangeNomaximum
breakdownNo
breakdownsNo
action_breakdownsNo
summary_action_breakdownsNo
levelNoad
page_sizeNo
page_cursorNo
action_attribution_windowsNo
compactNo

Implementation Reference

  • The list_insights function serves as the primary handler for fetching insights from Meta Ads. It validates parameters, normalizes time and breakdown inputs, performs the API request, and formats the response.
    async def list_insights(
        object_id: str,
        meta_access_token: Optional[str] = None,
        date_range: Union[str, Dict[str, str]] = "maximum",
        breakdown: str = "",
        breakdowns: Optional[List[str]] = None,
        action_breakdowns: Optional[List[str]] = None,
        summary_action_breakdowns: Optional[List[str]] = None,
        level: str = "ad",
        page_size: int = 25,
        page_cursor: str = "",
        action_attribution_windows: Optional[List[str]] = None,
        compact: bool = False,
    ) -> str:
        """Fetch insights for an account, campaign, ad set, or ad."""
        if not str(object_id or "").strip():
            return json.dumps({"error": "No object ID provided"}, indent=2)
    
        params: Dict[str, Any] = {
            "fields": _DEFAULT_FIELDS,
            "level": level,
            "page_size": int(page_size),
        }
    
        time_params, time_error, normalization_warnings = normalize_time_input(date_range, default_preset="maximum")
        if time_error:
            return json.dumps(time_error, indent=2)
        params.update(time_params or {})
    
        breakdown_params, breakdown_warnings = normalize_breakdown_inputs(
            breakdown=breakdown,
            breakdowns=breakdowns,
            action_breakdowns=action_breakdowns,
            summary_action_breakdowns=summary_action_breakdowns,
        )
        params.update(breakdown_params)
        normalization_warnings.extend(breakdown_warnings)
    
        if page_cursor:
            params["page_cursor"] = page_cursor
    
        deprecated_windows = _deprecated_windows(action_attribution_windows)
        if action_attribution_windows:
            params["action_attribution_windows"] = list(action_attribution_windows)
    
        payload = await make_api_request(f"{object_id}/insights", meta_access_token, params)
    
        if isinstance(payload, dict):
            _append_warnings(payload, normalization_warnings)
            _with_warning(payload, deprecated_windows)
    
            if compact and isinstance(payload.get("data"), list):
                payload["data"] = [
                    _strip_redundant_actions(row) if isinstance(row, dict) else row
                    for row in payload["data"]
                ]
    
        return json.dumps(payload, indent=2)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/EfrainTorres/armavita-meta-ads-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server