diff --git a/README.md b/README.md index 0863f00..3798e17 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ - неизвестное значение отбрасывается, отсутствующее — заменяется на `default`. Ненастроенные параметры (`utm_source`, `keyword`, `subid` и любые другие) проходят как есть. Перед переходом -Preland всегда формирует полный resolved-набор своих семи меток: явное допустимое значение остаётся, `rnd` +Preland всегда формирует полный resolved-набор своих восьми меток: явное допустимое значение остаётся, `rnd` разрешается по весам, отсутствующее получает `default`. Вместе с внешними рекламными параметрами этот набор уходит в `claim`, а затем сайт переносит его в `upscale`; ни один из семи параметров не должен пропадать только потому, что был назначен default. @@ -33,6 +33,7 @@ Preland всегда формирует полный resolved-набор сво | `bchoice` | попап выбора банка (`a` — показать) | сайт, оплата (#44) | | `chb` | галочки согласия на странице оплаты (`no` — не обязательны) | сайт, оплата | | `tp` | группа тарифов | сайт, cpanel «Группы тарифов (tp)» | +| `focus` | первоначальная область лупы Join: `center`/`face` | сайт, cpanel после `tp` | ### Загрузка и переход на сайт diff --git a/config.json b/config.json index 62063b9..c31a200 100644 --- a/config.json +++ b/config.json @@ -57,6 +57,13 @@ "2": 1 }, "default": "1" + }, + "focus": { + "weights": { + "center": 1, + "face": 0 + }, + "default": "center" } } } diff --git a/docs/superpowers/plans/2026-10-17-stage-picker-utm-demo-structure.md b/docs/superpowers/plans/2026-10-17-stage-picker-utm-demo-structure.md index d3fbb71..e547b44 100644 --- a/docs/superpowers/plans/2026-10-17-stage-picker-utm-demo-structure.md +++ b/docs/superpowers/plans/2026-10-17-stage-picker-utm-demo-structure.md @@ -13,7 +13,7 @@ ## Global Constraints - Публиковать только ветку `staging`; `main` и production-домены не менять. -- В переходе сохранять семь параметров `indpic`, `theme`, `degr`, `registration`, `bchoice`, `chb`, `tp` и все внешние scalar query-параметры, кроме `key`. +- В переходе сохранять восемь параметров `indpic`, `theme`, `degr`, `registration`, `bchoice`, `chb`, `tp`, `focus` и все внешние scalar query-параметры, кроме `key`. - Поддерживаемые picker-форматы определяются тем же API contract, что и Index; drop остаётся server-side content gate. - Ассеты не конвертировать и не переименовывать; переместить без потери файлов. diff --git a/tests/check-utm-redirect-contract.php b/tests/check-utm-redirect-contract.php index 37aa2a7..a068466 100644 --- a/tests/check-utm-redirect-contract.php +++ b/tests/check-utm-redirect-contract.php @@ -38,6 +38,7 @@ $expected = [ 'bchoice' => 'a', 'chb' => 'b', 'tp' => '1', + 'focus' => 'center', 'utm_source' => 'stage-ad', 'subid' => 'click-42', ]; diff --git a/tests/check-versioned-stage-config.php b/tests/check-versioned-stage-config.php index 6664953..dc04f3d 100644 --- a/tests/check-versioned-stage-config.php +++ b/tests/check-versioned-stage-config.php @@ -25,6 +25,7 @@ if (!is_array($config)) { 'bchoice' => ['a' => 1, 'b' => 0, 'default' => 'a'], 'chb' => ['a' => 1, 'b' => 0, 'default' => 'b'], 'tp' => ['1' => 0, '2' => 1, 'default' => '1'], + 'focus' => ['center' => 1, 'face' => 0, 'default' => 'center'], ]; if (($config['host'] ?? null) !== $expected['host']) {