{
  "data": {
    "id": "4bew8UtrkUN8gbe80",
    "actId": "L2GXVohXHmaKGdJ8K",
    "userId": "IYgBDiXtHOijAaUel",
    "startedAt": "2026-11-05T07:22:10.662Z",
    "finishedAt": "2026-11-05T07:22:18.384Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 7581,
      "runTimeSecs": 7.581,
      "computeUnits": 0.008423333333333333,
      "imageSizeBytes": 319106048
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "QYo53EZkJk0prePWY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"TikTok Top Ads Scraper Input\",\n  \"description\": \"Collect TikTok Creative Center Top Ads by market, period, industry, objective, language, ad format, like percentile, and ranking. No login or cookies required.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"description\": \"Choose the Top Ads leaderboard, TikTok's handpicked Spotlight, or refresh specific ad IDs.\",\n      \"enum\": [\n        \"leaderboard\",\n        \"spotlight\",\n        \"byAdIds\"\n      ],\n      \"enumTitles\": [\n        \"Top Ads leaderboard\",\n        \"Top Ads Spotlight\",\n        \"Specific ad IDs\"\n      ],\n      \"default\": \"leaderboard\",\n      \"prefill\": \"leaderboard\"\n    },\n    \"country\": {\n      \"title\": \"Country\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"description\": \"122 supported markets. All countries reads multiple market boards and merges the results; it uses more requests.\",\n      \"enum\": [\n        \"\",\n        \"AL\",\n        \"DZ\",\n        \"AO\",\n        \"AR\",\n        \"AM\",\n        \"AU\",\n        \"AT\",\n        \"AZ\",\n        \"BH\",\n        \"BD\",\n        \"BY\",\n        \"BE\",\n        \"BO\",\n        \"BA\",\n        \"BW\",\n        \"BR\",\n        \"BN\",\n        \"BG\",\n        \"KH\",\n        \"CM\",\n        \"CA\",\n        \"CL\",\n        \"CO\",\n        \"CR\",\n        \"CI\",\n        \"HR\",\n        \"CY\",\n        \"CZ\",\n        \"DK\",\n        \"DO\",\n        \"EC\",\n        \"EG\",\n        \"SV\",\n        \"EE\",\n        \"ET\",\n        \"FI\",\n        \"FR\",\n        \"GE\",\n        \"DE\",\n        \"GH\",\n        \"GR\",\n        \"GT\",\n        \"JO\",\n        \"HN\",\n        \"HK\",\n        \"HU\",\n        \"IN\",\n        \"ID\",\n        \"IQ\",\n        \"IE\",\n        \"IL\",\n        \"IT\",\n        \"JM\",\n        \"JP\",\n        \"KZ\",\n        \"KE\",\n        \"KW\",\n        \"KG\",\n        \"LA\",\n        \"LV\",\n        \"LB\",\n        \"LY\",\n        \"MY\",\n        \"MV\",\n        \"MU\",\n        \"MX\",\n        \"MD\",\n        \"MN\",\n        \"ME\",\n        \"MA\",\n        \"MZ\",\n        \"MM\",\n        \"NA\",\n        \"NL\",\n        \"NZ\",\n        \"NI\",\n        \"NG\",\n        \"MK\",\n        \"NO\",\n        \"OM\",\n        \"PK\",\n        \"PS\",\n        \"PA\",\n        \"PY\",\n        \"PE\",\n        \"PH\",\n        \"PL\",\n        \"PT\",\n        \"PR\",\n        \"QA\",\n        \"LT\",\n        \"RO\",\n        \"SA\",\n        \"SN\",\n        \"RS\",\n        \"SG\",\n        \"SK\",\n        \"SI\",\n        \"ZA\",\n        \"KR\",\n        \"ES\",\n        \"LK\",\n        \"SD\",\n        \"SE\",\n        \"CH\",\n        \"TW\",\n        \"TJ\",\n        \"TZ\",\n        \"TH\",\n        \"TT\",\n        \"TN\",\n        \"TR\",\n        \"UG\",\n        \"AE\",\n        \"GB\",\n        \"US\",\n        \"UY\",\n        \"VE\",\n        \"VN\",\n        \"YE\",\n        \"ZM\",\n        \"ZW\"\n      ],\n      \"enumTitles\": [\n        \"All countries (sweep 122 markets)\",\n        \"Albania\",\n        \"Algeria\",\n        \"Angola\",\n        \"Argentina\",\n        \"Armenia\",\n        \"Australia\",\n        \"Austria\",\n        \"Azerbaijan\",\n        \"Bahrain\",\n        \"Bangladesh\",\n        \"Belarus\",\n        \"Belgium\",\n        \"Bolivia\",\n        \"Bosnia and Herzegovina\",\n        \"Botswana\",\n        \"Brazil\",\n        \"Brunei\",\n        \"Bulgaria\",\n        \"Cambodia\",\n        \"Cameroon\",\n        \"Canada\",\n        \"Chile\",\n        \"Colombia\",\n        \"Costa Rica\",\n        \"Cote d'Ivoire\",\n        \"Croatia\",\n        \"Cyprus\",\n        \"Czechia\",\n        \"Denmark\",\n        \"Dominican Republic\",\n        \"Ecuador\",\n        \"Egypt\",\n        \"El Salvador\",\n        \"Estonia\",\n        \"Ethiopia\",\n        \"Finland\",\n        \"France\",\n        \"Georgia\",\n        \"Germany\",\n        \"Ghana\",\n        \"Greece\",\n        \"Guatemala\",\n        \"Hashemite Kingdom of Jordan\",\n        \"Honduras\",\n        \"Hong Kong\",\n        \"Hungary\",\n        \"India\",\n        \"Indonesia\",\n        \"Iraq\",\n        \"Ireland\",\n        \"Israel\",\n        \"Italy\",\n        \"Jamaica\",\n        \"Japan\",\n        \"Kazakhstan\",\n        \"Kenya\",\n        \"Kuwait\",\n        \"Kyrgyzstan\",\n        \"Laos\",\n        \"Latvia\",\n        \"Lebanon\",\n        \"Libya\",\n        \"Malaysia\",\n        \"Maldives\",\n        \"Mauritius\",\n        \"Mexico\",\n        \"Moldova\",\n        \"Mongolia\",\n        \"Montenegro\",\n        \"Morocco\",\n        \"Mozambique\",\n        \"Myanmar\",\n        \"Namibia\",\n        \"Netherlands\",\n        \"New Zealand\",\n        \"Nicaragua\",\n        \"Nigeria\",\n        \"North Macedonia\",\n        \"Norway\",\n        \"Oman\",\n        \"Pakistan\",\n        \"Palestine\",\n        \"Panama\",\n        \"Paraguay\",\n        \"Peru\",\n        \"Philippines\",\n        \"Poland\",\n        \"Portugal\",\n        \"Puerto Rico\",\n        \"Qatar\",\n        \"Republic of Lithuania\",\n        \"Romania\",\n        \"Saudi Arabia\",\n        \"Senegal\",\n        \"Serbia\",\n        \"Singapore\",\n        \"Slovakia\",\n        \"Slovenia\",\n        \"South Africa\",\n        \"South Korea\",\n        \"Spain\",\n        \"Sri Lanka\",\n        \"Sudan\",\n        \"Sweden\",\n        \"Switzerland\",\n        \"Taiwan\",\n        \"Tajikistan\",\n        \"Tanzania\",\n        \"Thailand\",\n        \"Trinidad and Tobago\",\n        \"Tunisia\",\n        \"Turkey\",\n        \"Uganda\",\n        \"United Arab Emirates\",\n        \"United Kingdom\",\n        \"United States\",\n        \"Uruguay\",\n        \"Venezuela\",\n        \"Vietnam\",\n        \"Yemen\",\n        \"Zambia\",\n        \"Zimbabwe\"\n      ],\n      \"default\": \"US\",\n      \"prefill\": \"US\"\n    },\n    \"period\": {\n      \"title\": \"Time period\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"description\": \"The trailing window TikTok ranks over.\",\n      \"enum\": [\n        \"7\",\n        \"30\",\n        \"180\"\n      ],\n      \"enumTitles\": [\n        \"Last 7 days\",\n        \"Last 30 days\",\n        \"Last 180 days\"\n      ],\n      \"default\": \"30\",\n      \"prefill\": \"30\"\n    },\n    \"industry\": {\n      \"title\": \"Industry\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"description\": \"TikTok's industry taxonomy. Child categories are shown under their parent.\",\n      \"enum\": [\n        \"\",\n        \"label_22000000000\",\n        \"label_22102000000\",\n        \"label_22101000000\",\n        \"label_22107000000\",\n        \"label_22108000000\",\n        \"label_22109000000\",\n        \"label_22106000000\",\n        \"label_22999000000\",\n        \"label_22112000000\",\n        \"label_22105000000\",\n        \"label_22113000000\",\n        \"label_22110000000\",\n        \"label_22111000000\",\n        \"label_16000000000\",\n        \"label_16105000000\",\n        \"label_16104000000\",\n        \"label_16101000000\",\n        \"label_16102000000\",\n        \"label_16999000000\",\n        \"label_16100000000\",\n        \"label_20000000000\",\n        \"label_20101000000\",\n        \"label_20110000000\",\n        \"label_20104000000\",\n        \"label_20106000000\",\n        \"label_20109000000\",\n        \"label_20107000000\",\n        \"label_20102000000\",\n        \"label_20105000000\",\n        \"label_20999000000\",\n        \"label_20111000000\",\n        \"label_20103000000\",\n        \"label_20100000000\",\n        \"label_20108000000\",\n        \"label_20112000000\",\n        \"label_12000000000\",\n        \"label_12104000000\",\n        \"label_12108000000\",\n        \"label_12100000000\",\n        \"label_12102000000\",\n        \"label_12110000000\",\n        \"label_12105000000\",\n        \"label_12107000000\",\n        \"label_12109000000\",\n        \"label_12103000000\",\n        \"label_12999000000\",\n        \"label_12101000000\",\n        \"label_12106000000\",\n        \"label_14000000000\",\n        \"label_14105000000\",\n        \"label_14104000000\",\n        \"label_14107000000\",\n        \"label_14106000000\",\n        \"label_14101000000\",\n        \"label_14100000000\",\n        \"label_14999000000\",\n        \"label_14103000000\",\n        \"label_14102000000\",\n        \"label_24000000000\",\n        \"label_24108000000\",\n        \"label_24118000000\",\n        \"label_24105000000\",\n        \"label_24103000000\",\n        \"label_24104000000\",\n        \"label_24109000000\",\n        \"label_24114000000\",\n        \"label_24107000000\",\n        \"label_24120000000\",\n        \"label_24119000000\",\n        \"label_24116000000\",\n        \"label_24117000000\",\n        \"label_24111000000\",\n        \"label_24106000000\",\n        \"label_24112000000\",\n        \"label_24101000000\",\n        \"label_24999000000\",\n        \"label_24113000000\",\n        \"label_24100000000\",\n        \"label_24102000000\",\n        \"label_24110000000\",\n        \"label_24115000000\",\n        \"label_30000000000\",\n        \"label_30100000000\",\n        \"label_30102000000\",\n        \"label_30101000000\",\n        \"label_10000000000\",\n        \"label_10100000000\",\n        \"label_10102000000\",\n        \"label_10105000000\",\n        \"label_10106000000\",\n        \"label_10999000000\",\n        \"label_10103000000\",\n        \"label_10101000000\",\n        \"label_10104000000\",\n        \"label_13000000000\",\n        \"label_13100000000\",\n        \"label_13108000000\",\n        \"label_13117000000\",\n        \"label_13115000000\",\n        \"label_13116000000\",\n        \"label_13112000000\",\n        \"label_13107000000\",\n        \"label_13104000000\",\n        \"label_13102000000\",\n        \"label_13110000000\",\n        \"label_13111000000\",\n        \"label_13109000000\",\n        \"label_13999000000\",\n        \"label_13105000000\",\n        \"label_13113000000\",\n        \"label_13101000000\",\n        \"label_13114000000\",\n        \"label_13103000000\",\n        \"label_27000000000\",\n        \"label_27103000000\",\n        \"label_27104000000\",\n        \"label_27100000000\",\n        \"label_27101000000\",\n        \"label_27102000000\",\n        \"label_27999000000\",\n        \"label_25000000000\",\n        \"label_25301000000\",\n        \"label_25302000000\",\n        \"label_25300000000\",\n        \"label_25313000000\",\n        \"label_25303000000\",\n        \"label_25999000000\",\n        \"label_25311000000\",\n        \"label_25304000000\",\n        \"label_25305000000\",\n        \"label_25306000000\",\n        \"label_25307000000\",\n        \"label_25308000000\",\n        \"label_25309000000\",\n        \"label_25310000000\",\n        \"label_25312000000\",\n        \"label_29000000000\",\n        \"label_29102000000\",\n        \"label_29101000000\",\n        \"label_29100000000\",\n        \"label_29103000000\",\n        \"label_29999000000\",\n        \"label_21000000000\",\n        \"label_21102000000\",\n        \"label_21101000000\",\n        \"label_21103000000\",\n        \"label_21104000000\",\n        \"label_21100000000\",\n        \"label_21999000000\",\n        \"label_21105000000\",\n        \"label_18000000000\",\n        \"label_18106000000\",\n        \"label_18110000000\",\n        \"label_18104000000\",\n        \"label_18101000000\",\n        \"label_18102000000\",\n        \"label_18105000000\",\n        \"label_18108000000\",\n        \"label_18109000000\",\n        \"label_18999000000\",\n        \"label_18112000000\",\n        \"label_18100000000\",\n        \"label_18103000000\",\n        \"label_18107000000\",\n        \"label_18111000000\",\n        \"label_26000000000\",\n        \"label_26114000000\",\n        \"label_26112000000\",\n        \"label_26102000000\",\n        \"label_26113000000\",\n        \"label_26108000000\",\n        \"label_26104000000\",\n        \"label_26105000000\",\n        \"label_26111000000\",\n        \"label_26999000000\",\n        \"label_26101000000\",\n        \"label_26106000000\",\n        \"label_26107000000\",\n        \"label_26109000000\",\n        \"label_26103000000\",\n        \"label_26100000000\",\n        \"label_23000000000\",\n        \"label_23113000000\",\n        \"label_23114000000\",\n        \"label_23122000000\",\n        \"label_23102000000\",\n        \"label_23126000000\",\n        \"label_23108000000\",\n        \"label_23105000000\",\n        \"label_23111000000\",\n        \"label_23116000000\",\n        \"label_23104000000\",\n        \"label_23128000000\",\n        \"label_23107000000\",\n        \"label_23124000000\",\n        \"label_23125000000\",\n        \"label_23127000000\",\n        \"label_23115000000\",\n        \"label_23106000000\",\n        \"label_23109000000\",\n        \"label_23110000000\",\n        \"label_23100000000\",\n        \"label_23119000000\",\n        \"label_23999000000\",\n        \"label_23129000000\",\n        \"label_23101000000\",\n        \"label_23118000000\",\n        \"label_23130000000\",\n        \"label_23131000000\",\n        \"label_23103000000\",\n        \"label_23134000000\",\n        \"label_23123000000\",\n        \"label_23132000000\",\n        \"label_23133000000\",\n        \"label_23112000000\",\n        \"label_23117000000\",\n        \"label_19000000000\",\n        \"label_19999000000\",\n        \"label_19103000000\",\n        \"label_19101000000\",\n        \"label_19102000000\",\n        \"label_19105000000\",\n        \"label_19106000000\",\n        \"label_19104000000\",\n        \"label_19100000000\",\n        \"label_28000000000\",\n        \"label_28100000000\",\n        \"label_28101000000\",\n        \"label_15000000000\",\n        \"label_15100000000\",\n        \"label_15105000000\",\n        \"label_15103000000\",\n        \"label_15101000000\",\n        \"label_15102000000\",\n        \"label_15104000000\",\n        \"label_15106000000\",\n        \"label_15107000000\",\n        \"label_15999000000\",\n        \"label_17000000000\",\n        \"label_17103000000\",\n        \"label_17999000000\",\n        \"label_17105000000\",\n        \"label_17106000000\",\n        \"label_11000000000\",\n        \"label_11111000000\",\n        \"label_11110000000\",\n        \"label_11101000000\",\n        \"label_11103000000\",\n        \"label_11102000000\",\n        \"label_11100000000\",\n        \"label_11107000000\",\n        \"label_11112000000\",\n        \"label_11104000000\",\n        \"label_11108000000\",\n        \"label_11106000000\",\n        \"label_11999000000\",\n        \"label_11105000000\",\n        \"label_11109000000\"\n      ],\n      \"enumTitles\": [\n        \"All industries\",\n        \"Apparel & Accessories\",\n        \"Apparel & Accessories > Bags\",\n        \"Apparel & Accessories > Clothing Accessories\",\n        \"Apparel & Accessories > High-end Jewelry\",\n        \"Apparel & Accessories > Men's Clothing\",\n        \"Apparel & Accessories > Men's Shoes\",\n        \"Apparel & Accessories > Ordinary Jewelry\",\n        \"Apparel & Accessories > Other Apparel & Accessories\",\n        \"Apparel & Accessories > Traditional & Ceremonial Clothing\",\n        \"Apparel & Accessories > Watches\",\n        \"Apparel & Accessories > Wearable Tech Devices\",\n        \"Apparel & Accessories > Women's Clothing\",\n        \"Apparel & Accessories > Women's Shoes\",\n        \"Appliances\",\n        \"Appliances > Digital Devices\",\n        \"Appliances > Home Appliances\",\n        \"Appliances > Kitchen & Bathroom Appliances\",\n        \"Appliances > Large Appliances\",\n        \"Appliances > Other Appliances\",\n        \"Appliances > Personal Care Appliances\",\n        \"Apps\",\n        \"Apps > Audio & Video Players\",\n        \"Apps > Business & Productivity\",\n        \"Apps > Education\",\n        \"Apps > Financial Services\",\n        \"Apps > Health & Fitness\",\n        \"Apps > Life & Leisure\",\n        \"Apps > News & Reading\",\n        \"Apps > Online Shopping\",\n        \"Apps > Other Apps\",\n        \"Apps > Parenting\",\n        \"Apps > Photography\",\n        \"Apps > Social\",\n        \"Apps > Travel\",\n        \"Apps > Utilities\",\n        \"Baby, Kids & Maternity\",\n        \"Baby, Kids & Maternity > Baby Bedding\",\n        \"Baby, Kids & Maternity > Baby Feeding Supplies\",\n        \"Baby, Kids & Maternity > Baby Food\",\n        \"Baby, Kids & Maternity > Baby Formula\",\n        \"Baby, Kids & Maternity > Baby Hygiene Products\",\n        \"Baby, Kids & Maternity > Baby Shoes\",\n        \"Baby, Kids & Maternity > Child Car Seats\",\n        \"Baby, Kids & Maternity > Children's Apparel\",\n        \"Baby, Kids & Maternity > Diapers & Baby Wipes\",\n        \"Baby, Kids & Maternity > Other Baby, Kids & Maternity\",\n        \"Baby, Kids & Maternity > Strollers & Cribs\",\n        \"Baby, Kids & Maternity > Toys for Kids\",\n        \"Beauty & Personal Care\",\n        \"Beauty & Personal Care > Aesthetic Medicine\",\n        \"Beauty & Personal Care > Cosmetics\",\n        \"Beauty & Personal Care > Feminine Care\",\n        \"Beauty & Personal Care > Fragrances & Perfumes\",\n        \"Beauty & Personal Care > Haircare\",\n        \"Beauty & Personal Care > Oral Care\",\n        \"Beauty & Personal Care > Other Beauty & Personal Care\",\n        \"Beauty & Personal Care > Skincare\",\n        \"Beauty & Personal Care > Wig & Hair Styling\",\n        \"Business Services\",\n        \"Business Services > Agriculture, Forestry, Animal Husbandry & Fishing\",\n        \"Business Services > Auction Services\",\n        \"Business Services > Chemical Materials\",\n        \"Business Services > Constructional Engineering\",\n        \"Business Services > Electronics & Electrical\",\n        \"Business Services > Energy Conservation & Environmental Protection\",\n        \"Business Services > Exhibition Services\",\n        \"Business Services > Franchising\",\n        \"Business Services > Individual Entrepreneurship\",\n        \"Business Services > Investment Planning & Management\",\n        \"Business Services > IT Services\",\n        \"Business Services > Legal Services\",\n        \"Business Services > Logistics\",\n        \"Business Services > Machinery & Equipment\",\n        \"Business Services > Marketing & Advertising\",\n        \"Business Services > Office Equipment & Supplies\",\n        \"Business Services > Other Business Services\",\n        \"Business Services > Professional Consultation\",\n        \"Business Services > Real Estate & Home Rentals\",\n        \"Business Services > Recruitment & Job Searching\",\n        \"Business Services > Safety & Security\",\n        \"Business Services > Service Outsourcing\",\n        \"E-Commerce (Non-app)\",\n        \"E-Commerce (Non-app) > Big Box Retailers\",\n        \"E-Commerce (Non-app) > Large E-commerce Platforms\",\n        \"E-Commerce (Non-app) > Small & Medium-sized E-commerce Platforms\",\n        \"Education\",\n        \"Education > Early Childhood & Preschool Education\",\n        \"Education > Higher Education\",\n        \"Education > Language Training\",\n        \"Education > Non-academic Training (Hobbies)\",\n        \"Education > Other Education\",\n        \"Education > Overseas Education\",\n        \"Education > Primary & Secondary Education & K-12\",\n        \"Education > Vocational Training\",\n        \"Financial Services\",\n        \"Financial Services > Commercial Banks\",\n        \"Financial Services > Credit Bureaus\",\n        \"Financial Services > Credit Cards\",\n        \"Financial Services > Crowd Funding\",\n        \"Financial Services > Cryptocurrencies\",\n        \"Financial Services > Foreign Exchange Transactions\",\n        \"Financial Services > Funds\",\n        \"Financial Services > Guarantees\",\n        \"Financial Services > Insurance\",\n        \"Financial Services > Investment Advisory\",\n        \"Financial Services > Loan Services\",\n        \"Financial Services > Microfinance Companies\",\n        \"Financial Services > Other Financial Services\",\n        \"Financial Services > Pawn Shops\",\n        \"Financial Services > Precious Metals\",\n        \"Financial Services > Securities\",\n        \"Financial Services > Third-Party Payments\",\n        \"Financial Services > Trusts\",\n        \"Food & Beverage\",\n        \"Food & Beverage > Alcoholic Beverages\",\n        \"Food & Beverage > Cooking & Recipes\",\n        \"Food & Beverage > Cuisine\",\n        \"Food & Beverage > Food & Fresh Produce\",\n        \"Food & Beverage > Non-alcoholic Beverages\",\n        \"Food & Beverage > Other Food & Beverage\",\n        \"Games\",\n        \"Games > Action\",\n        \"Games > Casino\",\n        \"Games > Hyper-Casual\",\n        \"Games > Kids\",\n        \"Games > Match\",\n        \"Games > Other\",\n        \"Games > Party\",\n        \"Games > Puzzle\",\n        \"Games > Racing\",\n        \"Games > RPG\",\n        \"Games > Shooting\",\n        \"Games > Simulation\",\n        \"Games > Sports\",\n        \"Games > Strategy\",\n        \"Games > Tabletop\",\n        \"Health\",\n        \"Health > Dietary Supplements\",\n        \"Health > Medical Information\",\n        \"Health > Medical Services\",\n        \"Health > Medicine\",\n        \"Health > Other Health\",\n        \"Home Improvement\",\n        \"Home Improvement > Construction Materials & Lighting\",\n        \"Home Improvement > Furniture\",\n        \"Home Improvement > Hardware & Electrical\",\n        \"Home Improvement > Home Decor\",\n        \"Home Improvement > Interior Design & Decorating Services\",\n        \"Home Improvement > Other Home Improvement\",\n        \"Home Improvement > Power Strips & Socket\",\n        \"Household Products\",\n        \"Household Products > Cleaning Appliances\",\n        \"Household Products > Cleaning Supplies\",\n        \"Household Products > Coffee Accessories\",\n        \"Household Products > Daily Essentials\",\n        \"Household Products > Glasses & Drinkware\",\n        \"Household Products > Kitchen Accessories\",\n        \"Household Products > Laundry\",\n        \"Household Products > Leather Care\",\n        \"Household Products > Other Household Products\",\n        \"Household Products > Pest Control\",\n        \"Household Products > Storage Products\",\n        \"Household Products > Tea Sets\",\n        \"Household Products > Tissues & Wet Wipes\",\n        \"Household Products > Toys\",\n        \"Life Services\",\n        \"Life Services > Beauty & Personal Care\",\n        \"Life Services > Consumer Services\",\n        \"Life Services > Dating & Matchmaking Services\",\n        \"Life Services > Exercise & Fitness\",\n        \"Life Services > Gardening\",\n        \"Life Services > Gifts & Flowers\",\n        \"Life Services > Housekeeping\",\n        \"Life Services > Internet Services\",\n        \"Life Services > Other Life Services\",\n        \"Life Services > Photography\",\n        \"Life Services > Shopping Services\",\n        \"Life Services > Used Good Sales Platforms\",\n        \"Life Services > Utilities Payments\",\n        \"Life Services > Wedding Celebrations\",\n        \"Life Services > Wedding Photography\",\n        \"News & Entertainment\",\n        \"News & Entertainment > Anime\",\n        \"News & Entertainment > Astrology\",\n        \"News & Entertainment > Beauty & Personal Care\",\n        \"News & Entertainment > Business & Economy\",\n        \"News & Entertainment > Car Information\",\n        \"News & Entertainment > Celebrities & Gossip\",\n        \"News & Entertainment > Charity & Public Welfare\",\n        \"News & Entertainment > Collectables & Antiques\",\n        \"News & Entertainment > Culture & Art\",\n        \"News & Entertainment > Culture & History\",\n        \"News & Entertainment > E-commerce Information\",\n        \"News & Entertainment > Environmental Protection\",\n        \"News & Entertainment > Food & Cooking\",\n        \"News & Entertainment > Games & Utility Software\",\n        \"News & Entertainment > General Information\",\n        \"News & Entertainment > Humor\",\n        \"News & Entertainment > Law\",\n        \"News & Entertainment > Lifestyle News\",\n        \"News & Entertainment > Live Events\",\n        \"News & Entertainment > Military\",\n        \"News & Entertainment > Movies\",\n        \"News & Entertainment > Other News & Entertainment\",\n        \"News & Entertainment > Pet Information\",\n        \"News & Entertainment > Politics\",\n        \"News & Entertainment > Reading\",\n        \"News & Entertainment > Real Estate Information\",\n        \"News & Entertainment > Relationship Information\",\n        \"News & Entertainment > Science & Technology\",\n        \"News & Entertainment > Social Media Account Promotion\",\n        \"News & Entertainment > Sports & Fitness\",\n        \"News & Entertainment > Streaming Site\",\n        \"News & Entertainment > Tourist Information\",\n        \"News & Entertainment > TV Drama & Series\",\n        \"News & Entertainment > TV Variety Shows\",\n        \"Pets\",\n        \"Pets > Other Pets\",\n        \"Pets > Pet Grooming\",\n        \"Pets > Pet Healthcare\",\n        \"Pets > Pet Household Products\",\n        \"Pets > Pet Toys\",\n        \"Pets > Pet Travel Accessories\",\n        \"Pets > Pet Treats\",\n        \"Pets > Petfood\",\n        \"Sports & Outdoor\",\n        \"Sports & Outdoor > Outdoor Equipment\",\n        \"Sports & Outdoor > Sports & Equipment\",\n        \"Tech & Electronics\",\n        \"Tech & Electronics > Cell Phones\",\n        \"Tech & Electronics > Computer Accessories\",\n        \"Tech & Electronics > Computer Repair\",\n        \"Tech & Electronics > Computers\",\n        \"Tech & Electronics > Computers Components\",\n        \"Tech & Electronics > Gaming Devices\",\n        \"Tech & Electronics > Network Products\",\n        \"Tech & Electronics > Office Equipment\",\n        \"Tech & Electronics > Other Tech & Electronics\",\n        \"Travel\",\n        \"Travel > Hotels & Accommodation\",\n        \"Travel > Other Travel\",\n        \"Travel > Tours & Attractions\",\n        \"Travel > Travel Agencies & Services\",\n        \"Vehicle & Transportation\",\n        \"Vehicle & Transportation > Accessories for 2/3-Wheeled Vehicles\",\n        \"Vehicle & Transportation > Airplanes\",\n        \"Vehicle & Transportation > Auto Accessories\",\n        \"Vehicle & Transportation > Auto Parts\",\n        \"Vehicle & Transportation > Auto Services\",\n        \"Vehicle & Transportation > Automobiles\",\n        \"Vehicle & Transportation > Bicycles\",\n        \"Vehicle & Transportation > Car Dealerships\",\n        \"Vehicle & Transportation > Car Rentals\",\n        \"Vehicle & Transportation > Electric Scooters\",\n        \"Vehicle & Transportation > Motorcycles\",\n        \"Vehicle & Transportation > Other Vehicle & Transportation\",\n        \"Vehicle & Transportation > Used Cars\",\n        \"Vehicle & Transportation > Water Vehicles\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\",\n      \"sectionCaption\": \"Filters\",\n      \"sectionDescription\": \"Narrow the leaderboard. Leave a filter at All to sweep every value.\"\n    },\n    \"objective\": {\n      \"title\": \"Campaign objective\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"description\": \"Campaign objective as TikTok labels it.\",\n      \"enum\": [\n        \"\",\n        \"campaign_objective_traffic\",\n        \"campaign_objective_app_installs\",\n        \"campaign_objective_conversion\",\n        \"campaign_objective_video_views\",\n        \"campaign_objective_reach\",\n        \"campaign_objective_lead_generation\",\n        \"campaign_objective_product_sales\",\n        \"campaign_objective_app_promotion\"\n      ],\n      \"enumTitles\": [\n        \"All objectives\",\n        \"Traffic\",\n        \"App Installs\",\n        \"Conversions\",\n        \"Video Views\",\n        \"Reach\",\n        \"Lead Generation\",\n        \"Product Sales\",\n        \"App Promotion\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"language\": {\n      \"title\": \"Ad language\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"description\": \"Language of the ad copy.\",\n      \"enum\": [\n        \"\",\n        \"en\",\n        \"es\",\n        \"ar\",\n        \"vi\",\n        \"th\",\n        \"de\",\n        \"id\",\n        \"pt\",\n        \"fr\",\n        \"ms\",\n        \"nl\",\n        \"ja\",\n        \"it\",\n        \"ro\",\n        \"zh-Hant\",\n        \"ko\",\n        \"uk\"\n      ],\n      \"enumTitles\": [\n        \"All languages\",\n        \"English\",\n        \"Spanish\",\n        \"Arabic\",\n        \"Vietnamese\",\n        \"Thai\",\n        \"German\",\n        \"Indonesian\",\n        \"Portuguese\",\n        \"French\",\n        \"Malay\",\n        \"Dutch\",\n        \"Japanese\",\n        \"Italian\",\n        \"Romanian\",\n        \"Chinese (Traditional)\",\n        \"Korean\",\n        \"Ukrainian\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"adFormat\": {\n      \"title\": \"Ad format\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"description\": \"Spark ads are boosted organic posts; Non-Spark ads are regular in-feed ads.\",\n      \"enum\": [\n        \"\",\n        \"1\",\n        \"2\"\n      ],\n      \"enumTitles\": [\n        \"All ad formats\",\n        \"Spark ads\",\n        \"Non-Spark ads\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"likeTier\": {\n      \"title\": \"Like percentile\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"description\": \"TikTok's like-percentile band; Top 1-20% is the highest.\",\n      \"enum\": [\n        \"\",\n        \"1\",\n        \"2\",\n        \"3\",\n        \"4\",\n        \"5\"\n      ],\n      \"enumTitles\": [\n        \"All like tiers\",\n        \"Top 1-20%\",\n        \"Top 21-40%\",\n        \"Top 41-60%\",\n        \"Top 61-80%\",\n        \"Top 81-100%\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"orderBy\": {\n      \"title\": \"Sort by\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"description\": \"TikTok's ranking. CTR and Likes are sorted highest-first locally.\",\n      \"enum\": [\n        \"for_you\",\n        \"impression\",\n        \"ctr\",\n        \"play_2s_rate\",\n        \"play_6s_rate\",\n        \"cvr\",\n        \"like\"\n      ],\n      \"enumTitles\": [\n        \"TikTok For You ranking\",\n        \"Reach (TikTok ranking)\",\n        \"CTR (highest first)\",\n        \"2-second view rate\",\n        \"6-second view rate\",\n        \"Conversion rate\",\n        \"Likes (highest first)\"\n      ],\n      \"default\": \"for_you\",\n      \"prefill\": \"for_you\"\n    },\n    \"maxItems\": {\n      \"title\": \"Maximum ads\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum unique ads to deliver (0-500). TikTok exposes 20 per board; enable Sweep to read more boards.\",\n      \"default\": 30,\n      \"minimum\": 0,\n      \"maximum\": 500,\n      \"prefill\": 3,\n      \"sectionCaption\": \"Collection\",\n      \"sectionDescription\": \"How many ads to collect and whether to read more boards.\"\n    },\n    \"sweep\": {\n      \"title\": \"Sweep to fill\",\n      \"type\": \"boolean\",\n      \"description\": \"Read more filter combinations to get past TikTok's 20-ad board. Turn off to get exactly one board.\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"includeDetails\": {\n      \"title\": \"Include ad details\",\n      \"type\": \"boolean\",\n      \"description\": \"Add landing page, target countries, comments, shares, and source (one extra request per ad).\",\n      \"default\": true,\n      \"prefill\": false,\n      \"sectionCaption\": \"Ad details\",\n      \"sectionDescription\": \"Optional enrichment requests.\"\n    },\n    \"includeKeyframes\": {\n      \"title\": \"Include retention curve\",\n      \"type\": \"boolean\",\n      \"description\": \"Add the per-second retention curve (one extra request per ad).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"adIds\": {\n      \"title\": \"Specific ad IDs\",\n      \"type\": \"array\",\n      \"editor\": \"stringList\",\n      \"description\": \"Ad IDs or Creative Center URLs to refresh. Used only in 'Specific ads' mode.\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [],\n      \"prefill\": [],\n      \"sectionCaption\": \"Specific ads\",\n      \"sectionDescription\": \"Only used when Mode is Specific ad IDs.\"\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# TikTok Top Ads Leaderboard - 122 Markets & Metrics\r\n\r\nSee what is actually winning on TikTok. This actor reads TikTok's public Creative\r\nCenter Top Ads boards and returns one structured row per ad: the creative, brand,\r\nCTR, likes, budget tier, industry, campaign objective, downloadable video renditions,\r\nand the landing page when TikTok publishes it. It also reads TikTok's handpicked Top\r\nAds Spotlight and can refresh a list of known ad IDs.\r\n\r\nNo TikTok account, cookies, API key, or browser is required. The actor signs its own\r\nanonymous Creative Center session with plain HTTP.\r\n\r\n## What this actor does\r\n\r\n- Reads the Top Ads leaderboard for any of **122 markets**, 7 / 30 / 180-day windows,\r\n  258 industries, 8 campaign objectives, 17 ad languages, Spark/Non-Spark formats,\r\n  and 5 like-percentile tiers.\r\n- Ranks by TikTok's For You mix, Reach, CTR, 2-second view rate, 6-second view rate,\r\n  conversion rate, or Likes. CTR and Likes are returned highest-first.\r\n- Goes beyond TikTok's 20-ad board by reading more filter combinations and deduplicating\r\n  by ad ID. It stops at your `maxItems` or when the source has no more unique ads.\r\n- Optionally adds the ad detail record: landing page, target countries, comments,\r\n  shares, ad source, and the full objective list.\r\n- Optionally adds the per-second retention curve from TikTok's keyframe data.\r\n- Reads the Top Ads Spotlight: five handpicked ads with TikTok's expert commentary.\r\n- Refreshes specific ad IDs or Creative Center URLs without re-running a whole board.\r\n- Preserves the original output fields and adds new fields beside them.\r\n\r\n## How many ads can I get?\r\n\r\nTikTok shows an anonymous visitor **20 ads per filter board** (one market + period +\r\nindustry + objective + ranking + format + like tier). The second page is empty. The\r\nranked index behind a query can hold up to **500** ads, but only 20 are visible per\r\nboard.\r\n\r\nThis actor reads board after board - other rankings, objectives, industries, formats,\r\nlike tiers, languages, and markets - and deduplicates by ad ID. `maxItems` is a cap on\r\nunique ads, not a promise that one board contains that many. If the source runs out,\r\nthe run succeeds with an honest status message instead of pretending it filled the\r\nrequest.\r\n\r\n## Modes\r\n\r\n| Mode | What it reads |\r\n|---|---|\r\n| **Top Ads leaderboard** (default) | The main Top Ads boards, with all filters and the sweep. |\r\n| **Top Ads Spotlight** | TikTok's handpicked Spotlight list, five ads with expert commentary. `industry` is the only board filter used; `includeDetails` adds title, brand, landing page, and target countries. |\r\n| **Specific ad IDs** | A detail lookup for each ID or Creative Center URL you provide. |\r\n\r\n## Inputs\r\n\r\n| Field | Default | What it controls |\r\n|---|---|---|\r\n| `mode` | `leaderboard` | Leaderboard, Spotlight, or Specific ad IDs. |\r\n| `country` | `US` | 122 markets, or **All countries** to read multiple market boards and merge the results. |\r\n| `period` | `30` | Last 7, 30, or 180 days. |\r\n| `industry` | All industries | TikTok's 258-entry industry taxonomy; child categories are shown under their parent. |\r\n| `objective` | All objectives | Traffic, App Installs, Conversions, Video Views, Reach, Lead Generation, Product Sales, or App Promotion. |\r\n| `language` | All languages | The language of the ad copy (17 options). |\r\n| `adFormat` | All formats | All formats, Spark ads, or Non-Spark ads. |\r\n| `likeTier` | All like tiers | All like tiers, Top 1-20%, Top 21-40%, Top 41-60%, Top 61-80%, or Top 81-100%. |\r\n| `orderBy` | `for_you` | For You, Reach, CTR, 2-second view rate, 6-second view rate, conversion rate, or Likes. |\r\n| `maxItems` | `30` | Maximum unique ads to deliver, 0-500. |\r\n| `sweep` | `true` | Read more filter combinations to get past the 20-ad board. Turn off to get exactly one board. |\r\n| `includeDetails` | `true` | Add landing page, target countries, comments, shares, source, and objectives. |\r\n| `includeKeyframes` | `false` | Add the per-second retention curve. |\r\n| `adIds` | Any | Ad IDs or Creative Center URLs for Specific ad IDs mode. |\r\n\r\n### Examples\r\n\r\nTop US ads from the last 30 days:\r\n\r\n```json\r\n{\r\n  \"mode\": \"leaderboard\",\r\n  \"country\": \"US\",\r\n  \"period\": \"30\",\r\n  \"maxItems\": 50,\r\n  \"sweep\": true\r\n}\r\n```\r\n\r\nSpark conversion ads in Germany over 180 days, with landing pages:\r\n\r\n```json\r\n{\r\n  \"mode\": \"leaderboard\",\r\n  \"country\": \"DE\",\r\n  \"period\": \"180\",\r\n  \"objective\": \"campaign_objective_conversion\",\r\n  \"adFormat\": \"1\",\r\n  \"maxItems\": 100,\r\n  \"includeDetails\": true\r\n}\r\n```\r\n\r\nAll countries, Beauty & Personal Care, highest CTR, top 20:\r\n\r\n```json\r\n{\r\n  \"mode\": \"leaderboard\",\r\n  \"country\": \"\",\r\n  \"period\": \"30\",\r\n  \"industry\": \"label_14000000000\",\r\n  \"orderBy\": \"ctr\",\r\n  \"maxItems\": 20\r\n}\r\n```\r\n\r\nTop Ads Spotlight:\r\n\r\n```json\r\n{\r\n  \"mode\": \"spotlight\",\r\n  \"industry\": \"label_15000000000\",\r\n  \"maxItems\": 5\r\n}\r\n```\r\n\r\nRefresh two known ads:\r\n\r\n```json\r\n{\r\n  \"mode\": \"byAdIds\",\r\n  \"adIds\": [\r\n    \"7694650748144042002\",\r\n    \"https://ads.tiktok.com/business/creativecenter/topads/7694538970823606279/pc/en\"\r\n  ]\r\n}\r\n```\r\n\r\n## Output\r\n\r\nEvery row keeps the original fields: `adId`, `adUrl`, `adTitle`, `brandName`, `cost`,\r\n`ctr`, `like`, `industryKey`, `objectiveKey`, `isSearch`, `observedCountry`,\r\n`observedPeriod`, `scrapedAt`, `videoCoverUrl`, `videoDuration`, `videoHeight`,\r\n`videoWidth`, `videoId`, and `videoUrls`.\r\n\r\nNew fields are additive:\r\n\r\n- `source`, `creativeCenterUrl`, `rank`, `foundInCountry`\r\n- `costTier`, `industryName`, `parentIndustryName`, `objectiveName`, `adFormat`\r\n- `landingPageUrl`, `targetCountries`, `commentCount`, `shareCount`, `adSource`,\r\n  `objectives`, `voiceOver`\r\n- `spotlightHighlight`, `retentionCurve`\r\n- `videoUrlBest`, `videoUrlsExpireAt`\r\n- `detailsFetched`, `detailUnavailable`, `availableTotal`\r\n\r\nEmpty fields are omitted. `0` and `false` are kept because they are real values.\r\n`brandName=\"Not Mention\"` and similar placeholders are omitted.\r\n\r\n### Notes on the metrics\r\n\r\n- `ctr` is TikTok's CTR score in percent units: `0.62` means `0.62%`.\r\n- `cost` is a budget tier, not money: 0 = Low, 1 = Medium, 2 = High.\r\n- `like` is an absolute count.\r\n- `commentCount` and `shareCount` are detail fields; 0 is common and real.\r\n- `videoUrls` are signed CDN URLs with a limited lifetime. `videoUrlsExpireAt` tells you\r\n  when the earliest one expires. Download what you want to keep.\r\n- `availableTotal` is TikTok's ranked-index size for the base query, not the number of\r\n  rows the actor delivered.\r\n\r\n## Use cases\r\n\r\n- **Creative research** - build a swipe file of winning hooks, formats, and CTAs by\r\n  market, industry, objective, and language.\r\n- **Competitor monitoring** - see which brands and landing pages are appearing in the\r\n  Top Ads boards for your vertical.\r\n- **Benchmarking** - compare your CTR and likes with the top percentile bands TikTok\r\n  publishes.\r\n- **Trend tracking** - run weekly with `period=7` and watch new ads enter the board.\r\n- **Creative briefs** - pull the retention curve to show where viewers drop off.\r\n\r\n## FAQ\r\n\r\n**Do I need a TikTok account or cookies?**\r\nNo. The actor signs an anonymous Creative Center session itself. It never asks for a\r\nTikTok login, cookie, or API key.\r\n\r\n**Why did I get fewer rows than `maxItems`?**\r\nTikTok exposes 20 ads per board and up to 500 per query. The actor reads extra boards\r\nwhen `sweep` is on, but some filter combinations have fewer unique ads. The run status\r\nmessage reports how many boards were read and why it stopped.\r\n\r\n**Can I search by keyword?**\r\nTikTok's keyword search on Top Ads is login-only; an anonymous request returns zero\r\nads. This actor does not ship a keyword field. Use industry, objective, language, or a\r\nspecific ad ID instead.\r\n\r\n**Why is `brandName` missing on some rows?**\r\nTikTok often does not publish a brand name. It is present on roughly a quarter of rows\r\nin our sample. The actor omits the field rather than guessing.\r\n\r\n**Why does `adUrl` open the Top Ads dashboard?**\r\nTikTok has no stable public per-ad deep link; its own ad detail links redirect to the\r\ndashboard. `adId` is the stable key. `creativeCenterUrl` uses TikTok's canonical ad\r\nroute for reference.\r\n\r\n**Are the video URLs permanent?**\r\nNo. They are signed CDN URLs that expire within hours. Download them promptly or use\r\n`videoUrlsExpireAt`.\r\n\r\n**Why do some industries return no ads?**\r\nThe 258-entry taxonomy includes niche child categories that TikTok may not have a board\r\nfor in a given market and period. Try the parent industry or a longer period.\r\n\r\n**Is this affiliated with TikTok?**\r\nNo. This is an independent actor that reads publicly available Creative Center data. It\r\nis not endorsed by or affiliated with TikTok or ByteDance.\r\n\r\n## Limitations\r\n\r\n- 20 ads per board, 500 per query.\r\n- Keyword search is login-only and is not supported.\r\n- Brand name and landing page are published for only some ads.\r\n- Exact spend, impressions, reach, dates, and audience targeting are not in the public\r\n  Creative Center payload.\r\n- Media URLs expire.\r\n- TikTok may change its internal signing scheme; the actor re-mints and can recover the\r\n  signer from the live page bundle, but a future change can still require an update.\r\n\r\n## Data source\r\n\r\nTikTok Creative Center Top Ads at\r\n`https://ads.tiktok.com/business/creativecenter/inspiration/topads/pc/en` and Top Ads\r\nSpotlight at\r\n`https://ads.tiktok.com/business/creativecenter/tiktok-topads-spotlight/pc/en`.\r\nThe actor calls the same public JSON endpoints the pages use and reads only publicly\r\navailable data.\r\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "tiktok-top-ads-leaderboard-by-country",
      "title": "TikTok Top Ads Leaderboard - 122 Markets & Metrics",
      "description": "Collect TikTok Creative Center Top Ads across 122 markets with 258 industries, 7 rankings, landing pages, retention curves, and Spotlight. No login or cookies; sweeps past TikTok's 20-ad board up to 500 unique ads.",
      "version": "1.0",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# TikTok Top Ads Leaderboard - 122 Markets & Metrics\r\n\r\nSee what is actually winning on TikTok. This actor reads TikTok's public Creative\r\nCenter Top Ads boards and returns one structured row per ad: the creative, brand,\r\nCTR, likes, budget tier, industry, campaign objective, downloadable video renditions,\r\nand the landing page when TikTok publishes it. It also reads TikTok's handpicked Top\r\nAds Spotlight and can refresh a list of known ad IDs.\r\n\r\nNo TikTok account, cookies, API key, or browser is required. The actor signs its own\r\nanonymous Creative Center session with plain HTTP.\r\n\r\n## What this actor does\r\n\r\n- Reads the Top Ads leaderboard for any of **122 markets**, 7 / 30 / 180-day windows,\r\n  258 industries, 8 campaign objectives, 17 ad languages, Spark/Non-Spark formats,\r\n  and 5 like-percentile tiers.\r\n- Ranks by TikTok's For You mix, Reach, CTR, 2-second view rate, 6-second view rate,\r\n  conversion rate, or Likes. CTR and Likes are returned highest-first.\r\n- Goes beyond TikTok's 20-ad board by reading more filter combinations and deduplicating\r\n  by ad ID. It stops at your `maxItems` or when the source has no more unique ads.\r\n- Optionally adds the ad detail record: landing page, target countries, comments,\r\n  shares, ad source, and the full objective list.\r\n- Optionally adds the per-second retention curve from TikTok's keyframe data.\r\n- Reads the Top Ads Spotlight: five handpicked ads with TikTok's expert commentary.\r\n- Refreshes specific ad IDs or Creative Center URLs without re-running a whole board.\r\n- Preserves the original output fields and adds new fields beside them.\r\n\r\n## How many ads can I get?\r\n\r\nTikTok shows an anonymous visitor **20 ads per filter board** (one market + period +\r\nindustry + objective + ranking + format + like tier). The second page is empty. The\r\nranked index behind a query can hold up to **500** ads, but only 20 are visible per\r\nboard.\r\n\r\nThis actor reads board after board - other rankings, objectives, industries, formats,\r\nlike tiers, languages, and markets - and deduplicates by ad ID. `maxItems` is a cap on\r\nunique ads, not a promise that one board contains that many. If the source runs out,\r\nthe run succeeds with an honest status message instead of pretending it filled the\r\nrequest.\r\n\r\n## Modes\r\n\r\n| Mode | What it reads |\r\n|---|---|\r\n| **Top Ads leaderboard** (default) | The main Top Ads boards, with all filters and the sweep. |\r\n| **Top Ads Spotlight** | TikTok's handpicked Spotlight list, five ads with expert commentary. `industry` is the only board filter used; `includeDetails` adds title, brand, landing page, and target countries. |\r\n| **Specific ad IDs** | A detail lookup for each ID or Creative Center URL you provide. |\r\n\r\n## Inputs\r\n\r\n| Field | Default | What it controls |\r\n|---|---|---|\r\n| `mode` | `leaderboard` | Leaderboard, Spotlight, or Specific ad IDs. |\r\n| `country` | `US` | 122 markets, or **All countries** to read multiple market boards and merge the results. |\r\n| `period` | `30` | Last 7, 30, or 180 days. |\r\n| `industry` | All industries | TikTok's 258-entry industry taxonomy; child categories are shown under their parent. |\r\n| `objective` | All objectives | Traffic, App Installs, Conversions, Video Views, Reach, Lead Generation, Product Sales, or App Promotion. |\r\n| `language` | All languages | The language of the ad copy (17 options). |\r\n| `adFormat` | All formats | All formats, Spark ads, or Non-Spark ads. |\r\n| `likeTier` | All like tiers | All like tiers, Top 1-20%, Top 21-40%, Top 41-60%, Top 61-80%, or Top 81-100%. |\r\n| `orderBy` | `for_you` | For You, Reach, CTR, 2-second view rate, 6-second view rate, conversion rate, or Likes. |\r\n| `maxItems` | `30` | Maximum unique ads to deliver, 0-500. |\r\n| `sweep` | `true` | Read more filter combinations to get past the 20-ad board. Turn off to get exactly one board. |\r\n| `includeDetails` | `true` | Add landing page, target countries, comments, shares, source, and objectives. |\r\n| `includeKeyframes` | `false` | Add the per-second retention curve. |\r\n| `adIds` | Any | Ad IDs or Creative Center URLs for Specific ad IDs mode. |\r\n\r\n### Examples\r\n\r\nTop US ads from the last 30 days:\r\n\r\n```json\r\n{\r\n  \"mode\": \"leaderboard\",\r\n  \"country\": \"US\",\r\n  \"period\": \"30\",\r\n  \"maxItems\": 50,\r\n  \"sweep\": true\r\n}\r\n```\r\n\r\nSpark conversion ads in Germany over 180 days, with landing pages:\r\n\r\n```json\r\n{\r\n  \"mode\": \"leaderboard\",\r\n  \"country\": \"DE\",\r\n  \"period\": \"180\",\r\n  \"objective\": \"campaign_objective_conversion\",\r\n  \"adFormat\": \"1\",\r\n  \"maxItems\": 100,\r\n  \"includeDetails\": true\r\n}\r\n```\r\n\r\nAll countries, Beauty & Personal Care, highest CTR, top 20:\r\n\r\n```json\r\n{\r\n  \"mode\": \"leaderboard\",\r\n  \"country\": \"\",\r\n  \"period\": \"30\",\r\n  \"industry\": \"label_14000000000\",\r\n  \"orderBy\": \"ctr\",\r\n  \"maxItems\": 20\r\n}\r\n```\r\n\r\nTop Ads Spotlight:\r\n\r\n```json\r\n{\r\n  \"mode\": \"spotlight\",\r\n  \"industry\": \"label_15000000000\",\r\n  \"maxItems\": 5\r\n}\r\n```\r\n\r\nRefresh two known ads:\r\n\r\n```json\r\n{\r\n  \"mode\": \"byAdIds\",\r\n  \"adIds\": [\r\n    \"7694650748144042002\",\r\n    \"https://ads.tiktok.com/business/creativecenter/topads/7694538970823606279/pc/en\"\r\n  ]\r\n}\r\n```\r\n\r\n## Output\r\n\r\nEvery row keeps the original fields: `adId`, `adUrl`, `adTitle`, `brandName`, `cost`,\r\n`ctr`, `like`, `industryKey`, `objectiveKey`, `isSearch`, `observedCountry`,\r\n`observedPeriod`, `scrapedAt`, `videoCoverUrl`, `videoDuration`, `videoHeight`,\r\n`videoWidth`, `videoId`, and `videoUrls`.\r\n\r\nNew fields are additive:\r\n\r\n- `source`, `creativeCenterUrl`, `rank`, `foundInCountry`\r\n- `costTier`, `industryName`, `parentIndustryName`, `objectiveName`, `adFormat`\r\n- `landingPageUrl`, `targetCountries`, `commentCount`, `shareCount`, `adSource`,\r\n  `objectives`, `voiceOver`\r\n- `spotlightHighlight`, `retentionCurve`\r\n- `videoUrlBest`, `videoUrlsExpireAt`\r\n- `detailsFetched`, `detailUnavailable`, `availableTotal`\r\n\r\nEmpty fields are omitted. `0` and `false` are kept because they are real values.\r\n`brandName=\"Not Mention\"` and similar placeholders are omitted.\r\n\r\n### Notes on the metrics\r\n\r\n- `ctr` is TikTok's CTR score in percent units: `0.62` means `0.62%`.\r\n- `cost` is a budget tier, not money: 0 = Low, 1 = Medium, 2 = High.\r\n- `like` is an absolute count.\r\n- `commentCount` and `shareCount` are detail fields; 0 is common and real.\r\n- `videoUrls` are signed CDN URLs with a limited lifetime. `videoUrlsExpireAt` tells you\r\n  when the earliest one expires. Download what you want to keep.\r\n- `availableTotal` is TikTok's ranked-index size for the base query, not the number of\r\n  rows the actor delivered.\r\n\r\n## Use cases\r\n\r\n- **Creative research** - build a swipe file of winning hooks, formats, and CTAs by\r\n  market, industry, objective, and language.\r\n- **Competitor monitoring** - see which brands and landing pages are appearing in the\r\n  Top Ads boards for your vertical.\r\n- **Benchmarking** - compare your CTR and likes with the top percentile bands TikTok\r\n  publishes.\r\n- **Trend tracking** - run weekly with `period=7` and watch new ads enter the board.\r\n- **Creative briefs** - pull the retention curve to show where viewers drop off.\r\n\r\n## FAQ\r\n\r\n**Do I need a TikTok account or cookies?**\r\nNo. The actor signs an anonymous Creative Center session itself. It never asks for a\r\nTikTok login, cookie, or API key.\r\n\r\n**Why did I get fewer rows than `maxItems`?**\r\nTikTok exposes 20 ads per board and up to 500 per query. The actor reads extra boards\r\nwhen `sweep` is on, but some filter combinations have fewer unique ads. The run status\r\nmessage reports how many boards were read and why it stopped.\r\n\r\n**Can I search by keyword?**\r\nTikTok's keyword search on Top Ads is login-only; an anonymous request returns zero\r\nads. This actor does not ship a keyword field. Use industry, objective, language, or a\r\nspecific ad ID instead.\r\n\r\n**Why is `brandName` missing on some rows?**\r\nTikTok often does not publish a brand name. It is present on roughly a quarter of rows\r\nin our sample. The actor omits the field rather than guessing.\r\n\r\n**Why does `adUrl` open the Top Ads dashboard?**\r\nTikTok has no stable public per-ad deep link; its own ad detail links redirect to the\r\ndashboard. `adId` is the stable key. `creativeCenterUrl` uses TikTok's canonical ad\r\nroute for reference.\r\n\r\n**Are the video URLs permanent?**\r\nNo. They are signed CDN URLs that expire within hours. Download them promptly or use\r\n`videoUrlsExpireAt`.\r\n\r\n**Why do some industries return no ads?**\r\nThe 258-entry taxonomy includes niche child categories that TikTok may not have a board\r\nfor in a given market and period. Try the parent industry or a longer period.\r\n\r\n**Is this affiliated with TikTok?**\r\nNo. This is an independent actor that reads publicly available Creative Center data. It\r\nis not endorsed by or affiliated with TikTok or ByteDance.\r\n\r\n## Limitations\r\n\r\n- 20 ads per board, 500 per query.\r\n- Keyword search is login-only and is not supported.\r\n- Brand name and landing page are published for only some ads.\r\n- Exact spend, impressions, reach, dates, and audience targeting are not in the public\r\n  Creative Center payload.\r\n- Media URLs expire.\r\n- TikTok may change its internal signing scheme; the actor re-mints and can recover the\r\n  signer from the live page bundle, but a future change can still require an update.\r\n\r\n## Data source\r\n\r\nTikTok Creative Center Top Ads at\r\n`https://ads.tiktok.com/business/creativecenter/inspiration/topads/pc/en` and Top Ads\r\nSpotlight at\r\n`https://ads.tiktok.com/business/creativecenter/tiktok-topads-spotlight/pc/en`.\r\nThe actor calls the same public JSON endpoints the pages use and reads only publicly\r\navailable data.\r\n",
      "input": {
        "title": "TikTok Top Ads Scraper Input",
        "description": "Collect TikTok Creative Center Top Ads by market, period, industry, objective, language, ad format, like percentile, and ranking. No login or cookies required.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "editor": "select",
            "description": "Choose the Top Ads leaderboard, TikTok's handpicked Spotlight, or refresh specific ad IDs.",
            "enum": [
              "leaderboard",
              "spotlight",
              "byAdIds"
            ],
            "enumTitles": [
              "Top Ads leaderboard",
              "Top Ads Spotlight",
              "Specific ad IDs"
            ],
            "default": "leaderboard",
            "prefill": "leaderboard"
          },
          "country": {
            "title": "Country",
            "type": "string",
            "editor": "select",
            "description": "122 supported markets. All countries reads multiple market boards and merges the results; it uses more requests.",
            "enum": [
              "",
              "AL",
              "DZ",
              "AO",
              "AR",
              "AM",
              "AU",
              "AT",
              "AZ",
              "BH",
              "BD",
              "BY",
              "BE",
              "BO",
              "BA",
              "BW",
              "BR",
              "BN",
              "BG",
              "KH",
              "CM",
              "CA",
              "CL",
              "CO",
              "CR",
              "CI",
              "HR",
              "CY",
              "CZ",
              "DK",
              "DO",
              "EC",
              "EG",
              "SV",
              "EE",
              "ET",
              "FI",
              "FR",
              "GE",
              "DE",
              "GH",
              "GR",
              "GT",
              "JO",
              "HN",
              "HK",
              "HU",
              "IN",
              "ID",
              "IQ",
              "IE",
              "IL",
              "IT",
              "JM",
              "JP",
              "KZ",
              "KE",
              "KW",
              "KG",
              "LA",
              "LV",
              "LB",
              "LY",
              "MY",
              "MV",
              "MU",
              "MX",
              "MD",
              "MN",
              "ME",
              "MA",
              "MZ",
              "MM",
              "NA",
              "NL",
              "NZ",
              "NI",
              "NG",
              "MK",
              "NO",
              "OM",
              "PK",
              "PS",
              "PA",
              "PY",
              "PE",
              "PH",
              "PL",
              "PT",
              "PR",
              "QA",
              "LT",
              "RO",
              "SA",
              "SN",
              "RS",
              "SG",
              "SK",
              "SI",
              "ZA",
              "KR",
              "ES",
              "LK",
              "SD",
              "SE",
              "CH",
              "TW",
              "TJ",
              "TZ",
              "TH",
              "TT",
              "TN",
              "TR",
              "UG",
              "AE",
              "GB",
              "US",
              "UY",
              "VE",
              "VN",
              "YE",
              "ZM",
              "ZW"
            ],
            "enumTitles": [
              "All countries (sweep 122 markets)",
              "Albania",
              "Algeria",
              "Angola",
              "Argentina",
              "Armenia",
              "Australia",
              "Austria",
              "Azerbaijan",
              "Bahrain",
              "Bangladesh",
              "Belarus",
              "Belgium",
              "Bolivia",
              "Bosnia and Herzegovina",
              "Botswana",
              "Brazil",
              "Brunei",
              "Bulgaria",
              "Cambodia",
              "Cameroon",
              "Canada",
              "Chile",
              "Colombia",
              "Costa Rica",
              "Cote d'Ivoire",
              "Croatia",
              "Cyprus",
              "Czechia",
              "Denmark",
              "Dominican Republic",
              "Ecuador",
              "Egypt",
              "El Salvador",
              "Estonia",
              "Ethiopia",
              "Finland",
              "France",
              "Georgia",
              "Germany",
              "Ghana",
              "Greece",
              "Guatemala",
              "Hashemite Kingdom of Jordan",
              "Honduras",
              "Hong Kong",
              "Hungary",
              "India",
              "Indonesia",
              "Iraq",
              "Ireland",
              "Israel",
              "Italy",
              "Jamaica",
              "Japan",
              "Kazakhstan",
              "Kenya",
              "Kuwait",
              "Kyrgyzstan",
              "Laos",
              "Latvia",
              "Lebanon",
              "Libya",
              "Malaysia",
              "Maldives",
              "Mauritius",
              "Mexico",
              "Moldova",
              "Mongolia",
              "Montenegro",
              "Morocco",
              "Mozambique",
              "Myanmar",
              "Namibia",
              "Netherlands",
              "New Zealand",
              "Nicaragua",
              "Nigeria",
              "North Macedonia",
              "Norway",
              "Oman",
              "Pakistan",
              "Palestine",
              "Panama",
              "Paraguay",
              "Peru",
              "Philippines",
              "Poland",
              "Portugal",
              "Puerto Rico",
              "Qatar",
              "Republic of Lithuania",
              "Romania",
              "Saudi Arabia",
              "Senegal",
              "Serbia",
              "Singapore",
              "Slovakia",
              "Slovenia",
              "South Africa",
              "South Korea",
              "Spain",
              "Sri Lanka",
              "Sudan",
              "Sweden",
              "Switzerland",
              "Taiwan",
              "Tajikistan",
              "Tanzania",
              "Thailand",
              "Trinidad and Tobago",
              "Tunisia",
              "Turkey",
              "Uganda",
              "United Arab Emirates",
              "United Kingdom",
              "United States",
              "Uruguay",
              "Venezuela",
              "Vietnam",
              "Yemen",
              "Zambia",
              "Zimbabwe"
            ],
            "default": "US",
            "prefill": "US"
          },
          "period": {
            "title": "Time period",
            "type": "string",
            "editor": "select",
            "description": "The trailing window TikTok ranks over.",
            "enum": [
              "7",
              "30",
              "180"
            ],
            "enumTitles": [
              "Last 7 days",
              "Last 30 days",
              "Last 180 days"
            ],
            "default": "30",
            "prefill": "30"
          },
          "industry": {
            "title": "Industry",
            "type": "string",
            "editor": "select",
            "description": "TikTok's industry taxonomy. Child categories are shown under their parent.",
            "enum": [
              "",
              "label_22000000000",
              "label_22102000000",
              "label_22101000000",
              "label_22107000000",
              "label_22108000000",
              "label_22109000000",
              "label_22106000000",
              "label_22999000000",
              "label_22112000000",
              "label_22105000000",
              "label_22113000000",
              "label_22110000000",
              "label_22111000000",
              "label_16000000000",
              "label_16105000000",
              "label_16104000000",
              "label_16101000000",
              "label_16102000000",
              "label_16999000000",
              "label_16100000000",
              "label_20000000000",
              "label_20101000000",
              "label_20110000000",
              "label_20104000000",
              "label_20106000000",
              "label_20109000000",
              "label_20107000000",
              "label_20102000000",
              "label_20105000000",
              "label_20999000000",
              "label_20111000000",
              "label_20103000000",
              "label_20100000000",
              "label_20108000000",
              "label_20112000000",
              "label_12000000000",
              "label_12104000000",
              "label_12108000000",
              "label_12100000000",
              "label_12102000000",
              "label_12110000000",
              "label_12105000000",
              "label_12107000000",
              "label_12109000000",
              "label_12103000000",
              "label_12999000000",
              "label_12101000000",
              "label_12106000000",
              "label_14000000000",
              "label_14105000000",
              "label_14104000000",
              "label_14107000000",
              "label_14106000000",
              "label_14101000000",
              "label_14100000000",
              "label_14999000000",
              "label_14103000000",
              "label_14102000000",
              "label_24000000000",
              "label_24108000000",
              "label_24118000000",
              "label_24105000000",
              "label_24103000000",
              "label_24104000000",
              "label_24109000000",
              "label_24114000000",
              "label_24107000000",
              "label_24120000000",
              "label_24119000000",
              "label_24116000000",
              "label_24117000000",
              "label_24111000000",
              "label_24106000000",
              "label_24112000000",
              "label_24101000000",
              "label_24999000000",
              "label_24113000000",
              "label_24100000000",
              "label_24102000000",
              "label_24110000000",
              "label_24115000000",
              "label_30000000000",
              "label_30100000000",
              "label_30102000000",
              "label_30101000000",
              "label_10000000000",
              "label_10100000000",
              "label_10102000000",
              "label_10105000000",
              "label_10106000000",
              "label_10999000000",
              "label_10103000000",
              "label_10101000000",
              "label_10104000000",
              "label_13000000000",
              "label_13100000000",
              "label_13108000000",
              "label_13117000000",
              "label_13115000000",
              "label_13116000000",
              "label_13112000000",
              "label_13107000000",
              "label_13104000000",
              "label_13102000000",
              "label_13110000000",
              "label_13111000000",
              "label_13109000000",
              "label_13999000000",
              "label_13105000000",
              "label_13113000000",
              "label_13101000000",
              "label_13114000000",
              "label_13103000000",
              "label_27000000000",
              "label_27103000000",
              "label_27104000000",
              "label_27100000000",
              "label_27101000000",
              "label_27102000000",
              "label_27999000000",
              "label_25000000000",
              "label_25301000000",
              "label_25302000000",
              "label_25300000000",
              "label_25313000000",
              "label_25303000000",
              "label_25999000000",
              "label_25311000000",
              "label_25304000000",
              "label_25305000000",
              "label_25306000000",
              "label_25307000000",
              "label_25308000000",
              "label_25309000000",
              "label_25310000000",
              "label_25312000000",
              "label_29000000000",
              "label_29102000000",
              "label_29101000000",
              "label_29100000000",
              "label_29103000000",
              "label_29999000000",
              "label_21000000000",
              "label_21102000000",
              "label_21101000000",
              "label_21103000000",
              "label_21104000000",
              "label_21100000000",
              "label_21999000000",
              "label_21105000000",
              "label_18000000000",
              "label_18106000000",
              "label_18110000000",
              "label_18104000000",
              "label_18101000000",
              "label_18102000000",
              "label_18105000000",
              "label_18108000000",
              "label_18109000000",
              "label_18999000000",
              "label_18112000000",
              "label_18100000000",
              "label_18103000000",
              "label_18107000000",
              "label_18111000000",
              "label_26000000000",
              "label_26114000000",
              "label_26112000000",
              "label_26102000000",
              "label_26113000000",
              "label_26108000000",
              "label_26104000000",
              "label_26105000000",
              "label_26111000000",
              "label_26999000000",
              "label_26101000000",
              "label_26106000000",
              "label_26107000000",
              "label_26109000000",
              "label_26103000000",
              "label_26100000000",
              "label_23000000000",
              "label_23113000000",
              "label_23114000000",
              "label_23122000000",
              "label_23102000000",
              "label_23126000000",
              "label_23108000000",
              "label_23105000000",
              "label_23111000000",
              "label_23116000000",
              "label_23104000000",
              "label_23128000000",
              "label_23107000000",
              "label_23124000000",
              "label_23125000000",
              "label_23127000000",
              "label_23115000000",
              "label_23106000000",
              "label_23109000000",
              "label_23110000000",
              "label_23100000000",
              "label_23119000000",
              "label_23999000000",
              "label_23129000000",
              "label_23101000000",
              "label_23118000000",
              "label_23130000000",
              "label_23131000000",
              "label_23103000000",
              "label_23134000000",
              "label_23123000000",
              "label_23132000000",
              "label_23133000000",
              "label_23112000000",
              "label_23117000000",
              "label_19000000000",
              "label_19999000000",
              "label_19103000000",
              "label_19101000000",
              "label_19102000000",
              "label_19105000000",
              "label_19106000000",
              "label_19104000000",
              "label_19100000000",
              "label_28000000000",
              "label_28100000000",
              "label_28101000000",
              "label_15000000000",
              "label_15100000000",
              "label_15105000000",
              "label_15103000000",
              "label_15101000000",
              "label_15102000000",
              "label_15104000000",
              "label_15106000000",
              "label_15107000000",
              "label_15999000000",
              "label_17000000000",
              "label_17103000000",
              "label_17999000000",
              "label_17105000000",
              "label_17106000000",
              "label_11000000000",
              "label_11111000000",
              "label_11110000000",
              "label_11101000000",
              "label_11103000000",
              "label_11102000000",
              "label_11100000000",
              "label_11107000000",
              "label_11112000000",
              "label_11104000000",
              "label_11108000000",
              "label_11106000000",
              "label_11999000000",
              "label_11105000000",
              "label_11109000000"
            ],
            "enumTitles": [
              "All industries",
              "Apparel & Accessories",
              "Apparel & Accessories > Bags",
              "Apparel & Accessories > Clothing Accessories",
              "Apparel & Accessories > High-end Jewelry",
              "Apparel & Accessories > Men's Clothing",
              "Apparel & Accessories > Men's Shoes",
              "Apparel & Accessories > Ordinary Jewelry",
              "Apparel & Accessories > Other Apparel & Accessories",
              "Apparel & Accessories > Traditional & Ceremonial Clothing",
              "Apparel & Accessories > Watches",
              "Apparel & Accessories > Wearable Tech Devices",
              "Apparel & Accessories > Women's Clothing",
              "Apparel & Accessories > Women's Shoes",
              "Appliances",
              "Appliances > Digital Devices",
              "Appliances > Home Appliances",
              "Appliances > Kitchen & Bathroom Appliances",
              "Appliances > Large Appliances",
              "Appliances > Other Appliances",
              "Appliances > Personal Care Appliances",
              "Apps",
              "Apps > Audio & Video Players",
              "Apps > Business & Productivity",
              "Apps > Education",
              "Apps > Financial Services",
              "Apps > Health & Fitness",
              "Apps > Life & Leisure",
              "Apps > News & Reading",
              "Apps > Online Shopping",
              "Apps > Other Apps",
              "Apps > Parenting",
              "Apps > Photography",
              "Apps > Social",
              "Apps > Travel",
              "Apps > Utilities",
              "Baby, Kids & Maternity",
              "Baby, Kids & Maternity > Baby Bedding",
              "Baby, Kids & Maternity > Baby Feeding Supplies",
              "Baby, Kids & Maternity > Baby Food",
              "Baby, Kids & Maternity > Baby Formula",
              "Baby, Kids & Maternity > Baby Hygiene Products",
              "Baby, Kids & Maternity > Baby Shoes",
              "Baby, Kids & Maternity > Child Car Seats",
              "Baby, Kids & Maternity > Children's Apparel",
              "Baby, Kids & Maternity > Diapers & Baby Wipes",
              "Baby, Kids & Maternity > Other Baby, Kids & Maternity",
              "Baby, Kids & Maternity > Strollers & Cribs",
              "Baby, Kids & Maternity > Toys for Kids",
              "Beauty & Personal Care",
              "Beauty & Personal Care > Aesthetic Medicine",
              "Beauty & Personal Care > Cosmetics",
              "Beauty & Personal Care > Feminine Care",
              "Beauty & Personal Care > Fragrances & Perfumes",
              "Beauty & Personal Care > Haircare",
              "Beauty & Personal Care > Oral Care",
              "Beauty & Personal Care > Other Beauty & Personal Care",
              "Beauty & Personal Care > Skincare",
              "Beauty & Personal Care > Wig & Hair Styling",
              "Business Services",
              "Business Services > Agriculture, Forestry, Animal Husbandry & Fishing",
              "Business Services > Auction Services",
              "Business Services > Chemical Materials",
              "Business Services > Constructional Engineering",
              "Business Services > Electronics & Electrical",
              "Business Services > Energy Conservation & Environmental Protection",
              "Business Services > Exhibition Services",
              "Business Services > Franchising",
              "Business Services > Individual Entrepreneurship",
              "Business Services > Investment Planning & Management",
              "Business Services > IT Services",
              "Business Services > Legal Services",
              "Business Services > Logistics",
              "Business Services > Machinery & Equipment",
              "Business Services > Marketing & Advertising",
              "Business Services > Office Equipment & Supplies",
              "Business Services > Other Business Services",
              "Business Services > Professional Consultation",
              "Business Services > Real Estate & Home Rentals",
              "Business Services > Recruitment & Job Searching",
              "Business Services > Safety & Security",
              "Business Services > Service Outsourcing",
              "E-Commerce (Non-app)",
              "E-Commerce (Non-app) > Big Box Retailers",
              "E-Commerce (Non-app) > Large E-commerce Platforms",
              "E-Commerce (Non-app) > Small & Medium-sized E-commerce Platforms",
              "Education",
              "Education > Early Childhood & Preschool Education",
              "Education > Higher Education",
              "Education > Language Training",
              "Education > Non-academic Training (Hobbies)",
              "Education > Other Education",
              "Education > Overseas Education",
              "Education > Primary & Secondary Education & K-12",
              "Education > Vocational Training",
              "Financial Services",
              "Financial Services > Commercial Banks",
              "Financial Services > Credit Bureaus",
              "Financial Services > Credit Cards",
              "Financial Services > Crowd Funding",
              "Financial Services > Cryptocurrencies",
              "Financial Services > Foreign Exchange Transactions",
              "Financial Services > Funds",
              "Financial Services > Guarantees",
              "Financial Services > Insurance",
              "Financial Services > Investment Advisory",
              "Financial Services > Loan Services",
              "Financial Services > Microfinance Companies",
              "Financial Services > Other Financial Services",
              "Financial Services > Pawn Shops",
              "Financial Services > Precious Metals",
              "Financial Services > Securities",
              "Financial Services > Third-Party Payments",
              "Financial Services > Trusts",
              "Food & Beverage",
              "Food & Beverage > Alcoholic Beverages",
              "Food & Beverage > Cooking & Recipes",
              "Food & Beverage > Cuisine",
              "Food & Beverage > Food & Fresh Produce",
              "Food & Beverage > Non-alcoholic Beverages",
              "Food & Beverage > Other Food & Beverage",
              "Games",
              "Games > Action",
              "Games > Casino",
              "Games > Hyper-Casual",
              "Games > Kids",
              "Games > Match",
              "Games > Other",
              "Games > Party",
              "Games > Puzzle",
              "Games > Racing",
              "Games > RPG",
              "Games > Shooting",
              "Games > Simulation",
              "Games > Sports",
              "Games > Strategy",
              "Games > Tabletop",
              "Health",
              "Health > Dietary Supplements",
              "Health > Medical Information",
              "Health > Medical Services",
              "Health > Medicine",
              "Health > Other Health",
              "Home Improvement",
              "Home Improvement > Construction Materials & Lighting",
              "Home Improvement > Furniture",
              "Home Improvement > Hardware & Electrical",
              "Home Improvement > Home Decor",
              "Home Improvement > Interior Design & Decorating Services",
              "Home Improvement > Other Home Improvement",
              "Home Improvement > Power Strips & Socket",
              "Household Products",
              "Household Products > Cleaning Appliances",
              "Household Products > Cleaning Supplies",
              "Household Products > Coffee Accessories",
              "Household Products > Daily Essentials",
              "Household Products > Glasses & Drinkware",
              "Household Products > Kitchen Accessories",
              "Household Products > Laundry",
              "Household Products > Leather Care",
              "Household Products > Other Household Products",
              "Household Products > Pest Control",
              "Household Products > Storage Products",
              "Household Products > Tea Sets",
              "Household Products > Tissues & Wet Wipes",
              "Household Products > Toys",
              "Life Services",
              "Life Services > Beauty & Personal Care",
              "Life Services > Consumer Services",
              "Life Services > Dating & Matchmaking Services",
              "Life Services > Exercise & Fitness",
              "Life Services > Gardening",
              "Life Services > Gifts & Flowers",
              "Life Services > Housekeeping",
              "Life Services > Internet Services",
              "Life Services > Other Life Services",
              "Life Services > Photography",
              "Life Services > Shopping Services",
              "Life Services > Used Good Sales Platforms",
              "Life Services > Utilities Payments",
              "Life Services > Wedding Celebrations",
              "Life Services > Wedding Photography",
              "News & Entertainment",
              "News & Entertainment > Anime",
              "News & Entertainment > Astrology",
              "News & Entertainment > Beauty & Personal Care",
              "News & Entertainment > Business & Economy",
              "News & Entertainment > Car Information",
              "News & Entertainment > Celebrities & Gossip",
              "News & Entertainment > Charity & Public Welfare",
              "News & Entertainment > Collectables & Antiques",
              "News & Entertainment > Culture & Art",
              "News & Entertainment > Culture & History",
              "News & Entertainment > E-commerce Information",
              "News & Entertainment > Environmental Protection",
              "News & Entertainment > Food & Cooking",
              "News & Entertainment > Games & Utility Software",
              "News & Entertainment > General Information",
              "News & Entertainment > Humor",
              "News & Entertainment > Law",
              "News & Entertainment > Lifestyle News",
              "News & Entertainment > Live Events",
              "News & Entertainment > Military",
              "News & Entertainment > Movies",
              "News & Entertainment > Other News & Entertainment",
              "News & Entertainment > Pet Information",
              "News & Entertainment > Politics",
              "News & Entertainment > Reading",
              "News & Entertainment > Real Estate Information",
              "News & Entertainment > Relationship Information",
              "News & Entertainment > Science & Technology",
              "News & Entertainment > Social Media Account Promotion",
              "News & Entertainment > Sports & Fitness",
              "News & Entertainment > Streaming Site",
              "News & Entertainment > Tourist Information",
              "News & Entertainment > TV Drama & Series",
              "News & Entertainment > TV Variety Shows",
              "Pets",
              "Pets > Other Pets",
              "Pets > Pet Grooming",
              "Pets > Pet Healthcare",
              "Pets > Pet Household Products",
              "Pets > Pet Toys",
              "Pets > Pet Travel Accessories",
              "Pets > Pet Treats",
              "Pets > Petfood",
              "Sports & Outdoor",
              "Sports & Outdoor > Outdoor Equipment",
              "Sports & Outdoor > Sports & Equipment",
              "Tech & Electronics",
              "Tech & Electronics > Cell Phones",
              "Tech & Electronics > Computer Accessories",
              "Tech & Electronics > Computer Repair",
              "Tech & Electronics > Computers",
              "Tech & Electronics > Computers Components",
              "Tech & Electronics > Gaming Devices",
              "Tech & Electronics > Network Products",
              "Tech & Electronics > Office Equipment",
              "Tech & Electronics > Other Tech & Electronics",
              "Travel",
              "Travel > Hotels & Accommodation",
              "Travel > Other Travel",
              "Travel > Tours & Attractions",
              "Travel > Travel Agencies & Services",
              "Vehicle & Transportation",
              "Vehicle & Transportation > Accessories for 2/3-Wheeled Vehicles",
              "Vehicle & Transportation > Airplanes",
              "Vehicle & Transportation > Auto Accessories",
              "Vehicle & Transportation > Auto Parts",
              "Vehicle & Transportation > Auto Services",
              "Vehicle & Transportation > Automobiles",
              "Vehicle & Transportation > Bicycles",
              "Vehicle & Transportation > Car Dealerships",
              "Vehicle & Transportation > Car Rentals",
              "Vehicle & Transportation > Electric Scooters",
              "Vehicle & Transportation > Motorcycles",
              "Vehicle & Transportation > Other Vehicle & Transportation",
              "Vehicle & Transportation > Used Cars",
              "Vehicle & Transportation > Water Vehicles"
            ],
            "default": "",
            "prefill": "",
            "sectionCaption": "Filters",
            "sectionDescription": "Narrow the leaderboard. Leave a filter at All to sweep every value."
          },
          "objective": {
            "title": "Campaign objective",
            "type": "string",
            "editor": "select",
            "description": "Campaign objective as TikTok labels it.",
            "enum": [
              "",
              "campaign_objective_traffic",
              "campaign_objective_app_installs",
              "campaign_objective_conversion",
              "campaign_objective_video_views",
              "campaign_objective_reach",
              "campaign_objective_lead_generation",
              "campaign_objective_product_sales",
              "campaign_objective_app_promotion"
            ],
            "enumTitles": [
              "All objectives",
              "Traffic",
              "App Installs",
              "Conversions",
              "Video Views",
              "Reach",
              "Lead Generation",
              "Product Sales",
              "App Promotion"
            ],
            "default": "",
            "prefill": ""
          },
          "language": {
            "title": "Ad language",
            "type": "string",
            "editor": "select",
            "description": "Language of the ad copy.",
            "enum": [
              "",
              "en",
              "es",
              "ar",
              "vi",
              "th",
              "de",
              "id",
              "pt",
              "fr",
              "ms",
              "nl",
              "ja",
              "it",
              "ro",
              "zh-Hant",
              "ko",
              "uk"
            ],
            "enumTitles": [
              "All languages",
              "English",
              "Spanish",
              "Arabic",
              "Vietnamese",
              "Thai",
              "German",
              "Indonesian",
              "Portuguese",
              "French",
              "Malay",
              "Dutch",
              "Japanese",
              "Italian",
              "Romanian",
              "Chinese (Traditional)",
              "Korean",
              "Ukrainian"
            ],
            "default": "",
            "prefill": ""
          },
          "adFormat": {
            "title": "Ad format",
            "type": "string",
            "editor": "select",
            "description": "Spark ads are boosted organic posts; Non-Spark ads are regular in-feed ads.",
            "enum": [
              "",
              "1",
              "2"
            ],
            "enumTitles": [
              "All ad formats",
              "Spark ads",
              "Non-Spark ads"
            ],
            "default": "",
            "prefill": ""
          },
          "likeTier": {
            "title": "Like percentile",
            "type": "string",
            "editor": "select",
            "description": "TikTok's like-percentile band; Top 1-20% is the highest.",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5"
            ],
            "enumTitles": [
              "All like tiers",
              "Top 1-20%",
              "Top 21-40%",
              "Top 41-60%",
              "Top 61-80%",
              "Top 81-100%"
            ],
            "default": "",
            "prefill": ""
          },
          "orderBy": {
            "title": "Sort by",
            "type": "string",
            "editor": "select",
            "description": "TikTok's ranking. CTR and Likes are sorted highest-first locally.",
            "enum": [
              "for_you",
              "impression",
              "ctr",
              "play_2s_rate",
              "play_6s_rate",
              "cvr",
              "like"
            ],
            "enumTitles": [
              "TikTok For You ranking",
              "Reach (TikTok ranking)",
              "CTR (highest first)",
              "2-second view rate",
              "6-second view rate",
              "Conversion rate",
              "Likes (highest first)"
            ],
            "default": "for_you",
            "prefill": "for_you"
          },
          "maxItems": {
            "title": "Maximum ads",
            "type": "integer",
            "description": "Maximum unique ads to deliver (0-500). TikTok exposes 20 per board; enable Sweep to read more boards.",
            "default": 30,
            "minimum": 0,
            "maximum": 500,
            "prefill": 3,
            "sectionCaption": "Collection",
            "sectionDescription": "How many ads to collect and whether to read more boards."
          },
          "sweep": {
            "title": "Sweep to fill",
            "type": "boolean",
            "description": "Read more filter combinations to get past TikTok's 20-ad board. Turn off to get exactly one board.",
            "default": true,
            "prefill": false
          },
          "includeDetails": {
            "title": "Include ad details",
            "type": "boolean",
            "description": "Add landing page, target countries, comments, shares, and source (one extra request per ad).",
            "default": true,
            "prefill": false,
            "sectionCaption": "Ad details",
            "sectionDescription": "Optional enrichment requests."
          },
          "includeKeyframes": {
            "title": "Include retention curve",
            "type": "boolean",
            "description": "Add the per-second retention curve (one extra request per ad).",
            "default": false,
            "prefill": false
          },
          "adIds": {
            "title": "Specific ad IDs",
            "type": "array",
            "editor": "stringList",
            "description": "Ad IDs or Creative Center URLs to refresh. Used only in 'Specific ads' mode.",
            "items": {
              "type": "string"
            },
            "default": [],
            "prefill": [],
            "sectionCaption": "Specific ads",
            "sectionDescription": "Only used when Mode is Specific ad IDs."
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "TikTok Top Ads Leaderboard Output",
        "description": "Top-performing TikTok ads from the Creative Center. Each row includes the ad ID, title, brand, CTR, likes, cost tier, industry and objective names, video renditions, rank and market, and optional landing page, target countries, comments, shares, source, retention curve, and Spotlight commentary.",
        "properties": {
          "data": {
            "title": "Top Ads Data",
            "type": "string",
            "description": "Dataset containing one row per unique Top Ads creative. Existing fields adId, adUrl, adTitle, brandName, cost, ctr, like, industryKey, objectiveKey, isSearch, observedCountry, observedPeriod, scrapedAt, videoCoverUrl, videoDuration, videoHeight, videoWidth, videoId, and videoUrls are preserved; new fields are additive.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "categories": [
        "SOCIAL_MEDIA"
      ],
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "title": "TikTok Top Ads",
          "fields": {
            "source": {
              "type": "string",
              "title": "Source",
              "description": "creativeCenterTopAds, creativeCenterSpotlight, or creativeCenterAdDetail"
            },
            "adId": {
              "type": "string",
              "title": "Ad ID",
              "description": "Unique TikTok material ID"
            },
            "adUrl": {
              "type": "string",
              "title": "Ad URL",
              "description": "Creative Center reference URL with the ad_id query parameter (TikTok redirects ad deep links to the dashboard)"
            },
            "creativeCenterUrl": {
              "type": "string",
              "title": "Creative Center URL",
              "description": "Canonical Creative Center ad URL in the form /topads/<id>/pc/en"
            },
            "adTitle": {
              "type": "string",
              "title": "Ad Title",
              "description": "Ad caption or headline"
            },
            "brandName": {
              "type": "string",
              "title": "Brand Name",
              "description": "Advertiser/brand name when TikTok publishes it; sentinel values are omitted"
            },
            "cost": {
              "type": "integer",
              "title": "Cost Tier Code",
              "description": "TikTok budget tier: 0 low, 1 medium, 2 high"
            },
            "costTier": {
              "type": "string",
              "title": "Cost Tier",
              "description": "Low, Medium, or High"
            },
            "ctr": {
              "type": "number",
              "title": "CTR",
              "description": "TikTok CTR score in percent units (0.62 means 0.62%)"
            },
            "like": {
              "type": "integer",
              "title": "Likes",
              "description": "Like count on the ad"
            },
            "industryKey": {
              "type": "string",
              "title": "Industry Key",
              "description": "Raw TikTok industry label, e.g. label_14104000000"
            },
            "industryName": {
              "type": "string",
              "title": "Industry",
              "description": "Human-readable industry name"
            },
            "parentIndustryName": {
              "type": "string",
              "title": "Parent Industry",
              "description": "Parent industry name when the ad has a child category"
            },
            "objectiveKey": {
              "type": "string",
              "title": "Objective Key",
              "description": "Raw TikTok campaign objective key"
            },
            "objectiveName": {
              "type": "string",
              "title": "Objective",
              "description": "Human-readable campaign objective"
            },
            "adFormat": {
              "type": "string",
              "title": "Ad Format",
              "description": "Spark ads or Non-Spark ads; omitted when the board did not reveal it"
            },
            "isSearch": {
              "type": "boolean",
              "title": "Is Search Ad",
              "description": "TikTok's raw is_search flag"
            },
            "rank": {
              "type": "integer",
              "title": "Rank",
              "description": "Position on the board that surfaced the ad (1-based)"
            },
            "foundInCountry": {
              "type": "string",
              "title": "Found In Country",
              "description": "Market whose board surfaced the ad"
            },
            "landingPageUrl": {
              "type": "string",
              "title": "Landing Page",
              "description": "Destination URL when the ad detail exposes it"
            },
            "targetCountries": {
              "type": "array",
              "title": "Target Countries",
              "description": "Countries from the ad detail's country_code list"
            },
            "commentCount": {
              "type": "integer",
              "title": "Comments",
              "description": "Comment count from the ad detail; 0 is a real value"
            },
            "shareCount": {
              "type": "integer",
              "title": "Shares",
              "description": "Share count from the ad detail; 0 is a real value"
            },
            "adSource": {
              "type": "string",
              "title": "Ad Source",
              "description": "TikTok Ads Manager or Others, from the ad detail"
            },
            "objectives": {
              "type": "array",
              "title": "Objectives",
              "description": "Objective objects with key, name, and numeric id"
            },
            "voiceOver": {
              "type": "boolean",
              "title": "Voice Over",
              "description": "Whether the ad detail reports a voice-over"
            },
            "spotlightHighlight": {
              "type": "string",
              "title": "Spotlight Commentary",
              "description": "TikTok expert commentary for Spotlight ads"
            },
            "retentionCurve": {
              "type": "array",
              "title": "Retention Curve",
              "description": "Per-second retention points {second, value} when keyframes are enabled"
            },
            "videoId": {
              "type": "string",
              "title": "Video ID",
              "description": "TikTok video ID for the ad creative"
            },
            "videoCoverUrl": {
              "type": "string",
              "title": "Video Cover URL",
              "description": "Cover/thumbnail URL"
            },
            "videoUrlBest": {
              "type": "string",
              "title": "Best Video URL",
              "description": "Best available rendition (1080p, 720p, 540p, 480p, 360p)"
            },
            "videoUrls": {
              "type": "object",
              "title": "Video URLs",
              "description": "Resolution-keyed video URLs"
            },
            "videoDuration": {
              "type": "number",
              "title": "Video Duration",
              "description": "Duration in seconds"
            },
            "videoWidth": {
              "type": "integer",
              "title": "Video Width",
              "description": "Width in pixels"
            },
            "videoHeight": {
              "type": "integer",
              "title": "Video Height",
              "description": "Height in pixels"
            },
            "videoUrlsExpireAt": {
              "type": "string",
              "title": "Media Expiry",
              "description": "Earliest expiry of the signed media URLs (ISO 8601)"
            },
            "detailsFetched": {
              "type": "boolean",
              "title": "Details Fetched",
              "description": "Present when detail enrichment was requested"
            },
            "detailUnavailable": {
              "type": "boolean",
              "title": "Detail Unavailable",
              "description": "True when a requested ad ID has no detail record"
            },
            "availableTotal": {
              "type": "integer",
              "title": "Available Total",
              "description": "TikTok's ranked-index size for the base query"
            },
            "observedCountry": {
              "type": "string",
              "title": "Observed Country",
              "description": "Country filter applied, or all"
            },
            "observedPeriod": {
              "type": "integer",
              "title": "Observed Period",
              "description": "Time period in days (7, 30, or 180)"
            },
            "scrapedAt": {
              "type": "string",
              "title": "Scraped At",
              "description": "ISO 8601 collection timestamp"
            }
          },
          "views": {
            "overview": {
              "title": "TikTok Top Ads",
              "transformation": {
                "fields": [
                  "adId",
                  "adTitle",
                  "brandName",
                  "ctr",
                  "like",
                  "industryName",
                  "objectiveName",
                  "foundInCountry",
                  "observedPeriod",
                  "landingPageUrl",
                  "creativeCenterUrl",
                  "scrapedAt"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "adId": {
                    "label": "Ad ID",
                    "format": "text"
                  },
                  "adTitle": {
                    "label": "Ad Title",
                    "format": "text"
                  },
                  "brandName": {
                    "label": "Brand",
                    "format": "text"
                  },
                  "ctr": {
                    "label": "CTR",
                    "format": "number"
                  },
                  "like": {
                    "label": "Likes",
                    "format": "number"
                  },
                  "industryName": {
                    "label": "Industry",
                    "format": "text"
                  },
                  "objectiveName": {
                    "label": "Objective",
                    "format": "text"
                  },
                  "foundInCountry": {
                    "label": "Market",
                    "format": "text"
                  },
                  "observedPeriod": {
                    "label": "Period (days)",
                    "format": "number"
                  },
                  "landingPageUrl": {
                    "label": "Landing Page",
                    "format": "link"
                  },
                  "creativeCenterUrl": {
                    "label": "Creative Center",
                    "format": "link"
                  },
                  "scrapedAt": {
                    "label": "Scraped At",
                    "format": "text"
                  }
                }
              }
            }
          }
        }
      },
      "defaultRunOptions": {
        "build": "latest",
        "timeoutSecs": 3600,
        "memoryMbytes": 1024
      }
    },
    "buildNumber": "1.0.2",
    "imageDigest": "79b06fe86722851e918cbb3d7486f7a9bf1d29819029d038c3012dfbc69a5e35",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.008423333333333333
    }
  }
}