diff --git a/CHANGELOG.md b/CHANGELOG.md index 057c03c..231e132 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented here. +## [1.1.0] - 2026-10-20 +- Default `cattax` is now `"9"` (IAB Content Taxonomy 3.1) in the Python pipeline, CLI, web server and JS mapper. The old default `"2"` means Content Taxonomy 2.0 in AdCOM, so receivers read 3.x IDs as 2.0 codes. +- npm package: ships the full catalogs the Python package already had (3.1: 704 categories; 2.2: 1,197). The published 1.0.0 shipped a 6-row 3.x sample with IDs that are not in the official file (for example "3-5-2" for Cooking, which is 216). +- `synonyms_3x.json`: keyed by label, which is how both mappers look synonyms up. The path-keyed entries never matched, and "Team Sports" is not a 3.1 label. +- README examples use real 3.1 IDs and `cattax: "9"`. +- A record with a 2.x `code` and no `label` now maps: the label is looked up in the bundled 2.x catalog (1,197 codes). Before, `{"code": "1"}` returned no IDs. A supplied label still wins; `label` is optional in the TypeScript `InputRecord`. + ## [0.3.1] - 2025-09-10 - CLI: add `update-catalogs` subcommand (fetch exact or latest 2.x/3.x) - Script: `scripts/update_catalogs.py` robust TSV header detection diff --git a/README.md b/README.md index 20f1de5..adeb885 100644 --- a/README.md +++ b/README.md @@ -60,8 +60,10 @@ 📺 Watch the 5-minute walkthrough

