Extract a metadata-only JSON object of unique tags grouped by tag group (including synthetic device_tags), unique attribute keys, unique device attribute keys, and unique subscription lists from audience data. Use when you need a taxonomy catalog without exporting audience identities.
This workflow composes the audience retrieval approach and outputs a single metadata-only JSON object. It is designed for taxonomy discovery, governance, and integration planning, while explicitly excluding channel-level and user-level identifiers from output.
ios and IOS collapse to ios)Produce one JSON object with this structure:
{
"tag_groups": {
"device_tags": ["imported_token", "tag_example"],
"ua_mobile_platform": ["android", "ios"],
"ua_opt_in": ["false", "true"],
"named_user_id": []
},
"attributes": ["cid"],
"device_attributes": ["ua_named_user_id", "ua_device_os"],
"subscription_lists": ["list_a", "list_b"],
"excluded": {
"tag_group_values": ["named_user_id"]
}
}
named_user_id as a tag group key if present, but do not include its values.Use the Download Entire Audience workflow to fetch channels at scale. You can execute this in parallel as documented there, but this workflow only keeps metadata fields during processing.
Expected channel fields of interest:
tags (top-level array)tag_groups (object of group -> array of values)attributes (object keys only)device_attributes (object keys only)subscription_lists (array)Initialize in-memory sets (or equivalent deduplicated collections):
tag_groups_map: map of group_name -> set(values)attributes_setdevice_attributes_setsubscription_lists_setAlso initialize:
device_tags inside tag_groups_map{"named_user_id"}For each channel record:
tags into tag_groups_map["device_tags"].tag_groups:
named_user_id, create/retain the group key but skip values.attributes into attributes_set.device_attributes into device_attributes_set.subscription_lists into subscription_lists_set.Recommended value normalization:
IOS -> ios)Convert each set to a sorted array for deterministic output:
tag_groups[group] -> sorted arrayattributes -> sorted arraydevice_attributes -> sorted arraysubscription_lists -> sorted arrayInclude explicit exclusions metadata:
"excluded": {
"tag_group_values": ["named_user_id"]
}
Validation checklist:
tag_groups.device_tags exists (even if empty)named_user_id appears as a group key with an empty array when observed in source datadevice_tags)named_user_id values excluded).