From 6e8238e5cfdae71563bd3d7b4b13a35cb46c6961 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=BA=90?= Date: Thu, 15 Oct 2026 17:24:31 +0800 Subject: [PATCH] feat: add TaurusX API performance data --- .gitignore | 2 + data.json | 3930 +++++++++++++++++++++++++++++++++++++++++++++- fetch_taurusx.py | 169 ++ index.html | 160 ++ 4 files changed, 4260 insertions(+), 1 deletion(-) create mode 100644 fetch_taurusx.py diff --git a/.gitignore b/.gitignore index b908d4c..f3d1d95 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ __pycache__/ *.pyc .DS_Store +.env +.env.* diff --git a/data.json b/data.json index 96db294..515c1b6 100644 --- a/data.json +++ b/data.json @@ -20702,5 +20702,3933 @@ "missing_target": true } ] + }, + "taurusx_perf": { + "meta": { + "source": "https://scaler.taurusx.com/openapi/performance_data", + "timezone": "+8", + "start_date": "2026-10-08", + "end_date": "2026-10-14", + "fetched_at": "2026-10-15T17:17:22+08:00", + "rows": 167, + "campaigns": 27, + "pkg_country_count": 35, + "countries": 17, + "matched_order_rows": 162, + "unmatched_order_rows": 5, + "impressions": 2160558, + "clicks": 430751, + "conversions": 179, + "cost": 612.1272 + }, + "records": [ + { + "date": "2026-10-14", + "campaign_id": "1001092", + "campaign_name": "Entertainment_VKmusic_com.uma.musicvk_1", + "pkg": "com.uma.musicvk", + "country": "RU", + "impressions": 14195, + "clicks": 5322, + "conversions": 19, + "cost": 14.106, + "order_match": true, + "adpingids": [ + "2783561", + "11690183", + "12807775", + "13220287" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001089", + "campaign_name": "Shopping_AliExpress_ru.aliexpress.buyer", + "pkg": "ru.aliexpress.buyer", + "country": "RU", + "impressions": 29666, + "clicks": 8779, + "conversions": 23, + "cost": 8.6296, + "order_match": true, + "adpingids": [ + "4383473", + "6060965", + "6061077", + "6607117", + "8094753", + "12808718", + "13364983" + ], + "order_statuses": [ + "投放中", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001092", + "campaign_name": "Entertainment_VKmusic_com.uma.musicvk_1", + "pkg": "com.uma.musicvk", + "country": "RU", + "impressions": 1144449, + "clicks": 2615, + "conversions": 21, + "cost": 5.0, + "order_match": true, + "adpingids": [ + "2783561", + "11690183", + "12807775", + "13220287" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001078", + "campaign_name": "Education_Nagwa Classes_com.nagwa.classes", + "pkg": "com.nagwa.classes", + "country": "EG", + "impressions": 7923, + "clicks": 3231, + "conversions": 1, + "cost": 3.231, + "order_match": true, + "adpingids": [ + "2555210", + "5617321", + "12306671", + "12398053", + "12811904", + "13337347", + "13337642", + "13342862" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001099", + "campaign_name": "Game_Meowdoku_com.oakever.meowdoku_RU", + "pkg": "com.oakever.meowdoku", + "country": "RU", + "impressions": 5373, + "clicks": 2094, + "conversions": 2, + "cost": 2.094, + "order_match": true, + "adpingids": [ + "91567363", + "91574957" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001113", + "campaign_name": "Game_Печать Демоновa_com.esprit.rpg.lttlefirykng", + "pkg": "com.esprit.rpg.lttlefirykng", + "country": "RU", + "impressions": 6181, + "clicks": 1927, + "conversions": 0, + "cost": 1.927, + "order_match": true, + "adpingids": [ + "10514860", + "11655595", + "11655596", + "11763482", + "12501057", + "13219444" + ], + "order_statuses": [ + "投放中", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "ZA", + "impressions": 5548, + "clicks": 3596, + "conversions": 8, + "cost": 1.2497, + "order_match": true, + "adpingids": [ + "5985063", + "6425889", + "6439005", + "11729927", + "12814874" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001088", + "campaign_name": "Game_newspike_com.netease.newspike", + "pkg": "com.netease.newspike", + "country": "TH", + "impressions": 183, + "clicks": 90, + "conversions": 0, + "cost": 0.9, + "order_match": true, + "adpingids": [ + "91573130", + "91574965" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001115", + "campaign_name": "Finance_FxPro_com.fxpro.direct.application", + "pkg": "com.fxpro.direct.application", + "country": "PK", + "impressions": 5102, + "clicks": 2840, + "conversions": 0, + "cost": 0.852, + "order_match": true, + "adpingids": [ + "7202934", + "7249918", + "9411304", + "11080098", + "12810152" + ], + "order_statuses": [ + "投放中", + "暂停", + "其他/不可投" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001116", + "campaign_name": "Game_candycrushsaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "DE", + "impressions": 6253, + "clicks": 3558, + "conversions": 2, + "cost": 0.7116, + "order_match": true, + "adpingids": [ + "13372548" + ], + "order_statuses": [ + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "BR", + "impressions": 941, + "clicks": 466, + "conversions": 1, + "cost": 0.704, + "order_match": true, + "adpingids": [ + "3238476", + "5369277", + "5462318", + "5599110", + "6178279", + "8181791", + "8181833", + "8181939", + "8181984", + "8182037", + "8182041", + "8182122", + "8182123", + "10813123", + "10912510", + "11729830", + "11892329", + "11987622", + "12801942", + "13084710" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "SA", + "impressions": 575, + "clicks": 233, + "conversions": 0, + "cost": 0.699, + "order_match": true, + "adpingids": [ + "2732727", + "5619156", + "6513794", + "6815650", + "12814931" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001110", + "campaign_name": "Sports_CalienteSports_sports.caliente.mx.calientedeportes", + "pkg": "sports.caliente.mx.calientedeportes", + "country": "MX", + "impressions": 13400, + "clicks": 6809, + "conversions": 2, + "cost": 0.6809, + "order_match": true, + "adpingids": [ + "5365721", + "5365722", + "5550994", + "5557858", + "5670655", + "6926373", + "7202473", + "11924654", + "12814983" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001098", + "campaign_name": "Game_topgames_com.game.friends.ru", + "pkg": "com.game.friends.ru", + "country": "RU", + "impressions": 12506, + "clicks": 4747, + "conversions": 2, + "cost": 0.4747, + "order_match": true, + "adpingids": [ + "91414435", + "91564896", + "91574956" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "TR", + "impressions": 326, + "clicks": 151, + "conversions": 0, + "cost": 0.453, + "order_match": true, + "adpingids": [ + "5579512", + "5607488", + "5994000", + "6153612", + "6724852", + "6815579", + "7437698", + "13226265" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 452, + "clicks": 140, + "conversions": 0, + "cost": 0.42, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001101", + "campaign_name": "Game_Yuzbir_net.peakgames.Yuzbir", + "pkg": "net.peakgames.Yuzbir", + "country": "TR", + "impressions": 769, + "clicks": 415, + "conversions": 0, + "cost": 0.415, + "order_match": true, + "adpingids": [ + "91550293", + "91574961" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001116", + "campaign_name": "Game_candycrushsaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "TH", + "impressions": 3615, + "clicks": 1826, + "conversions": 2, + "cost": 0.3652, + "order_match": true, + "adpingids": [ + "5497580", + "5791009", + "8998645", + "11324493", + "13372499", + "91410825" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001103", + "campaign_name": "Finance_Bybit_id1488296980_RU", + "pkg": "id1488296980", + "country": "RU", + "impressions": 10738, + "clicks": 2616, + "conversions": 0, + "cost": 0.2616, + "order_match": true, + "adpingids": [ + "91573325", + "91577950" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001093", + "campaign_name": "Shopping_OZON_ru.ozon.app.android_KZ", + "pkg": "ru.ozon.app.android", + "country": "KZ", + "impressions": 1089, + "clicks": 326, + "conversions": 1, + "cost": 0.246, + "order_match": true, + "adpingids": [ + "5963354", + "6706444", + "6960591", + "9238270", + "9768560", + "11078981", + "12829886", + "13219498" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注", + "其他/不可投" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001102", + "campaign_name": "Finance_RobotZaimer_robot.zaimer.ru", + "pkg": "robot.zaimer.ru", + "country": "RU", + "impressions": 5576, + "clicks": 1676, + "conversions": 0, + "cost": 0.1676, + "order_match": true, + "adpingids": [ + "91505669", + "91508375", + "91508376", + "91557347", + "91574966" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001107", + "campaign_name": "Medical_Truemeds_com.intellihealth.truemeds", + "pkg": "com.intellihealth.truemeds", + "country": "IN", + "impressions": 2235, + "clicks": 1644, + "conversions": 6, + "cost": 0.1644, + "order_match": true, + "adpingids": [ + "8566084", + "12893899" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "ID", + "impressions": 329, + "clicks": 152, + "conversions": 0, + "cost": 0.152, + "order_match": true, + "adpingids": [ + "91467820", + "91538300", + "91565945", + "91574963" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001100", + "campaign_name": "Game_Meowdoku_com.oakever.meowdoku_MX", + "pkg": "com.oakever.meowdoku", + "country": "MX", + "impressions": 204, + "clicks": 102, + "conversions": 0, + "cost": 0.147, + "order_match": true, + "adpingids": [ + "91567806", + "91574959" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001083", + "campaign_name": "Social_SnackVideo_com.kwai.bulldog", + "pkg": "com.kwai.bulldog", + "country": "ID", + "impressions": 19535, + "clicks": 7796, + "conversions": 0, + "cost": 0.078, + "order_match": true, + "adpingids": [ + "7815836", + "9096625", + "10577461", + "11836152", + "12895313" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "PH", + "impressions": 113, + "clicks": 53, + "conversions": 0, + "cost": 0.053, + "order_match": true, + "adpingids": [ + "91496145", + "91538306", + "91565949", + "91574960" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "AE", + "impressions": 25, + "clicks": 6, + "conversions": 0, + "cost": 0.0406, + "order_match": true, + "adpingids": [ + "5847496", + "7572369", + "11729820", + "12814889" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001116", + "campaign_name": "Game_candycrushsaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "MY", + "impressions": 342, + "clicks": 146, + "conversions": 0, + "cost": 0.0292, + "order_match": true, + "adpingids": [ + "5464039", + "5790993", + "8057746", + "13367620" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001113", + "campaign_name": "Game_Печать Демоновa_com.esprit.rpg.lttlefirykng", + "pkg": "com.esprit.rpg.lttlefirykng", + "country": "RU", + "impressions": 6164, + "clicks": 24, + "conversions": 0, + "cost": 0.024, + "order_match": true, + "adpingids": [ + "10514860", + "11655595", + "11655596", + "11763482", + "12501057", + "13219444" + ], + "order_statuses": [ + "投放中", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001105", + "campaign_name": "Finance_Bybit_id1488296980_BR", + "pkg": "id1488296980", + "country": "BR", + "impressions": 554, + "clicks": 239, + "conversions": 0, + "cost": 0.0239, + "order_match": true, + "adpingids": [ + "91577952", + "91580166" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001076", + "campaign_name": "Entertainment_VIU_com.vuclip.viu", + "pkg": "com.vuclip.viu", + "country": "MY", + "impressions": 21, + "clicks": 5, + "conversions": 0, + "cost": 0.0212, + "order_match": true, + "adpingids": [ + "91545519", + "91574124" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "ID", + "impressions": 15, + "clicks": 5, + "conversions": 0, + "cost": 0.013, + "order_match": true, + "adpingids": [ + "5562656", + "91407542", + "91565942", + "91574964" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "BR", + "impressions": 24, + "clicks": 10, + "conversions": 0, + "cost": 0.01, + "order_match": true, + "adpingids": [ + "91496147", + "91538308", + "91551845", + "91574954" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "IN", + "impressions": 5, + "clicks": 3, + "conversions": 0, + "cost": 0.009, + "order_match": true, + "adpingids": [ + "91410799", + "91535331", + "91565947", + "91574951" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001108", + "campaign_name": "Shopping_OZON_ru.ozon.app.android_UZ_audience", + "pkg": "ru.ozon.app.android", + "country": "UZ", + "impressions": 215, + "clicks": 61, + "conversions": 0, + "cost": 0.0061, + "order_match": true, + "adpingids": [ + "5963400", + "6880904", + "6979821", + "6979827", + "11078827", + "13219587" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "ID", + "impressions": 0, + "clicks": 1, + "conversions": 0, + "cost": 0.003, + "order_match": true, + "adpingids": [ + "5562656", + "91407542", + "91565942", + "91574964" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001096", + "campaign_name": "Ecommerce_AmazonShopping_com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "MX", + "impressions": 0, + "clicks": 1, + "conversions": 0, + "cost": 0.0005, + "order_match": false, + "adpingids": [], + "order_statuses": [], + "listed_in_taurusx_orders": false + }, + { + "date": "2026-10-14", + "campaign_id": "1001114", + "campaign_name": "Game_Asrtum_asrtum.ent.domovyata", + "pkg": "asrtum.ent.domovyata", + "country": "RU", + "impressions": 2, + "clicks": 1, + "conversions": 0, + "cost": 0.0003, + "order_match": true, + "adpingids": [ + "7872826", + "8002122", + "8628042", + "12038344", + "12522893", + "12809771", + "13146531", + "91578026" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 2, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "ID", + "impressions": 2, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "5562656", + "91407542", + "91565942", + "91574964" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-14", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "IN", + "impressions": 5, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "91410799", + "91535331", + "91565947", + "91574951" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001092", + "campaign_name": "Entertainment_VKmusic_com.uma.musicvk_1", + "pkg": "com.uma.musicvk", + "country": "RU", + "impressions": 17358, + "clicks": 5798, + "conversions": 6, + "cost": 48.287, + "order_match": true, + "adpingids": [ + "2783561", + "11690183", + "12807775", + "13220287" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "ID", + "impressions": 7795, + "clicks": 4439, + "conversions": 4, + "cost": 13.317, + "order_match": true, + "adpingids": [ + "5562656", + "91407542", + "91565942", + "91574964" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001089", + "campaign_name": "Shopping_AliExpress_ru.aliexpress.buyer", + "pkg": "ru.aliexpress.buyer", + "country": "RU", + "impressions": 2867, + "clicks": 1271, + "conversions": 4, + "cost": 12.1457, + "order_match": true, + "adpingids": [ + "4383473", + "6060965", + "6061077", + "6607117", + "8094753", + "12808718", + "13364983" + ], + "order_statuses": [ + "投放中", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001093", + "campaign_name": "Shopping_OZON_ru.ozon.app.android_KZ", + "pkg": "ru.ozon.app.android", + "country": "KZ", + "impressions": 17184, + "clicks": 6529, + "conversions": 2, + "cost": 10.953, + "order_match": true, + "adpingids": [ + "5963354", + "6706444", + "6960591", + "9238270", + "9768560", + "11078981", + "12829886", + "13219498" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注", + "其他/不可投" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001076", + "campaign_name": "Entertainment_VIU_com.vuclip.viu", + "pkg": "com.vuclip.viu", + "country": "MY", + "impressions": 2062, + "clicks": 902, + "conversions": 0, + "cost": 8.606, + "order_match": true, + "adpingids": [ + "91545519", + "91574124" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001100", + "campaign_name": "Game_Meowdoku_com.oakever.meowdoku_MX", + "pkg": "com.oakever.meowdoku", + "country": "MX", + "impressions": 13279, + "clicks": 6870, + "conversions": 1, + "cost": 6.87, + "order_match": true, + "adpingids": [ + "91567806", + "91574959" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "ZA", + "impressions": 3516, + "clicks": 2368, + "conversions": 6, + "cost": 6.7715, + "order_match": true, + "adpingids": [ + "5985063", + "6425889", + "6439005", + "11729927", + "12814874" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "ID", + "impressions": 6399, + "clicks": 1787, + "conversions": 0, + "cost": 5.361, + "order_match": true, + "adpingids": [ + "5562656", + "91407542", + "91565942", + "91574964" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001078", + "campaign_name": "Education_Nagwa Classes_com.nagwa.classes", + "pkg": "com.nagwa.classes", + "country": "EG", + "impressions": 7635, + "clicks": 3695, + "conversions": 3, + "cost": 3.695, + "order_match": true, + "adpingids": [ + "2555210", + "5617321", + "12306671", + "12398053", + "12811904", + "13337347", + "13337642", + "13342862" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001101", + "campaign_name": "Game_Yuzbir_net.peakgames.Yuzbir", + "pkg": "net.peakgames.Yuzbir", + "country": "TR", + "impressions": 5757, + "clicks": 3146, + "conversions": 1, + "cost": 3.1445, + "order_match": true, + "adpingids": [ + "91550293", + "91574961" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001088", + "campaign_name": "Game_newspike_com.netease.newspike", + "pkg": "com.netease.newspike", + "country": "TH", + "impressions": 681, + "clicks": 289, + "conversions": 0, + "cost": 2.89, + "order_match": true, + "adpingids": [ + "91573130", + "91574965" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001096", + "campaign_name": "Ecommerce_AmazonShopping_com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "MX", + "impressions": 10145, + "clicks": 4478, + "conversions": 0, + "cost": 2.2386, + "order_match": false, + "adpingids": [], + "order_statuses": [], + "listed_in_taurusx_orders": false + }, + { + "date": "2026-10-13", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "IN", + "impressions": 745, + "clicks": 527, + "conversions": 4, + "cost": 1.581, + "order_match": true, + "adpingids": [ + "91410799", + "91535331", + "91565947", + "91574951" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "BR", + "impressions": 1111, + "clicks": 580, + "conversions": 0, + "cost": 1.16, + "order_match": true, + "adpingids": [ + "3238476", + "5369277", + "5462318", + "5599110", + "6178279", + "8181791", + "8181833", + "8181939", + "8181984", + "8182037", + "8182041", + "8182122", + "8182123", + "10813123", + "10912510", + "11729830", + "11892329", + "11987622", + "12801942", + "13084710" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 468, + "clicks": 131, + "conversions": 0, + "cost": 0.393, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "ID", + "impressions": 838, + "clicks": 375, + "conversions": 0, + "cost": 0.384, + "order_match": true, + "adpingids": [ + "91467820", + "91538300", + "91565945", + "91574963" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "SA", + "impressions": 292, + "clicks": 127, + "conversions": 0, + "cost": 0.381, + "order_match": true, + "adpingids": [ + "2732727", + "5619156", + "6513794", + "6815650", + "12814931" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001092", + "campaign_name": "Entertainment_VKmusic_com.uma.musicvk_1", + "pkg": "com.uma.musicvk", + "country": "RU", + "impressions": 12032, + "clicks": 31, + "conversions": 0, + "cost": 0.31, + "order_match": true, + "adpingids": [ + "2783561", + "11690183", + "12807775", + "13220287" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "TR", + "impressions": 189, + "clicks": 102, + "conversions": 0, + "cost": 0.306, + "order_match": true, + "adpingids": [ + "5579512", + "5607488", + "5994000", + "6153612", + "6724852", + "6815579", + "7437698", + "13226265" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "BR", + "impressions": 503, + "clicks": 252, + "conversions": 0, + "cost": 0.252, + "order_match": true, + "adpingids": [ + "91496147", + "91538308", + "91551845", + "91574954" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001083", + "campaign_name": "Social_SnackVideo_com.kwai.bulldog", + "pkg": "com.kwai.bulldog", + "country": "ID", + "impressions": 62556, + "clicks": 21680, + "conversions": 1, + "cost": 0.2172, + "order_match": true, + "adpingids": [ + "7815836", + "9096625", + "10577461", + "11836152", + "12895313" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001102", + "campaign_name": "Finance_RobotZaimer_robot.zaimer.ru", + "pkg": "robot.zaimer.ru", + "country": "RU", + "impressions": 4448, + "clicks": 2124, + "conversions": 0, + "cost": 0.2124, + "order_match": true, + "adpingids": [ + "91505669", + "91508375", + "91508376", + "91557347", + "91574966" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "PH", + "impressions": 391, + "clicks": 180, + "conversions": 0, + "cost": 0.18, + "order_match": true, + "adpingids": [ + "91496145", + "91538306", + "91565949", + "91574960" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "AE", + "impressions": 27, + "clicks": 11, + "conversions": 0, + "cost": 0.11, + "order_match": true, + "adpingids": [ + "5847496", + "7572369", + "11729820", + "12814889" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001107", + "campaign_name": "Medical_Truemeds_com.intellihealth.truemeds", + "pkg": "com.intellihealth.truemeds", + "country": "IN", + "impressions": 1001, + "clicks": 631, + "conversions": 0, + "cost": 0.0631, + "order_match": true, + "adpingids": [ + "8566084", + "12893899" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001110", + "campaign_name": "Sports_CalienteSports_sports.caliente.mx.calientedeportes", + "pkg": "sports.caliente.mx.calientedeportes", + "country": "MX", + "impressions": 996, + "clicks": 522, + "conversions": 0, + "cost": 0.0522, + "order_match": true, + "adpingids": [ + "5365721", + "5365722", + "5550994", + "5557858", + "5670655", + "6926373", + "7202473", + "11924654", + "12814983" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001098", + "campaign_name": "Game_topgames_com.game.friends.ru", + "pkg": "com.game.friends.ru", + "country": "RU", + "impressions": 1121, + "clicks": 433, + "conversions": 0, + "cost": 0.0433, + "order_match": true, + "adpingids": [ + "91414435", + "91564896", + "91574956" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001099", + "campaign_name": "Game_Meowdoku_com.oakever.meowdoku_RU", + "pkg": "com.oakever.meowdoku", + "country": "RU", + "impressions": 150, + "clicks": 42, + "conversions": 0, + "cost": 0.042, + "order_match": true, + "adpingids": [ + "91567363", + "91574957" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001108", + "campaign_name": "Shopping_OZON_ru.ozon.app.android_UZ_audience", + "pkg": "ru.ozon.app.android", + "country": "UZ", + "impressions": 294, + "clicks": 83, + "conversions": 0, + "cost": 0.0083, + "order_match": true, + "adpingids": [ + "5963400", + "6880904", + "6979821", + "6979827", + "11078827", + "13219587" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001105", + "campaign_name": "Finance_Bybit_id1488296980_BR", + "pkg": "id1488296980", + "country": "BR", + "impressions": 132, + "clicks": 51, + "conversions": 0, + "cost": 0.0051, + "order_match": true, + "adpingids": [ + "91577952", + "91580166" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 9, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "ID", + "impressions": 19, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "5562656", + "91407542", + "91565942", + "91574964" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "ID", + "impressions": 4, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "5562656", + "91407542", + "91565942", + "91574964" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-13", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "IN", + "impressions": 11, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "91410799", + "91535331", + "91565947", + "91574951" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001093", + "campaign_name": "Shopping_OZON_ru.ozon.app.android_KZ", + "pkg": "ru.ozon.app.android", + "country": "KZ", + "impressions": 50765, + "clicks": 24095, + "conversions": 1, + "cost": 48.188, + "order_match": true, + "adpingids": [ + "5963354", + "6706444", + "6960591", + "9238270", + "9768560", + "11078981", + "12829886", + "13219498" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注", + "其他/不可投" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001076", + "campaign_name": "Entertainment_VIU_com.vuclip.viu", + "pkg": "com.vuclip.viu", + "country": "MY", + "impressions": 6080, + "clicks": 2917, + "conversions": 0, + "cost": 29.17, + "order_match": true, + "adpingids": [ + "91545519", + "91574124" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "ID", + "impressions": 17287, + "clicks": 9106, + "conversions": 0, + "cost": 27.318, + "order_match": true, + "adpingids": [ + "5562656", + "91407542", + "91565942", + "91574964" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001089", + "campaign_name": "Shopping_AliExpress_ru.aliexpress.buyer", + "pkg": "ru.aliexpress.buyer", + "country": "RU", + "impressions": 4226, + "clicks": 1930, + "conversions": 3, + "cost": 19.3, + "order_match": true, + "adpingids": [ + "4383473", + "6060965", + "6061077", + "6607117", + "8094753", + "12808718", + "13364983" + ], + "order_statuses": [ + "投放中", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 1742, + "clicks": 687, + "conversions": 0, + "cost": 17.829, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "ID", + "impressions": 13447, + "clicks": 3927, + "conversions": 0, + "cost": 11.781, + "order_match": true, + "adpingids": [ + "5562656", + "91407542", + "91565942", + "91574964" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001078", + "campaign_name": "Education_Nagwa Classes_com.nagwa.classes", + "pkg": "com.nagwa.classes", + "country": "EG", + "impressions": 26126, + "clicks": 11187, + "conversions": 4, + "cost": 11.187, + "order_match": true, + "adpingids": [ + "2555210", + "5617321", + "12306671", + "12398053", + "12811904", + "13337347", + "13337642", + "13342862" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "ZA", + "impressions": 3195, + "clicks": 2104, + "conversions": 4, + "cost": 10.52, + "order_match": true, + "adpingids": [ + "5985063", + "6425889", + "6439005", + "11729927", + "12814874" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001100", + "campaign_name": "Game_Meowdoku_com.oakever.meowdoku_MX", + "pkg": "com.oakever.meowdoku", + "country": "MX", + "impressions": 15921, + "clicks": 8690, + "conversions": 2, + "cost": 8.6864, + "order_match": true, + "adpingids": [ + "91567806", + "91574959" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001092", + "campaign_name": "Entertainment_VKmusic_com.uma.musicvk_1", + "pkg": "com.uma.musicvk", + "country": "RU", + "impressions": 2346, + "clicks": 828, + "conversions": 0, + "cost": 8.28, + "order_match": true, + "adpingids": [ + "2783561", + "11690183", + "12807775", + "13220287" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001101", + "campaign_name": "Game_Yuzbir_net.peakgames.Yuzbir", + "pkg": "net.peakgames.Yuzbir", + "country": "TR", + "impressions": 10766, + "clicks": 5884, + "conversions": 0, + "cost": 4.6116, + "order_match": true, + "adpingids": [ + "91550293", + "91574961" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001088", + "campaign_name": "Game_newspike_com.netease.newspike", + "pkg": "com.netease.newspike", + "country": "TH", + "impressions": 896, + "clicks": 459, + "conversions": 0, + "cost": 4.59, + "order_match": true, + "adpingids": [ + "91573130", + "91574965" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "BR", + "impressions": 726, + "clicks": 415, + "conversions": 0, + "cost": 3.493, + "order_match": true, + "adpingids": [ + "91496147", + "91538308", + "91551845", + "91574954" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "IN", + "impressions": 1529, + "clicks": 1144, + "conversions": 0, + "cost": 3.432, + "order_match": true, + "adpingids": [ + "91410799", + "91535331", + "91565947", + "91574951" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "ID", + "impressions": 1068, + "clicks": 526, + "conversions": 0, + "cost": 2.344, + "order_match": true, + "adpingids": [ + "91467820", + "91538300", + "91565945", + "91574963" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001096", + "campaign_name": "Ecommerce_AmazonShopping_com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "MX", + "impressions": 14814, + "clicks": 7137, + "conversions": 0, + "cost": 1.8465, + "order_match": false, + "adpingids": [], + "order_statuses": [], + "listed_in_taurusx_orders": false + }, + { + "date": "2026-10-12", + "campaign_id": "1001083", + "campaign_name": "Social_SnackVideo_com.kwai.bulldog", + "pkg": "com.kwai.bulldog", + "country": "ID", + "impressions": 68587, + "clicks": 27672, + "conversions": 0, + "cost": 1.5873, + "order_match": true, + "adpingids": [ + "7815836", + "9096625", + "10577461", + "11836152", + "12895313" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "PH", + "impressions": 817, + "clicks": 372, + "conversions": 0, + "cost": 1.317, + "order_match": true, + "adpingids": [ + "91496145", + "91538306", + "91565949", + "91574960" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "BR", + "impressions": 660, + "clicks": 300, + "conversions": 0, + "cost": 0.6, + "order_match": true, + "adpingids": [ + "3238476", + "5369277", + "5462318", + "5599110", + "6178279", + "8181791", + "8181833", + "8181939", + "8181984", + "8182037", + "8182041", + "8182122", + "8182123", + "10813123", + "10912510", + "11729830", + "11892329", + "11987622", + "12801942", + "13084710" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001102", + "campaign_name": "Finance_RobotZaimer_robot.zaimer.ru", + "pkg": "robot.zaimer.ru", + "country": "RU", + "impressions": 8010, + "clicks": 3888, + "conversions": 1, + "cost": 0.3888, + "order_match": true, + "adpingids": [ + "91505669", + "91508375", + "91508376", + "91557347", + "91574966" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "TR", + "impressions": 240, + "clicks": 105, + "conversions": 0, + "cost": 0.315, + "order_match": true, + "adpingids": [ + "5579512", + "5607488", + "5994000", + "6153612", + "6724852", + "6815579", + "7437698", + "13226265" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001098", + "campaign_name": "Game_topgames_com.game.friends.ru", + "pkg": "com.game.friends.ru", + "country": "RU", + "impressions": 2199, + "clicks": 977, + "conversions": 0, + "cost": 0.0977, + "order_match": true, + "adpingids": [ + "91414435", + "91564896", + "91574956" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001099", + "campaign_name": "Game_Meowdoku_com.oakever.meowdoku_RU", + "pkg": "com.oakever.meowdoku", + "country": "RU", + "impressions": 231, + "clicks": 62, + "conversions": 0, + "cost": 0.0305, + "order_match": true, + "adpingids": [ + "91567363", + "91574957" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "AE", + "impressions": 2, + "clicks": 1, + "conversions": 0, + "cost": 0.01, + "order_match": true, + "adpingids": [ + "5847496", + "7572369", + "11729820", + "12814889" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001107", + "campaign_name": "Medical_Truemeds_com.intellihealth.truemeds", + "pkg": "com.intellihealth.truemeds", + "country": "IN", + "impressions": 100, + "clicks": 67, + "conversions": 0, + "cost": 0.0067, + "order_match": true, + "adpingids": [ + "8566084", + "12893899" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001105", + "campaign_name": "Finance_Bybit_id1488296980_BR", + "pkg": "id1488296980", + "country": "BR", + "impressions": 18, + "clicks": 5, + "conversions": 0, + "cost": 0.0005, + "order_match": true, + "adpingids": [ + "91577952", + "91580166" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 6, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001092", + "campaign_name": "Entertainment_VKmusic_com.uma.musicvk_1", + "pkg": "com.uma.musicvk", + "country": "RU", + "impressions": 384, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "2783561", + "11690183", + "12807775", + "13220287" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "ID", + "impressions": 51, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "5562656", + "91407542", + "91565942", + "91574964" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "ID", + "impressions": 11, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "5562656", + "91407542", + "91565942", + "91574964" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-12", + "campaign_id": "1001097", + "campaign_name": "Game_candysaga_com.king.candycrushsaga", + "pkg": "com.king.candycrushsaga", + "country": "IN", + "impressions": 20, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "91410799", + "91535331", + "91565947", + "91574951" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001089", + "campaign_name": "Shopping_AliExpress_ru.aliexpress.buyer", + "pkg": "ru.aliexpress.buyer", + "country": "RU", + "impressions": 5131, + "clicks": 2500, + "conversions": 2, + "cost": 25.0, + "order_match": true, + "adpingids": [ + "4383473", + "6060965", + "6061077", + "6607117", + "8094753", + "12808718", + "13364983" + ], + "order_statuses": [ + "投放中", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 1644, + "clicks": 640, + "conversions": 1, + "cost": 19.2, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001093", + "campaign_name": "Shopping_OZON_ru.ozon.app.android_KZ", + "pkg": "ru.ozon.app.android", + "country": "KZ", + "impressions": 17562, + "clicks": 10017, + "conversions": 1, + "cost": 14.747, + "order_match": true, + "adpingids": [ + "5963354", + "6706444", + "6960591", + "9238270", + "9768560", + "11078981", + "12829886", + "13219498" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注", + "其他/不可投" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "ID", + "impressions": 2483, + "clicks": 1126, + "conversions": 0, + "cost": 11.242, + "order_match": true, + "adpingids": [ + "91467820", + "91538300", + "91565945", + "91574963" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001078", + "campaign_name": "Education_Nagwa Classes_com.nagwa.classes", + "pkg": "com.nagwa.classes", + "country": "EG", + "impressions": 26159, + "clicks": 11002, + "conversions": 4, + "cost": 11.002, + "order_match": true, + "adpingids": [ + "2555210", + "5617321", + "12306671", + "12398053", + "12811904", + "13337347", + "13337642", + "13342862" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "ZA", + "impressions": 3425, + "clicks": 2092, + "conversions": 6, + "cost": 10.46, + "order_match": true, + "adpingids": [ + "5985063", + "6425889", + "6439005", + "11729927", + "12814874" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "PH", + "impressions": 1844, + "clicks": 876, + "conversions": 0, + "cost": 8.76, + "order_match": true, + "adpingids": [ + "91496145", + "91538306", + "91565949", + "91574960" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "BR", + "impressions": 1210, + "clicks": 633, + "conversions": 0, + "cost": 6.321, + "order_match": true, + "adpingids": [ + "91496147", + "91538308", + "91551845", + "91574954" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001088", + "campaign_name": "Game_newspike_com.netease.newspike", + "pkg": "com.netease.newspike", + "country": "TH", + "impressions": 775, + "clicks": 401, + "conversions": 0, + "cost": 4.01, + "order_match": true, + "adpingids": [ + "91573130", + "91574965" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001083", + "campaign_name": "Social_SnackVideo_com.kwai.bulldog", + "pkg": "com.kwai.bulldog", + "country": "ID", + "impressions": 69698, + "clicks": 29736, + "conversions": 2, + "cost": 2.9754, + "order_match": true, + "adpingids": [ + "7815836", + "9096625", + "10577461", + "11836152", + "12895313" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001092", + "campaign_name": "Entertainment_VKmusic_com.uma.musicvk_1", + "pkg": "com.uma.musicvk", + "country": "RU", + "impressions": 578, + "clicks": 134, + "conversions": 0, + "cost": 1.34, + "order_match": true, + "adpingids": [ + "2783561", + "11690183", + "12807775", + "13220287" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001101", + "campaign_name": "Game_Yuzbir_net.peakgames.Yuzbir", + "pkg": "net.peakgames.Yuzbir", + "country": "TR", + "impressions": 20168, + "clicks": 9617, + "conversions": 1, + "cost": 1.1245, + "order_match": true, + "adpingids": [ + "91550293", + "91574961" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001100", + "campaign_name": "Game_Meowdoku_com.oakever.meowdoku_MX", + "pkg": "com.oakever.meowdoku", + "country": "MX", + "impressions": 14830, + "clicks": 8188, + "conversions": 3, + "cost": 0.8863, + "order_match": true, + "adpingids": [ + "91567806", + "91574959" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001096", + "campaign_name": "Ecommerce_AmazonShopping_com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "MX", + "impressions": 11044, + "clicks": 5407, + "conversions": 0, + "cost": 0.5407, + "order_match": false, + "adpingids": [], + "order_statuses": [], + "listed_in_taurusx_orders": false + }, + { + "date": "2026-10-11", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "TR", + "impressions": 264, + "clicks": 147, + "conversions": 0, + "cost": 0.441, + "order_match": true, + "adpingids": [ + "5579512", + "5607488", + "5994000", + "6153612", + "6724852", + "6815579", + "7437698", + "13226265" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "BR", + "impressions": 452, + "clicks": 219, + "conversions": 0, + "cost": 0.438, + "order_match": true, + "adpingids": [ + "3238476", + "5369277", + "5462318", + "5599110", + "6178279", + "8181791", + "8181833", + "8181939", + "8181984", + "8182037", + "8182041", + "8182122", + "8182123", + "10813123", + "10912510", + "11729830", + "11892329", + "11987622", + "12801942", + "13084710" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001102", + "campaign_name": "Finance_RobotZaimer_robot.zaimer.ru", + "pkg": "robot.zaimer.ru", + "country": "RU", + "impressions": 7730, + "clicks": 3942, + "conversions": 1, + "cost": 0.3942, + "order_match": true, + "adpingids": [ + "91505669", + "91508375", + "91508376", + "91557347", + "91574966" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001098", + "campaign_name": "Game_topgames_com.game.friends.ru", + "pkg": "com.game.friends.ru", + "country": "RU", + "impressions": 1408, + "clicks": 604, + "conversions": 1, + "cost": 0.0604, + "order_match": true, + "adpingids": [ + "91414435", + "91564896", + "91574956" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 5, + "clicks": 1, + "conversions": 0, + "cost": 0.03, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "AE", + "impressions": 1, + "clicks": 1, + "conversions": 0, + "cost": 0.01, + "order_match": true, + "adpingids": [ + "5847496", + "7572369", + "11729820", + "12814889" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-11", + "campaign_id": "1001099", + "campaign_name": "Game_Meowdoku_com.oakever.meowdoku_RU", + "pkg": "com.oakever.meowdoku", + "country": "RU", + "impressions": 125, + "clicks": 26, + "conversions": 0, + "cost": 0.0026, + "order_match": true, + "adpingids": [ + "91567363", + "91574957" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001083", + "campaign_name": "Social_SnackVideo_com.kwai.bulldog", + "pkg": "com.kwai.bulldog", + "country": "ID", + "impressions": 71924, + "clicks": 28303, + "conversions": 4, + "cost": 15.6922, + "order_match": true, + "adpingids": [ + "7815836", + "9096625", + "10577461", + "11836152", + "12895313" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001078", + "campaign_name": "Education_Nagwa Classes_com.nagwa.classes", + "pkg": "com.nagwa.classes", + "country": "EG", + "impressions": 30079, + "clicks": 11609, + "conversions": 4, + "cost": 11.609, + "order_match": true, + "adpingids": [ + "2555210", + "5617321", + "12306671", + "12398053", + "12811904", + "13337347", + "13337642", + "13342862" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001089", + "campaign_name": "Shopping_AliExpress_ru.aliexpress.buyer", + "pkg": "ru.aliexpress.buyer", + "country": "RU", + "impressions": 1719, + "clicks": 848, + "conversions": 0, + "cost": 8.308, + "order_match": true, + "adpingids": [ + "4383473", + "6060965", + "6061077", + "6607117", + "8094753", + "12808718", + "13364983" + ], + "order_statuses": [ + "投放中", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 1085, + "clicks": 508, + "conversions": 1, + "cost": 8.02, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "PH", + "impressions": 1404, + "clicks": 621, + "conversions": 0, + "cost": 4.878, + "order_match": true, + "adpingids": [ + "91496145", + "91538306", + "91565949", + "91574960" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "ID", + "impressions": 1080, + "clicks": 480, + "conversions": 0, + "cost": 3.612, + "order_match": true, + "adpingids": [ + "91467820", + "91538300", + "91565945", + "91574963" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001093", + "campaign_name": "Shopping_OZON_ru.ozon.app.android_KZ", + "pkg": "ru.ozon.app.android", + "country": "KZ", + "impressions": 6503, + "clicks": 3557, + "conversions": 1, + "cost": 3.557, + "order_match": true, + "adpingids": [ + "5963354", + "6706444", + "6960591", + "9238270", + "9768560", + "11078981", + "12829886", + "13219498" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注", + "其他/不可投" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001088", + "campaign_name": "Game_newspike_com.netease.newspike", + "pkg": "com.netease.newspike", + "country": "TH", + "impressions": 468, + "clicks": 217, + "conversions": 0, + "cost": 1.639, + "order_match": true, + "adpingids": [ + "91573130", + "91574965" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "BR", + "impressions": 684, + "clicks": 345, + "conversions": 0, + "cost": 1.434, + "order_match": true, + "adpingids": [ + "91496147", + "91538308", + "91551845", + "91574954" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001101", + "campaign_name": "Game_Yuzbir_net.peakgames.Yuzbir", + "pkg": "net.peakgames.Yuzbir", + "country": "TR", + "impressions": 14176, + "clicks": 7036, + "conversions": 0, + "cost": 0.7036, + "order_match": true, + "adpingids": [ + "91550293", + "91574961" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001100", + "campaign_name": "Game_Meowdoku_com.oakever.meowdoku_MX", + "pkg": "com.oakever.meowdoku", + "country": "MX", + "impressions": 8835, + "clicks": 5130, + "conversions": 0, + "cost": 0.513, + "order_match": true, + "adpingids": [ + "91567806", + "91574959" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001092", + "campaign_name": "Entertainment_VKmusic_com.uma.musicvk_1", + "pkg": "com.uma.musicvk", + "country": "RU", + "impressions": 134, + "clicks": 39, + "conversions": 0, + "cost": 0.354, + "order_match": true, + "adpingids": [ + "2783561", + "11690183", + "12807775", + "13220287" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001102", + "campaign_name": "Finance_RobotZaimer_robot.zaimer.ru", + "pkg": "robot.zaimer.ru", + "country": "RU", + "impressions": 5332, + "clicks": 2758, + "conversions": 0, + "cost": 0.2758, + "order_match": true, + "adpingids": [ + "91505669", + "91508375", + "91508376", + "91557347", + "91574966" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001096", + "campaign_name": "Ecommerce_AmazonShopping_com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "MX", + "impressions": 5420, + "clicks": 2756, + "conversions": 0, + "cost": 0.2756, + "order_match": false, + "adpingids": [], + "order_statuses": [], + "listed_in_taurusx_orders": false + }, + { + "date": "2026-10-10", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "BR", + "impressions": 78, + "clicks": 31, + "conversions": 0, + "cost": 0.062, + "order_match": true, + "adpingids": [ + "3238476", + "5369277", + "5462318", + "5599110", + "6178279", + "8181791", + "8181833", + "8181939", + "8181984", + "8182037", + "8182041", + "8182122", + "8182123", + "10813123", + "10912510", + "11729830", + "11892329", + "11987622", + "12801942", + "13084710" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001098", + "campaign_name": "Game_topgames_com.game.friends.ru", + "pkg": "com.game.friends.ru", + "country": "RU", + "impressions": 324, + "clicks": 135, + "conversions": 0, + "cost": 0.0135, + "order_match": true, + "adpingids": [ + "91414435", + "91564896", + "91574956" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001085", + "campaign_name": "Ecommerce-Amazon-com.amazon.mShop.android.shopping", + "pkg": "com.amazon.mShop.android.shopping", + "country": "TR", + "impressions": 6, + "clicks": 3, + "conversions": 0, + "cost": 0.009, + "order_match": true, + "adpingids": [ + "5579512", + "5607488", + "5994000", + "6153612", + "6724852", + "6815579", + "7437698", + "13226265" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001099", + "campaign_name": "Game_Meowdoku_com.oakever.meowdoku_RU", + "pkg": "com.oakever.meowdoku", + "country": "RU", + "impressions": 25, + "clicks": 4, + "conversions": 0, + "cost": 0.0004, + "order_match": true, + "adpingids": [ + "91567363", + "91574957" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-10", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 4, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-09", + "campaign_id": "1001083", + "campaign_name": "Social_SnackVideo_com.kwai.bulldog", + "pkg": "com.kwai.bulldog", + "country": "ID", + "impressions": 44189, + "clicks": 16893, + "conversions": 3, + "cost": 16.893, + "order_match": true, + "adpingids": [ + "7815836", + "9096625", + "10577461", + "11836152", + "12895313" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-09", + "campaign_id": "1001078", + "campaign_name": "Education_Nagwa Classes_com.nagwa.classes", + "pkg": "com.nagwa.classes", + "country": "EG", + "impressions": 31494, + "clicks": 10698, + "conversions": 3, + "cost": 11.283, + "order_match": true, + "adpingids": [ + "2555210", + "5617321", + "12306671", + "12398053", + "12811904", + "13337347", + "13337642", + "13342862" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-09", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 1433, + "clicks": 603, + "conversions": 2, + "cost": 6.03, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-09", + "campaign_id": "1001089", + "campaign_name": "Shopping_AliExpress_ru.aliexpress.buyer", + "pkg": "ru.aliexpress.buyer", + "country": "RU", + "impressions": 265, + "clicks": 96, + "conversions": 1, + "cost": 0.563, + "order_match": true, + "adpingids": [ + "4383473", + "6060965", + "6061077", + "6607117", + "8094753", + "12808718", + "13364983" + ], + "order_statuses": [ + "投放中", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-09", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "PH", + "impressions": 264, + "clicks": 123, + "conversions": 0, + "cost": 0.123, + "order_match": true, + "adpingids": [ + "91496145", + "91538306", + "91565949", + "91574960" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-09", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "BR", + "impressions": 206, + "clicks": 113, + "conversions": 0, + "cost": 0.113, + "order_match": true, + "adpingids": [ + "91496147", + "91538308", + "91551845", + "91574954" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-09", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "ID", + "impressions": 190, + "clicks": 87, + "conversions": 0, + "cost": 0.087, + "order_match": true, + "adpingids": [ + "91467820", + "91538300", + "91565945", + "91574963" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-09", + "campaign_id": "1001093", + "campaign_name": "Shopping_OZON_ru.ozon.app.android_KZ", + "pkg": "ru.ozon.app.android", + "country": "KZ", + "impressions": 200, + "clicks": 74, + "conversions": 0, + "cost": 0.074, + "order_match": true, + "adpingids": [ + "5963354", + "6706444", + "6960591", + "9238270", + "9768560", + "11078981", + "12829886", + "13219498" + ], + "order_statuses": [ + "投放中", + "暂停", + "未标注", + "其他/不可投" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-09", + "campaign_id": "1001088", + "campaign_name": "Game_newspike_com.netease.newspike", + "pkg": "com.netease.newspike", + "country": "TH", + "impressions": 89, + "clicks": 40, + "conversions": 0, + "cost": 0.04, + "order_match": true, + "adpingids": [ + "91573130", + "91574965" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-09", + "campaign_id": "1001092", + "campaign_name": "Entertainment_VKmusic_com.uma.musicvk_1", + "pkg": "com.uma.musicvk", + "country": "RU", + "impressions": 20, + "clicks": 5, + "conversions": 0, + "cost": 0.04, + "order_match": true, + "adpingids": [ + "2783561", + "11690183", + "12807775", + "13220287" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-09", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 3, + "clicks": 1, + "conversions": 0, + "cost": 0.01, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-09", + "campaign_id": "1001084", + "campaign_name": "Entertainment_VKmusic_com.uma.musicvk", + "pkg": "com.uma.musicvk", + "country": "RU", + "impressions": 16, + "clicks": 3, + "conversions": 0, + "cost": 0.009, + "order_match": true, + "adpingids": [ + "2783561", + "11690183", + "12807775", + "13220287" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-08", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 781, + "clicks": 301, + "conversions": 0, + "cost": 3.01, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-08", + "campaign_id": "1001083", + "campaign_name": "Social_SnackVideo_com.kwai.bulldog", + "pkg": "com.kwai.bulldog", + "country": "ID", + "impressions": 6161, + "clicks": 2243, + "conversions": 1, + "cost": 2.243, + "order_match": true, + "adpingids": [ + "7815836", + "9096625", + "10577461", + "11836152", + "12895313" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-08", + "campaign_id": "1001089", + "campaign_name": "Shopping_AliExpress_ru.aliexpress.buyer", + "pkg": "ru.aliexpress.buyer", + "country": "RU", + "impressions": 356, + "clicks": 84, + "conversions": 0, + "cost": 0.336, + "order_match": true, + "adpingids": [ + "4383473", + "6060965", + "6061077", + "6607117", + "8094753", + "12808718", + "13364983" + ], + "order_statuses": [ + "投放中", + "未标注" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-08", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "PH", + "impressions": 32, + "clicks": 16, + "conversions": 0, + "cost": 0.016, + "order_match": true, + "adpingids": [ + "91496145", + "91538306", + "91565949", + "91574960" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-08", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "BR", + "impressions": 26, + "clicks": 13, + "conversions": 0, + "cost": 0.013, + "order_match": true, + "adpingids": [ + "91496147", + "91538308", + "91551845", + "91574954" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-08", + "campaign_id": "1001087", + "campaign_name": "Game_VitaMahjong_com.vitastudio.mahjong", + "pkg": "com.vitastudio.mahjong", + "country": "ID", + "impressions": 29, + "clicks": 12, + "conversions": 0, + "cost": 0.012, + "order_match": true, + "adpingids": [ + "91467820", + "91538300", + "91565945", + "91574963" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-08", + "campaign_id": "1001088", + "campaign_name": "Game_newspike_com.netease.newspike", + "pkg": "com.netease.newspike", + "country": "TH", + "impressions": 19, + "clicks": 9, + "conversions": 0, + "cost": 0.009, + "order_match": true, + "adpingids": [ + "91573130", + "91574965" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-08", + "campaign_id": "1001084", + "campaign_name": "Entertainment_VKmusic_com.uma.musicvk", + "pkg": "com.uma.musicvk", + "country": "RU", + "impressions": 31, + "clicks": 3, + "conversions": 0, + "cost": 0.009, + "order_match": true, + "adpingids": [ + "2783561", + "11690183", + "12807775", + "13220287" + ], + "order_statuses": [ + "投放中" + ], + "listed_in_taurusx_orders": true + }, + { + "date": "2026-10-08", + "campaign_id": "1001079", + "campaign_name": "Game_AstrumM2_astrum.ent.m2alyona", + "pkg": "astrum.ent.m2alyona", + "country": "RU", + "impressions": 1, + "clicks": 0, + "conversions": 0, + "cost": 0.0, + "order_match": true, + "adpingids": [ + "11690181", + "11690182", + "12038500", + "12809532", + "13151696" + ], + "order_statuses": [ + "投放中", + "暂停" + ], + "listed_in_taurusx_orders": true + } + ] } -} \ No newline at end of file +} diff --git a/fetch_taurusx.py b/fetch_taurusx.py new file mode 100644 index 0000000..a894c5f --- /dev/null +++ b/fetch_taurusx.py @@ -0,0 +1,169 @@ +#!/usr/bin/env python3 +"""Fetch recent TaurusX performance data without persisting API credentials.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import os +import tempfile +import time +import urllib.parse +import urllib.request +from datetime import date, datetime, timedelta, timezone +from pathlib import Path +from typing import Any + +API_URL = "https://scaler.taurusx.com/openapi/performance_data" +TIMEZONE = "+8" + + +def build_token(secret_key: str, timestamp: str) -> str: + timestamp_hash = hashlib.md5(timestamp.encode()).hexdigest() + return hashlib.md5((secret_key + timestamp_hash).encode()).hexdigest() + + +def request_performance( + access_key: str, + secret_key: str, + start_date: date, + end_date: date, +) -> list[dict[str, Any]]: + timestamp = str(int(time.time())) + query = urllib.parse.urlencode( + { + "timezone": TIMEZONE, + "report_type": "event", + "start_time": start_date.isoformat(), + "end_time": end_date.isoformat(), + "dimension_option": "Campaign,Country", + } + ) + request = urllib.request.Request( + f"{API_URL}?{query}", + headers={ + "access-key": access_key, + "token": build_token(secret_key, timestamp), + "timestamp": timestamp, + "Accept": "application/json", + "User-Agent": "AgentStage-TaurusX-Report/1.0", + }, + ) + with urllib.request.urlopen(request, timeout=60) as response: + payload = json.loads(response.read()) + if payload.get("code") != 200: + raise RuntimeError(f"TaurusX API returned code {payload.get('code')}: {payload.get('msg', 'unknown error')}") + rows = (payload.get("data") or {}).get("data_list") + if not isinstance(rows, list): + raise RuntimeError("TaurusX API response is missing data.data_list") + return rows + + +def match_pkg(campaign_name: str, packages: list[str]) -> str: + lowered = campaign_name.casefold() + for package in packages: + if package.casefold() in lowered: + return package + return "" + + +def build_dataset( + api_rows: list[dict[str, Any]], + report_payload: dict[str, Any], + start_date: date, + end_date: date, +) -> dict[str, Any]: + coverage_records = report_payload.get("records") or [] + packages = sorted({str(row["pkg"]) for row in coverage_records}, key=len, reverse=True) + coverage_by_key = { + (str(row["pkg"]).casefold(), str(row["country"]).upper()): row + for row in coverage_records + } + + records: list[dict[str, Any]] = [] + for api_row in api_rows: + campaign_name = str(api_row.get("campaign_name") or "").strip() + pkg = match_pkg(campaign_name, packages) + country = str(api_row.get("country") or "").strip().upper() + coverage = coverage_by_key.get((pkg.casefold(), country)) if pkg and country else None + records.append( + { + "date": str(api_row.get("date") or ""), + "campaign_id": str(api_row.get("campaign_id") or ""), + "campaign_name": campaign_name, + "pkg": pkg, + "country": country, + "impressions": int(float(api_row.get("impressions") or 0)), + "clicks": int(float(api_row.get("clicks") or 0)), + "conversions": int(float(api_row.get("conversions") or 0)), + "cost": round(float(api_row.get("cost") or 0), 4), + "order_match": coverage is not None, + "adpingids": list(coverage.get("adpingids") or []) if coverage else [], + "order_statuses": list(coverage.get("order_statuses") or []) if coverage else [], + "listed_in_taurusx_orders": bool(coverage and coverage.get("target_present")), + } + ) + + records.sort(key=lambda row: (row["date"], row["cost"], row["clicks"]), reverse=True) + fetched_at = datetime.now(timezone(timedelta(hours=8))).isoformat(timespec="seconds") + return { + "meta": { + "source": API_URL, + "timezone": TIMEZONE, + "start_date": start_date.isoformat(), + "end_date": end_date.isoformat(), + "fetched_at": fetched_at, + "rows": len(records), + "campaigns": len({row["campaign_id"] for row in records}), + "pkg_country_count": len({(row["pkg"].casefold(), row["country"]) for row in records if row["pkg"]}), + "countries": len({row["country"] for row in records if row["country"]}), + "matched_order_rows": sum(row["order_match"] for row in records), + "unmatched_order_rows": sum(not row["order_match"] for row in records), + "impressions": sum(row["impressions"] for row in records), + "clicks": sum(row["clicks"] for row in records), + "conversions": sum(row["conversions"] for row in records), + "cost": round(sum(row["cost"] for row in records), 4), + }, + "records": records, + } + + +def atomic_write_json(path: Path, payload: dict[str, Any]) -> None: + with tempfile.NamedTemporaryFile("w", encoding="utf-8", dir=path.parent, delete=False) as handle: + json.dump(payload, handle, ensure_ascii=False, indent=2) + handle.write("\n") + temporary_path = Path(handle.name) + temporary_path.replace(path) + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--data-file", type=Path, default=Path(__file__).with_name("data.json")) + parser.add_argument("--days", type=int, default=7, choices=range(1, 8), metavar="1-7") + parser.add_argument("--end-date", type=date.fromisoformat, help="Last report date; defaults to yesterday in UTC+8") + args = parser.parse_args() + + access_key = os.environ.get("TAURUSX_ACCESS_KEY", "").strip() + secret_key = os.environ.get("TAURUSX_SECRET_KEY", "").strip() + if not access_key or not secret_key: + raise SystemExit("TAURUSX_ACCESS_KEY and TAURUSX_SECRET_KEY environment variables are required") + if not args.data_file.is_file(): + raise SystemExit(f"Report data file not found: {args.data_file}") + + utc8_today = datetime.now(timezone(timedelta(hours=8))).date() + end_date = args.end_date or (utc8_today - timedelta(days=1)) + start_date = end_date - timedelta(days=args.days - 1) + report_payload = json.loads(args.data_file.read_text(encoding="utf-8")) + api_rows = request_performance(access_key, secret_key, start_date, end_date) + report_payload["taurusx_perf"] = build_dataset(api_rows, report_payload, start_date, end_date) + atomic_write_json(args.data_file, report_payload) + meta = report_payload["taurusx_perf"]["meta"] + print( + f"Updated {args.data_file}: {meta['rows']} TaurusX rows, " + f"{meta['matched_order_rows']} matched orders, {meta['start_date']}..{meta['end_date']}" + ) + + +if __name__ == "__main__": + main() diff --git a/index.html b/index.html index 647b6a0..43131dc 100644 --- a/index.html +++ b/index.html @@ -697,6 +697,165 @@ document.body.append(link); link.click(); link.remove(); URL.revokeObjectURL(url); } + const txState = { filtered: [], page: 1 }; + + function renderTaurusxPerf() { + const data = state.data.taurusx_perf; + if (!data || !Array.isArray(data.records)) return; + const panel = el('section', 'panel workspace'); + panel.id = 'taurusxPerfPanel'; + const header = el('div', 'workspace-head'); + const head = el('div', 'panel-head'); + const title = el('div'); + title.append( + el('h2', '', 'TaurusX 近 7 日投放表现'), + el('div', 'panel-desc', `${data.meta.start_date} 至 ${data.meta.end_date} · UTC${data.meta.timezone} · 拉取于 ${formatTime(data.meta.fetched_at)}`) + ); + head.append(title); + + const summary = el('section', 'kpis'); + summary.append( + kpi('Impressions', nf.format(data.meta.impressions), `${nf.format(data.meta.campaigns)} 个 Campaign`), + kpi('Clicks', nf.format(data.meta.clicks), `${nf.format(data.meta.pkg_country_count)} 个 Pkg_国家`), + kpi('Conversions', nf.format(data.meta.conversions), `${nf.format(data.meta.matched_order_rows)} 条已匹配订单`), + kpi('Cost', money(data.meta.cost), `${nf.format(data.meta.unmatched_order_rows)} 条订单未登记`) + ); + summary.style.marginBottom = '16px'; + + const filters = el('div', 'filters'); + filters.style.gridTemplateColumns = 'minmax(210px, 1.2fr) repeat(4, minmax(125px, .55fr)) auto'; + const search = el('input', 'control'); + search.id = 'txSearch'; search.type = 'search'; search.placeholder = '搜索 Campaign、Pkg、Adping ID'; search.autocomplete = 'off'; + const reportDate = selectControl('txDate', '全部日期'); + [...new Set(data.records.map(row => row.date))].sort().reverse().forEach(value => reportDate.append(new Option(value, value))); + const country = selectControl('txCountry', '全部国家'); + [...new Set(data.records.map(row => row.country))].sort().forEach(value => country.append(new Option(value, value))); + const orderMatch = selectControl('txOrderMatch', ''); + [['all','全部订单匹配'], ['matched','订单已登记'], ['unmatched','API有数据·订单未登记']] + .forEach(([value,label]) => orderMatch.append(new Option(label, value))); + const sort = selectControl('txSort', ''); + [ + ['date-desc','日期:新到旧'], ['cost-desc','Cost:高到低'], + ['impressions-desc','Impressions:高到低'], ['clicks-desc','Clicks:高到低'], + ['conversions-desc','Conversions:高到低'], ['pkg-asc','Pkg:A-Z'] + ].forEach(([value,label]) => sort.append(new Option(`排序 · ${label}`, value))); + const exportButton = el('button', 'button', '导出 TaurusX 数据'); + exportButton.type = 'button'; + filters.append(search, reportDate, country, orderMatch, sort, exportButton); + header.append(head, summary, filters); + panel.append(header, el('div', 'result-meta'), el('div', 'table-wrap'), el('div', 'pagination')); + document.getElementById('app').insertBefore(panel, document.querySelector('footer')); + + search.addEventListener('input', () => { txState.page = 1; applyTxFilters(); }); + [reportDate, country, orderMatch, sort].forEach(control => control.addEventListener('change', () => { txState.page = 1; applyTxFilters(); })); + exportButton.addEventListener('click', exportTxCsv); + applyTxFilters(); + } + + function applyTxFilters() { + const query = document.getElementById('txSearch').value.trim().toLocaleLowerCase(); + const reportDate = document.getElementById('txDate').value; + const country = document.getElementById('txCountry').value; + const orderMatch = document.getElementById('txOrderMatch').value; + const sort = document.getElementById('txSort').value; + txState.filtered = state.data.taurusx_perf.records.filter(row => { + const searchable = `${row.campaign_id} ${row.campaign_name} ${row.pkg} ${row.adpingids.join(' ')}`.toLocaleLowerCase(); + return (!query || searchable.includes(query)) + && (reportDate === 'all' || row.date === reportDate) + && (country === 'all' || row.country === country) + && (orderMatch === 'all' || (orderMatch === 'matched' ? row.order_match : !row.order_match)); + }); + const [field, direction] = sort.split('-'); + const multiplier = direction === 'asc' ? 1 : -1; + txState.filtered.sort((left, right) => { + const a = left[field]; const b = right[field]; + if (typeof a === 'string' || typeof b === 'string') { + return String(a).localeCompare(String(b), undefined, { numeric: true, sensitivity: 'base' }) * multiplier + || left.campaign_id.localeCompare(right.campaign_id, undefined, { numeric: true }); + } + return (Number(a) - Number(b)) * multiplier + || left.campaign_id.localeCompare(right.campaign_id, undefined, { numeric: true }); + }); + renderTxResults(); + } + + function renderTxResults() { + const panel = document.getElementById('taurusxPerfPanel'); + const totalPages = Math.max(1, Math.ceil(txState.filtered.length / PAGE_SIZE)); + txState.page = Math.min(txState.page, totalPages); + const start = (txState.page - 1) * PAGE_SIZE; + const rows = txState.filtered.slice(start, start + PAGE_SIZE); + const impressions = txState.filtered.reduce((sum, row) => sum + row.impressions, 0); + const clicks = txState.filtered.reduce((sum, row) => sum + row.clicks, 0); + const conversions = txState.filtered.reduce((sum, row) => sum + row.conversions, 0); + const cost = txState.filtered.reduce((sum, row) => sum + row.cost, 0); + const cards = panel.querySelectorAll('.kpi'); + const setCard = (index, value, sub) => { + cards[index].querySelector('.value').textContent = value; + cards[index].querySelector('.sub').textContent = sub; + }; + setCard(0, nf.format(impressions), `${nf.format(txState.filtered.length)} 条筛选明细`); + setCard(1, nf.format(clicks), `CTR ${impressions ? percent(clicks / impressions) : '-'}`); + setCard(2, nf.format(conversions), `CVR ${clicks ? percent(conversions / clicks) : '-'}`); + setCard(3, money(cost), `${nf.format(txState.filtered.filter(row => !row.order_match).length)} 条订单未登记`); + + const meta = panel.querySelector('.result-meta'); + meta.textContent = ''; + meta.append(el('span', '', `筛选结果 ${nf.format(txState.filtered.length)} 条`), el('span', '', `第 ${txState.page} / ${totalPages} 页`)); + const wrap = panel.querySelector('.table-wrap'); + wrap.textContent = ''; + const table = el('table'); + const thead = el('thead'); const header = el('tr'); + ['日期', 'Campaign ID', 'Campaign', 'Pkg', '国家', 'Adpingid', '订单状态', 'Impressions', 'Clicks', 'Conversions', 'Cost', '订单关联'] + .forEach(label => header.append(el('th', '', label))); + thead.append(header); table.append(thead); + const tbody = el('tbody'); + if (!rows.length) { + const cell = el('td', 'empty', '没有符合当前条件的 TaurusX 记录'); cell.colSpan = 12; + const row = el('tr'); row.append(cell); tbody.append(row); + } + rows.forEach(record => { + const row = el('tr'); + const country = el('td'); country.append(el('span', 'country-pill', record.country || '-')); + const status = el('td'); + const statusPills = el('div', 'platforms'); + (record.order_statuses.length ? record.order_statuses : ['未登记']).forEach(value => statusPills.append(el('span', 'platform-pill', value))); + status.append(statusPills); + const match = el('td'); + match.append(el('span', `badge ${record.order_match ? 'covered' : 'target-only'}`, record.order_match ? '订单已登记' : 'API有数据·订单未登记')); + row.append( + el('td', '', record.date), el('td', 'pkg', record.campaign_id), el('td', 'product', record.campaign_name), + el('td', 'pkg', record.pkg || '-'), country, el('td', 'pkg', record.adpingids.join(' / ') || '-'), status, + el('td', '', nf.format(record.impressions)), el('td', '', nf.format(record.clicks)), + el('td', '', nf.format(record.conversions)), el('td', '', money(record.cost)), match + ); + tbody.append(row); + }); + table.append(tbody); wrap.append(table); + + const pager = panel.querySelector('.pagination'); + pager.textContent = ''; + const prev = el('button', 'page-button', '‹'); prev.type = 'button'; prev.disabled = txState.page <= 1; + const next = el('button', 'page-button', '›'); next.type = 'button'; next.disabled = txState.page >= totalPages; + prev.addEventListener('click', () => { txState.page -= 1; renderTxResults(); panel.scrollIntoView({ behavior: 'smooth' }); }); + next.addEventListener('click', () => { txState.page += 1; renderTxResults(); panel.scrollIntoView({ behavior: 'smooth' }); }); + pager.append(prev, el('span', 'panel-desc', `${txState.page} / ${totalPages}`), next); + } + + function exportTxCsv() { + const headers = ['日期', 'Campaign ID', 'Campaign', 'Pkg', '国家', 'Adpingid', '订单状态', 'Impressions', 'Clicks', 'Conversions', 'Cost', '订单关联']; + const rows = [headers, ...txState.filtered.map(record => [ + record.date, record.campaign_id, record.campaign_name, record.pkg, record.country, + record.adpingids.join(' / '), record.order_statuses.join(' / '), record.impressions, + record.clicks, record.conversions, record.cost, record.order_match ? '订单已登记' : 'API有数据·订单未登记' + ])]; + const csv = '\ufeff' + rows.map(row => row.map(value => `"${String(value).replaceAll('"', '""')}"`).join(',')).join('\n'); + const url = URL.createObjectURL(new Blob([csv], { type: 'text/csv;charset=utf-8' })); + const link = document.createElement('a'); + link.href = url; link.download = `TaurusX近7日_${new Date().toISOString().slice(0,10)}.csv`; + document.body.append(link); link.click(); link.remove(); URL.revokeObjectURL(url); + } + fetch(`data.json?v=${Date.now()}`, { cache: 'no-store' }) .then(response => { if (!response.ok) throw new Error(`HTTP ${response.status}`); @@ -707,6 +866,7 @@ state.data = data; renderShell(); renderMtg1013(); + renderTaurusxPerf(); }) .catch(error => { const app = document.getElementById('app');