-Map **IAB Content Taxonomy 2.x** labels/codes to **IAB 3.0** locally with a deterministic → fuzzy → (optional) semantic pipeline. -Outputs are **IAB‑3.0–compatible IDs** for OpenRTB/VAST, with optional **vector attributes** (Channel, Type, Format, Language, Source, Environment) and **SCD** awareness. +> **Targets IAB Content Taxonomy 3.1** and emits `cattax: "9"` by default (AdCOM *List: Category Taxonomies*: 7 = 3.0, 9 = 3.1). Every 3.0 ID still exists in 3.1, so pass `cattax: "7"` if a receiver expects 3.0. Versions before 1.1.0 (npm and PyPI) defaulted to `"2"`, which tells a receiver the IDs are Content Taxonomy 2.0. + +Map **IAB Content Taxonomy 2.x** labels/codes to **IAB Content Taxonomy 3.1** locally with a deterministic → fuzzy → (optional) semantic pipeline. +Outputs are **IAB 3.1 IDs** for OpenRTB/VAST, with optional **vector attributes** (Channel, Type, Format, Language, Source, Environment) and **SCD** awareness. > **Available in both Python and JavaScript/TypeScript** @@ -71,7 +73,7 @@ The IAB Mapper helps you migrate from IAB Content Taxonomy 2.x to 3.0 by: 1. **Input:** Your existing 2.x codes/labels (CSV or JSON) 2. **Process:** Deterministic matching → fuzzy matching → optional semantic enhancement -3. **Output:** Valid IAB 3.0 IDs ready for OpenRTB/VAST integration +3. **Output:** Valid IAB 3.1 IDs ready for OpenRTB/VAST integration **Example:** ``` @@ -79,9 +81,9 @@ The IAB Mapper helps you migrate from IAB Content Taxonomy 2.x to 3.0 by: "1-4","Sports" "2-12","Food & Drink" -# Output: 3.0 IDs +# Output: 3.1 IDs "483","Sports" -"3-5-2","Food & Drink > Cooking" +"216","Food & Drink > Cooking" ``` Perfect for ad tech teams, content platforms, and anyone migrating to IAB 3.0. @@ -147,7 +149,7 @@ result = mapper.map_record({ }) print(result["openrtb"]) -# {"content": {"cat": ["3-5-2", "1026"], "cattax": "2"}} +# {"content": {"cat": ["216", "1026"], "cattax": "9"}} ``` ### JavaScript @@ -164,7 +166,7 @@ const result = mapper.mapRecord({ }); console.log(result.openrtb); -// { content: { cat: ['3-5-2', '1026'], cattax: '2' } } +// { content: { cat: ['216', '1026'], cattax: '9' } } ``` ### TypeScript @@ -217,7 +219,7 @@ iab-mapper/ Both implementations provide: - ✅ **Deterministic alias/exact matching** → fuzzy string matching -- ✅ **IAB 3.0 ID emission** (not just labels) with configurable `cattax` for OpenRTB +- ✅ **IAB 3.1 ID emission** (not just labels) with configurable `cattax` for OpenRTB - ✅ **Multi-category output** per input - ✅ **Vector attributes** support (Channel, Type, Format, Language, Source, Environment) - ✅ **SCD (Sensitive Content) flag** visibility and optional exclusion diff --git a/javascript/README.md b/javascript/README.md index 8094b66..8bf6a48 100644 --- a/javascript/README.md +++ b/javascript/README.md @@ -1,11 +1,13 @@ # @mixpeek/iab-mapper -> Local IAB Content Taxonomy 2.x → 3.0 mapper for Node.js with vectors, SCD, OpenRTB/VAST exporters +> Local IAB Content Taxonomy 2.x → 3.1 mapper for Node.js with vectors, SCD, OpenRTB/VAST exporters [![npm version](https://badge.fury.io/js/@mixpeek%2Fiab-mapper.svg)](https://www.npmjs.com/package/@mixpeek/iab-mapper) [![License: BSD-2-Clause](https://img.shields.io/badge/License-BSD%202--Clause-blue.svg)](https://opensource.org/licenses/BSD-2-Clause) -Map **IAB Content Taxonomy 2.x** labels/codes to **IAB 3.0** locally with deterministic → fuzzy matching. Outputs are **IAB‑3.0–compatible IDs** for OpenRTB/VAST, with optional **vector attributes** (Channel, Type, Format, Language, Source, Environment) and **SCD** awareness. +> **Targets IAB Content Taxonomy 3.1** and emits `cattax: "9"` by default (AdCOM *List: Category Taxonomies*: 7 = 3.0, 9 = 3.1). Every 3.0 ID still exists in 3.1, so pass `cattax: "7"` if a receiver expects 3.0. Versions before 1.1.0 (npm and PyPI) defaulted to `"2"`, which tells a receiver the IDs are Content Taxonomy 2.0. + +Map **IAB Content Taxonomy 2.x** labels/codes to **IAB Content Taxonomy 3.1** locally with deterministic → fuzzy matching. Outputs are **IAB 3.1 IDs** for OpenRTB/VAST, with optional **vector attributes** (Channel, Type, Format, Language, Source, Environment) and **SCD** awareness. This is the **Node.js/TypeScript** version of the [Python iab-mapper](https://github.com/mixpeek/iab-mapper) package. @@ -15,7 +17,7 @@ The IAB Mapper helps you migrate from IAB Content Taxonomy 2.x to 3.0 by: 1. **Input:** Your existing 2.x codes/labels 2. **Process:** Deterministic matching → fuzzy matching -3. **Output:** Valid IAB 3.0 IDs ready for OpenRTB/VAST integration +3. **Output:** Valid IAB 3.1 IDs ready for OpenRTB/VAST integration **Example:** ```javascript @@ -28,7 +30,7 @@ const result = mapper.mapRecord({ }); console.log(result.openrtb); -// { content: { cat: ['3-5-2'], cattax: '2' } } +// { content: { cat: ['216'], cattax: '9' } } ``` Perfect for ad tech teams, content platforms, and anyone migrating to IAB 3.0. @@ -56,7 +58,7 @@ const mapper = new Mapper({ fuzzyMethod: 'rapidfuzz', // or 'tfidf' fuzzyCut: 0.92, // similarity threshold maxTopics: 3, // max topics per result - cattax: '2' // OpenRTB cattax enum + cattax: '9' // OpenRTB cattax: 9 = Content Taxonomy 3.1 }); // Map a single record @@ -103,7 +105,7 @@ console.log(result.openrtb); | `fuzzyCut` | `0.92` | Similarity threshold (0-1). Higher = stricter matching | | `maxTopics` | `3` | Maximum number of topics per result | | `dropScd` | `false` | Exclude Sensitive Content (SCD) categories | -| `cattax` | `'2'` | OpenRTB `content.cattax` enum value | +| `cattax` | `'9'` | OpenRTB `content.cattax` value (9 = Content Taxonomy 3.1, 7 = 3.0) | | `overridesPath` | — | Path to JSON file with manual override mappings | ## 📥 Input Format @@ -232,7 +234,7 @@ const result = mapper.mapRecord({ label: 'Sports' }); const bidRequest = { site: { content: result.openrtb.content - // { cat: ['483'], cattax: '2' } + // { cat: ['483'], cattax: '9' } } }; ``` @@ -252,7 +254,7 @@ const contentCategories = result.vast_contentcat; The package includes sample taxonomy data. For production use, replace with official IAB data: - `data/iab_2x.json` — IAB 2.x taxonomy -- `data/iab_3x.json` — IAB 3.0 taxonomy +- `data/iab_3x.json`: IAB Content Taxonomy 3.1 (704 categories) - `data/synonyms_2x.json` — 2.x synonyms - `data/synonyms_3x.json` — 3.0 synonyms - `data/vectors_*.json` — Vector attribute mappings diff --git a/javascript/data/iab_2x.json b/javascript/data/iab_2x.json index e3c55cd..e51b592 100644 --- a/javascript/data/iab_2x.json +++ b/javascript/data/iab_2x.json @@ -1,8 +1 @@ -[ - {"code": "1-1", "label": "Arts & Entertainment"}, - {"code": "1-2", "label": "Automotive"}, - {"code": "1-3", "label": "Business"}, - {"code": "1-4", "label": "Sports"}, - {"code": "2-12", "label": "Food & Drink"} -] - +[{"code": "1", "label": "Automotive"}, {"code": "2", "label": "Auto Body Styles"}, {"code": "3", "label": "Commercial Trucks"}, {"code": "4", "label": "Sedan"}, {"code": "5", "label": "Station Wagon"}, {"code": "6", "label": "SUV"}, {"code": "7", "label": "Van"}, {"code": "8", "label": "Convertible"}, {"code": "9", "label": "Coupe"}, {"code": "10", "label": "Crossover"}, {"code": "11", "label": "Hatchback"}, {"code": "12", "label": "Microcar"}, {"code": "13", "label": "Minivan"}, {"code": "14", "label": "Off-Road Vehicles"}, {"code": "15", "label": "Pickup Trucks"}, {"code": "16", "label": "Auto Type"}, {"code": "17", "label": "Budget Cars"}, {"code": "18", "label": "Certified Pre-Owned Cars"}, {"code": "19", "label": "Classic Cars"}, {"code": "20", "label": "Concept Cars"}, {"code": "21", "label": "Driverless Cars"}, {"code": "22", "label": "Green Vehicles"}, {"code": "23", "label": "Luxury Cars"}, {"code": "24", "label": "Performance Cars"}, {"code": "25", "label": "Car Culture"}, {"code": "26", "label": "Dash Cam Videos"}, {"code": "27", "label": "Motorcycles"}, {"code": "28", "label": "Road-Side Assistance"}, {"code": "29", "label": "Scooters"}, {"code": "30", "label": "Auto Buying and Selling"}, {"code": "31", "label": "Auto Insurance"}, {"code": "32", "label": "Auto Parts"}, {"code": "33", "label": "Auto Recalls"}, {"code": "34", "label": "Auto Repair"}, {"code": "35", "label": "Auto Safety"}, {"code": "36", "label": "Auto Shows"}, {"code": "37", "label": "Auto Technology"}, {"code": "38", "label": "Auto Infotainment Technologies"}, {"code": "39", "label": "Auto Navigation Systems"}, {"code": "40", "label": "Auto Safety Technologies"}, {"code": "41", "label": "Auto Rentals"}, {"code": "42", "label": "Books and Literature"}, {"code": "43", "label": "Art and Photography Books"}, {"code": "44", "label": "Biographies"}, {"code": "45", "label": "Children's Literature"}, {"code": "46", "label": "Comics and Graphic Novels"}, {"code": "47", "label": "Cookbooks"}, {"code": "48", "label": "Fiction"}, {"code": "49", "label": "Poetry"}, {"code": "50", "label": "Travel Books"}, {"code": "51", "label": "Young Adult Literature"}, {"code": "52", "label": "Business and Finance"}, {"code": "53", "label": "Business"}, {"code": "54", "label": "Business Accounting & Finance"}, {"code": "55", "label": "Human Resources"}, {"code": "56", "label": "Large Business"}, {"code": "57", "label": "Logistics"}, {"code": "58", "label": "Marketing and Advertising"}, {"code": "59", "label": "Sales"}, {"code": "60", "label": "Small and Medium-sized Business"}, {"code": "61", "label": "Startups"}, {"code": "62", "label": "Business Administration"}, {"code": "63", "label": "Business Banking & Finance"}, {"code": "64", "label": "Angel Investment"}, {"code": "65", "label": "Bankruptcy"}, {"code": "66", "label": "Business Loans"}, {"code": "67", "label": "Debt Factoring & Invoice Discounting"}, {"code": "68", "label": "Mergers and Acquisitions"}, {"code": "69", "label": "Private Equity"}, {"code": "70", "label": "Sale & Lease Back"}, {"code": "71", "label": "Venture Capital"}, {"code": "72", "label": "Business I.T."}, {"code": "73", "label": "Business Operations"}, {"code": "74", "label": "Consumer Issues"}, {"code": "75", "label": "Recalls"}, {"code": "76", "label": "Executive Leadership & Management"}, {"code": "77", "label": "Government Business"}, {"code": "78", "label": "Green Solutions"}, {"code": "79", "label": "Business Utilities"}, {"code": "80", "label": "Economy"}, {"code": "81", "label": "Commodities"}, {"code": "82", "label": "Currencies"}, {"code": "83", "label": "Financial Crisis"}, {"code": "84", "label": "Financial Reform"}, {"code": "85", "label": "Financial Regulation"}, {"code": "86", "label": "Gasoline Prices"}, {"code": "87", "label": "Housing Market"}, {"code": "88", "label": "Interest Rates"}, {"code": "89", "label": "Job Market"}, {"code": "90", "label": "Industries"}, {"code": "91", "label": "Advertising Industry"}, {"code": "92", "label": "Education industry"}, {"code": "93", "label": "Entertainment Industry"}, {"code": "94", "label": "Environmental Services Industry"}, {"code": "95", "label": "Financial Industry"}, {"code": "96", "label": "Food Industry"}, {"code": "97", "label": "Healthcare Industry"}, {"code": "98", "label": "Hospitality Industry"}, {"code": "99", "label": "Information Services Industry"}, {"code": "100", "label": "Legal Services Industry"}, {"code": "101", "label": "Logistics and Transportation Industry"}, {"code": "102", "label": "Agriculture"}, {"code": "103", "label": "Management Consulting Industry"}, {"code": "104", "label": "Manufacturing Industry"}, {"code": "105", "label": "Mechanical and Industrial Engineering Industry"}, {"code": "106", "label": "Media Industry"}, {"code": "107", "label": "Metals Industry"}, {"code": "108", "label": "Non-Profit Organizations"}, {"code": "109", "label": "Pharmaceutical Industry"}, {"code": "110", "label": "Power and Energy Industry"}, {"code": "111", "label": "Publishing Industry"}, {"code": "112", "label": "Real Estate Industry"}, {"code": "113", "label": "Apparel Industry"}, {"code": "114", "label": "Retail Industry"}, {"code": "115", "label": "Technology Industry"}, {"code": "116", "label": "Telecommunications Industry"}, {"code": "117", "label": "Automotive Industry"}, {"code": "118", "label": "Aviation Industry"}, {"code": "119", "label": "Biotech and Biomedical Industry"}, {"code": "120", "label": "Civil Engineering Industry"}, {"code": "121", "label": "Construction Industry"}, {"code": "122", "label": "Defense Industry"}, {"code": "123", "label": "Careers"}, {"code": "124", "label": "Apprenticeships"}, {"code": "125", "label": "Career Advice"}, {"code": "126", "label": "Career Planning"}, {"code": "127", "label": "Job Search"}, {"code": "128", "label": "Job Fairs"}, {"code": "129", "label": "Resume Writing and Advice"}, {"code": "130", "label": "Remote Working"}, {"code": "131", "label": "Vocational Training"}, {"code": "132", "label": "Education"}, {"code": "133", "label": "Adult Education"}, {"code": "134", "label": "Private School"}, {"code": "135", "label": "Secondary Education"}, {"code": "136", "label": "Special Education"}, {"code": "137", "label": "College Education"}, {"code": "138", "label": "College Planning"}, {"code": "139", "label": "Postgraduate Education"}, {"code": "140", "label": "Professional School"}, {"code": "141", "label": "Undergraduate Education"}, {"code": "142", "label": "Early Childhood Education"}, {"code": "143", "label": "Educational Assessment"}, {"code": "144", "label": "Standardized Testing"}, {"code": "145", "label": "Homeschooling"}, {"code": "146", "label": "Homework and Study"}, {"code": "147", "label": "Language Learning"}, {"code": "148", "label": "Online Education"}, {"code": "149", "label": "Primary Education"}, {"code": "150", "label": "Events and Attractions"}, {"code": "151", "label": "Amusement and Theme Parks"}, {"code": "152", "label": "Fashion Events"}, {"code": "153", "label": "Historic Site and Landmark Tours"}, {"code": "154", "label": "Malls & Shopping Centers"}, {"code": "155", "label": "Museums & Galleries"}, {"code": "156", "label": "Musicals"}, {"code": "157", "label": "National & Civic Holidays"}, {"code": "158", "label": "Nightclubs"}, {"code": "159", "label": "Outdoor Activities"}, {"code": "160", "label": "Parks & Nature"}, {"code": "161", "label": "Party Supplies and Decorations"}, {"code": "162", "label": "Awards Shows"}, {"code": "163", "label": "Personal Celebrations & Life Events"}, {"code": "164", "label": "Anniversary"}, {"code": "165", "label": "Wedding"}, {"code": "166", "label": "Baby Shower"}, {"code": "167", "label": "Bachelor Party"}, {"code": "168", "label": "Bachelorette Party"}, {"code": "169", "label": "Birth"}, {"code": "170", "label": "Birthday"}, {"code": "171", "label": "Funeral"}, {"code": "172", "label": "Graduation"}, {"code": "173", "label": "Prom"}, {"code": "174", "label": "Political Event"}, {"code": "175", "label": "Religious Events"}, {"code": "176", "label": "Sporting Events"}, {"code": "177", "label": "Theater Venues and Events"}, {"code": "178", "label": "Zoos & Aquariums"}, {"code": "179", "label": "Bars & Restaurants"}, {"code": "180", "label": "Business Expos & Conferences"}, {"code": "181", "label": "Casinos & Gambling"}, {"code": "182", "label": "Cinemas and Events"}, {"code": "183", "label": "Comedy Events"}, {"code": "184", "label": "Concerts & Music Events"}, {"code": "185", "label": "Fan Conventions"}, {"code": "186", "label": "Family and Relationships"}, {"code": "187", "label": "Bereavement"}, {"code": "188", "label": "Dating"}, {"code": "189", "label": "Divorce"}, {"code": "190", "label": "Eldercare"}, {"code": "191", "label": "Marriage and Civil Unions"}, {"code": "192", "label": "Parenting"}, {"code": "193", "label": "Adoption and Fostering"}, {"code": "194", "label": "Daycare and Pre-School"}, {"code": "195", "label": "Internet Safety"}, {"code": "196", "label": "Parenting Babies and Toddlers"}, {"code": "197", "label": "Parenting Children Aged 4-11"}, {"code": "198", "label": "Parenting Teens"}, {"code": "199", "label": "Special Needs Kids"}, {"code": "200", "label": "Single Life"}, {"code": "201", "label": "Fine Art"}, {"code": "202", "label": "Costume"}, {"code": "203", "label": "Dance"}, {"code": "204", "label": "Design"}, {"code": "205", "label": "Digital Arts"}, {"code": "206", "label": "Fine Art Photography"}, {"code": "207", "label": "Modern Art"}, {"code": "208", "label": "Opera"}, {"code": "209", "label": "Theater"}, {"code": "210", "label": "Food & Drink"}, {"code": "211", "label": "Alcoholic Beverages"}, {"code": "212", "label": "Vegan Diets"}, {"code": "213", "label": "Vegetarian Diets"}, {"code": "214", "label": "World Cuisines"}, {"code": "215", "label": "Barbecues and Grilling"}, {"code": "216", "label": "Cooking"}, {"code": "217", "label": "Desserts and Baking"}, {"code": "218", "label": "Dining Out"}, {"code": "219", "label": "Food Allergies"}, {"code": "220", "label": "Food Movements"}, {"code": "221", "label": "Healthy Cooking and Eating"}, {"code": "222", "label": "Non-Alcoholic Beverages"}, {"code": "223", "label": "Healthy Living"}, {"code": "224", "label": "Children's Health"}, {"code": "225", "label": "Fitness and Exercise"}, {"code": "226", "label": "Participant Sports"}, {"code": "227", "label": "Running and Jogging"}, {"code": "228", "label": "Men's Health"}, {"code": "229", "label": "Nutrition"}, {"code": "230", "label": "Senior Health"}, {"code": "231", "label": "Weight Loss"}, {"code": "232", "label": "Wellness"}, {"code": "233", "label": "Alternative Medicine"}, {"code": "234", "label": "Herbs and Supplements"}, {"code": "235", "label": "Holistic Health"}, {"code": "236", "label": "Physical Therapy"}, {"code": "237", "label": "Smoking Cessation"}, {"code": "238", "label": "Women's Health"}, {"code": "239", "label": "Hobbies & Interests"}, {"code": "240", "label": "Antiquing and Antiques"}, {"code": "241", "label": "Magic and Illusion"}, {"code": "242", "label": "Model Toys"}, {"code": "243", "label": "Musical Instruments"}, {"code": "244", "label": "Paranormal Phenomena"}, {"code": "245", "label": "Radio Control"}, {"code": "246", "label": "Sci-fi and Fantasy"}, {"code": "247", "label": "Workshops and Classes"}, {"code": "248", "label": "Arts and Crafts"}, {"code": "249", "label": "Beadwork"}, {"code": "250", "label": "Candle and Soap Making"}, {"code": "251", "label": "Drawing and Sketching"}, {"code": "252", "label": "Jewelry Making"}, {"code": "253", "label": "Needlework"}, {"code": "254", "label": "Painting"}, {"code": "255", "label": "Photography"}, {"code": "256", "label": "Scrapbooking"}, {"code": "257", "label": "Woodworking"}, {"code": "258", "label": "Beekeeping"}, {"code": "259", "label": "Birdwatching"}, {"code": "260", "label": "Cigars"}, {"code": "261", "label": "Collecting"}, {"code": "262", "label": "Comic Books"}, {"code": "263", "label": "Stamps and Coins"}, {"code": "264", "label": "Content Production"}, {"code": "265", "label": "Audio Production"}, {"code": "266", "label": "Freelance Writing"}, {"code": "267", "label": "Screenwriting"}, {"code": "268", "label": "Video Production"}, {"code": "269", "label": "Games and Puzzles"}, {"code": "270", "label": "Board Games and Puzzles"}, {"code": "271", "label": "Card Games"}, {"code": "272", "label": "Roleplaying Games"}, {"code": "273", "label": "Genealogy and Ancestry"}, {"code": "274", "label": "Home & Garden"}, {"code": "275", "label": "Gardening"}, {"code": "276", "label": "Remodeling & Construction"}, {"code": "277", "label": "Smart Home"}, {"code": "278", "label": "Home Appliances"}, {"code": "279", "label": "Home Entertaining"}, {"code": "280", "label": "Home Improvement"}, {"code": "281", "label": "Home Security"}, {"code": "282", "label": "Indoor Environmental Quality"}, {"code": "283", "label": "Interior Decorating"}, {"code": "284", "label": "Landscaping"}, {"code": "285", "label": "Outdoor Decorating"}, {"code": "286", "label": "Medical Health"}, {"code": "287", "label": "Diseases and Conditions"}, {"code": "288", "label": "Allergies"}, {"code": "289", "label": "Ear, Nose and Throat Conditions"}, {"code": "290", "label": "Endocrine and Metabolic Diseases"}, {"code": "291", "label": "Hormonal Disorders"}, {"code": "292", "label": "Menopause"}, {"code": "293", "label": "Thyroid Disorders"}, {"code": "294", "label": "Eye and Vision Conditions"}, {"code": "295", "label": "Foot Health"}, {"code": "296", "label": "Heart and Cardiovascular Diseases"}, {"code": "297", "label": "Infectious Diseases"}, {"code": "298", "label": "Injuries"}, {"code": "299", "label": "First Aid"}, {"code": "300", "label": "Lung and Respiratory Health"}, {"code": "301", "label": "Mental Health"}, {"code": "302", "label": "Reproductive Health"}, {"code": "303", "label": "Birth Control"}, {"code": "304", "label": "Infertility"}, {"code": "305", "label": "Pregnancy"}, {"code": "306", "label": "Blood Disorders"}, {"code": "307", "label": "Sexual Health"}, {"code": "308", "label": "Sexual Conditions"}, {"code": "309", "label": "Skin and Dermatology"}, {"code": "310", "label": "Sleep Disorders"}, {"code": "311", "label": "Substance Abuse"}, {"code": "312", "label": "Bone and Joint Conditions"}, {"code": "313", "label": "Brain and Nervous System Disorders"}, {"code": "314", "label": "Cancer"}, {"code": "315", "label": "Cold and Flu"}, {"code": "316", "label": "Dental Health"}, {"code": "317", "label": "Diabetes"}, {"code": "318", "label": "Digestive Disorders"}, {"code": "319", "label": "Medical Tests"}, {"code": "320", "label": "Pharmaceutical Drugs"}, {"code": "321", "label": "Surgery"}, {"code": "322", "label": "Vaccines"}, {"code": "323", "label": "Cosmetic Medical Services"}, {"code": "324", "label": "Movies"}, {"code": "325", "label": "Action and Adventure Movies"}, {"code": "326", "label": "Romance Movies"}, {"code": "327", "label": "Science Fiction Movies"}, {"code": "328", "label": "Special Interest Movies"}, {"code": "329", "label": "Animation Movies"}, {"code": "330", "label": "Comedy Movies"}, {"code": "331", "label": "Crime and Mystery Movies"}, {"code": "332", "label": "Documentary Movies"}, {"code": "333", "label": "Drama Movies"}, {"code": "334", "label": "Family and Children Movies"}, {"code": "335", "label": "Fantasy Movies"}, {"code": "336", "label": "Horror Movies"}, {"code": "337", "label": "World Movies"}, {"code": "338", "label": "Music and Audio"}, {"code": "339", "label": "Adult Contemporary Music"}, {"code": "340", "label": "Soft AC Music"}, {"code": "341", "label": "Urban AC Music"}, {"code": "342", "label": "Adult Album Alternative"}, {"code": "343", "label": "Alternative Music"}, {"code": "344", "label": "Children's Music"}, {"code": "345", "label": "Classic Hits"}, {"code": "346", "label": "Classical Music"}, {"code": "347", "label": "College Radio"}, {"code": "348", "label": "Comedy (Music and Audio)"}, {"code": "349", "label": "Contemporary Hits/Pop/Top 40"}, {"code": "350", "label": "Country Music"}, {"code": "351", "label": "Dance and Electronic Music"}, {"code": "352", "label": "World/International Music"}, {"code": "353", "label": "Songwriters/Folk"}, {"code": "354", "label": "Gospel Music"}, {"code": "355", "label": "Hip Hop Music"}, {"code": "356", "label": "Inspirational/New Age Music"}, {"code": "357", "label": "Jazz"}, {"code": "358", "label": "Oldies/Adult Standards"}, {"code": "359", "label": "Reggae"}, {"code": "360", "label": "Blues"}, {"code": "361", "label": "Religious (Music and Audio)"}, {"code": "362", "label": "R&B/Soul/Funk"}, {"code": "363", "label": "Rock Music"}, {"code": "364", "label": "Album-oriented Rock"}, {"code": "365", "label": "Alternative Rock"}, {"code": "366", "label": "Classic Rock"}, {"code": "367", "label": "Hard Rock"}, {"code": "368", "label": "Soft Rock"}, {"code": "369", "label": "Soundtracks, TV and Showtunes"}, {"code": "370", "label": "Sports Radio"}, {"code": "371", "label": "Talk Radio"}, {"code": "372", "label": "Business News Radio"}, {"code": "373", "label": "Educational Radio"}, {"code": "374", "label": "News Radio"}, {"code": "375", "label": "News/Talk Radio"}, {"code": "376", "label": "Public Radio"}, {"code": "377", "label": "Urban Contemporary Music"}, {"code": "378", "label": "Variety (Music and Audio)"}, {"code": "379", "label": "News and Politics"}, {"code": "380", "label": "Crime"}, {"code": "381", "label": "Disasters"}, {"code": "382", "label": "International News"}, {"code": "383", "label": "Law"}, {"code": "384", "label": "Local News"}, {"code": "385", "label": "National News"}, {"code": "386", "label": "Politics"}, {"code": "387", "label": "Elections"}, {"code": "388", "label": "Political Issues"}, {"code": "389", "label": "War and Conflicts"}, {"code": "390", "label": "Weather"}, {"code": "391", "label": "Personal Finance"}, {"code": "392", "label": "Consumer Banking"}, {"code": "393", "label": "Financial Assistance"}, {"code": "394", "label": "Government Support and Welfare"}, {"code": "395", "label": "Student Financial Aid"}, {"code": "396", "label": "Financial Planning"}, {"code": "397", "label": "Frugal Living"}, {"code": "398", "label": "Insurance"}, {"code": "399", "label": "Health Insurance"}, {"code": "400", "label": "Home Insurance"}, {"code": "401", "label": "Life Insurance"}, {"code": "402", "label": "Motor Insurance"}, {"code": "403", "label": "Pet Insurance"}, {"code": "404", "label": "Travel Insurance"}, {"code": "405", "label": "Personal Debt"}, {"code": "406", "label": "Credit Cards"}, {"code": "407", "label": "Home Financing"}, {"code": "408", "label": "Personal Loans"}, {"code": "409", "label": "Student Loans"}, {"code": "410", "label": "Personal Investing"}, {"code": "411", "label": "Hedge Funds"}, {"code": "412", "label": "Mutual Funds"}, {"code": "413", "label": "Options"}, {"code": "414", "label": "Stocks and Bonds"}, {"code": "415", "label": "Personal Taxes"}, {"code": "416", "label": "Retirement Planning"}, {"code": "417", "label": "Home Utilities"}, {"code": "418", "label": "Gas and Electric"}, {"code": "419", "label": "Internet Service Providers"}, {"code": "420", "label": "Phone Services"}, {"code": "421", "label": "Water Services"}, {"code": "422", "label": "Pets"}, {"code": "423", "label": "Birds"}, {"code": "424", "label": "Cats"}, {"code": "425", "label": "Dogs"}, {"code": "426", "label": "Fish and Aquariums"}, {"code": "427", "label": "Large Animals"}, {"code": "428", "label": "Pet Adoptions"}, {"code": "429", "label": "Reptiles"}, {"code": "430", "label": "Veterinary Medicine"}, {"code": "431", "label": "Pet Supplies"}, {"code": "432", "label": "Pop Culture"}, {"code": "433", "label": "Celebrity Deaths"}, {"code": "434", "label": "Celebrity Families"}, {"code": "435", "label": "Celebrity Homes"}, {"code": "436", "label": "Celebrity Pregnancy"}, {"code": "437", "label": "Celebrity Relationships"}, {"code": "438", "label": "Celebrity Scandal"}, {"code": "439", "label": "Celebrity Style"}, {"code": "440", "label": "Humor and Satire"}, {"code": "441", "label": "Real Estate"}, {"code": "442", "label": "Apartments"}, {"code": "443", "label": "Retail Property"}, {"code": "444", "label": "Vacation Properties"}, {"code": "445", "label": "Developmental Sites"}, {"code": "446", "label": "Hotel Properties"}, {"code": "447", "label": "Houses"}, {"code": "448", "label": "Industrial Property"}, {"code": "449", "label": "Land and Farms"}, {"code": "450", "label": "Office Property"}, {"code": "451", "label": "Real Estate Buying and Selling"}, {"code": "452", "label": "Real Estate Renting and Leasing"}, {"code": "453", "label": "Religion & Spirituality"}, {"code": "454", "label": "Agnosticism"}, {"code": "455", "label": "Spirituality"}, {"code": "456", "label": "Astrology"}, {"code": "457", "label": "Atheism"}, {"code": "458", "label": "Buddhism"}, {"code": "459", "label": "Christianity"}, {"code": "460", "label": "Hinduism"}, {"code": "461", "label": "Islam"}, {"code": "462", "label": "Judaism"}, {"code": "463", "label": "Sikhism"}, {"code": "464", "label": "Science"}, {"code": "465", "label": "Biological Sciences"}, {"code": "466", "label": "Chemistry"}, {"code": "467", "label": "Environment"}, {"code": "468", "label": "Genetics"}, {"code": "469", "label": "Geography"}, {"code": "470", "label": "Geology"}, {"code": "471", "label": "Physics"}, {"code": "472", "label": "Space and Astronomy"}, {"code": "473", "label": "Shopping"}, {"code": "474", "label": "Coupons and Discounts"}, {"code": "475", "label": "Flower Shopping"}, {"code": "476", "label": "Gifts and Greetings Cards"}, {"code": "477", "label": "Grocery Shopping"}, {"code": "478", "label": "Holiday Shopping"}, {"code": "479", "label": "Household Supplies"}, {"code": "480", "label": "Lotteries and Scratchcards"}, {"code": "481", "label": "Sales and Promotions"}, {"code": "482", "label": "Children's Games and Toys"}, {"code": "483", "label": "Sports"}, {"code": "484", "label": "American Football"}, {"code": "485", "label": "Boxing"}, {"code": "486", "label": "Cheerleading"}, {"code": "487", "label": "College Sports"}, {"code": "488", "label": "College Football"}, {"code": "489", "label": "College Basketball"}, {"code": "490", "label": "College Baseball"}, {"code": "491", "label": "Cricket"}, {"code": "492", "label": "Cycling"}, {"code": "493", "label": "Darts"}, {"code": "494", "label": "Disabled Sports"}, {"code": "495", "label": "Diving"}, {"code": "496", "label": "Equine Sports"}, {"code": "497", "label": "Horse Racing"}, {"code": "498", "label": "Extreme Sports"}, {"code": "499", "label": "Canoeing and Kayaking"}, {"code": "500", "label": "Climbing"}, {"code": "501", "label": "Paintball"}, {"code": "502", "label": "Scuba Diving"}, {"code": "503", "label": "Skateboarding"}, {"code": "504", "label": "Snowboarding"}, {"code": "505", "label": "Surfing and Bodyboarding"}, {"code": "506", "label": "Waterskiing and Wakeboarding"}, {"code": "507", "label": "Australian Rules Football"}, {"code": "508", "label": "Fantasy Sports"}, {"code": "509", "label": "Field Hockey"}, {"code": "510", "label": "Figure Skating"}, {"code": "511", "label": "Fishing Sports"}, {"code": "512", "label": "Golf"}, {"code": "513", "label": "Gymnastics"}, {"code": "514", "label": "Hunting and Shooting"}, {"code": "515", "label": "Ice Hockey"}, {"code": "516", "label": "Inline Skating"}, {"code": "517", "label": "Lacrosse"}, {"code": "518", "label": "Auto Racing"}, {"code": "519", "label": "Motorcycle Sports"}, {"code": "520", "label": "Martial Arts"}, {"code": "521", "label": "Olympic Sports"}, {"code": "522", "label": "Summer Olympic Sports"}, {"code": "523", "label": "Winter Olympic Sports"}, {"code": "524", "label": "Poker and Professional Gambling"}, {"code": "525", "label": "Rodeo"}, {"code": "526", "label": "Rowing"}, {"code": "527", "label": "Rugby"}, {"code": "528", "label": "Rugby League"}, {"code": "529", "label": "Rugby Union"}, {"code": "530", "label": "Sailing"}, {"code": "531", "label": "Skiing"}, {"code": "532", "label": "Snooker/Pool/Billiards"}, {"code": "533", "label": "Soccer"}, {"code": "534", "label": "Badminton"}, {"code": "535", "label": "Softball"}, {"code": "536", "label": "Squash"}, {"code": "537", "label": "Swimming"}, {"code": "538", "label": "Table Tennis"}, {"code": "539", "label": "Tennis"}, {"code": "540", "label": "Track and Field"}, {"code": "541", "label": "Volleyball"}, {"code": "542", "label": "Walking"}, {"code": "543", "label": "Water Polo"}, {"code": "544", "label": "Weightlifting"}, {"code": "545", "label": "Baseball"}, {"code": "546", "label": "Wrestling"}, {"code": "547", "label": "Basketball"}, {"code": "548", "label": "Beach Volleyball"}, {"code": "549", "label": "Bodybuilding"}, {"code": "550", "label": "Bowling"}, {"code": "551", "label": "Sports Equipment"}, {"code": "552", "label": "Style & Fashion"}, {"code": "553", "label": "Beauty"}, {"code": "554", "label": "Hair Care"}, {"code": "555", "label": "Makeup and Accessories"}, {"code": "556", "label": "Nail Care"}, {"code": "557", "label": "Natural and Organic Beauty"}, {"code": "558", "label": "Perfume and Fragrance"}, {"code": "559", "label": "Skin Care"}, {"code": "560", "label": "Women's Fashion"}, {"code": "561", "label": "Women's Accessories"}, {"code": "562", "label": "Women's Glasses"}, {"code": "563", "label": "Women's Handbags and Wallets"}, {"code": "564", "label": "Women's Hats and Scarves"}, {"code": "565", "label": "Women's Jewelry and Watches"}, {"code": "566", "label": "Women's Clothing"}, {"code": "567", "label": "Women's Business Wear"}, {"code": "568", "label": "Women's Casual Wear"}, {"code": "569", "label": "Women's Formal Wear"}, {"code": "570", "label": "Women's Intimates and Sleepwear"}, {"code": "571", "label": "Women's Outerwear"}, {"code": "572", "label": "Women's Sportswear"}, {"code": "573", "label": "Women's Shoes and Footwear"}, {"code": "574", "label": "Body Art"}, {"code": "575", "label": "Children's Clothing"}, {"code": "576", "label": "Designer Clothing"}, {"code": "577", "label": "Fashion Trends"}, {"code": "578", "label": "High Fashion"}, {"code": "579", "label": "Men's Fashion"}, {"code": "580", "label": "Men's Accessories"}, {"code": "581", "label": "Men's Jewelry and Watches"}, {"code": "582", "label": "Men's Clothing"}, {"code": "583", "label": "Men's Business Wear"}, {"code": "584", "label": "Men's Casual Wear"}, {"code": "585", "label": "Men's Formal Wear"}, {"code": "586", "label": "Men's Outerwear"}, {"code": "587", "label": "Men's Sportswear"}, {"code": "588", "label": "Men's Underwear and Sleepwear"}, {"code": "589", "label": "Men's Shoes and Footwear"}, {"code": "590", "label": "Personal Care"}, {"code": "591", "label": "Bath and Shower"}, {"code": "592", "label": "Deodorant and Antiperspirant"}, {"code": "593", "label": "Oral care"}, {"code": "594", "label": "Shaving"}, {"code": "595", "label": "Street Style"}, {"code": "596", "label": "Technology & Computing"}, {"code": "597", "label": "Artificial Intelligence"}, {"code": "598", "label": "Augmented Reality"}, {"code": "599", "label": "Computing"}, {"code": "600", "label": "Computer Networking"}, {"code": "601", "label": "Computer Peripherals"}, {"code": "602", "label": "Computer Software and Applications"}, {"code": "603", "label": "3-D Graphics"}, {"code": "604", "label": "Photo Editing Software"}, {"code": "605", "label": "Shareware and Freeware"}, {"code": "606", "label": "Video Software"}, {"code": "607", "label": "Web Conferencing"}, {"code": "608", "label": "Antivirus Software"}, {"code": "609", "label": "Browsers"}, {"code": "610", "label": "Computer Animation"}, {"code": "611", "label": "Databases"}, {"code": "612", "label": "Desktop Publishing"}, {"code": "613", "label": "Digital Audio"}, {"code": "614", "label": "Graphics Software"}, {"code": "615", "label": "Operating Systems"}, {"code": "616", "label": "Data Storage and Warehousing"}, {"code": "617", "label": "Desktops"}, {"code": "618", "label": "Information and Network Security"}, {"code": "619", "label": "Internet"}, {"code": "620", "label": "Cloud Computing"}, {"code": "621", "label": "Web Development"}, {"code": "622", "label": "Web Hosting"}, {"code": "623", "label": "Email"}, {"code": "624", "label": "Internet for Beginners"}, {"code": "625", "label": "Internet of Things"}, {"code": "626", "label": "IT and Internet Support"}, {"code": "627", "label": "Search"}, {"code": "628", "label": "Social Networking"}, {"code": "629", "label": "Web Design and HTML"}, {"code": "630", "label": "Laptops"}, {"code": "631", "label": "Programming Languages"}, {"code": "632", "label": "Consumer Electronics"}, {"code": "633", "label": "Cameras and Camcorders"}, {"code": "634", "label": "Home Entertainment Systems"}, {"code": "635", "label": "Smartphones"}, {"code": "636", "label": "Tablets and E-readers"}, {"code": "637", "label": "Wearable Technology"}, {"code": "638", "label": "Robotics"}, {"code": "639", "label": "Virtual Reality"}, {"code": "640", "label": "Television"}, {"code": "641", "label": "Animation TV"}, {"code": "642", "label": "Soap Opera TV"}, {"code": "643", "label": "Special Interest TV"}, {"code": "644", "label": "Sports TV"}, {"code": "645", "label": "Children's TV"}, {"code": "646", "label": "Comedy TV"}, {"code": "647", "label": "Drama TV"}, {"code": "648", "label": "Factual TV"}, {"code": "649", "label": "Holiday TV"}, {"code": "650", "label": "Music TV"}, {"code": "651", "label": "Reality TV"}, {"code": "652", "label": "Science Fiction TV"}, {"code": "653", "label": "Travel"}, {"code": "654", "label": "Travel Accessories"}, {"code": "655", "label": "Travel Locations"}, {"code": "656", "label": "Africa Travel"}, {"code": "657", "label": "Asia Travel"}, {"code": "658", "label": "Australia and Oceania Travel"}, {"code": "659", "label": "Europe Travel"}, {"code": "660", "label": "North America Travel"}, {"code": "661", "label": "Polar Travel"}, {"code": "662", "label": "South America Travel"}, {"code": "663", "label": "Travel Preparation and Advice"}, {"code": "664", "label": "Travel Type"}, {"code": "665", "label": "Adventure Travel"}, {"code": "666", "label": "Family Travel"}, {"code": "667", "label": "Honeymoons and Getaways"}, {"code": "668", "label": "Hotels and Motels"}, {"code": "669", "label": "Rail Travel"}, {"code": "670", "label": "Road Trips"}, {"code": "671", "label": "Spas"}, {"code": "672", "label": "Air Travel"}, {"code": "673", "label": "Beach Travel"}, {"code": "674", "label": "Bed & Breakfasts"}, {"code": "675", "label": "Budget Travel"}, {"code": "676", "label": "Business Travel"}, {"code": "677", "label": "Camping"}, {"code": "678", "label": "Cruises"}, {"code": "679", "label": "Day Trips"}, {"code": "680", "label": "Video Gaming"}, {"code": "681", "label": "Console Games"}, {"code": "682", "label": "eSports"}, {"code": "683", "label": "Mobile Games"}, {"code": "684", "label": "PC Games"}, {"code": "685", "label": "Video Game Genres"}, {"code": "686", "label": "Action Video Games"}, {"code": "687", "label": "Role-Playing Video Games"}, {"code": "688", "label": "Simulation Video Games"}, {"code": "689", "label": "Sports Video Games"}, {"code": "690", "label": "Strategy Video Games"}, {"code": "691", "label": "Action-Adventure Video Games"}, {"code": "692", "label": "Adventure Video Games"}, {"code": "693", "label": "Casual Games"}, {"code": "694", "label": "Educational Video Games"}, {"code": "695", "label": "Exercise and Fitness Video Games"}, {"code": "696", "label": "MMOs"}, {"code": "697", "label": "Music and Party Video Games"}, {"code": "698", "label": "Puzzle Video Games"}, {"code": "v9i3On", "label": "Sensitive Topics"}, {"code": "Rm3SiT", "label": "Adult & Explicit Sexual Content"}, {"code": "avbNf2", "label": "Arms & Ammunition"}, {"code": "XtODT3", "label": "Crime & Harmful acts to individuals and Society and Human Right Violations"}, {"code": "I4GWl6", "label": "Death, Injury, or Military Conflict"}, {"code": "mm3UXx", "label": "Online piracy"}, {"code": "HxqYV1", "label": "Hate speech & acts of aggression"}, {"code": "j9PaO9", "label": "Obscenity and Profanity"}, {"code": "pg0WhF", "label": "Illegal Drugs/Tobacco/eCigarettes/ Vaping/Alcohol"}, {"code": "6i4dB6", "label": "Spam or Harmful Content"}, {"code": "8FD8nI", "label": "Terrorism"}, {"code": "Z7rJBM", "label": "Sensitive Social Issues"}, {"code": "nan", "label": "nan"}, {"code": "MRkz4Q", "label": "Brand Suitability and Risk"}, {"code": "bsr001", "label": "Floor"}, {"code": "bsr002", "label": "High Risk"}, {"code": "bsr003", "label": "Medium Risk"}, {"code": "bsr004", "label": "Low Risk"}, {"code": "1000", "label": "Content Channel"}, {"code": "1001", "label": "Editorial/Professional"}, {"code": "1002", "label": "Email"}, {"code": "1003", "label": "Forum/Community"}, {"code": "1004", "label": "Game"}, {"code": "1005", "label": "Marketplace/eCommerce"}, {"code": "1006", "label": "Search Engine/Listings"}, {"code": "1007", "label": "Social"}, {"code": "1008", "label": "Utility/Online Tool"}, {"code": "1009", "label": "Voice Activated Channels"}, {"code": "1010", "label": "Content Type"}, {"code": "1011", "label": "Academic/ResearchConent"}, {"code": "1012", "label": "Chat/IM/Comments"}, {"code": "1013", "label": "Educational Content"}, {"code": "1014", "label": "Entertainment Content"}, {"code": "1015", "label": "Feature"}, {"code": "1016", "label": "General Social"}, {"code": "1017", "label": "Instructional Content"}, {"code": "1018", "label": "Interactive Content"}, {"code": "1019", "label": "Listings/Classifieds/Product Listings/Search Results"}, {"code": "1020", "label": "News"}, {"code": "1021", "label": "Review"}, {"code": "1215", "label": "Content Source"}, {"code": "1216", "label": "Professionally Produced"}, {"code": "1217", "label": "User Generated"}, {"code": "1218", "label": "Aggregated/Curated"}, {"code": "1022", "label": "Content Media Format"}, {"code": "1023", "label": "Audio"}, {"code": "1024", "label": "Images/Galleries"}, {"code": "1025", "label": "Interactive"}, {"code": "1026", "label": "Mixed"}, {"code": "1027", "label": "Textual"}, {"code": "1028", "label": "Video"}, {"code": "1029", "label": "VR/AR"}, {"code": "1030", "label": "Content Language"}, {"code": "1031", "label": "Afar"}, {"code": "1032", "label": "Abkhaz"}, {"code": "1033", "label": "Avestan"}, {"code": "1034", "label": "Afrikaans"}, {"code": "1035", "label": "Akan"}, {"code": "1036", "label": "Amharic"}, {"code": "1037", "label": "Aragonese"}, {"code": "1038", "label": "Arabic"}, {"code": "1039", "label": "Assamese"}, {"code": "1040", "label": "Avaric"}, {"code": "1041", "label": "Aymara"}, {"code": "1042", "label": "Azerbaijani"}, {"code": "1043", "label": "Bashkir"}, {"code": "1044", "label": "Belarusian"}, {"code": "1045", "label": "Bulgarian"}, {"code": "1046", "label": "Bihari"}, {"code": "1047", "label": "Bislama"}, {"code": "1048", "label": "Bambara"}, {"code": "1049", "label": "Bengali"}, {"code": "1050", "label": "Tibetan"}, {"code": "1051", "label": "Breton"}, {"code": "1052", "label": "Bosnian"}, {"code": "1053", "label": "Catalan"}, {"code": "1054", "label": "Chechen"}, {"code": "1055", "label": "Chamorro"}, {"code": "1056", "label": "Corsican"}, {"code": "1057", "label": "Cree"}, {"code": "1058", "label": "Czech"}, {"code": "1059", "label": "Old Church Slavonic"}, {"code": "1060", "label": "Chuvash"}, {"code": "1061", "label": "Welsh"}, {"code": "1062", "label": "Danish"}, {"code": "1063", "label": "German"}, {"code": "1064", "label": "Divehi"}, {"code": "1065", "label": "Dzongkha"}, {"code": "1066", "label": "Ewe"}, {"code": "1067", "label": "Greek"}, {"code": "1068", "label": "English"}, {"code": "1069", "label": "Esperanto"}, {"code": "1070", "label": "Spanish"}, {"code": "1071", "label": "Estonian"}, {"code": "1072", "label": "Basque"}, {"code": "1073", "label": "Farsi"}, {"code": "1074", "label": "Fula"}, {"code": "1075", "label": "Finnish"}, {"code": "1076", "label": "Fijian"}, {"code": "1077", "label": "Faroese"}, {"code": "1078", "label": "French"}, {"code": "1079", "label": "Western Frisian"}, {"code": "1080", "label": "Irish"}, {"code": "1081", "label": "Scottish Gaelic"}, {"code": "1082", "label": "Galician"}, {"code": "1083", "label": "Guarani"}, {"code": "1084", "label": "Gujarati"}, {"code": "1085", "label": "Manx"}, {"code": "1086", "label": "Hausa"}, {"code": "1087", "label": "Hebrew"}, {"code": "1088", "label": "Hindi"}, {"code": "1089", "label": "Hiri Motu"}, {"code": "1090", "label": "Croatian"}, {"code": "1091", "label": "Haitian"}, {"code": "1092", "label": "Hungarian"}, {"code": "1093", "label": "Armenian"}, {"code": "1094", "label": "Herero"}, {"code": "1095", "label": "Interlingua"}, {"code": "1096", "label": "Indonesian"}, {"code": "1097", "label": "Interlingue"}, {"code": "1098", "label": "Igbo"}, {"code": "1099", "label": "Nuosu"}, {"code": "1100", "label": "Inupiaq"}, {"code": "1101", "label": "Ido"}, {"code": "1102", "label": "Icelandic"}, {"code": "1103", "label": "Italian"}, {"code": "1104", "label": "Inuktitut"}, {"code": "1105", "label": "Japanese"}, {"code": "1106", "label": "Javanese"}, {"code": "1107", "label": "Georgian"}, {"code": "1108", "label": "Kongo"}, {"code": "1109", "label": "Kikuyu"}, {"code": "1110", "label": "Kwanyama"}, {"code": "1111", "label": "Kazakh"}, {"code": "1112", "label": "Kalaallisut"}, {"code": "1113", "label": "Khmer"}, {"code": "1114", "label": "Kannada"}, {"code": "1115", "label": "Korean"}, {"code": "1116", "label": "Kanuri"}, {"code": "1117", "label": "Kashmiri"}, {"code": "1118", "label": "Kurdish"}, {"code": "1119", "label": "Komi"}, {"code": "1120", "label": "Cornish"}, {"code": "1121", "label": "Kyrgyz"}, {"code": "1122", "label": "Latin"}, {"code": "1123", "label": "Luxembourgish"}, {"code": "1124", "label": "Ganda"}, {"code": "1125", "label": "Limburgish"}, {"code": "1126", "label": "Lingala"}, {"code": "1127", "label": "Lao"}, {"code": "1128", "label": "Lithuanian"}, {"code": "1129", "label": "Luba-Katanga"}, {"code": "1130", "label": "Latvian"}, {"code": "1131", "label": "Malagasy"}, {"code": "1132", "label": "Marshallese"}, {"code": "1133", "label": "Māori"}, {"code": "1134", "label": "Macedonian"}, {"code": "1135", "label": "Malayalam"}, {"code": "1136", "label": "Mongolian"}, {"code": "1137", "label": "Marathi"}, {"code": "1138", "label": "Malay"}, {"code": "1139", "label": "Maltese"}, {"code": "1140", "label": "Burmese"}, {"code": "1141", "label": "Nauruan"}, {"code": "1142", "label": "Norwegian Bokmal"}, {"code": "1143", "label": "Northern Ndebele"}, {"code": "1144", "label": "Nepali"}, {"code": "1145", "label": "Ndonga"}, {"code": "1146", "label": "Dutch"}, {"code": "1147", "label": "Norwegian Nynorsk"}, {"code": "1148", "label": "Norwegian"}, {"code": "1149", "label": "Southern Ndebele"}, {"code": "1150", "label": "Navajo"}, {"code": "1151", "label": "Chichewa"}, {"code": "1152", "label": "Occitan"}, {"code": "1153", "label": "Ojibwe"}, {"code": "1154", "label": "Oromo"}, {"code": "1155", "label": "Oriya"}, {"code": "1156", "label": "Ossetian"}, {"code": "1157", "label": "Punjabi"}, {"code": "1158", "label": "Pali"}, {"code": "1159", "label": "Polish"}, {"code": "1160", "label": "Pashto"}, {"code": "1161", "label": "Portuguese"}, {"code": "1162", "label": "Quechua"}, {"code": "1163", "label": "Romansh"}, {"code": "1164", "label": "Kirundi"}, {"code": "1165", "label": "Romanian"}, {"code": "1166", "label": "Russian"}, {"code": "1167", "label": "Kinyarwanda"}, {"code": "1168", "label": "Sanskrit"}, {"code": "1169", "label": "Sardinian"}, {"code": "1170", "label": "Sindhi"}, {"code": "1171", "label": "Northern Sami"}, {"code": "1172", "label": "Sango"}, {"code": "1173", "label": "Sinhala"}, {"code": "1174", "label": "Slovak"}, {"code": "1175", "label": "Slovene"}, {"code": "1176", "label": "Samoan"}, {"code": "1177", "label": "Shona"}, {"code": "1178", "label": "Somali"}, {"code": "1179", "label": "Albanian"}, {"code": "1180", "label": "Serbian"}, {"code": "1181", "label": "Swati"}, {"code": "1182", "label": "Southern Sotho"}, {"code": "1183", "label": "Sundanese"}, {"code": "1184", "label": "Swedish"}, {"code": "1185", "label": "Swahili"}, {"code": "1186", "label": "Tamil"}, {"code": "1187", "label": "Telugu"}, {"code": "1188", "label": "Tajik"}, {"code": "1189", "label": "Thai"}, {"code": "1190", "label": "Tigrinya"}, {"code": "1191", "label": "Turkmen"}, {"code": "1192", "label": "Tagalog"}, {"code": "1193", "label": "Tswana"}, {"code": "1194", "label": "Tonga"}, {"code": "1195", "label": "Turkish"}, {"code": "1196", "label": "Tsonga"}, {"code": "1197", "label": "Tatar"}, {"code": "1198", "label": "Twi"}, {"code": "1199", "label": "Tahitian"}, {"code": "1200", "label": "Uyghur"}, {"code": "1201", "label": "Ukrainian"}, {"code": "1202", "label": "Urdu"}, {"code": "1203", "label": "Uzbek"}, {"code": "1204", "label": "Venda"}, {"code": "1205", "label": "Vietnamese"}, {"code": "1206", "label": "Volapuk"}, {"code": "1207", "label": "Walloon"}, {"code": "1208", "label": "Wolof"}, {"code": "1209", "label": "Xhosa"}, {"code": "1210", "label": "Yiddish"}, {"code": "1211", "label": "Yoruba"}, {"code": "1212", "label": "Zhuang"}, {"code": "1213", "label": "Chinese"}, {"code": "1214", "label": "Zulu"}, {"code": "1219", "label": "Content Source Geo"}, {"code": "1220", "label": "Continent"}, {"code": "1221", "label": "Asia"}, {"code": "1222", "label": "Africa"}, {"code": "1223", "label": "North America"}, {"code": "1224", "label": "South America"}, {"code": "1225", "label": "Antarctica"}, {"code": "1226", "label": "Europe"}, {"code": "1227", "label": "Antarctica"}, {"code": "1228", "label": "Country"}, {"code": "1229", "label": "Afghanistan"}, {"code": "1230", "label": "Aland Islands"}, {"code": "1231", "label": "Albania"}, {"code": "1232", "label": "Algeria"}, {"code": "1233", "label": "American Samoa"}, {"code": "1234", "label": "Andorra"}, {"code": "1235", "label": "Angola"}, {"code": "1236", "label": "Anguilla"}, {"code": "1237", "label": "Antarctica"}, {"code": "1238", "label": "Antigua and Barbuda"}, {"code": "1239", "label": "Argentina"}, {"code": "1240", "label": "Armenia"}, {"code": "1241", "label": "Aruba"}, {"code": "1242", "label": "Australia"}, {"code": "1243", "label": "Austria"}, {"code": "1244", "label": "Azerbaijan"}, {"code": "1245", "label": "Bahrain"}, {"code": "1246", "label": "Bangladesh"}, {"code": "1247", "label": "Barbados"}, {"code": "1248", "label": "Belarus"}, {"code": "1249", "label": "Belgium"}, {"code": "1250", "label": "Belize"}, {"code": "1251", "label": "Benin"}, {"code": "1252", "label": "Bermuda"}, {"code": "1253", "label": "Bhutan"}, {"code": "1254", "label": "Bolivarian Republic of Venezuela"}, {"code": "1255", "label": "Bolivia"}, {"code": "1256", "label": "Bonaire, Sint Eustatius and Saba"}, {"code": "1257", "label": "Bosnia and Herzegovina"}, {"code": "1258", "label": "Botswana"}, {"code": "1259", "label": "Bouvet Island"}, {"code": "1260", "label": "Brazil"}, {"code": "1261", "label": "British Virgin Islands"}, {"code": "1262", "label": "Brunei Darussalam"}, {"code": "1263", "label": "Bulgaria"}, {"code": "1264", "label": "Burkina Faso"}, {"code": "1265", "label": "Burundi"}, {"code": "1266", "label": "Cabo Verde"}, {"code": "1267", "label": "Cambodia"}, {"code": "1268", "label": "Cameroon"}, {"code": "1269", "label": "Canada"}, {"code": "1270", "label": "Chad"}, {"code": "1271", "label": "Chile"}, {"code": "1272", "label": "China"}, {"code": "1273", "label": "Christmas Island"}, {"code": "1274", "label": "Colombia"}, {"code": "1275", "label": "Costa Rica"}, {"code": "1276", "label": "Cote d'Ivoire"}, {"code": "1277", "label": "Croatia"}, {"code": "1278", "label": "Cuba"}, {"code": "1279", "label": "Curaçao"}, {"code": "1280", "label": "Cyprus"}, {"code": "1281", "label": "Czechia"}, {"code": "1282", "label": "Denmark"}, {"code": "1283", "label": "Djibouti"}, {"code": "1284", "label": "Dominica"}, {"code": "1285", "label": "Ecuador"}, {"code": "1286", "label": "Egypt"}, {"code": "1287", "label": "El Salvador"}, {"code": "1288", "label": "Equatorial Guinea"}, {"code": "1289", "label": "Eritrea"}, {"code": "1290", "label": "Estonia"}, {"code": "1291", "label": "Ethiopia"}, {"code": "1292", "label": "Federated States of Micronesia"}, {"code": "1293", "label": "Fiji"}, {"code": "1294", "label": "Finland"}, {"code": "1295", "label": "France"}, {"code": "1296", "label": "French Guiana"}, {"code": "1297", "label": "French Polynesia"}, {"code": "1298", "label": "Gabon"}, {"code": "1299", "label": "Georgia"}, {"code": "1300", "label": "Germany"}, {"code": "1301", "label": "Ghana"}, {"code": "1302", "label": "Gibraltar"}, {"code": "1303", "label": "Greece"}, {"code": "1304", "label": "Greenland"}, {"code": "1305", "label": "Grenada"}, {"code": "1306", "label": "Guadeloupe"}, {"code": "1307", "label": "Guam"}, {"code": "1308", "label": "Guatemala"}, {"code": "1309", "label": "Guernsey"}, {"code": "1310", "label": "Guinea"}, {"code": "1311", "label": "Guinea-Bissau"}, {"code": "1312", "label": "Guyana"}, {"code": "1313", "label": "Haiti"}, {"code": "1314", "label": "Heard Island and McDonald Islands"}, {"code": "1315", "label": "Honduras"}, {"code": "1316", "label": "Hong Kong"}, {"code": "1317", "label": "Hungary"}, {"code": "1318", "label": "Iceland"}, {"code": "1319", "label": "India"}, {"code": "1320", "label": "Indonesia"}, {"code": "1321", "label": "Iraq"}, {"code": "1322", "label": "Ireland"}, {"code": "1323", "label": "Islamic Republic of Iran"}, {"code": "1324", "label": "Isle of Man"}, {"code": "1325", "label": "Israel"}, {"code": "1326", "label": "Italy"}, {"code": "1327", "label": "Jamaica"}, {"code": "1328", "label": "Japan"}, {"code": "1329", "label": "Jersey"}, {"code": "1330", "label": "Jordan"}, {"code": "1331", "label": "Kazakhstan"}, {"code": "1332", "label": "Kenya"}, {"code": "1333", "label": "Kiribati"}, {"code": "1334", "label": "Kuwait"}, {"code": "1335", "label": "Kyrgyzstan"}, {"code": "1336", "label": "Latvia"}, {"code": "1337", "label": "Lebanon"}, {"code": "1338", "label": "Lesotho"}, {"code": "1339", "label": "Liberia"}, {"code": "1340", "label": "Libya"}, {"code": "1341", "label": "Liechtenstein"}, {"code": "1342", "label": "Lithuania"}, {"code": "1343", "label": "Luxembourg"}, {"code": "1344", "label": "Macao"}, {"code": "1345", "label": "Madagascar"}, {"code": "1346", "label": "Malawi"}, {"code": "1347", "label": "Malaysia"}, {"code": "1348", "label": "Maldives"}, {"code": "1349", "label": "Mali"}, {"code": "1350", "label": "Malta"}, {"code": "1351", "label": "Martinique"}, {"code": "1352", "label": "Mauritania"}, {"code": "1353", "label": "Mauritius"}, {"code": "1354", "label": "Mayotte"}, {"code": "1355", "label": "Mexico"}, {"code": "1356", "label": "Monaco"}, {"code": "1357", "label": "Mongolia"}, {"code": "1358", "label": "Montenegro"}, {"code": "1359", "label": "Montserrat"}, {"code": "1360", "label": "Morocco"}, {"code": "1361", "label": "Mozambique"}, {"code": "1362", "label": "Myanmar"}, {"code": "1363", "label": "Namibia"}, {"code": "1364", "label": "Nauru"}, {"code": "1365", "label": "Nepal"}, {"code": "1366", "label": "New Caledonia"}, {"code": "1367", "label": "New Zealand"}, {"code": "1368", "label": "Nicaragua"}, {"code": "1369", "label": "Nigeria"}, {"code": "1370", "label": "Niue"}, {"code": "1371", "label": "Norfolk Island"}, {"code": "1372", "label": "Norway"}, {"code": "1373", "label": "Oman"}, {"code": "1374", "label": "Pakistan"}, {"code": "1375", "label": "Palau"}, {"code": "1376", "label": "Panama"}, {"code": "1377", "label": "Papua New Guinea"}, {"code": "1378", "label": "Paraguay"}, {"code": "1379", "label": "Peru"}, {"code": "1380", "label": "Pitcairn"}, {"code": "1381", "label": "Poland"}, {"code": "1382", "label": "Portugal"}, {"code": "1383", "label": "Puerto Rico"}, {"code": "1384", "label": "Qatar"}, {"code": "1385", "label": "Reunion"}, {"code": "1386", "label": "Romania"}, {"code": "1387", "label": "Rwanda"}, {"code": "1388", "label": "Saint Barthelemy"}, {"code": "1389", "label": "Saint Helena, Ascension and Tristan da Cunha"}, {"code": "1390", "label": "Saint Kitts and Nevis"}, {"code": "1391", "label": "Saint Lucia"}, {"code": "1392", "label": "Saint Martin"}, {"code": "1393", "label": "Saint Pierre and Miquelon"}, {"code": "1394", "label": "Saint Vincent and the Grenadines"}, {"code": "1395", "label": "Samoa"}, {"code": "1396", "label": "San Marino"}, {"code": "1397", "label": "Sao Tome and Principe"}, {"code": "1398", "label": "Saudi Arabia"}, {"code": "1399", "label": "Senegal"}, {"code": "1400", "label": "Serbia"}, {"code": "1401", "label": "Seychelles"}, {"code": "1402", "label": "Sierra Leone"}, {"code": "1403", "label": "Singapore"}, {"code": "1404", "label": "Sint Maarten"}, {"code": "1405", "label": "Slovakia"}, {"code": "1406", "label": "Slovenia"}, {"code": "1407", "label": "Solomon Islands"}, {"code": "1408", "label": "Somalia"}, {"code": "1409", "label": "South Africa"}, {"code": "1410", "label": "South Georgia and the South Sandwich Islands"}, {"code": "1411", "label": "South Sudan"}, {"code": "1412", "label": "Spain"}, {"code": "1413", "label": "Sri Lanka"}, {"code": "1414", "label": "State of Palestine"}, {"code": "1415", "label": "Suriname"}, {"code": "1416", "label": "Svalbard and Jan Mayen"}, {"code": "1417", "label": "Swaziland"}, {"code": "1418", "label": "Sweden"}, {"code": "1419", "label": "Switzerland"}, {"code": "1420", "label": "Syrian Arab Republic"}, {"code": "1421", "label": "Taiwan (Province of China)"}, {"code": "1422", "label": "Tajikistan"}, {"code": "1423", "label": "Thailand"}, {"code": "1424", "label": "The Bahamas"}, {"code": "1425", "label": "The British Indian Ocean Territory"}, {"code": "1426", "label": "The Cayman Islands"}, {"code": "1427", "label": "The Central African Republic"}, {"code": "1428", "label": "The Cocos Islands"}, {"code": "1429", "label": "The Comoros"}, {"code": "1430", "label": "The Congo"}, {"code": "1431", "label": "The Cook Islands"}, {"code": "1432", "label": "The Democratic People's Republic of Korea"}, {"code": "1433", "label": "the Democratic Republic of the Congo"}, {"code": "1434", "label": "The Dominican Republic"}, {"code": "1435", "label": "The Falkland Islands"}, {"code": "1436", "label": "The Faroe Islands"}, {"code": "1437", "label": "The former Yugoslav Republic of Macedonia"}, {"code": "1438", "label": "The French Southern Territories"}, {"code": "1439", "label": "The Gambia"}, {"code": "1440", "label": "The Holy See"}, {"code": "1441", "label": "The Lao People's Democratic Republic"}, {"code": "1442", "label": "The Marshall Islands"}, {"code": "1443", "label": "The Netherlands"}, {"code": "1444", "label": "The Niger"}, {"code": "1445", "label": "The Northern Mariana Islands"}, {"code": "1446", "label": "The Philippines"}, {"code": "1447", "label": "The Republic of Korea"}, {"code": "1448", "label": "The Republic of Moldova"}, {"code": "1449", "label": "The Russian Federation"}, {"code": "1450", "label": "The Sudan"}, {"code": "1451", "label": "The Turks and Caicos Islands"}, {"code": "1452", "label": "The United Arab Emirates"}, {"code": "1453", "label": "The United Kingdom of Great Britain and Northern Ireland"}, {"code": "1454", "label": "The United States Minor Outlying Islands"}, {"code": "1455", "label": "The United States of America"}, {"code": "1456", "label": "Timor-Leste"}, {"code": "1457", "label": "Togo"}, {"code": "1458", "label": "Tokelau"}, {"code": "1459", "label": "Tonga"}, {"code": "1460", "label": "Trinidad and Tobago"}, {"code": "1461", "label": "Tunisia"}, {"code": "1462", "label": "Turkey"}, {"code": "1463", "label": "Turkmenistan"}, {"code": "1464", "label": "Tuvalu"}, {"code": "1465", "label": "U.S. Virgin Islands"}, {"code": "1466", "label": "Uganda"}, {"code": "1467", "label": "Ukraine"}, {"code": "1468", "label": "United Republic of Tanzania"}, {"code": "1469", "label": "Uruguay"}, {"code": "1470", "label": "Uzbekistan"}, {"code": "1471", "label": "Vanuatu"}, {"code": "1472", "label": "Vietnam"}, {"code": "1473", "label": "Wallis and Futuna"}, {"code": "1474", "label": "Western Sahara"}, {"code": "1475", "label": "Yemen"}, {"code": "1476", "label": "Zambia"}, {"code": "1477", "label": "Zimbabwe"}, {"code": "1478", "label": "Region/State"}, {"code": "1479", "label": "Metro"}, {"code": "1480", "label": "City"}] diff --git a/javascript/data/iab_3x.json b/javascript/data/iab_3x.json index 2b7df3c..307b118 100644 --- a/javascript/data/iab_3x.json +++ b/javascript/data/iab_3x.json @@ -1,9 +1 @@ -[ - {"id": "3", "label": "Arts, Entertainment, and Media", "path": ["Arts, Entertainment, and Media"], "scd": false}, - {"id": "2", "label": "Automotive", "path": ["Automotive"], "scd": false}, - {"id": "15", "label": "Business", "path": ["Business"], "scd": false}, - {"id": "483", "label": "Sports", "path": ["Sports"], "scd": false}, - {"id": "3-5", "label": "Food & Drink", "path": ["Arts, Entertainment, and Media", "Food & Drink"], "scd": false}, - {"id": "3-5-2", "label": "Cooking", "path": ["Arts, Entertainment, and Media", "Food & Drink", "Cooking"], "scd": false} -] - +[{"id": "150", "label": "Attractions", "path": ["Attractions"], "scd": false}, {"id": "151", "label": "Amusement and Theme Parks", "path": ["Attractions", "Amusement and Theme Parks"], "scd": false}, {"id": "179", "label": "Bars & Restaurants", "path": ["Attractions", "Bars & Restaurants"], "scd": false}, {"id": "181", "label": "Casinos & Gambling", "path": ["Attractions", "Casinos & Gambling"], "scd": false}, {"id": "153", "label": "Historic Site and Landmark Tours", "path": ["Attractions", "Historic Site and Landmark Tours"], "scd": false}, {"id": "154", "label": "Malls & Shopping Centers", "path": ["Attractions", "Malls & Shopping Centers"], "scd": false}, {"id": "155", "label": "Museums & Galleries", "path": ["Attractions", "Museums & Galleries"], "scd": false}, {"id": "158", "label": "Nightclubs", "path": ["Attractions", "Nightclubs"], "scd": false}, {"id": "159", "label": "Outdoor Activities", "path": ["Attractions", "Outdoor Activities"], "scd": false}, {"id": "160", "label": "Parks & Nature", "path": ["Attractions", "Parks & Nature"], "scd": false}, {"id": "177", "label": "Theater Venues", "path": ["Attractions", "Theater Venues"], "scd": false}, {"id": "178", "label": "Zoos & Aquariums", "path": ["Attractions", "Zoos & Aquariums"], "scd": false}, {"id": "1", "label": "Automotive", "path": ["Automotive"], "scd": false}, {"id": "2", "label": "Auto Body Styles", "path": ["Automotive", "Auto Body Styles"], "scd": false}, {"id": "3", "label": "Commercial Trucks", "path": ["Automotive", "Auto Body Styles", "Commercial Trucks"], "scd": false}, {"id": "8", "label": "Convertible", "path": ["Automotive", "Auto Body Styles", "Convertible"], "scd": false}, {"id": "9", "label": "Coupe", "path": ["Automotive", "Auto Body Styles", "Coupe"], "scd": false}, {"id": "10", "label": "Crossover", "path": ["Automotive", "Auto Body Styles", "Crossover"], "scd": false}, {"id": "11", "label": "Hatchback", "path": ["Automotive", "Auto Body Styles", "Hatchback"], "scd": false}, {"id": "12", "label": "Microcar", "path": ["Automotive", "Auto Body Styles", "Microcar"], "scd": false}, {"id": "13", "label": "Minivan", "path": ["Automotive", "Auto Body Styles", "Minivan"], "scd": false}, {"id": "14", "label": "Off-Road Vehicles", "path": ["Automotive", "Auto Body Styles", "Off-Road Vehicles"], "scd": false}, {"id": "15", "label": "Pickup Trucks", "path": ["Automotive", "Auto Body Styles", "Pickup Trucks"], "scd": false}, {"id": "4", "label": "Sedan", "path": ["Automotive", "Auto Body Styles", "Sedan"], "scd": false}, {"id": "5", "label": "Station Wagon", "path": ["Automotive", "Auto Body Styles", "Station Wagon"], "scd": false}, {"id": "6", "label": "SUV", "path": ["Automotive", "Auto Body Styles", "SUV"], "scd": false}, {"id": "7", "label": "Van", "path": ["Automotive", "Auto Body Styles", "Van"], "scd": false}, {"id": "30", "label": "Auto Buying and Selling", "path": ["Automotive", "Auto Buying and Selling"], "scd": false}, {"id": "31", "label": "Auto Insurance", "path": ["Automotive", "Auto Insurance"], "scd": false}, {"id": "32", "label": "Auto Parts", "path": ["Automotive", "Auto Parts"], "scd": false}, {"id": "33", "label": "Auto Recalls", "path": ["Automotive", "Auto Recalls"], "scd": false}, {"id": "41", "label": "Auto Rentals", "path": ["Automotive", "Auto Rentals"], "scd": false}, {"id": "34", "label": "Auto Repair", "path": ["Automotive", "Auto Repair"], "scd": false}, {"id": "35", "label": "Auto Safety", "path": ["Automotive", "Auto Safety"], "scd": false}, {"id": "36", "label": "Auto Shows", "path": ["Automotive", "Auto Shows"], "scd": false}, {"id": "37", "label": "Auto Technology", "path": ["Automotive", "Auto Technology"], "scd": false}, {"id": "38", "label": "Auto Infotainment Technologies", "path": ["Automotive", "Auto Technology", "Auto Infotainment Technologies"], "scd": false}, {"id": "39", "label": "Auto Navigation Systems", "path": ["Automotive", "Auto Technology", "Auto Navigation Systems"], "scd": false}, {"id": "40", "label": "Auto Safety Technologies", "path": ["Automotive", "Auto Technology", "Auto Safety Technologies"], "scd": false}, {"id": "16", "label": "Auto Type", "path": ["Automotive", "Auto Type"], "scd": false}, {"id": "17", "label": "Budget Cars", "path": ["Automotive", "Auto Type", "Budget Cars"], "scd": false}, {"id": "18", "label": "Certified Pre-Owned Cars", "path": ["Automotive", "Auto Type", "Certified Pre-Owned Cars"], "scd": false}, {"id": "19", "label": "Classic Cars", "path": ["Automotive", "Auto Type", "Classic Cars"], "scd": false}, {"id": "20", "label": "Concept Cars", "path": ["Automotive", "Auto Type", "Concept Cars"], "scd": false}, {"id": "21", "label": "Driverless Cars", "path": ["Automotive", "Auto Type", "Driverless Cars"], "scd": false}, {"id": "22", "label": "Green Vehicles", "path": ["Automotive", "Auto Type", "Green Vehicles"], "scd": false}, {"id": "23", "label": "Luxury Cars", "path": ["Automotive", "Auto Type", "Luxury Cars"], "scd": false}, {"id": "24", "label": "Performance Cars", "path": ["Automotive", "Auto Type", "Performance Cars"], "scd": false}, {"id": "25", "label": "Car Culture", "path": ["Automotive", "Car Culture"], "scd": false}, {"id": "26", "label": "Dash Cam Videos", "path": ["Automotive", "Dash Cam Videos"], "scd": false}, {"id": "27", "label": "Motorcycles", "path": ["Automotive", "Motorcycles"], "scd": false}, {"id": "28", "label": "Road-Side Assistance", "path": ["Automotive", "Road-Side Assistance"], "scd": false}, {"id": "29", "label": "Scooters", "path": ["Automotive", "Scooters"], "scd": false}, {"id": "42", "label": "Books and Literature", "path": ["Books and Literature"], "scd": false}, {"id": "43", "label": "Art and Photography", "path": ["Books and Literature", "Art and Photography"], "scd": false}, {"id": "46", "label": "Comics and Graphic Novels", "path": ["Books and Literature", "Comics and Graphic Novels"], "scd": false}, {"id": "48", "label": "Fiction", "path": ["Books and Literature", "Fiction"], "scd": false}, {"id": "49", "label": "Poetry", "path": ["Books and Literature", "Poetry"], "scd": false}, {"id": "52", "label": "Business and Finance", "path": ["Business and Finance"], "scd": false}, {"id": "53", "label": "Business", "path": ["Business and Finance", "Business"], "scd": false}, {"id": "54", "label": "Business Accounting & Finance", "path": ["Business and Finance", "Business", "Business Accounting & Finance"], "scd": false}, {"id": "62", "label": "Business Administration", "path": ["Business and Finance", "Business", "Business Administration"], "scd": false}, {"id": "63", "label": "Business Banking & Finance", "path": ["Business and Finance", "Business", "Business Banking & Finance"], "scd": false}, {"id": "64", "label": "Angel Investment", "path": ["Business and Finance", "Business", "Business Banking & Finance", "Angel Investment"], "scd": false}, {"id": "65", "label": "Bankruptcy", "path": ["Business and Finance", "Business", "Business Banking & Finance", "Bankruptcy"], "scd": false}, {"id": "66", "label": "Business Loans", "path": ["Business and Finance", "Business", "Business Banking & Finance", "Business Loans"], "scd": false}, {"id": "67", "label": "Debt Factoring & Invoice Discounting", "path": ["Business and Finance", "Business", "Business Banking & Finance", "Debt Factoring & Invoice Discounting"], "scd": false}, {"id": "68", "label": "Mergers and Acquisitions", "path": ["Business and Finance", "Business", "Business Banking & Finance", "Mergers and Acquisitions"], "scd": false}, {"id": "69", "label": "Private Equity", "path": ["Business and Finance", "Business", "Business Banking & Finance", "Private Equity"], "scd": false}, {"id": "70", "label": "Sale & Lease Back", "path": ["Business and Finance", "Business", "Business Banking & Finance", "Sale & Lease Back"], "scd": false}, {"id": "71", "label": "Venture Capital", "path": ["Business and Finance", "Business", "Business Banking & Finance", "Venture Capital"], "scd": false}, {"id": "72", "label": "Business I.T.", "path": ["Business and Finance", "Business", "Business I.T."], "scd": false}, {"id": "73", "label": "Business Operations", "path": ["Business and Finance", "Business", "Business Operations"], "scd": false}, {"id": "79", "label": "Business Utilities", "path": ["Business and Finance", "Business", "Business Utilities"], "scd": false}, {"id": "74", "label": "Consumer Issues", "path": ["Business and Finance", "Business", "Consumer Issues"], "scd": false}, {"id": "75", "label": "Recalls", "path": ["Business and Finance", "Business", "Consumer Issues", "Recalls"], "scd": false}, {"id": "76", "label": "Executive Leadership & Management", "path": ["Business and Finance", "Business", "Executive Leadership & Management"], "scd": false}, {"id": "77", "label": "Government Business", "path": ["Business and Finance", "Business", "Government Business"], "scd": false}, {"id": "78", "label": "Green Solutions", "path": ["Business and Finance", "Business", "Green Solutions"], "scd": false}, {"id": "55", "label": "Human Resources", "path": ["Business and Finance", "Business", "Human Resources"], "scd": false}, {"id": "56", "label": "Large Business", "path": ["Business and Finance", "Business", "Large Business"], "scd": false}, {"id": "57", "label": "Logistics", "path": ["Business and Finance", "Business", "Logistics"], "scd": false}, {"id": "58", "label": "Marketing and Advertising", "path": ["Business and Finance", "Business", "Marketing and Advertising"], "scd": false}, {"id": "59", "label": "Sales", "path": ["Business and Finance", "Business", "Sales"], "scd": false}, {"id": "60", "label": "Small and Medium-sized Business", "path": ["Business and Finance", "Business", "Small and Medium-sized Business"], "scd": false}, {"id": "61", "label": "Startups", "path": ["Business and Finance", "Business", "Startups"], "scd": false}, {"id": "80", "label": "Economy", "path": ["Business and Finance", "Economy"], "scd": false}, {"id": "81", "label": "Commodities", "path": ["Business and Finance", "Economy", "Commodities"], "scd": false}, {"id": "82", "label": "Currencies", "path": ["Business and Finance", "Economy", "Currencies"], "scd": false}, {"id": "83", "label": "Financial Crisis", "path": ["Business and Finance", "Economy", "Financial Crisis"], "scd": false}, {"id": "84", "label": "Financial Reform", "path": ["Business and Finance", "Economy", "Financial Reform"], "scd": false}, {"id": "85", "label": "Financial Regulation", "path": ["Business and Finance", "Economy", "Financial Regulation"], "scd": false}, {"id": "86", "label": "Gasoline Prices", "path": ["Business and Finance", "Economy", "Gasoline Prices"], "scd": false}, {"id": "87", "label": "Housing Market", "path": ["Business and Finance", "Economy", "Housing Market"], "scd": false}, {"id": "88", "label": "Interest Rates", "path": ["Business and Finance", "Economy", "Interest Rates"], "scd": false}, {"id": "89", "label": "Job Market", "path": ["Business and Finance", "Economy", "Job Market"], "scd": false}, {"id": "90", "label": "Industries", "path": ["Business and Finance", "Industries"], "scd": false}, {"id": "91", "label": "Advertising Industry", "path": ["Business and Finance", "Industries", "Advertising Industry"], "scd": false}, {"id": "102", "label": "Agriculture", "path": ["Business and Finance", "Industries", "Agriculture"], "scd": false}, {"id": "113", "label": "Apparel Industry", "path": ["Business and Finance", "Industries", "Apparel Industry"], "scd": false}, {"id": "117", "label": "Automotive Industry", "path": ["Business and Finance", "Industries", "Automotive Industry"], "scd": false}, {"id": "118", "label": "Aviation Industry", "path": ["Business and Finance", "Industries", "Aviation Industry"], "scd": false}, {"id": "119", "label": "Biotech and Biomedical Industry", "path": ["Business and Finance", "Industries", "Biotech and Biomedical Industry"], "scd": false}, {"id": "120", "label": "Civil Engineering Industry", "path": ["Business and Finance", "Industries", "Civil Engineering Industry"], "scd": false}, {"id": "121", "label": "Construction Industry", "path": ["Business and Finance", "Industries", "Construction Industry"], "scd": false}, {"id": "122", "label": "Defense Industry", "path": ["Business and Finance", "Industries", "Defense Industry"], "scd": false}, {"id": "92", "label": "Education industry", "path": ["Business and Finance", "Industries", "Education industry"], "scd": false}, {"id": "93", "label": "Entertainment Industry", "path": ["Business and Finance", "Industries", "Entertainment Industry"], "scd": false}, {"id": "94", "label": "Environmental Services Industry", "path": ["Business and Finance", "Industries", "Environmental Services Industry"], "scd": false}, {"id": "95", "label": "Financial Industry", "path": ["Business and Finance", "Industries", "Financial Industry"], "scd": false}, {"id": "96", "label": "Food Industry", "path": ["Business and Finance", "Industries", "Food Industry"], "scd": false}, {"id": "97", "label": "Healthcare Industry", "path": ["Business and Finance", "Industries", "Healthcare Industry"], "scd": false}, {"id": "98", "label": "Hospitality Industry", "path": ["Business and Finance", "Industries", "Hospitality Industry"], "scd": false}, {"id": "99", "label": "Information Services Industry", "path": ["Business and Finance", "Industries", "Information Services Industry"], "scd": false}, {"id": "100", "label": "Legal Services Industry", "path": ["Business and Finance", "Industries", "Legal Services Industry"], "scd": false}, {"id": "101", "label": "Logistics and Transportation Industry", "path": ["Business and Finance", "Industries", "Logistics and Transportation Industry"], "scd": false}, {"id": "103", "label": "Management Consulting Industry", "path": ["Business and Finance", "Industries", "Management Consulting Industry"], "scd": false}, {"id": "104", "label": "Manufacturing Industry", "path": ["Business and Finance", "Industries", "Manufacturing Industry"], "scd": false}, {"id": "105", "label": "Mechanical and Industrial Engineering Industry", "path": ["Business and Finance", "Industries", "Mechanical and Industrial Engineering Industry"], "scd": false}, {"id": "106", "label": "Media Industry", "path": ["Business and Finance", "Industries", "Media Industry"], "scd": false}, {"id": "107", "label": "Metals Industry", "path": ["Business and Finance", "Industries", "Metals Industry"], "scd": false}, {"id": "108", "label": "Non-Profit Organizations", "path": ["Business and Finance", "Industries", "Non-Profit Organizations"], "scd": false}, {"id": "109", "label": "Pharmaceutical Industry", "path": ["Business and Finance", "Industries", "Pharmaceutical Industry"], "scd": false}, {"id": "110", "label": "Power and Energy Industry", "path": ["Business and Finance", "Industries", "Power and Energy Industry"], "scd": false}, {"id": "111", "label": "Publishing Industry", "path": ["Business and Finance", "Industries", "Publishing Industry"], "scd": false}, {"id": "112", "label": "Real Estate Industry", "path": ["Business and Finance", "Industries", "Real Estate Industry"], "scd": false}, {"id": "114", "label": "Retail Industry", "path": ["Business and Finance", "Industries", "Retail Industry"], "scd": false}, {"id": "115", "label": "Technology Industry", "path": ["Business and Finance", "Industries", "Technology Industry"], "scd": false}, {"id": "116", "label": "Telecommunications Industry", "path": ["Business and Finance", "Industries", "Telecommunications Industry"], "scd": false}, {"id": "123", "label": "Careers", "path": ["Careers"], "scd": false}, {"id": "124", "label": "Apprenticeships", "path": ["Careers", "Apprenticeships"], "scd": false}, {"id": "125", "label": "Career Advice", "path": ["Careers", "Career Advice"], "scd": false}, {"id": "126", "label": "Career Planning", "path": ["Careers", "Career Planning"], "scd": false}, {"id": "127", "label": "Job Search", "path": ["Careers", "Job Search"], "scd": false}, {"id": "128", "label": "Job Fairs", "path": ["Careers", "Job Search", "Job Fairs"], "scd": false}, {"id": "129", "label": "Resume Writing and Advice", "path": ["Careers", "Job Search", "Resume Writing and Advice"], "scd": false}, {"id": "130", "label": "Remote Working", "path": ["Careers", "Remote Working"], "scd": false}, {"id": "131", "label": "Vocational Training", "path": ["Careers", "Vocational Training"], "scd": false}, {"id": "80DV8O", "label": "Communication", "path": ["Communication"], "scd": false}, {"id": "380", "label": "Crime", "path": ["Crime"], "scd": false}, {"id": "381", "label": "Disasters", "path": ["Disasters"], "scd": false}, {"id": "132", "label": "Education", "path": ["Education"], "scd": false}, {"id": "133", "label": "Adult Education", "path": ["Education", "Adult Education"], "scd": false}, {"id": "137", "label": "College Education", "path": ["Education", "College Education"], "scd": false}, {"id": "138", "label": "College Planning", "path": ["Education", "College Education", "College Planning"], "scd": false}, {"id": "139", "label": "Postgraduate Education", "path": ["Education", "College Education", "Postgraduate Education"], "scd": false}, {"id": "140", "label": "Professional School", "path": ["Education", "College Education", "Postgraduate Education", "Professional School"], "scd": false}, {"id": "141", "label": "Undergraduate Education", "path": ["Education", "College Education", "Undergraduate Education"], "scd": false}, {"id": "142", "label": "Early Childhood Education", "path": ["Education", "Early Childhood Education"], "scd": false}, {"id": "143", "label": "Educational Assessment", "path": ["Education", "Educational Assessment"], "scd": false}, {"id": "144", "label": "Standardized Testing", "path": ["Education", "Educational Assessment", "Standardized Testing"], "scd": false}, {"id": "145", "label": "Homeschooling", "path": ["Education", "Homeschooling"], "scd": false}, {"id": "146", "label": "Homework and Study", "path": ["Education", "Homework and Study"], "scd": false}, {"id": "147", "label": "Language Learning", "path": ["Education", "Language Learning"], "scd": false}, {"id": "148", "label": "Online Education", "path": ["Education", "Online Education"], "scd": false}, {"id": "149", "label": "Primary Education", "path": ["Education", "Primary Education"], "scd": false}, {"id": "134", "label": "Private School", "path": ["Education", "Private School"], "scd": false}, {"id": "135", "label": "Secondary Education", "path": ["Education", "Secondary Education"], "scd": false}, {"id": "136", "label": "Special Education", "path": ["Education", "Special Education"], "scd": false}, {"id": "JLBCU7", "label": "Entertainment", "path": ["Entertainment"], "scd": false}, {"id": "324", "label": "Movies", "path": ["Entertainment", "Movies"], "scd": false}, {"id": "338", "label": "Music", "path": ["Entertainment", "Music"], "scd": false}, {"id": "640", "label": "Television", "path": ["Entertainment", "Television"], "scd": false}, {"id": "8VZQHL", "label": "Events", "path": ["Events"], "scd": false}, {"id": "162", "label": "Awards Shows", "path": ["Events", "Awards Shows"], "scd": false}, {"id": "180", "label": "Business Expos & Conferences", "path": ["Events", "Business Expos & Conferences"], "scd": false}, {"id": "185", "label": "Fan Conventions", "path": ["Events", "Fan Conventions"], "scd": false}, {"id": "186", "label": "Family and Relationships", "path": ["Family and Relationships"], "scd": false}, {"id": "187", "label": "Bereavement", "path": ["Family and Relationships", "Bereavement"], "scd": false}, {"id": "188", "label": "Dating", "path": ["Family and Relationships", "Dating"], "scd": false}, {"id": "189", "label": "Divorce", "path": ["Family and Relationships", "Divorce"], "scd": false}, {"id": "190", "label": "Eldercare", "path": ["Family and Relationships", "Eldercare"], "scd": false}, {"id": "191", "label": "Marriage and Civil Unions", "path": ["Family and Relationships", "Marriage and Civil Unions"], "scd": false}, {"id": "192", "label": "Parenting", "path": ["Family and Relationships", "Parenting"], "scd": false}, {"id": "193", "label": "Adoption and Fostering", "path": ["Family and Relationships", "Parenting", "Adoption and Fostering"], "scd": false}, {"id": "194", "label": "Daycare and Pre-School", "path": ["Family and Relationships", "Parenting", "Daycare and Pre-School"], "scd": false}, {"id": "195", "label": "Internet Safety", "path": ["Family and Relationships", "Parenting", "Internet Safety"], "scd": false}, {"id": "196", "label": "Parenting Babies and Toddlers", "path": ["Family and Relationships", "Parenting", "Parenting Babies and Toddlers"], "scd": false}, {"id": "197", "label": "Parenting Children Aged 4-11", "path": ["Family and Relationships", "Parenting", "Parenting Children Aged 4-11"], "scd": false}, {"id": "198", "label": "Parenting Teens", "path": ["Family and Relationships", "Parenting", "Parenting Teens"], "scd": false}, {"id": "199", "label": "Special Needs Kids", "path": ["Family and Relationships", "Parenting", "Special Needs Kids"], "scd": false}, {"id": "200", "label": "Single Life", "path": ["Family and Relationships", "Single Life"], "scd": false}, {"id": "201", "label": "Fine Art", "path": ["Fine Art"], "scd": false}, {"id": "202", "label": "Costume", "path": ["Fine Art", "Costume"], "scd": false}, {"id": "203", "label": "Dance", "path": ["Fine Art", "Dance"], "scd": false}, {"id": "204", "label": "Design", "path": ["Fine Art", "Design"], "scd": false}, {"id": "205", "label": "Digital Arts", "path": ["Fine Art", "Digital Arts"], "scd": false}, {"id": "206", "label": "Fine Art Photography", "path": ["Fine Art", "Fine Art Photography"], "scd": false}, {"id": "207", "label": "Modern Art", "path": ["Fine Art", "Modern Art"], "scd": false}, {"id": "208", "label": "Opera", "path": ["Fine Art", "Opera"], "scd": false}, {"id": "209", "label": "Theater", "path": ["Fine Art", "Theater"], "scd": false}, {"id": "210", "label": "Food & Drink", "path": ["Food & Drink"], "scd": false}, {"id": "211", "label": "Alcoholic Beverages", "path": ["Food & Drink", "Alcoholic Beverages"], "scd": false}, {"id": "215", "label": "Barbecues and Grilling", "path": ["Food & Drink", "Barbecues and Grilling"], "scd": false}, {"id": "216", "label": "Cooking", "path": ["Food & Drink", "Cooking"], "scd": false}, {"id": "217", "label": "Desserts and Baking", "path": ["Food & Drink", "Desserts and Baking"], "scd": false}, {"id": "218", "label": "Dining Out", "path": ["Food & Drink", "Dining Out"], "scd": false}, {"id": "219", "label": "Food Allergies", "path": ["Food & Drink", "Food Allergies"], "scd": false}, {"id": "220", "label": "Food Movements", "path": ["Food & Drink", "Food Movements"], "scd": false}, {"id": "221", "label": "Healthy Cooking and Eating", "path": ["Food & Drink", "Healthy Cooking and Eating"], "scd": false}, {"id": "222", "label": "Non-Alcoholic Beverages", "path": ["Food & Drink", "Non-Alcoholic Beverages"], "scd": false}, {"id": "212", "label": "Vegan Diets", "path": ["Food & Drink", "Vegan Diets"], "scd": false}, {"id": "213", "label": "Vegetarian Diets", "path": ["Food & Drink", "Vegetarian Diets"], "scd": false}, {"id": "214", "label": "World Cuisines", "path": ["Food & Drink", "World Cuisines"], "scd": false}, {"id": "SPSHQ5", "label": "Genres", "path": ["Genres"], "scd": false}, {"id": "VKIV56", "label": "Nature", "path": ["Genres", "Nature"], "scd": false}, {"id": "325", "label": "Action/Adventure", "path": ["Genres", "Action/Adventure"], "scd": false}, {"id": "641", "label": "Animation & Anime", "path": ["Genres", "Animation & Anime"], "scd": false}, {"id": "44", "label": "Biographies", "path": ["Genres", "Biographies"], "scd": false}, {"id": "646", "label": "Comedy", "path": ["Genres", "Comedy"], "scd": false}, {"id": "332", "label": "Documentary", "path": ["Genres", "Documentary"], "scd": false}, {"id": "647", "label": "Drama", "path": ["Genres", "Drama"], "scd": false}, {"id": "648", "label": "Factual", "path": ["Genres", "Factual"], "scd": false}, {"id": "645", "label": "Family/Children", "path": ["Genres", "Family/Children"], "scd": false}, {"id": "335", "label": "Fantasy", "path": ["Genres", "Fantasy"], "scd": false}, {"id": "EZWB7V", "label": "History", "path": ["Genres", "History"], "scd": false}, {"id": "649", "label": "Holiday", "path": ["Genres", "Holiday"], "scd": false}, {"id": "336", "label": "Horror", "path": ["Genres", "Horror"], "scd": false}, {"id": "TIFQA5", "label": "Lifestyle", "path": ["Genres", "Lifestyle"], "scd": false}, {"id": "650", "label": "Music Video", "path": ["Genres", "Music Video"], "scd": false}, {"id": "156", "label": "Musical", "path": ["Genres", "Musical"], "scd": false}, {"id": "331", "label": "Mystery", "path": ["Genres", "Mystery"], "scd": false}, {"id": "651", "label": "Reality TV", "path": ["Genres", "Reality TV"], "scd": false}, {"id": "326", "label": "Romance", "path": ["Genres", "Romance"], "scd": false}, {"id": "652", "label": "Science Fiction", "path": ["Genres", "Science Fiction"], "scd": false}, {"id": "642", "label": "Soap Opera", "path": ["Genres", "Soap Opera"], "scd": false}, {"id": "643", "label": "Special Interest (Indie/Art House)", "path": ["Genres", "Special Interest (Indie/Art House)"], "scd": false}, {"id": "370", "label": "Sports Radio", "path": ["Genres", "Sports Radio"], "scd": false}, {"id": "371", "label": "Talk Radio", "path": ["Genres", "Talk Radio"], "scd": false}, {"id": "376", "label": "Public Radio", "path": ["Genres", "Talk Radio", "Public Radio"], "scd": false}, {"id": "A0AH3G", "label": "Talk Show", "path": ["Genres", "Talk Show"], "scd": false}, {"id": "KHPC5A", "label": "True Crime", "path": ["Genres", "True Crime"], "scd": false}, {"id": "KHPC6A", "label": "Western", "path": ["Genres", "Western"], "scd": false}, {"id": "51", "label": "Young Adult", "path": ["Genres", "Young Adult"], "scd": false}, {"id": "700", "label": "Thriller", "path": ["Genres", "Thriller"], "scd": false}, {"id": "223", "label": "Healthy Living", "path": ["Healthy Living"], "scd": false}, {"id": "224", "label": "Children's Health", "path": ["Healthy Living", "Children's Health"], "scd": false}, {"id": "225", "label": "Fitness and Exercise", "path": ["Healthy Living", "Fitness and Exercise"], "scd": false}, {"id": "226", "label": "Participant Sports", "path": ["Healthy Living", "Fitness and Exercise", "Participant Sports"], "scd": false}, {"id": "227", "label": "Running and Jogging", "path": ["Healthy Living", "Fitness and Exercise", "Running and Jogging"], "scd": false}, {"id": "228", "label": "Men's Health", "path": ["Healthy Living", "Men's Health"], "scd": false}, {"id": "229", "label": "Nutrition", "path": ["Healthy Living", "Nutrition"], "scd": false}, {"id": "230", "label": "Senior Health", "path": ["Healthy Living", "Senior Health"], "scd": false}, {"id": "231", "label": "Weight Loss", "path": ["Healthy Living", "Weight Loss"], "scd": false}, {"id": "232", "label": "Wellness", "path": ["Healthy Living", "Wellness"], "scd": false}, {"id": "233", "label": "Alternative Medicine", "path": ["Healthy Living", "Wellness", "Alternative Medicine"], "scd": false}, {"id": "234", "label": "Herbs and Supplements", "path": ["Healthy Living", "Wellness", "Alternative Medicine", "Herbs and Supplements"], "scd": false}, {"id": "235", "label": "Holistic Health", "path": ["Healthy Living", "Wellness", "Alternative Medicine", "Holistic Health"], "scd": false}, {"id": "236", "label": "Physical Therapy", "path": ["Healthy Living", "Wellness", "Physical Therapy"], "scd": false}, {"id": "237", "label": "Smoking Cessation", "path": ["Healthy Living", "Wellness", "Smoking Cessation"], "scd": false}, {"id": "238", "label": "Women's Health", "path": ["Healthy Living", "Women's Health"], "scd": false}, {"id": "239", "label": "Hobbies & Interests", "path": ["Hobbies & Interests"], "scd": false}, {"id": "240", "label": "Antiquing and Antiques", "path": ["Hobbies & Interests", "Antiquing and Antiques"], "scd": false}, {"id": "248", "label": "Arts and Crafts", "path": ["Hobbies & Interests", "Arts and Crafts"], "scd": false}, {"id": "249", "label": "Beadwork", "path": ["Hobbies & Interests", "Arts and Crafts", "Beadwork"], "scd": false}, {"id": "250", "label": "Candle and Soap Making", "path": ["Hobbies & Interests", "Arts and Crafts", "Candle and Soap Making"], "scd": false}, {"id": "251", "label": "Drawing and Sketching", "path": ["Hobbies & Interests", "Arts and Crafts", "Drawing and Sketching"], "scd": false}, {"id": "252", "label": "Jewelry Making", "path": ["Hobbies & Interests", "Arts and Crafts", "Jewelry Making"], "scd": false}, {"id": "253", "label": "Needlework", "path": ["Hobbies & Interests", "Arts and Crafts", "Needlework"], "scd": false}, {"id": "254", "label": "Painting", "path": ["Hobbies & Interests", "Arts and Crafts", "Painting"], "scd": false}, {"id": "255", "label": "Photography", "path": ["Hobbies & Interests", "Arts and Crafts", "Photography"], "scd": false}, {"id": "256", "label": "Scrapbooking", "path": ["Hobbies & Interests", "Arts and Crafts", "Scrapbooking"], "scd": false}, {"id": "257", "label": "Woodworking", "path": ["Hobbies & Interests", "Arts and Crafts", "Woodworking"], "scd": false}, {"id": "258", "label": "Beekeeping", "path": ["Hobbies & Interests", "Beekeeping"], "scd": false}, {"id": "259", "label": "Birdwatching", "path": ["Hobbies & Interests", "Birdwatching"], "scd": false}, {"id": "260", "label": "Cigars", "path": ["Hobbies & Interests", "Cigars"], "scd": false}, {"id": "261", "label": "Collecting", "path": ["Hobbies & Interests", "Collecting"], "scd": false}, {"id": "262", "label": "Comic Books", "path": ["Hobbies & Interests", "Collecting", "Comic Books"], "scd": false}, {"id": "263", "label": "Stamps and Coins", "path": ["Hobbies & Interests", "Collecting", "Stamps and Coins"], "scd": false}, {"id": "264", "label": "Content Production", "path": ["Hobbies & Interests", "Content Production"], "scd": false}, {"id": "265", "label": "Audio Production", "path": ["Hobbies & Interests", "Content Production", "Audio Production"], "scd": false}, {"id": "266", "label": "Freelance Writing", "path": ["Hobbies & Interests", "Content Production", "Freelance Writing"], "scd": false}, {"id": "267", "label": "Screenwriting", "path": ["Hobbies & Interests", "Content Production", "Screenwriting"], "scd": false}, {"id": "268", "label": "Video Production", "path": ["Hobbies & Interests", "Content Production", "Video Production"], "scd": false}, {"id": "269", "label": "Games and Puzzles", "path": ["Hobbies & Interests", "Games and Puzzles"], "scd": false}, {"id": "270", "label": "Board Games and Puzzles", "path": ["Hobbies & Interests", "Games and Puzzles", "Board Games and Puzzles"], "scd": false}, {"id": "271", "label": "Card Games", "path": ["Hobbies & Interests", "Games and Puzzles", "Card Games"], "scd": false}, {"id": "272", "label": "Roleplaying Games", "path": ["Hobbies & Interests", "Games and Puzzles", "Roleplaying Games"], "scd": false}, {"id": "273", "label": "Genealogy and Ancestry", "path": ["Hobbies & Interests", "Genealogy and Ancestry"], "scd": false}, {"id": "241", "label": "Magic and Illusion", "path": ["Hobbies & Interests", "Magic and Illusion"], "scd": false}, {"id": "242", "label": "Model Toys", "path": ["Hobbies & Interests", "Model Toys"], "scd": false}, {"id": "243", "label": "Musical Instruments", "path": ["Hobbies & Interests", "Musical Instruments"], "scd": false}, {"id": "244", "label": "Paranormal Phenomena", "path": ["Hobbies & Interests", "Paranormal Phenomena"], "scd": false}, {"id": "245", "label": "Radio Control", "path": ["Hobbies & Interests", "Radio Control"], "scd": false}, {"id": "246", "label": "Sci-fi and Fantasy", "path": ["Hobbies & Interests", "Sci-fi and Fantasy"], "scd": false}, {"id": "247", "label": "Workshops and Classes", "path": ["Hobbies & Interests", "Workshops and Classes"], "scd": false}, {"id": "1KXCLD", "label": "Holidays", "path": ["Holidays"], "scd": false}, {"id": "157", "label": "National & Civic Holidays", "path": ["Holidays", "National & Civic Holidays"], "scd": false}, {"id": "274", "label": "Home & Garden", "path": ["Home & Garden"], "scd": false}, {"id": "275", "label": "Gardening", "path": ["Home & Garden", "Gardening"], "scd": false}, {"id": "278", "label": "Home Appliances", "path": ["Home & Garden", "Home Appliances"], "scd": false}, {"id": "279", "label": "Home Entertaining", "path": ["Home & Garden", "Home Entertaining"], "scd": false}, {"id": "280", "label": "Home Improvement", "path": ["Home & Garden", "Home Improvement"], "scd": false}, {"id": "281", "label": "Home Security", "path": ["Home & Garden", "Home Security"], "scd": false}, {"id": "282", "label": "Indoor Environmental Quality", "path": ["Home & Garden", "Indoor Environmental Quality"], "scd": false}, {"id": "283", "label": "Interior Decorating", "path": ["Home & Garden", "Interior Decorating"], "scd": false}, {"id": "284", "label": "Landscaping", "path": ["Home & Garden", "Landscaping"], "scd": false}, {"id": "285", "label": "Outdoor Decorating", "path": ["Home & Garden", "Outdoor Decorating"], "scd": false}, {"id": "276", "label": "Remodeling & Construction", "path": ["Home & Garden", "Remodeling & Construction"], "scd": false}, {"id": "277", "label": "Smart Home", "path": ["Home & Garden", "Smart Home"], "scd": false}, {"id": "383", "label": "Law", "path": ["Law"], "scd": false}, {"id": "286", "label": "Medical Health", "path": ["Medical Health"], "scd": false}, {"id": "323", "label": "Cosmetic Medical Services", "path": ["Medical Health", "Cosmetic Medical Services"], "scd": false}, {"id": "287", "label": "Diseases and Conditions", "path": ["Medical Health", "Diseases and Conditions"], "scd": false}, {"id": "288", "label": "Allergies", "path": ["Medical Health", "Diseases and Conditions", "Allergies"], "scd": false}, {"id": "306", "label": "Blood Disorders", "path": ["Medical Health", "Diseases and Conditions", "Blood Disorders"], "scd": false}, {"id": "312", "label": "Bone and Joint Conditions", "path": ["Medical Health", "Diseases and Conditions", "Bone and Joint Conditions"], "scd": false}, {"id": "313", "label": "Brain and Nervous System Disorders", "path": ["Medical Health", "Diseases and Conditions", "Brain and Nervous System Disorders"], "scd": false}, {"id": "314", "label": "Cancer", "path": ["Medical Health", "Diseases and Conditions", "Cancer"], "scd": false}, {"id": "315", "label": "Cold and Flu", "path": ["Medical Health", "Diseases and Conditions", "Cold and Flu"], "scd": false}, {"id": "316", "label": "Dental Health", "path": ["Medical Health", "Diseases and Conditions", "Dental Health"], "scd": false}, {"id": "317", "label": "Diabetes", "path": ["Medical Health", "Diseases and Conditions", "Diabetes"], "scd": false}, {"id": "318", "label": "Digestive Disorders", "path": ["Medical Health", "Diseases and Conditions", "Digestive Disorders"], "scd": false}, {"id": "289", "label": "Ear, Nose and Throat Conditions", "path": ["Medical Health", "Diseases and Conditions", "Ear, Nose and Throat Conditions"], "scd": false}, {"id": "290", "label": "Endocrine and Metabolic Diseases", "path": ["Medical Health", "Diseases and Conditions", "Endocrine and Metabolic Diseases"], "scd": false}, {"id": "291", "label": "Hormonal Disorders", "path": ["Medical Health", "Diseases and Conditions", "Endocrine and Metabolic Diseases", "Hormonal Disorders"], "scd": false}, {"id": "292", "label": "Menopause", "path": ["Medical Health", "Diseases and Conditions", "Endocrine and Metabolic Diseases", "Menopause"], "scd": false}, {"id": "293", "label": "Thyroid Disorders", "path": ["Medical Health", "Diseases and Conditions", "Endocrine and Metabolic Diseases", "Thyroid Disorders"], "scd": false}, {"id": "294", "label": "Eye and Vision Conditions", "path": ["Medical Health", "Diseases and Conditions", "Eye and Vision Conditions"], "scd": false}, {"id": "295", "label": "Foot Health", "path": ["Medical Health", "Diseases and Conditions", "Foot Health"], "scd": false}, {"id": "296", "label": "Heart and Cardiovascular Diseases", "path": ["Medical Health", "Diseases and Conditions", "Heart and Cardiovascular Diseases"], "scd": false}, {"id": "297", "label": "Infectious Diseases", "path": ["Medical Health", "Diseases and Conditions", "Infectious Diseases"], "scd": false}, {"id": "298", "label": "Injuries", "path": ["Medical Health", "Diseases and Conditions", "Injuries"], "scd": false}, {"id": "299", "label": "First Aid", "path": ["Medical Health", "Diseases and Conditions", "Injuries", "First Aid"], "scd": false}, {"id": "300", "label": "Lung and Respiratory Health", "path": ["Medical Health", "Diseases and Conditions", "Lung and Respiratory Health"], "scd": false}, {"id": "301", "label": "Mental Health", "path": ["Medical Health", "Diseases and Conditions", "Mental Health"], "scd": false}, {"id": "302", "label": "Reproductive Health", "path": ["Medical Health", "Diseases and Conditions", "Reproductive Health"], "scd": false}, {"id": "303", "label": "Birth Control", "path": ["Medical Health", "Diseases and Conditions", "Reproductive Health", "Birth Control"], "scd": false}, {"id": "304", "label": "Infertility", "path": ["Medical Health", "Diseases and Conditions", "Reproductive Health", "Infertility"], "scd": false}, {"id": "305", "label": "Pregnancy", "path": ["Medical Health", "Diseases and Conditions", "Reproductive Health", "Pregnancy"], "scd": false}, {"id": "307", "label": "Sexual Health", "path": ["Medical Health", "Diseases and Conditions", "Sexual Health"], "scd": false}, {"id": "308", "label": "Sexual Conditions", "path": ["Medical Health", "Diseases and Conditions", "Sexual Health", "Sexual Conditions"], "scd": false}, {"id": "309", "label": "Skin and Dermatology", "path": ["Medical Health", "Diseases and Conditions", "Skin and Dermatology"], "scd": false}, {"id": "310", "label": "Sleep Disorders", "path": ["Medical Health", "Diseases and Conditions", "Sleep Disorders"], "scd": false}, {"id": "311", "label": "Substance Abuse", "path": ["Medical Health", "Diseases and Conditions", "Substance Abuse"], "scd": false}, {"id": "319", "label": "Medical Tests", "path": ["Medical Health", "Medical Tests"], "scd": false}, {"id": "320", "label": "Pharmaceutical Drugs", "path": ["Medical Health", "Pharmaceutical Drugs"], "scd": false}, {"id": "321", "label": "Surgery", "path": ["Medical Health", "Surgery"], "scd": false}, {"id": "322", "label": "Vaccines", "path": ["Medical Health", "Vaccines"], "scd": false}, {"id": "342", "label": "Adult Album Alternative", "path": ["Entertainment", "Music", "Adult Album Alternative"], "scd": false}, {"id": "339", "label": "Adult Contemporary Music", "path": ["Entertainment", "Music", "Adult Contemporary Music"], "scd": false}, {"id": "340", "label": "Soft AC Music", "path": ["Entertainment", "Music", "Adult Contemporary Music", "Soft AC Music"], "scd": false}, {"id": "341", "label": "Urban AC Music", "path": ["Entertainment", "Music", "Adult Contemporary Music", "Urban AC Music"], "scd": false}, {"id": "343", "label": "Alternative Music", "path": ["Entertainment", "Music", "Alternative Music"], "scd": false}, {"id": "360", "label": "Blues", "path": ["Entertainment", "Music", "Blues"], "scd": false}, {"id": "344", "label": "Children's Music", "path": ["Entertainment", "Music", "Children's Music"], "scd": false}, {"id": "345", "label": "Classic Hits", "path": ["Entertainment", "Music", "Classic Hits"], "scd": false}, {"id": "346", "label": "Classical Music", "path": ["Entertainment", "Music", "Classical Music"], "scd": false}, {"id": "347", "label": "College Radio", "path": ["Entertainment", "Music", "College Radio"], "scd": false}, {"id": "348", "label": "Comedy (Music and Audio)", "path": ["Entertainment", "Music", "Comedy (Music and Audio)"], "scd": false}, {"id": "349", "label": "Contemporary Hits/Pop/Top 40", "path": ["Entertainment", "Music", "Contemporary Hits/Pop/Top 40"], "scd": false}, {"id": "350", "label": "Country Music", "path": ["Entertainment", "Music", "Country Music"], "scd": false}, {"id": "351", "label": "Dance and Electronic Music", "path": ["Entertainment", "Music", "Dance and Electronic Music"], "scd": false}, {"id": "354", "label": "Gospel Music", "path": ["Entertainment", "Music", "Gospel Music"], "scd": false}, {"id": "355", "label": "Hip Hop Music", "path": ["Entertainment", "Music", "Hip Hop Music"], "scd": false}, {"id": "356", "label": "Inspirational/New Age Music", "path": ["Entertainment", "Music", "Inspirational/New Age Music"], "scd": false}, {"id": "357", "label": "Jazz", "path": ["Entertainment", "Music", "Jazz"], "scd": false}, {"id": "358", "label": "Oldies/Adult Standards", "path": ["Entertainment", "Music", "Oldies/Adult Standards"], "scd": false}, {"id": "362", "label": "R&B/Soul/Funk", "path": ["Entertainment", "Music", "R&B/Soul/Funk"], "scd": false}, {"id": "359", "label": "Reggae", "path": ["Entertainment", "Music", "Reggae"], "scd": false}, {"id": "361", "label": "Religious (Music and Audio)", "path": ["Entertainment", "Music", "Religious (Music and Audio)"], "scd": false}, {"id": "363", "label": "Rock Music", "path": ["Entertainment", "Music", "Rock Music"], "scd": false}, {"id": "364", "label": "Album-oriented Rock", "path": ["Entertainment", "Music", "Rock Music", "Album-oriented Rock"], "scd": false}, {"id": "365", "label": "Alternative Rock", "path": ["Entertainment", "Music", "Rock Music", "Alternative Rock"], "scd": false}, {"id": "366", "label": "Classic Rock", "path": ["Entertainment", "Music", "Rock Music", "Classic Rock"], "scd": false}, {"id": "367", "label": "Hard Rock", "path": ["Entertainment", "Music", "Rock Music", "Hard Rock"], "scd": false}, {"id": "368", "label": "Soft Rock", "path": ["Entertainment", "Music", "Rock Music", "Soft Rock"], "scd": false}, {"id": "353", "label": "Songwriters/Folk", "path": ["Entertainment", "Music", "Songwriters/Folk"], "scd": false}, {"id": "369", "label": "Soundtracks, TV and Showtunes", "path": ["Entertainment", "Music", "Soundtracks, TV and Showtunes"], "scd": false}, {"id": "352", "label": "World/International Music", "path": ["Entertainment", "Music", "World/International Music"], "scd": false}, {"id": "377", "label": "Urban Contemporary Music", "path": ["Entertainment", "Music", "Urban Contemporary Music"], "scd": false}, {"id": "378", "label": "Variety (Music and Audio)", "path": ["Entertainment", "Music", "Variety (Music and Audio)"], "scd": false}, {"id": "163", "label": "Personal Celebrations & Life Events", "path": ["Personal Celebrations & Life Events"], "scd": false}, {"id": "164", "label": "Anniversary", "path": ["Personal Celebrations & Life Events", "Anniversary"], "scd": false}, {"id": "166", "label": "Baby Shower", "path": ["Personal Celebrations & Life Events", "Baby Shower"], "scd": false}, {"id": "167", "label": "Bachelor Party", "path": ["Personal Celebrations & Life Events", "Bachelor Party"], "scd": false}, {"id": "168", "label": "Bachelorette Party", "path": ["Personal Celebrations & Life Events", "Bachelorette Party"], "scd": false}, {"id": "169", "label": "Birth", "path": ["Personal Celebrations & Life Events", "Birth"], "scd": false}, {"id": "170", "label": "Birthday", "path": ["Personal Celebrations & Life Events", "Birthday"], "scd": false}, {"id": "171", "label": "Funeral", "path": ["Personal Celebrations & Life Events", "Funeral"], "scd": false}, {"id": "172", "label": "Graduation", "path": ["Personal Celebrations & Life Events", "Graduation"], "scd": false}, {"id": "173", "label": "Prom", "path": ["Personal Celebrations & Life Events", "Prom"], "scd": false}, {"id": "165", "label": "Wedding", "path": ["Personal Celebrations & Life Events", "Wedding"], "scd": false}, {"id": "391", "label": "Personal Finance", "path": ["Personal Finance"], "scd": false}, {"id": "392", "label": "Consumer Banking", "path": ["Personal Finance", "Consumer Banking"], "scd": false}, {"id": "393", "label": "Financial Assistance", "path": ["Personal Finance", "Financial Assistance"], "scd": false}, {"id": "394", "label": "Government Support and Welfare", "path": ["Personal Finance", "Financial Assistance", "Government Support and Welfare"], "scd": false}, {"id": "395", "label": "Student Financial Aid", "path": ["Personal Finance", "Financial Assistance", "Student Financial Aid"], "scd": false}, {"id": "396", "label": "Financial Planning", "path": ["Personal Finance", "Financial Planning"], "scd": false}, {"id": "397", "label": "Frugal Living", "path": ["Personal Finance", "Frugal Living"], "scd": false}, {"id": "417", "label": "Home Utilities", "path": ["Personal Finance", "Home Utilities"], "scd": false}, {"id": "418", "label": "Gas and Electric", "path": ["Personal Finance", "Home Utilities", "Gas and Electric"], "scd": false}, {"id": "419", "label": "Internet Service Providers", "path": ["Personal Finance", "Home Utilities", "Internet Service Providers"], "scd": false}, {"id": "420", "label": "Phone Services", "path": ["Personal Finance", "Home Utilities", "Phone Services"], "scd": false}, {"id": "421", "label": "Water Services", "path": ["Personal Finance", "Home Utilities", "Water Services"], "scd": false}, {"id": "398", "label": "Insurance", "path": ["Personal Finance", "Insurance"], "scd": false}, {"id": "399", "label": "Health Insurance", "path": ["Personal Finance", "Insurance", "Health Insurance"], "scd": false}, {"id": "400", "label": "Home Insurance", "path": ["Personal Finance", "Insurance", "Home Insurance"], "scd": false}, {"id": "401", "label": "Life Insurance", "path": ["Personal Finance", "Insurance", "Life Insurance"], "scd": false}, {"id": "402", "label": "Motor Insurance", "path": ["Personal Finance", "Insurance", "Motor Insurance"], "scd": false}, {"id": "403", "label": "Pet Insurance", "path": ["Personal Finance", "Insurance", "Pet Insurance"], "scd": false}, {"id": "404", "label": "Travel Insurance", "path": ["Personal Finance", "Insurance", "Travel Insurance"], "scd": false}, {"id": "405", "label": "Personal Debt", "path": ["Personal Finance", "Personal Debt"], "scd": false}, {"id": "406", "label": "Credit Cards", "path": ["Personal Finance", "Personal Debt", "Credit Cards"], "scd": false}, {"id": "407", "label": "Home Financing", "path": ["Personal Finance", "Personal Debt", "Home Financing"], "scd": false}, {"id": "408", "label": "Personal Loans", "path": ["Personal Finance", "Personal Debt", "Personal Loans"], "scd": false}, {"id": "409", "label": "Student Loans", "path": ["Personal Finance", "Personal Debt", "Student Loans"], "scd": false}, {"id": "410", "label": "Personal Investing", "path": ["Personal Finance", "Personal Investing"], "scd": false}, {"id": "411", "label": "Hedge Funds", "path": ["Personal Finance", "Personal Investing", "Hedge Funds"], "scd": false}, {"id": "412", "label": "Mutual Funds", "path": ["Personal Finance", "Personal Investing", "Mutual Funds"], "scd": false}, {"id": "413", "label": "Options", "path": ["Personal Finance", "Personal Investing", "Options"], "scd": false}, {"id": "414", "label": "Stocks and Bonds", "path": ["Personal Finance", "Personal Investing", "Stocks and Bonds"], "scd": false}, {"id": "415", "label": "Personal Taxes", "path": ["Personal Finance", "Personal Taxes"], "scd": false}, {"id": "416", "label": "Retirement Planning", "path": ["Personal Finance", "Retirement Planning"], "scd": false}, {"id": "422", "label": "Pets", "path": ["Pets"], "scd": false}, {"id": "423", "label": "Birds", "path": ["Pets", "Birds"], "scd": false}, {"id": "424", "label": "Cats", "path": ["Pets", "Cats"], "scd": false}, {"id": "425", "label": "Dogs", "path": ["Pets", "Dogs"], "scd": false}, {"id": "426", "label": "Fish and Aquariums", "path": ["Pets", "Fish and Aquariums"], "scd": false}, {"id": "427", "label": "Large Animals", "path": ["Pets", "Large Animals"], "scd": false}, {"id": "428", "label": "Pet Adoptions", "path": ["Pets", "Pet Adoptions"], "scd": false}, {"id": "431", "label": "Pet Supplies", "path": ["Pets", "Pet Supplies"], "scd": false}, {"id": "429", "label": "Reptiles", "path": ["Pets", "Reptiles"], "scd": false}, {"id": "430", "label": "Veterinary Medicine", "path": ["Pets", "Veterinary Medicine"], "scd": false}, {"id": "386", "label": "Politics", "path": ["Politics"], "scd": false}, {"id": "8YPBBL", "label": "Civic affairs", "path": ["Politics", "Civic affairs"], "scd": false}, {"id": "387", "label": "Elections", "path": ["Politics", "Elections"], "scd": false}, {"id": "388", "label": "Political Issues & Policy", "path": ["Politics", "Political Issues & Policy"], "scd": false}, {"id": "432", "label": "Pop Culture", "path": ["Pop Culture"], "scd": false}, {"id": "433", "label": "Celebrity Deaths", "path": ["Pop Culture", "Celebrity Deaths"], "scd": false}, {"id": "434", "label": "Celebrity Families", "path": ["Pop Culture", "Celebrity Families"], "scd": false}, {"id": "435", "label": "Celebrity Homes", "path": ["Pop Culture", "Celebrity Homes"], "scd": false}, {"id": "436", "label": "Celebrity Pregnancy", "path": ["Pop Culture", "Celebrity Pregnancy"], "scd": false}, {"id": "437", "label": "Celebrity Relationships", "path": ["Pop Culture", "Celebrity Relationships"], "scd": false}, {"id": "438", "label": "Celebrity Scandal", "path": ["Pop Culture", "Celebrity Scandal"], "scd": false}, {"id": "439", "label": "Celebrity Style", "path": ["Pop Culture", "Celebrity Style"], "scd": false}, {"id": "440", "label": "Humor and Satire", "path": ["Pop Culture", "Humor and Satire"], "scd": false}, {"id": "W3CW2J", "label": "Productivity", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Productivity"], "scd": false}, {"id": "441", "label": "Real Estate", "path": ["Real Estate"], "scd": false}, {"id": "442", "label": "Apartments", "path": ["Real Estate", "Apartments"], "scd": false}, {"id": "445", "label": "Developmental Sites", "path": ["Real Estate", "Developmental Sites"], "scd": false}, {"id": "446", "label": "Hotel Properties", "path": ["Real Estate", "Hotel Properties"], "scd": false}, {"id": "447", "label": "Houses", "path": ["Real Estate", "Houses"], "scd": false}, {"id": "448", "label": "Industrial Property", "path": ["Real Estate", "Industrial Property"], "scd": false}, {"id": "449", "label": "Land and Farms", "path": ["Real Estate", "Land and Farms"], "scd": false}, {"id": "450", "label": "Office Property", "path": ["Real Estate", "Office Property"], "scd": false}, {"id": "451", "label": "Real Estate Buying and Selling", "path": ["Real Estate", "Real Estate Buying and Selling"], "scd": false}, {"id": "452", "label": "Real Estate Renting and Leasing", "path": ["Real Estate", "Real Estate Renting and Leasing"], "scd": false}, {"id": "443", "label": "Retail Property", "path": ["Real Estate", "Retail Property"], "scd": false}, {"id": "444", "label": "Vacation Properties", "path": ["Real Estate", "Vacation Properties"], "scd": false}, {"id": "453", "label": "Religion & Spirituality", "path": ["Religion & Spirituality"], "scd": false}, {"id": "454", "label": "Agnosticism", "path": ["Religion & Spirituality", "Agnosticism"], "scd": false}, {"id": "456", "label": "Astrology", "path": ["Religion & Spirituality", "Astrology"], "scd": false}, {"id": "457", "label": "Atheism", "path": ["Religion & Spirituality", "Atheism"], "scd": false}, {"id": "458", "label": "Buddhism", "path": ["Religion & Spirituality", "Buddhism"], "scd": false}, {"id": "459", "label": "Christianity", "path": ["Religion & Spirituality", "Christianity"], "scd": false}, {"id": "460", "label": "Hinduism", "path": ["Religion & Spirituality", "Hinduism"], "scd": false}, {"id": "461", "label": "Islam", "path": ["Religion & Spirituality", "Islam"], "scd": false}, {"id": "462", "label": "Judaism", "path": ["Religion & Spirituality", "Judaism"], "scd": false}, {"id": "463", "label": "Sikhism", "path": ["Religion & Spirituality", "Sikhism"], "scd": false}, {"id": "455", "label": "Spirituality", "path": ["Religion & Spirituality", "Spirituality"], "scd": false}, {"id": "464", "label": "Science", "path": ["Science"], "scd": false}, {"id": "465", "label": "Biological Sciences", "path": ["Science", "Biological Sciences"], "scd": false}, {"id": "466", "label": "Chemistry", "path": ["Science", "Chemistry"], "scd": false}, {"id": "467", "label": "Environment", "path": ["Science", "Environment"], "scd": false}, {"id": "468", "label": "Genetics", "path": ["Science", "Genetics"], "scd": false}, {"id": "469", "label": "Geography", "path": ["Science", "Geography"], "scd": false}, {"id": "470", "label": "Geology", "path": ["Science", "Geology"], "scd": false}, {"id": "471", "label": "Physics", "path": ["Science", "Physics"], "scd": false}, {"id": "472", "label": "Space and Astronomy", "path": ["Science", "Space and Astronomy"], "scd": false}, {"id": "390", "label": "Weather", "path": ["Science", "Weather"], "scd": false}, {"id": "v9i3On", "label": "Sensitive Topics", "path": ["Sensitive Topics"], "scd": false}, {"id": "Rm3SiT", "label": "Adult & Explicit Sexual Content", "path": ["Sensitive Topics", "Adult & Explicit Sexual Content"], "scd": false}, {"id": "avbNf2", "label": "Arms & Ammunition", "path": ["Sensitive Topics", "Arms & Ammunition"], "scd": false}, {"id": "XtODT3", "label": "Crime & Harmful Acts to Individuals, Society & Human Right Violations", "path": ["Sensitive Topics", "Crime & Harmful Acts to Individuals, Society & Human Right Violations"], "scd": false}, {"id": "I4GWl6", "label": "Death, Injury, or Military Conflict", "path": ["Sensitive Topics", "Death, Injury, or Military Conflict"], "scd": false}, {"id": "Z7rJBM", "label": "Debated Sensitive Social Issues", "path": ["Sensitive Topics", "Debated Sensitive Social Issues"], "scd": false}, {"id": "HxqYV1", "label": "Hate Speech and Acts of Aggression", "path": ["Sensitive Topics", "Hate Speech and Acts of Aggression"], "scd": false}, {"id": "pg0WhF", "label": "Illegal Drugs, Tobacco, eCigarettes, Vaping, Alcohol", "path": ["Sensitive Topics", "Illegal Drugs, Tobacco, eCigarettes, Vaping, Alcohol"], "scd": false}, {"id": "j9PaO9", "label": "Obscenity and Profanity", "path": ["Sensitive Topics", "Obscenity and Profanity"], "scd": false}, {"id": "mm3UXx", "label": "Online Piracy", "path": ["Sensitive Topics", "Online Piracy"], "scd": false}, {"id": "6i4dB6", "label": "Spam or Harmful Content", "path": ["Sensitive Topics", "Spam or Harmful Content"], "scd": false}, {"id": "8FD8nI", "label": "Terrorism", "path": ["Sensitive Topics", "Terrorism"], "scd": false}, {"id": "473", "label": "Shopping", "path": ["Shopping"], "scd": false}, {"id": "482", "label": "Children's Games and Toys", "path": ["Shopping", "Children's Games and Toys"], "scd": false}, {"id": "474", "label": "Coupons and Discounts", "path": ["Shopping", "Coupons and Discounts"], "scd": false}, {"id": "475", "label": "Flower Shopping", "path": ["Shopping", "Flower Shopping"], "scd": false}, {"id": "476", "label": "Gifts and Greetings Cards", "path": ["Shopping", "Gifts and Greetings Cards"], "scd": false}, {"id": "477", "label": "Grocery Shopping", "path": ["Shopping", "Grocery Shopping"], "scd": false}, {"id": "478", "label": "Holiday Shopping", "path": ["Shopping", "Holiday Shopping"], "scd": false}, {"id": "479", "label": "Household Supplies", "path": ["Shopping", "Household Supplies"], "scd": false}, {"id": "480", "label": "Lotteries and Scratchcards", "path": ["Shopping", "Lotteries and Scratchcards"], "scd": false}, {"id": "161", "label": "Party Supplies and Decorations", "path": ["Shopping", "Party Supplies and Decorations"], "scd": false}, {"id": "481", "label": "Sales and Promotions", "path": ["Shopping", "Sales and Promotions"], "scd": false}, {"id": "483", "label": "Sports", "path": ["Sports"], "scd": false}, {"id": "484", "label": "American Football", "path": ["Sports", "American Football"], "scd": false}, {"id": "507", "label": "Australian Rules Football", "path": ["Sports", "Australian Rules Football"], "scd": false}, {"id": "518", "label": "Auto Racing", "path": ["Sports", "Auto Racing"], "scd": false}, {"id": "519", "label": "Motorcycle Sports", "path": ["Sports", "Auto Racing", "Motorcycle Sports"], "scd": false}, {"id": "534", "label": "Badminton", "path": ["Sports", "Badminton"], "scd": false}, {"id": "545", "label": "Baseball", "path": ["Sports", "Baseball"], "scd": false}, {"id": "547", "label": "Basketball", "path": ["Sports", "Basketball"], "scd": false}, {"id": "548", "label": "Beach Volleyball", "path": ["Sports", "Beach Volleyball"], "scd": false}, {"id": "549", "label": "Bodybuilding", "path": ["Sports", "Bodybuilding"], "scd": false}, {"id": "550", "label": "Bowling", "path": ["Sports", "Bowling"], "scd": false}, {"id": "485", "label": "Boxing", "path": ["Sports", "Boxing"], "scd": false}, {"id": "486", "label": "Cheerleading", "path": ["Sports", "Cheerleading"], "scd": false}, {"id": "487", "label": "College Sports", "path": ["Sports", "College Sports"], "scd": false}, {"id": "490", "label": "College Baseball", "path": ["Sports", "College Sports", "College Baseball"], "scd": false}, {"id": "489", "label": "College Basketball", "path": ["Sports", "College Sports", "College Basketball"], "scd": false}, {"id": "488", "label": "College Football", "path": ["Sports", "College Sports", "College Football"], "scd": false}, {"id": "491", "label": "Cricket", "path": ["Sports", "Cricket"], "scd": false}, {"id": "492", "label": "Cycling", "path": ["Sports", "Cycling"], "scd": false}, {"id": "493", "label": "Darts", "path": ["Sports", "Darts"], "scd": false}, {"id": "494", "label": "Disabled Sports", "path": ["Sports", "Disabled Sports"], "scd": false}, {"id": "495", "label": "Diving", "path": ["Sports", "Diving"], "scd": false}, {"id": "496", "label": "Equine Sports", "path": ["Sports", "Equine Sports"], "scd": false}, {"id": "497", "label": "Horse Racing", "path": ["Sports", "Equine Sports", "Horse Racing"], "scd": false}, {"id": "498", "label": "Extreme Sports", "path": ["Sports", "Extreme Sports"], "scd": false}, {"id": "499", "label": "Canoeing and Kayaking", "path": ["Sports", "Extreme Sports", "Canoeing and Kayaking"], "scd": false}, {"id": "500", "label": "Climbing", "path": ["Sports", "Extreme Sports", "Climbing"], "scd": false}, {"id": "501", "label": "Paintball", "path": ["Sports", "Extreme Sports", "Paintball"], "scd": false}, {"id": "502", "label": "Scuba Diving", "path": ["Sports", "Extreme Sports", "Scuba Diving"], "scd": false}, {"id": "503", "label": "Skateboarding", "path": ["Sports", "Extreme Sports", "Skateboarding"], "scd": false}, {"id": "504", "label": "Snowboarding", "path": ["Sports", "Extreme Sports", "Snowboarding"], "scd": false}, {"id": "505", "label": "Surfing and Bodyboarding", "path": ["Sports", "Extreme Sports", "Surfing and Bodyboarding"], "scd": false}, {"id": "506", "label": "Waterskiing and Wakeboarding", "path": ["Sports", "Extreme Sports", "Waterskiing and Wakeboarding"], "scd": false}, {"id": "508", "label": "Fantasy Sports", "path": ["Sports", "Fantasy Sports"], "scd": false}, {"id": "509", "label": "Field Hockey", "path": ["Sports", "Field Hockey"], "scd": false}, {"id": "510", "label": "Figure Skating", "path": ["Sports", "Figure Skating"], "scd": false}, {"id": "511", "label": "Fishing Sports", "path": ["Sports", "Fishing Sports"], "scd": false}, {"id": "512", "label": "Golf", "path": ["Sports", "Golf"], "scd": false}, {"id": "513", "label": "Gymnastics", "path": ["Sports", "Gymnastics"], "scd": false}, {"id": "514", "label": "Hunting and Shooting", "path": ["Sports", "Hunting and Shooting"], "scd": false}, {"id": "515", "label": "Ice Hockey", "path": ["Sports", "Ice Hockey"], "scd": false}, {"id": "516", "label": "Inline Skating", "path": ["Sports", "Inline Skating"], "scd": false}, {"id": "517", "label": "Lacrosse", "path": ["Sports", "Lacrosse"], "scd": false}, {"id": "520", "label": "Martial Arts", "path": ["Sports", "Martial Arts"], "scd": false}, {"id": "521", "label": "Olympic Sports", "path": ["Sports", "Olympic Sports"], "scd": false}, {"id": "522", "label": "Summer Olympic Sports", "path": ["Sports", "Olympic Sports", "Summer Olympic Sports"], "scd": false}, {"id": "523", "label": "Winter Olympic Sports", "path": ["Sports", "Olympic Sports", "Winter Olympic Sports"], "scd": false}, {"id": "524", "label": "Poker and Professional Gambling", "path": ["Sports", "Poker and Professional Gambling"], "scd": false}, {"id": "525", "label": "Rodeo", "path": ["Sports", "Rodeo"], "scd": false}, {"id": "526", "label": "Rowing", "path": ["Sports", "Rowing"], "scd": false}, {"id": "527", "label": "Rugby", "path": ["Sports", "Rugby"], "scd": false}, {"id": "528", "label": "Rugby League", "path": ["Sports", "Rugby", "Rugby League"], "scd": false}, {"id": "529", "label": "Rugby Union", "path": ["Sports", "Rugby", "Rugby Union"], "scd": false}, {"id": "530", "label": "Sailing", "path": ["Sports", "Sailing"], "scd": false}, {"id": "531", "label": "Skiing", "path": ["Sports", "Skiing"], "scd": false}, {"id": "532", "label": "Snooker/Pool/Billiards", "path": ["Sports", "Snooker/Pool/Billiards"], "scd": false}, {"id": "533", "label": "Soccer", "path": ["Sports", "Soccer"], "scd": false}, {"id": "535", "label": "Softball", "path": ["Sports", "Softball"], "scd": false}, {"id": "551", "label": "Sports Equipment", "path": ["Sports", "Sports Equipment"], "scd": false}, {"id": "536", "label": "Squash", "path": ["Sports", "Squash"], "scd": false}, {"id": "537", "label": "Swimming", "path": ["Sports", "Swimming"], "scd": false}, {"id": "538", "label": "Table Tennis", "path": ["Sports", "Table Tennis"], "scd": false}, {"id": "539", "label": "Tennis", "path": ["Sports", "Tennis"], "scd": false}, {"id": "540", "label": "Track and Field", "path": ["Sports", "Track and Field"], "scd": false}, {"id": "541", "label": "Volleyball", "path": ["Sports", "Volleyball"], "scd": false}, {"id": "542", "label": "Walking", "path": ["Sports", "Walking"], "scd": false}, {"id": "543", "label": "Water Polo", "path": ["Sports", "Water Polo"], "scd": false}, {"id": "544", "label": "Weightlifting", "path": ["Sports", "Weightlifting"], "scd": false}, {"id": "546", "label": "Wrestling", "path": ["Sports", "Wrestling"], "scd": false}, {"id": "552", "label": "Style & Fashion", "path": ["Style & Fashion"], "scd": false}, {"id": "553", "label": "Beauty", "path": ["Style & Fashion", "Beauty"], "scd": false}, {"id": "554", "label": "Hair Care", "path": ["Style & Fashion", "Beauty", "Hair Care"], "scd": false}, {"id": "555", "label": "Makeup and Accessories", "path": ["Style & Fashion", "Beauty", "Makeup and Accessories"], "scd": false}, {"id": "556", "label": "Nail Care", "path": ["Style & Fashion", "Beauty", "Nail Care"], "scd": false}, {"id": "557", "label": "Natural and Organic Beauty", "path": ["Style & Fashion", "Beauty", "Natural and Organic Beauty"], "scd": false}, {"id": "558", "label": "Perfume and Fragrance", "path": ["Style & Fashion", "Beauty", "Perfume and Fragrance"], "scd": false}, {"id": "559", "label": "Skin Care", "path": ["Style & Fashion", "Beauty", "Skin Care"], "scd": false}, {"id": "574", "label": "Body Art", "path": ["Style & Fashion", "Body Art"], "scd": false}, {"id": "575", "label": "Children's Clothing", "path": ["Style & Fashion", "Children's Clothing"], "scd": false}, {"id": "576", "label": "Designer Clothing", "path": ["Style & Fashion", "Designer Clothing"], "scd": false}, {"id": "577", "label": "Fashion Trends", "path": ["Style & Fashion", "Fashion Trends"], "scd": false}, {"id": "578", "label": "High Fashion", "path": ["Style & Fashion", "High Fashion"], "scd": false}, {"id": "579", "label": "Men's Fashion", "path": ["Style & Fashion", "Men's Fashion"], "scd": false}, {"id": "580", "label": "Men's Accessories", "path": ["Style & Fashion", "Men's Fashion", "Men's Accessories"], "scd": false}, {"id": "581", "label": "Men's Jewelry and Watches", "path": ["Style & Fashion", "Men's Fashion", "Men's Accessories", "Men's Jewelry and Watches"], "scd": false}, {"id": "582", "label": "Men's Clothing", "path": ["Style & Fashion", "Men's Fashion", "Men's Clothing"], "scd": false}, {"id": "583", "label": "Men's Business Wear", "path": ["Style & Fashion", "Men's Fashion", "Men's Clothing", "Men's Business Wear"], "scd": false}, {"id": "584", "label": "Men's Casual Wear", "path": ["Style & Fashion", "Men's Fashion", "Men's Clothing", "Men's Casual Wear"], "scd": false}, {"id": "585", "label": "Men's Formal Wear", "path": ["Style & Fashion", "Men's Fashion", "Men's Clothing", "Men's Formal Wear"], "scd": false}, {"id": "586", "label": "Men's Outerwear", "path": ["Style & Fashion", "Men's Fashion", "Men's Clothing", "Men's Outerwear"], "scd": false}, {"id": "587", "label": "Men's Sportswear", "path": ["Style & Fashion", "Men's Fashion", "Men's Clothing", "Men's Sportswear"], "scd": false}, {"id": "588", "label": "Men's Underwear and Sleepwear", "path": ["Style & Fashion", "Men's Fashion", "Men's Clothing", "Men's Underwear and Sleepwear"], "scd": false}, {"id": "589", "label": "Men's Shoes and Footwear", "path": ["Style & Fashion", "Men's Fashion", "Men's Shoes and Footwear"], "scd": false}, {"id": "590", "label": "Personal Care", "path": ["Style & Fashion", "Personal Care"], "scd": false}, {"id": "591", "label": "Bath and Shower", "path": ["Style & Fashion", "Personal Care", "Bath and Shower"], "scd": false}, {"id": "592", "label": "Deodorant and Antiperspirant", "path": ["Style & Fashion", "Personal Care", "Deodorant and Antiperspirant"], "scd": false}, {"id": "593", "label": "Oral care", "path": ["Style & Fashion", "Personal Care", "Oral care"], "scd": false}, {"id": "594", "label": "Shaving", "path": ["Style & Fashion", "Personal Care", "Shaving"], "scd": false}, {"id": "595", "label": "Street Style", "path": ["Style & Fashion", "Street Style"], "scd": false}, {"id": "560", "label": "Women's Fashion", "path": ["Style & Fashion", "Women's Fashion"], "scd": false}, {"id": "561", "label": "Women's Accessories", "path": ["Style & Fashion", "Women's Fashion", "Women's Accessories"], "scd": false}, {"id": "562", "label": "Women's Glasses", "path": ["Style & Fashion", "Women's Fashion", "Women's Accessories", "Women's Glasses"], "scd": false}, {"id": "563", "label": "Women's Handbags and Wallets", "path": ["Style & Fashion", "Women's Fashion", "Women's Accessories", "Women's Handbags and Wallets"], "scd": false}, {"id": "564", "label": "Women's Hats and Scarves", "path": ["Style & Fashion", "Women's Fashion", "Women's Accessories", "Women's Hats and Scarves"], "scd": false}, {"id": "565", "label": "Women's Jewelry and Watches", "path": ["Style & Fashion", "Women's Fashion", "Women's Accessories", "Women's Jewelry and Watches"], "scd": false}, {"id": "566", "label": "Women's Clothing", "path": ["Style & Fashion", "Women's Fashion", "Women's Clothing"], "scd": false}, {"id": "567", "label": "Women's Business Wear", "path": ["Style & Fashion", "Women's Fashion", "Women's Clothing", "Women's Business Wear"], "scd": false}, {"id": "568", "label": "Women's Casual Wear", "path": ["Style & Fashion", "Women's Fashion", "Women's Clothing", "Women's Casual Wear"], "scd": false}, {"id": "569", "label": "Women's Formal Wear", "path": ["Style & Fashion", "Women's Fashion", "Women's Clothing", "Women's Formal Wear"], "scd": false}, {"id": "570", "label": "Women's Intimates and Sleepwear", "path": ["Style & Fashion", "Women's Fashion", "Women's Clothing", "Women's Intimates and Sleepwear"], "scd": false}, {"id": "571", "label": "Women's Outerwear", "path": ["Style & Fashion", "Women's Fashion", "Women's Clothing", "Women's Outerwear"], "scd": false}, {"id": "572", "label": "Women's Sportswear", "path": ["Style & Fashion", "Women's Fashion", "Women's Clothing", "Women's Sportswear"], "scd": false}, {"id": "573", "label": "Women's Shoes and Footwear", "path": ["Style & Fashion", "Women's Fashion", "Women's Shoes and Footwear"], "scd": false}, {"id": "596", "label": "Technology & Computing", "path": ["Technology & Computing"], "scd": false}, {"id": "597", "label": "Artificial Intelligence", "path": ["Technology & Computing", "Artificial Intelligence"], "scd": false}, {"id": "598", "label": "Augmented Reality", "path": ["Technology & Computing", "Augmented Reality"], "scd": false}, {"id": "599", "label": "Computing", "path": ["Technology & Computing", "Computing"], "scd": false}, {"id": "600", "label": "Computer Networking", "path": ["Technology & Computing", "Computing", "Computer Networking"], "scd": false}, {"id": "601", "label": "Computer Peripherals", "path": ["Technology & Computing", "Computing", "Computer Peripherals"], "scd": false}, {"id": "602", "label": "Computer Software and Applications", "path": ["Technology & Computing", "Computing", "Computer Software and Applications"], "scd": false}, {"id": "603", "label": "3-D Graphics", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "3-D Graphics"], "scd": false}, {"id": "608", "label": "Antivirus Software", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Antivirus Software"], "scd": false}, {"id": "609", "label": "Browsers", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Browsers"], "scd": false}, {"id": "610", "label": "Computer Animation", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Computer Animation"], "scd": false}, {"id": "611", "label": "Databases", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Databases"], "scd": false}, {"id": "612", "label": "Desktop Publishing", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Desktop Publishing"], "scd": false}, {"id": "613", "label": "Digital Audio", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Digital Audio"], "scd": false}, {"id": "WQC6HR", "label": "Maps & Navigation", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Maps & Navigation"], "scd": false}, {"id": "614", "label": "Graphics Software", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Graphics Software"], "scd": false}, {"id": "615", "label": "Operating Systems", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Operating Systems"], "scd": false}, {"id": "604", "label": "Photo Editing Software", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Photo Editing Software"], "scd": false}, {"id": "605", "label": "Shareware and Freeware", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Shareware and Freeware"], "scd": false}, {"id": "606", "label": "Video Software", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Video Software"], "scd": false}, {"id": "607", "label": "Web Conferencing", "path": ["Technology & Computing", "Computing", "Computer Software and Applications", "Web Conferencing"], "scd": false}, {"id": "616", "label": "Data Storage and Warehousing", "path": ["Technology & Computing", "Computing", "Data Storage and Warehousing"], "scd": false}, {"id": "617", "label": "Desktops", "path": ["Technology & Computing", "Computing", "Desktops"], "scd": false}, {"id": "618", "label": "Information and Network Security", "path": ["Technology & Computing", "Computing", "Information and Network Security"], "scd": false}, {"id": "619", "label": "Internet", "path": ["Technology & Computing", "Computing", "Internet"], "scd": false}, {"id": "620", "label": "Cloud Computing", "path": ["Technology & Computing", "Computing", "Internet", "Cloud Computing"], "scd": false}, {"id": "623", "label": "Email", "path": ["Technology & Computing", "Computing", "Internet", "Email"], "scd": false}, {"id": "624", "label": "Internet for Beginners", "path": ["Technology & Computing", "Computing", "Internet", "Internet for Beginners"], "scd": false}, {"id": "625", "label": "Internet of Things", "path": ["Technology & Computing", "Computing", "Internet", "Internet of Things"], "scd": false}, {"id": "626", "label": "IT and Internet Support", "path": ["Technology & Computing", "Computing", "Internet", "IT and Internet Support"], "scd": false}, {"id": "627", "label": "Search", "path": ["Technology & Computing", "Computing", "Internet", "Search"], "scd": false}, {"id": "628", "label": "Social Networking", "path": ["Technology & Computing", "Computing", "Internet", "Social Networking"], "scd": false}, {"id": "629", "label": "Web Design and HTML", "path": ["Technology & Computing", "Computing", "Internet", "Web Design and HTML"], "scd": false}, {"id": "621", "label": "Web Development", "path": ["Technology & Computing", "Computing", "Internet", "Web Development"], "scd": false}, {"id": "622", "label": "Web Hosting", "path": ["Technology & Computing", "Computing", "Internet", "Web Hosting"], "scd": false}, {"id": "630", "label": "Laptops", "path": ["Technology & Computing", "Computing", "Laptops"], "scd": false}, {"id": "631", "label": "Programming Languages", "path": ["Technology & Computing", "Computing", "Programming Languages"], "scd": false}, {"id": "632", "label": "Consumer Electronics", "path": ["Technology & Computing", "Consumer Electronics"], "scd": false}, {"id": "633", "label": "Cameras and Camcorders", "path": ["Technology & Computing", "Consumer Electronics", "Cameras and Camcorders"], "scd": false}, {"id": "634", "label": "Home Entertainment Systems", "path": ["Technology & Computing", "Consumer Electronics", "Home Entertainment Systems"], "scd": false}, {"id": "635", "label": "Smartphones", "path": ["Technology & Computing", "Consumer Electronics", "Smartphones"], "scd": false}, {"id": "636", "label": "Tablets and E-readers", "path": ["Technology & Computing", "Consumer Electronics", "Tablets and E-readers"], "scd": false}, {"id": "637", "label": "Wearable Technology", "path": ["Technology & Computing", "Consumer Electronics", "Wearable Technology"], "scd": false}, {"id": "638", "label": "Robotics", "path": ["Technology & Computing", "Robotics"], "scd": false}, {"id": "639", "label": "Virtual Reality", "path": ["Technology & Computing", "Virtual Reality"], "scd": false}, {"id": "653", "label": "Travel", "path": ["Travel"], "scd": false}, {"id": "654", "label": "Travel Accessories", "path": ["Travel", "Travel Accessories"], "scd": false}, {"id": "655", "label": "Travel Locations", "path": ["Travel", "Travel Locations"], "scd": false}, {"id": "656", "label": "Africa Travel", "path": ["Travel", "Travel Locations", "Africa Travel"], "scd": false}, {"id": "657", "label": "Asia Travel", "path": ["Travel", "Travel Locations", "Asia Travel"], "scd": false}, {"id": "658", "label": "Australia and Oceania Travel", "path": ["Travel", "Travel Locations", "Australia and Oceania Travel"], "scd": false}, {"id": "659", "label": "Europe Travel", "path": ["Travel", "Travel Locations", "Europe Travel"], "scd": false}, {"id": "660", "label": "North America Travel", "path": ["Travel", "Travel Locations", "North America Travel"], "scd": false}, {"id": "661", "label": "Polar Travel", "path": ["Travel", "Travel Locations", "Polar Travel"], "scd": false}, {"id": "662", "label": "South America Travel", "path": ["Travel", "Travel Locations", "South America Travel"], "scd": false}, {"id": "663", "label": "Travel Preparation and Advice", "path": ["Travel", "Travel Preparation and Advice"], "scd": false}, {"id": "664", "label": "Travel Type", "path": ["Travel", "Travel Type"], "scd": false}, {"id": "665", "label": "Adventure Travel", "path": ["Travel", "Travel Type", "Adventure Travel"], "scd": false}, {"id": "672", "label": "Air Travel", "path": ["Travel", "Travel Type", "Air Travel"], "scd": false}, {"id": "673", "label": "Beach Travel", "path": ["Travel", "Travel Type", "Beach Travel"], "scd": false}, {"id": "674", "label": "Bed & Breakfasts", "path": ["Travel", "Travel Type", "Bed & Breakfasts"], "scd": false}, {"id": "675", "label": "Budget Travel", "path": ["Travel", "Travel Type", "Budget Travel"], "scd": false}, {"id": "676", "label": "Business Travel", "path": ["Travel", "Travel Type", "Business Travel"], "scd": false}, {"id": "677", "label": "Camping", "path": ["Travel", "Travel Type", "Camping"], "scd": false}, {"id": "678", "label": "Cruises", "path": ["Travel", "Travel Type", "Cruises"], "scd": false}, {"id": "679", "label": "Day Trips", "path": ["Travel", "Travel Type", "Day Trips"], "scd": false}, {"id": "666", "label": "Family Travel", "path": ["Travel", "Travel Type", "Family Travel"], "scd": false}, {"id": "667", "label": "Honeymoons and Getaways", "path": ["Travel", "Travel Type", "Honeymoons and Getaways"], "scd": false}, {"id": "668", "label": "Hotels and Motels", "path": ["Travel", "Travel Type", "Hotels and Motels"], "scd": false}, {"id": "669", "label": "Rail Travel", "path": ["Travel", "Travel Type", "Rail Travel"], "scd": false}, {"id": "670", "label": "Road Trips", "path": ["Travel", "Travel Type", "Road Trips"], "scd": false}, {"id": "671", "label": "Spas", "path": ["Travel", "Travel Type", "Spas"], "scd": false}, {"id": "680", "label": "Video Gaming", "path": ["Video Gaming"], "scd": false}, {"id": "681", "label": "Console Games", "path": ["Video Gaming", "Console Games"], "scd": false}, {"id": "682", "label": "eSports", "path": ["Video Gaming", "eSports"], "scd": false}, {"id": "683", "label": "Mobile Games", "path": ["Video Gaming", "Mobile Games"], "scd": false}, {"id": "684", "label": "PC Games", "path": ["Video Gaming", "PC Games"], "scd": false}, {"id": "685", "label": "Video Game Genres", "path": ["Video Gaming", "Video Game Genres"], "scd": false}, {"id": "686", "label": "Action Video Games", "path": ["Video Gaming", "Video Game Genres", "Action Video Games"], "scd": false}, {"id": "691", "label": "Action-Adventure Video Games", "path": ["Video Gaming", "Video Game Genres", "Action-Adventure Video Games"], "scd": false}, {"id": "MQ2XML", "label": "Adult Video Games", "path": ["Video Gaming", "Video Game Genres", "Adult Video Games"], "scd": false}, {"id": "692", "label": "Adventure Video Games", "path": ["Video Gaming", "Video Game Genres", "Adventure Video Games"], "scd": false}, {"id": "ZJG29S", "label": "Casino and Gambling Video Games", "path": ["Video Gaming", "Video Game Genres", "Casino and Gambling Video Games"], "scd": false}, {"id": "693", "label": "Casual Games", "path": ["Video Gaming", "Video Game Genres", "Casual Games"], "scd": false}, {"id": "694", "label": "Educational Video Games", "path": ["Video Gaming", "Video Game Genres", "Educational Video Games"], "scd": false}, {"id": "695", "label": "Exercise and Fitness Video Games", "path": ["Video Gaming", "Video Game Genres", "Exercise and Fitness Video Games"], "scd": false}, {"id": "VWGKS7", "label": "Family Video Games", "path": ["Video Gaming", "Video Game Genres", "Family Video Games"], "scd": false}, {"id": "II436J", "label": "Horror Video Games", "path": ["Video Gaming", "Video Game Genres", "Horror Video Games"], "scd": false}, {"id": "696", "label": "MMOs", "path": ["Video Gaming", "Video Game Genres", "MMOs"], "scd": false}, {"id": "697", "label": "Music and Party Video Games", "path": ["Video Gaming", "Video Game Genres", "Music and Party Video Games"], "scd": false}, {"id": "698", "label": "Puzzle Video Games", "path": ["Video Gaming", "Video Game Genres", "Puzzle Video Games"], "scd": false}, {"id": "VK7KD0", "label": "Racing Video Games", "path": ["Video Gaming", "Video Game Genres", "Racing Video Games"], "scd": false}, {"id": "687", "label": "Role-Playing Video Games", "path": ["Video Gaming", "Video Game Genres", "Role-Playing Video Games"], "scd": false}, {"id": "688", "label": "Simulation Video Games", "path": ["Video Gaming", "Video Game Genres", "Simulation Video Games"], "scd": false}, {"id": "689", "label": "Sports Video Games", "path": ["Video Gaming", "Video Game Genres", "Sports Video Games"], "scd": false}, {"id": "690", "label": "Strategy Video Games", "path": ["Video Gaming", "Video Game Genres", "Strategy Video Games"], "scd": false}, {"id": "389", "label": "War and Conflicts", "path": ["War and Conflicts"], "scd": false}] diff --git a/javascript/data/synonyms_2x.json b/javascript/data/synonyms_2x.json index d798a3a..6ad8ac1 100644 --- a/javascript/data/synonyms_2x.json +++ b/javascript/data/synonyms_2x.json @@ -1,5 +1 @@ -{ - "Sports": ["Athletics", "Sport"], - "Food & Drink": ["Food and Drink", "Cuisine"] -} - +{"Sports":["Athletics","Games"],"Food & Drink":["Cuisine","Meals","Food"],"Tobacco":["Cigarettes","Smoking"]} diff --git a/javascript/data/synonyms_3x.json b/javascript/data/synonyms_3x.json index da209f3..905013e 100644 --- a/javascript/data/synonyms_3x.json +++ b/javascript/data/synonyms_3x.json @@ -1,5 +1,6 @@ { "Sports": ["Athletics", "Sport"], - "Cooking": ["Recipes", "Culinary"] + "Cooking": ["Recipes", "Recipe", "Culinary", "Kitchen", "How-to cooking"], + "Alcoholic Beverages": ["Alcohol", "Wine", "Beer", "Spirits"] } diff --git a/javascript/package-lock.json b/javascript/package-lock.json index ae37621..80feb54 100644 --- a/javascript/package-lock.json +++ b/javascript/package-lock.json @@ -1,12 +1,12 @@ { "name": "@mixpeek/iab-mapper", - "version": "1.0.0", + "version": "1.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@mixpeek/iab-mapper", - "version": "1.0.0", + "version": "1.1.0", "license": "BSD-2-Clause", "dependencies": { "fuzzball": "^2.1.2" diff --git a/javascript/package.json b/javascript/package.json index 78ac876..f2b8307 100644 --- a/javascript/package.json +++ b/javascript/package.json @@ -1,6 +1,6 @@ { "name": "@mixpeek/iab-mapper", - "version": "1.0.0", + "version": "1.1.0", "description": "Local IAB Content Taxonomy 2.x -> 3.0 mapper with vectors, SCD, OpenRTB/VAST exporters for Node.js", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/javascript/src/__tests__/mapper.test.ts b/javascript/src/__tests__/mapper.test.ts index 6f7135b..b9b1e13 100644 --- a/javascript/src/__tests__/mapper.test.ts +++ b/javascript/src/__tests__/mapper.test.ts @@ -3,7 +3,7 @@ import * as path from 'path'; describe('Mapper', () => { const dataDir = path.join(__dirname, '../../data'); - + describe('initialization', () => { it('should initialize with default config', () => { expect(() => new Mapper({}, dataDir)).not.toThrow(); @@ -26,7 +26,7 @@ describe('Mapper', () => { it('should map a known label', () => { const topics = mapper.mapTopics('Sports'); - + expect(topics.length).toBeGreaterThan(0); expect(topics[0]).toHaveProperty('id'); expect(topics[0]).toHaveProperty('label'); @@ -37,14 +37,14 @@ describe('Mapper', () => { it('should return empty array for unknown label with high threshold', () => { const mapper = new Mapper({ fuzzyCut: 0.99 }, dataDir); const topics = mapper.mapTopics('xyz123nonsense'); - + expect(topics).toEqual([]); }); it('should respect maxTopics limit', () => { const mapper = new Mapper({ maxTopics: 2 }, dataDir); const topics = mapper.mapTopics('Sports'); - + expect(topics.length).toBeLessThanOrEqual(2); }); }); @@ -54,7 +54,7 @@ describe('Mapper', () => { it('should map a simple record', () => { const result = mapper.mapRecord({ label: 'Sports' }); - + expect(result).toHaveProperty('in_label', 'Sports'); expect(result).toHaveProperty('out_ids'); expect(result).toHaveProperty('topic_ids'); @@ -65,7 +65,7 @@ describe('Mapper', () => { it('should include code in output if provided', () => { const result = mapper.mapRecord({ code: '1-4', label: 'Sports' }); - + expect(result.in_code).toBe('1-4'); }); @@ -75,38 +75,56 @@ describe('Mapper', () => { channel: 'editorial', type: 'article' }); - + expect(result.vectors).toHaveProperty('channel', 'editorial'); expect(result.vectors).toHaveProperty('type', 'article'); expect(result.out_ids.length).toBeGreaterThan(1); // Should include vector IDs }); + it('should map a 2.x code with no label by looking the label up', () => { + const result = mapper.mapRecord({ code: '1' }); + expect(result.in_label).toBe('Automotive'); + expect(result.out_ids).toContain('1'); + expect(result.openrtb.content.cattax).toBe('9'); + }); + + it('should prefer the given label over the code lookup', () => { + const result = mapper.mapRecord({ code: '1', label: 'Cooking' }); + expect(result.out_ids).toContain('216'); + expect(result.out_ids).not.toContain('1'); + }); + + it('should return no topics for an unknown code with no label', () => { + const result = mapper.mapRecord({ code: 'no-such-code' }); + expect(result.topic_ids).toEqual([]); + }); + it('should format OpenRTB correctly', () => { const result = mapper.mapRecord({ label: 'Sports' }); - + expect(result.openrtb).toHaveProperty('content'); expect(result.openrtb.content).toHaveProperty('cat'); - expect(result.openrtb.content).toHaveProperty('cattax', '2'); + expect(result.openrtb.content).toHaveProperty('cattax', '9'); expect(Array.isArray(result.openrtb.content.cat)).toBe(true); }); it('should format VAST ContentCat correctly', () => { const result = mapper.mapRecord({ label: 'Sports' }); - + expect(typeof result.vast_contentcat).toBe('string'); expect(result.vast_contentcat).toMatch(/^"[^"]+"(,"[^"]+")*$/); // Format: "id1","id2",... }); it('should include SCD flags', () => { const result = mapper.mapRecord({ label: 'Sports' }); - + expect(Array.isArray(result.topic_scd)).toBe(true); expect(result.topic_scd.length).toBe(result.topic_ids.length); }); it('should include confidence scores', () => { const result = mapper.mapRecord({ label: 'Sports' }); - + expect(Array.isArray(result.topic_confidence)).toBe(true); expect(result.topic_confidence.length).toBe(result.topic_ids.length); result.topic_confidence.forEach(conf => { @@ -118,7 +136,7 @@ describe('Mapper', () => { it('should use custom cattax value', () => { const mapper = new Mapper({ cattax: '3' }, dataDir); const result = mapper.mapRecord({ label: 'Sports' }); - + expect(result.cattax).toBe('3'); expect(result.openrtb.content.cattax).toBe('3'); }); @@ -132,9 +150,9 @@ describe('Mapper', () => { { label: 'Sports' }, { label: 'Food & Drink' } ]; - + const results = mapper.mapRecords(records); - + expect(results.length).toBe(2); expect(results[0].in_label).toBe('Sports'); expect(results[1].in_label).toBe('Food & Drink'); @@ -150,14 +168,14 @@ describe('Mapper', () => { it('should work with rapidfuzz method', () => { const mapper = new Mapper({ fuzzyMethod: 'rapidfuzz' }, dataDir); const result = mapper.mapRecord({ label: 'Sports' }); - + expect(result.out_ids.length).toBeGreaterThan(0); }); it('should work with tfidf method', () => { const mapper = new Mapper({ fuzzyMethod: 'tfidf' }, dataDir); const result = mapper.mapRecord({ label: 'Sports' }); - + expect(result.out_ids.length).toBeGreaterThan(0); }); }); @@ -167,7 +185,7 @@ describe('Mapper', () => { // This test would need SCD data to properly verify const mapper = new Mapper({ dropScd: true }, dataDir); const result = mapper.mapRecord({ label: 'Sports' }); - + // All SCD flags should be false if dropScd is true result.topic_scd.forEach(scd => { expect(scd).toBe(false); @@ -191,9 +209,8 @@ describe('Mapper', () => { it('should not duplicate IDs in output', () => { const result = mapper.mapRecord({ label: 'Sports' }); const uniqueIds = new Set(result.out_ids); - + expect(uniqueIds.size).toBe(result.out_ids.length); }); }); }); - diff --git a/javascript/src/index.ts b/javascript/src/index.ts index b398f54..71a63a3 100644 --- a/javascript/src/index.ts +++ b/javascript/src/index.ts @@ -11,7 +11,7 @@ * fuzzyMethod: 'rapidfuzz', * fuzzyCut: 0.92, * maxTopics: 3, - * cattax: '2' + * cattax: '9' * }); * * const result = mapper.mapRecord({ @@ -22,7 +22,7 @@ * }); * * console.log(result.openrtb); - * // { content: { cat: ['3-5-2', ...], cattax: '2' } } + * // { content: { cat: ['3-5-2', ...], cattax: '9' } } * ``` */ diff --git a/javascript/src/mapper.ts b/javascript/src/mapper.ts index 3e316aa..8336670 100644 --- a/javascript/src/mapper.ts +++ b/javascript/src/mapper.ts @@ -65,7 +65,8 @@ export interface MappedRecord { export interface InputRecord { code?: string; - label: string; + /** Optional when `code` is a 2.x code from the bundled catalog: the label is looked up. */ + label?: string; channel?: string; type?: string; format?: string; @@ -83,6 +84,7 @@ export interface Override { export class Mapper { private cfg: Required; private iab2: IAB2Item[]; + private code2ToLabel: Map; private iab3: IAB3Item[]; private syn2: SynonymsMap; private syn3: SynonymsMap; @@ -100,7 +102,7 @@ export class Mapper { fuzzyMethod: cfg.fuzzyMethod ?? 'rapidfuzz', maxTopics: cfg.maxTopics ?? 3, dropScd: cfg.dropScd ?? false, - cattax: cfg.cattax ?? '2', + cattax: cfg.cattax ?? '9', overridesPath: cfg.overridesPath ?? '' }; @@ -108,6 +110,8 @@ export class Mapper { // Load catalogs this.iab2 = this.loadJson(path.join(baseDataDir, 'iab_2x.json')); + // 2.x code -> label, so a record that carries only a code still maps + this.code2ToLabel = new Map(this.iab2.map(r => [String(r.code).trim(), r.label])); this.iab3 = this.loadJson(path.join(baseDataDir, 'iab_3x.json')); // Load synonyms (optional) @@ -265,7 +269,10 @@ export class Mapper { */ mapRecord(rec: InputRecord): MappedRecord { const inCode = rec.code; - const inLabel = rec.label || ''; + let inLabel = rec.label || ''; + if (!inLabel.trim() && inCode !== undefined && inCode !== null && String(inCode) !== '') { + inLabel = this.code2ToLabel.get(String(inCode).trim()) || ''; + } // 1) Check overrides first let topics = this.applyOverrides(inCode, inLabel); diff --git a/python/iab_mapper/cli.py b/python/iab_mapper/cli.py index 36097f3..580d019 100644 --- a/python/iab_mapper/cli.py +++ b/python/iab_mapper/cli.py @@ -1,17 +1,24 @@ -import typer, pandas as pd, json +import json from pathlib import Path + +import pandas as pd +import typer from rich.console import Console from rich.table import Table -from iab_mapper.pipeline import Mapper, MapConfig + +from iab_mapper.pipeline import MapConfig, Mapper from iab_mapper.updater import update_catalogs app = typer.Typer(add_completion=False) con = Console() + @app.command() def run( - input_path: Path = typer.Argument(..., help="CSV/JSON with 'label' and optional 'code' + vector cols"), - out: Path = typer.Option(..., "--out","-o", help="Output file (.csv or .json)"), + input_path: Path = typer.Argument( + ..., help="CSV/JSON with 'label' and optional 'code' + vector cols" + ), + out: Path = typer.Option(..., "--out", "-o", help="Output file (.csv or .json)"), data_dir: Path = typer.Option(Path(__file__).parent / "data", help="Data dir"), fuzzy_cut: float = typer.Option(0.92), fuzzy_method: str = typer.Option("rapidfuzz", help="rapidfuzz|tfidf|bm25"), @@ -21,14 +28,20 @@ def run( max_topics: int = typer.Option(3), drop_scd: bool = typer.Option(False), # OpenRTB cattax and overrides - cattax: str = typer.Option("2", help="OpenRTB content.cattax enumeration value for Content Taxonomy"), - overrides: Path = typer.Option(None, help="JSON file with overrides [{code?,label?,ids[]}]") , + cattax: str = typer.Option( + "9", help="OpenRTB content.cattax value: 9 = IAB Content Taxonomy 3.1 (AdCOM List: Category Taxonomies; 7 = 3.0)" + ), + overrides: Path = typer.Option( + None, help="JSON file with overrides [{code?,label?,ids[]}]" + ), # Optional LLM rerank use_llm: bool = typer.Option(False, help="Use local LLM (Ollama) for re-ranking"), llm_model: str = typer.Option("llama3.1:8b"), llm_host: str = typer.Option("http://localhost:11434"), # Unmapped report - unmapped_out: Path = typer.Option(None, help="Optional JSON file to write unmapped/empty-topic rows"), + unmapped_out: Path = typer.Option( + None, help="Optional JSON file to write unmapped/empty-topic rows" + ), ): cfg = MapConfig( fuzzy_cut=fuzzy_cut, @@ -46,12 +59,17 @@ def run( ) mapper = Mapper(cfg, str(data_dir)) - if input_path.suffix.lower()==".csv": df = pd.read_csv(input_path) - elif input_path.suffix.lower()==".json": df = pd.read_json(input_path) - else: raise typer.BadParameter("Input must be .csv or .json") + if input_path.suffix.lower() == ".csv": + df = pd.read_csv(input_path) + elif input_path.suffix.lower() == ".json": + df = pd.read_json(input_path) + else: + raise typer.BadParameter("Input must be .csv or .json") - if "label" not in df.columns: raise typer.BadParameter("Need 'label' col") - if "code" not in df.columns: df["code"]=None + if "label" not in df.columns: + raise typer.BadParameter("Need 'label' col") + if "code" not in df.columns: + df["code"] = None rows = [] unmapped = [] @@ -59,37 +77,67 @@ def run( out_rec = mapper.map_record(rec) rows.append(out_rec) if len(out_rec.get("topic_ids", [])) == 0: - unmapped.append({"in_code": out_rec.get("in_code"), "in_label": out_rec.get("in_label")}) + unmapped.append( + {"in_code": out_rec.get("in_code"), "in_label": out_rec.get("in_label")} + ) out_df = pd.DataFrame(rows) table = Table() - for col in ["in_code","in_label","out_ids","cattax"]: table.add_column(col) + for col in ["in_code", "in_label", "out_ids", "cattax"]: + table.add_column(col) for _, r in out_df.iterrows(): - table.add_row(str(r["in_code"]), r["in_label"], json.dumps(r.get("out_ids", [])), str(r.get("cattax"))) + table.add_row( + str(r["in_code"]), + r["in_label"], + json.dumps(r.get("out_ids", [])), + str(r.get("cattax")), + ) con.print(table) - if out.suffix.lower()==".csv": - out_df.to_csv(out,index=False) - elif out.suffix.lower()==".json": - out_df.to_json(out,orient="records") + if out.suffix.lower() == ".csv": + out_df.to_csv(out, index=False) + elif out.suffix.lower() == ".json": + out_df.to_json(out, orient="records") else: raise typer.BadParameter("Output must be .csv or .json") con.print(f"Saved → {out}") if unmapped_out and unmapped: - Path(unmapped_out).write_text(json.dumps(unmapped, ensure_ascii=False), encoding="utf-8") + Path(unmapped_out).write_text( + json.dumps(unmapped, ensure_ascii=False), encoding="utf-8" + ) con.print(f"Unmapped → {unmapped_out} ({len(unmapped)})") -if __name__=="__main__": app() + + +if __name__ == "__main__": + app() @app.command(name="update-catalogs") def update_catalogs_cmd( - data_dir: Path = typer.Option(Path(__file__).parent / "data", help="Data dir to write catalogs"), - major3: int = typer.Option(3, help="Major version to pick for Content Taxonomy 3.x (e.g., 3)"), - major2: int = typer.Option(2, help="Major version to pick for Content Taxonomy 2.x (e.g., 2)"), - exact3: str = typer.Option(None, help="Exact filename substring for 3.x (e.g., '3.1')"), - exact2: str = typer.Option(None, help="Exact filename substring for 2.x (e.g., '2.2')"), + data_dir: Path = typer.Option( + Path(__file__).parent / "data", help="Data dir to write catalogs" + ), + major3: int = typer.Option( + 3, help="Major version to pick for Content Taxonomy 3.x (e.g., 3)" + ), + major2: int = typer.Option( + 2, help="Major version to pick for Content Taxonomy 2.x (e.g., 2)" + ), + exact3: str = typer.Option( + None, help="Exact filename substring for 3.x (e.g., '3.1')" + ), + exact2: str = typer.Option( + None, help="Exact filename substring for 2.x (e.g., '2.2')" + ), token: str = typer.Option(None, help="GitHub token (overrides env GITHUB_TOKEN)"), ): """Fetch latest IAB catalogs from IAB GitHub and normalize into JSON.""" - update_catalogs(str(data_dir), major3=major3, major2=major2, exact3=exact3, exact2=exact2, token=token) + update_catalogs( + str(data_dir), + major3=major3, + major2=major2, + exact3=exact3, + exact2=exact2, + token=token, + ) con.print(f"Updated catalogs in {data_dir}") diff --git a/python/iab_mapper/data/synonyms_3x.json b/python/iab_mapper/data/synonyms_3x.json index 5dc5dba..6cebf97 100644 --- a/python/iab_mapper/data/synonyms_3x.json +++ b/python/iab_mapper/data/synonyms_3x.json @@ -1 +1,5 @@ -{"Sports > Team Sports":["Team sport","Ball games"],"Food & Drink > Cooking":["Recipe","Kitchen","How-to cooking"],"Food & Drink > Alcoholic Beverages":["Alcohol","Wine","Beer","Spirits"]} \ No newline at end of file +{ + "Sports": ["Athletics", "Sport"], + "Cooking": ["Recipes", "Recipe", "Culinary", "Kitchen", "How-to cooking"], + "Alcoholic Beverages": ["Alcohol", "Wine", "Beer", "Spirits"] +} diff --git a/python/iab_mapper/pipeline.py b/python/iab_mapper/pipeline.py index 99071ff..b10308a 100644 --- a/python/iab_mapper/pipeline.py +++ b/python/iab_mapper/pipeline.py @@ -19,7 +19,7 @@ class MapConfig: max_topics: int = 3 drop_scd: bool = False # OpenRTB cattax value (string per spec enumeration) - cattax: str = "2" + cattax: str = "9" # Optional overrides file (JSON). Each item: {"code": str|null, "label": str|null, "ids": [str]} overrides_path: Optional[str] = None # LLM re-ranking (optional, local via Ollama) @@ -31,6 +31,8 @@ class Mapper: def __init__(self, cfg: MapConfig, data_dir: str): self.cfg = cfg self.iab2 = load_json(f"{data_dir}/iab_2x.json") + # 2.x code -> label, so a record that carries only a code still maps + self.code2_to_label = {str(r["code"]).strip(): r["label"] for r in self.iab2} self.iab3 = load_json(f"{data_dir}/iab_3x.json") # Synonyms are optional try: @@ -236,6 +238,8 @@ def _map_vectors(self, rec: Dict[str, Any]) -> (Dict[str, str], List[str]): def map_record(self, rec: Dict[str, Any]) -> Dict[str, Any]: in_code = rec.get("code") in_label = rec.get("label") or "" + if not in_label.strip() and in_code not in (None, ""): + in_label = self.code2_to_label.get(str(in_code).strip(), "") # 1) Overrides first overrides_applied = self._apply_overrides(in_code, in_label) diff --git a/python/pyproject.toml b/python/pyproject.toml index 205f742..4da8ea8 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "iab-mapper" -version = "1.0.0" +version = "1.1.0" description = "Local IAB Content Taxonomy 2.x -> 3.0 mapper with vectors, SCD, OpenRTB/VAST exporters." readme = "README.md" requires-python = ">=3.9" diff --git a/scripts/web_server.py b/scripts/web_server.py index 3bec4a2..c7d7aa6 100644 --- a/scripts/web_server.py +++ b/scripts/web_server.py @@ -31,7 +31,7 @@ class MapOptions(BaseModel): emb_cut: float = Field(0.80, ge=0.0, le=1.0) max_topics: int = 3 drop_scd: bool = False - cattax: str = "2" + cattax: str = "9" overrides_path: Optional[str] = None # LLM re-rank use_llm: bool = False diff --git a/tests/test_new_features.py b/tests/test_new_features.py index c9a16b1..1b39277 100644 --- a/tests/test_new_features.py +++ b/tests/test_new_features.py @@ -85,3 +85,18 @@ def test_cli_unmapped_and_cattax(tmp_path: Path): misses = json.loads(misses_path.read_text()) assert len(misses) == 1 + +def test_code_only_record_maps_via_2x_catalog(): + import iab_mapper, os + d = os.path.join(os.path.dirname(iab_mapper.__file__), "data") + m = Mapper(MapConfig(), d) + out = m.map_record({"code": "1"}) + assert out["in_label"] == "Automotive" + assert "1" in out["out_ids"] + assert out["openrtb"]["content"]["cattax"] == "9" + # a supplied label wins over the code lookup + both = m.map_record({"code": "1", "label": "Cooking"}) + assert "216" in both["out_ids"] and "1" not in both["out_ids"] + # an unknown code with no label maps to nothing + assert m.map_record({"code": "no-such-code"})["topic_ids"] == [] +