get_adsets_by_campaign
Fetch ad sets from a Facebook campaign, applying status filters, field selection, and pagination to analyze performance.
Instructions
Retrieves ad sets associated with a specific Facebook campaign.
This function allows querying all ad sets belonging to a specific campaign, with filtering options, pagination, and field selection.
Args: campaign_id (str): The ID of the campaign to retrieve ad sets from. fields (Optional[List[str]]): A list of specific fields to retrieve for each ad set. If None, a default set of fields will be returned. See get_adset_by_id for a comprehensive list of available fields. filtering (Optional[List[dict]]): A list of filter objects to apply to the data. Each object should have 'field', 'operator', and 'value' keys. Operators include: 'EQUAL', 'NOT_EQUAL', 'GREATER_THAN', 'GREATER_THAN_OR_EQUAL', 'LESS_THAN', 'LESS_THAN_OR_EQUAL', 'IN_RANGE', 'NOT_IN_RANGE', 'CONTAIN', 'NOT_CONTAIN', 'IN', 'NOT_IN', 'EMPTY', 'NOT_EMPTY'. Example: [{'field': 'daily_budget', 'operator': 'GREATER_THAN', 'value': 1000}] limit (Optional[int]): Maximum number of ad sets to return per page. Default is 25, max is 100. after (Optional[str]): Pagination cursor for the next page. From response['paging']['cursors']['after']. before (Optional[str]): Pagination cursor for the previous page. From response['paging']['cursors']['before']. effective_status (Optional[List[str]]): Filter ad sets by their effective status. Options include: 'ACTIVE', 'PAUSED', 'DELETED', 'PENDING_REVIEW', 'DISAPPROVED', 'PREAPPROVED', 'PENDING_BILLING_INFO', 'ARCHIVED', 'WITH_ISSUES'. date_format (Optional[str]): Format for date responses. Options: - 'U': Unix timestamp (seconds since epoch) - 'Y-m-d H:i:s': MySQL datetime format - None: ISO 8601 format (default)
Returns: Dict: A dictionary containing the requested ad sets. The main results are in the 'data' list, and pagination info is in the 'paging' object.
Example: ```python # Get all active ad sets from a campaign adsets = get_adsets_by_campaign( campaign_id="23843211234567", fields=["name", "effective_status", "daily_budget", "targeting", "optimization_goal"], effective_status=["ACTIVE"], limit=50 )
# Get ad sets with specific optimization goals
conversion_adsets = get_adsets_by_campaign(
campaign_id="23843211234567",
fields=["name", "optimization_goal", "billing_event", "bid_amount"],
filtering=[{
'field': 'optimization_goal',
'operator': 'IN',
'value': ['OFFSITE_CONVERSIONS', 'VALUE']
}]
)
# Fetch the next page if available using the pagination cursor
next_page_cursor = adsets.get("paging", {}).get("cursors", {}).get("after")
if next_page_cursor:
next_page = get_adsets_by_campaign(
campaign_id="23843211234567",
fields=["name", "effective_status", "daily_budget", "targeting"],
effective_status=["ACTIVE"],
limit=50,
after=next_page_cursor
)
```
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | ||
| limit | No | ||
| before | No | ||
| fields | No | ||
| filtering | No | ||
| campaign_id | Yes | ||
| date_format | No | ||
| effective_status | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |