Create a new Reddit target group with name and targeting criteria (communities, interests, keywords, location).
PREREQUISITE: All references MUST come from search_reddit_criteria. estimate_target_group with channel="REDDIT" first is MANDATORY: verify isMatchCountTooSmall=false and report the reach to the user BEFORE creating. Same bar as create_target_group and update_target_group (PRD-31759). Reddit estimation went live with PRD-31996; before it there was no way to size one of these, which is why a Reddit target group could be created at zero reach with nothing noticing.
USE FOR: "create a Reddit target group named X targeting r/technology", "save this Reddit audience as X".
WARNING: CHANNEL: Only use this tool when the user explicitly asked for a REDDIT target group. Do NOT infer REDDIT from the underlying audience NAMES (e.g. an audience called "Reddit Conquest Mktg LI_n7q" does NOT mean the user wants a REDDIT target group — audience naming is human convention, not a routing signal). Default to `create_target_group` (LINKEDIN) when channel is unspecified; ask the user if unsure.
TARGETING STRUCTURE (LOCATION must be the FIRST include block with isModifiable=false):
{
"include": [
{
"isModifiable": false,
"criteria": [{"type": "LOCATION", "data": {
"countries": [229],
"states": []
}}],
"audiences": []
},
{
"isModifiable": true,
"criteria": [{"type": "COMMUNITIES", "data": [
{"externalId": "t5_2qh1i", "name": "r/technology"}
]}],
"audiences": []
}
],
"exclude": {
"isModifiable": true,
"criteria": [{"type": "KEYWORDS", "data": [{"externalId": "kw_123", "name": "crypto"}]}],
"audiences": []
}
}
REDDIT CRITERIA TYPES (all references from search_reddit_criteria):
- LOCATION: {"countries": [<id>, ...], "states": [<id>, ...]} — arrays of NUMERIC Metadata IDs (use the numeric `id` from search_reddit_criteria locations, NOT the {id, name} object). MANDATORY FIRST in include, isModifiable=false
- COMMUNITIES: Array of {externalId, name} — subreddits (e.g. r/technology)
- INTERESTS: Array of {externalId, name} — Reddit interest categories
- KEYWORDS: Array of {externalId, name} — contextual keywords
INCLUDE: Array of rule blocks (AND-joined). EXCLUDE: single object with `criteria` and `audiences`.
AUDIENCES (combine with the criteria above to build complex target groups): each include
block and the exclude object also accept an `audiences` array, so you can mix existing
Metadata audiences with the Reddit criteria in the same block. Get them from the audience
listing tools / get_matched_audiences. Each audience entry: {mdAudienceId, name, type,
matchCount, matchCountType: "FIXED_SIZE", inactive, criteria: [the audience's own criteria]}.
`mdAudienceId` MUST be the numeric Custom Audience ID (integer, e.g. 49067): the
`customAudienceId` / `mdAudienceId` field of a get_matched_audiences row, NEVER that row's
`id` (the channel row id) and NEVER the audience name string; the platform's `mdAudienceId`
is typed `Long`, the tool rejects non-integer values pre-flight, and it resolves every id on
the platform before the write so a wrong id, an archived audience or one with no live
segment on the channel is refused with the reason instead of a "too small" error. In the exclude block, use the EXCLUDE variant of the type
(e.g. RETARGETING_EXCLUDE).
RESPONSE: {id, name, channel, audienceSize, status, createdDate, targeting}
WORKFLOW: search_reddit_criteria → build targeting (LOCATION first) → confirm → create_reddit_target_group