Дмитрий
7d3ed2f6eb
feat(реклама): Часть 6 — списание по факту показов + клиентский отчёт по показам
...
CampaignImpressionCharger: списание с рекламного кошелька за фактически
показанные показы (показано×120/1000, дельта от уже списанного, идемпотентно
по external_key yandex-imp:{id}:{billable}), режет по оплаченному, статус
completed при достижении оплаченного; bcmath, 6 boundary-тестов. Клиентский
отчёт CampaignReportDialog переведён с недельного бюджета на показы
(оплачено/показано/частота/потрачено); статусы queued/completed в списке и
отчёте. Маржа/yandex_cost клиенту не видны. Бэкенд 105/105, фронт 104/104.
Отложено до Части 4 (нужен Директ): джоб, тянущий фактические показы из отчёта
Директа и зовущий CampaignImpressionCharger; campaigns.suspend при стопе;
переделка админ-маржи с наценки-% на реальный yandex_cost_rub.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-26 16:07:19 +03:00
..
2026-05-08 17:32:58 +03:00
2026-07-25 11:12:36 +03:00
2026-06-17 05:17:12 +03:00
2026-06-30 04:57:58 +03:00
2026-06-17 05:17:12 +03:00
2026-06-17 05:17:12 +03:00
2026-05-17 07:13:50 +03:00
2026-07-16 19:06:39 +03:00
2026-05-09 05:33:21 +03:00
2026-06-17 05:17:12 +03:00
2026-05-17 07:13:50 +03:00
2026-05-17 07:13:50 +03:00
2026-06-29 11:32:21 +03:00
2026-06-28 08:42:19 +03:00
2026-06-28 10:14:47 +03:00
2026-07-08 15:29:40 +03:00
2026-06-17 05:17:12 +03:00
2026-06-28 12:59:01 +03:00
2026-06-26 04:27:32 +03:00
2026-06-25 18:52:39 +03:00
2026-06-17 05:17:12 +03:00
2026-06-17 05:17:12 +03:00
2026-05-17 08:18:44 +03:00
2026-05-18 03:42:41 +03:00
2026-05-18 03:42:41 +03:00
2026-06-28 12:06:56 +03:00
2026-06-28 12:06:56 +03:00
2026-07-14 05:03:38 +03:00
2026-07-26 15:45:53 +03:00
2026-07-25 21:45:09 +03:00
2026-07-26 15:45:53 +03:00
2026-07-25 21:45:09 +03:00
2026-07-26 16:07:19 +03:00
2026-07-25 10:42:48 +03:00
2026-07-26 15:45:53 +03:00
2026-07-26 15:45:53 +03:00
2026-07-25 00:57:03 +03:00
2026-07-25 22:36:24 +03:00
2026-07-25 10:54:16 +03:00
2026-07-25 22:00:50 +03:00
2026-07-25 22:00:50 +03:00
2026-07-25 02:17:43 +03:00
2026-06-17 05:17:12 +03:00
2026-07-07 17:50:36 +03:00
2026-06-19 11:29:46 +03:00
2026-05-28 09:52:42 +03:00
2026-07-25 22:00:50 +03:00
2026-06-19 11:29:46 +03:00
2026-07-25 22:00:50 +03:00
2026-05-17 03:28:05 +03:00
2026-06-18 23:33:26 +03:00
2026-06-18 23:33:26 +03:00
2026-07-20 16:47:19 +03:00
2026-07-02 12:04:16 +03:00
2026-07-02 12:04:16 +03:00
2026-06-28 15:41:07 +03:00
2026-06-28 15:53:36 +03:00
2026-07-05 09:02:40 +03:00
2026-07-08 07:56:30 +03:00
2026-07-01 18:27:00 +03:00
2026-06-30 04:18:46 +03:00
2026-06-30 04:18:46 +03:00
2026-06-28 15:22:36 +03:00
2026-06-28 15:33:20 +03:00
2026-07-14 13:14:49 +03:00
2026-07-05 06:40:10 +03:00
2026-07-08 07:56:30 +03:00
2026-06-30 04:18:46 +03:00
2026-06-23 03:47:19 +03:00
2026-06-25 12:21:55 +03:00
2026-05-26 20:39:21 +03:00
2026-06-29 11:32:21 +03:00
2026-07-14 13:14:49 +03:00
2026-06-23 09:06:46 +03:00
2026-07-02 12:04:16 +03:00
2026-06-28 12:59:01 +03:00
2026-05-23 18:46:22 +03:00
2026-07-05 06:22:48 +03:00
2026-07-05 06:08:53 +03:00
2026-05-17 03:33:51 +03:00
2026-07-04 18:32:16 +03:00
2026-07-25 20:32:58 +03:00
2026-05-12 10:06:08 +03:00
2026-06-25 12:28:38 +03:00
2026-06-27 12:47:49 +03:00
2026-05-12 20:23:51 +03:00
2026-06-17 13:30:46 +03:00
2026-06-17 05:17:12 +03:00
2026-06-28 12:59:01 +03:00
2026-06-25 12:54:32 +03:00
2026-06-17 05:17:12 +03:00
2026-07-08 07:56:30 +03:00
2026-05-18 03:42:40 +03:00
2026-05-18 03:42:40 +03:00
2026-06-19 11:29:35 +03:00
2026-07-08 18:57:07 +03:00
2026-06-28 12:59:01 +03:00
2026-05-12 09:49:37 +03:00
2026-05-12 20:23:51 +03:00
2026-06-27 12:47:49 +03:00
2026-06-28 12:59:01 +03:00
2026-07-02 12:04:16 +03:00
2026-07-13 14:04:49 +03:00
2026-07-06 10:54:50 +03:00
2026-07-05 15:33:31 +03:00
2026-07-04 19:07:59 +03:00
2026-07-05 13:52:43 +03:00
2026-05-12 20:23:51 +03:00
2026-05-17 02:23:26 +03:00
2026-06-25 13:41:27 +03:00
2026-07-12 13:18:18 +03:00
2026-06-25 12:25:04 +03:00
2026-07-25 20:42:19 +03:00
2026-07-25 20:32:58 +03:00
2026-05-16 10:09:29 +03:00
2026-06-19 17:09:59 +03:00
2026-06-17 05:17:12 +03:00
2026-06-27 10:23:55 +03:00
2026-06-29 11:32:21 +03:00
2026-06-28 12:59:01 +03:00
2026-07-14 08:58:33 +03:00
2026-05-17 07:13:51 +03:00
2026-06-23 03:47:19 +03:00
2026-05-12 09:45:22 +03:00
2026-07-09 09:45:12 +03:00
2026-07-20 16:47:19 +03:00
2026-06-22 20:54:28 +03:00
2026-05-18 03:42:41 +03:00
2026-06-28 12:59:01 +03:00
2026-05-12 15:20:18 +03:00
2026-07-12 13:10:00 +03:00
2026-07-20 16:47:19 +03:00
2026-07-20 16:47:19 +03:00
2026-05-12 20:23:51 +03:00
2026-05-18 03:42:41 +03:00
2026-07-02 12:04:16 +03:00
2026-06-24 16:07:02 +03:00
2026-06-24 16:07:02 +03:00
2026-07-14 13:14:49 +03:00
2026-07-02 12:04:16 +03:00
2026-05-12 22:14:51 +03:00
2026-05-09 11:27:57 +03:00
2026-06-19 11:29:46 +03:00
2026-05-12 09:59:22 +03:00
2026-07-08 15:29:40 +03:00
2026-06-17 05:17:12 +03:00
2026-06-23 11:32:42 +03:00
2026-07-15 21:41:53 +03:00
2026-05-21 08:37:26 +03:00
2026-06-25 19:08:47 +03:00
2026-07-15 21:41:53 +03:00
2026-05-18 14:33:33 +03:00
2026-05-18 03:41:46 +03:00
2026-05-21 08:37:26 +03:00
2026-07-02 12:04:16 +03:00
2026-06-28 12:59:01 +03:00
2026-05-21 08:37:26 +03:00
2026-07-14 13:14:49 +03:00
2026-07-18 12:29:04 +03:00
2026-07-18 10:57:15 +03:00
2026-07-17 08:31:12 +03:00
2026-05-13 13:30:51 +03:00
2026-07-05 06:08:53 +03:00
2026-07-07 16:27:44 +03:00
2026-06-17 07:22:08 +03:00
2026-06-24 16:48:35 +03:00
2026-05-16 12:45:51 +03:00
2026-05-16 12:45:51 +03:00
2026-07-14 09:36:32 +03:00
2026-05-17 08:18:43 +03:00
2026-07-08 18:57:07 +03:00
2026-06-27 13:43:10 +03:00
2026-07-05 04:31:19 +03:00
2026-07-02 18:22:49 +03:00
2026-07-18 15:20:44 +03:00
2026-07-02 19:50:24 +03:00
2026-07-02 19:50:24 +03:00
2026-07-02 20:29:32 +03:00
2026-07-02 20:45:17 +03:00
2026-06-30 13:27:04 +03:00
2026-07-02 21:40:59 +03:00
2026-07-18 14:29:18 +03:00
2026-07-02 20:29:32 +03:00
2026-07-18 15:20:44 +03:00
2026-07-18 14:29:18 +03:00
2026-07-23 13:54:09 +03:00
2026-07-18 12:29:04 +03:00
2026-07-18 14:00:55 +03:00
2026-07-18 15:59:56 +03:00
2026-07-15 16:46:54 +03:00
2026-07-18 10:57:15 +03:00
2026-07-02 18:22:49 +03:00
2026-07-22 18:39:44 +03:00
2026-07-05 19:25:19 +03:00
2026-07-25 13:05:57 +03:00
2026-06-28 12:59:01 +03:00
2026-05-09 05:33:21 +03:00
2026-05-12 20:23:51 +03:00
2026-05-09 05:33:21 +03:00
2026-05-23 20:02:38 +03:00
2026-06-17 03:17:32 +03:00
2026-06-17 03:17:32 +03:00
2026-05-23 18:46:23 +03:00
2026-05-12 09:15:29 +03:00
2026-06-22 21:50:13 +03:00
2026-06-29 11:32:21 +03:00
2026-07-12 12:56:22 +03:00
2026-07-10 08:49:40 +03:00
2026-07-20 16:47:19 +03:00
2026-07-08 18:57:07 +03:00
2026-05-13 01:46:30 +03:00
2026-05-17 02:23:26 +03:00
2026-05-12 20:23:51 +03:00
2026-05-18 03:42:41 +03:00
2026-07-25 20:32:58 +03:00
2026-05-12 20:23:51 +03:00
2026-05-12 09:37:43 +03:00
2026-05-12 11:57:35 +03:00
2026-07-07 17:45:37 +03:00
2026-07-03 17:34:03 +03:00
2026-05-09 10:17:51 +03:00
2026-05-09 03:43:58 +03:00
2026-05-18 03:42:41 +03:00
2026-07-21 16:27:05 +03:00
2026-05-12 20:23:51 +03:00
2026-07-23 13:54:09 +03:00
2026-07-12 13:10:00 +03:00