> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage Audiences

> Creates a Google Analytics 4 audience (remarketing list) from native filter clauses, renames or re-describes an existing one, or archives it

Creates a Google Analytics 4 audience (remarketing list) from native filter clauses, renames or re-describes an existing one, or archives it. Filters and membership duration are fixed after creation; audiences cannot be deleted or unarchived and sync to linked Google Ads accounts.

| | |
| - | - |
| **App** | GA4 |
| **Operation ID** | `ga4_manage_audiences` |
| **Type** | Action |
| **Connection** | `ga4` (required) |
| **Credits per run** | 1 |
| **Agent / MCP tool** | Yes |
| **Requires approval** | Yes (write operation) |

## Inputs

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `account` | array (also accepts a comma-separated string) | No | - | The GA4 property to change. Only one property at a time. |
| `action` | string or SelectableOption | Yes | - | 'create' builds a new audience from filter clauses; 'update' changes the display name or description of an existing audience (its filters and membership duration are fixed by Google after creation); 'archive' retires it (audiences cannot be deleted or unarchived). Options: 'create', 'update', 'archive'. |
| `audience_id` | string | No | - | Numeric id of the audience to update or archive, e.g. '6636293497'. Read ids from ga4\_get\_property\_settings with setting 'audiences'. |
| `display_name` | string | No | - | Audience name shown in GA4 and Google Ads. Required on create. |
| `description` | string | No | - | Audience description. Required by Google on create. |
| `membership_duration_days` | integer | No | - | How many days a user stays in the audience after qualifying, 1 to 540. Required on create and fixed afterwards. |
| `exclusion_duration_mode` | string or SelectableOption | No | - | Only when a clause has clause\_type EXCLUDE: 'EXCLUDE\_TEMPORARILY' removes users while they match the exclusion, 'EXCLUDE\_PERMANENTLY' removes them for good. Fixed after creation. |
| `filter_clauses` | array of object or string | No | - | Audience definition as the Admin API filterClauses array (object or JSON string), sent to Google as-is and validated by Google. Each clause has clauseType INCLUDE or EXCLUDE and either simpleFilter \{scope, filterExpression} or sequenceFilter. Google requires the top-level filterExpression to be an andGroup whose children are orGroups; the filters (eventFilter, dimensionOrMetricFilter, notExpression) go inside the orGroup. Example, users who purchased: \[\{"clauseType":"INCLUDE","simpleFilter":\{"scope":"AUDIENCE\_FILTER\_SCOPE\_ACROSS\_ALL\_SESSIONS","filterExpression":\{"andGroup":\{"filterExpressions":\[\{"orGroup":\{"filterExpressions":\[\{"eventFilter":\{"eventName":"purchase"}}]}}]}}}}]. Dimension and metric filters use dimensionOrMetricFilter with fieldName (e.g. 'country', 'customUser:plan') and stringFilter, inListFilter, numericFilter or betweenFilter. Required on create, fixed afterwards. |
| `event_trigger` | object or string | No | - | Optional event to log when a user joins the audience, as the Admin API eventTrigger object: \{"eventName":"joined\_vip","logCondition":"AUDIENCE\_JOINED"} (or "AUDIENCE\_MEMBERSHIP\_RENEWED"). Fixed after creation. |

### SelectableOption

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `value` | string | Yes | - | |
| `label` | string | Yes | - | |

## Output

**Type**: `Dict`

Returns the saved audience: id, display name, description, membership duration and exclusion mode.

**Fields**: `property_id`, `status`, `audience_id`, `display_name`, `description`, `membership_duration_days`, `ads_personalization_enabled`, `exclusion_duration_mode`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.