Merge pull request #549 from AirP0WeR/feat/campaign-slug-on-guest-purchase

feat(landing): отправлять слаг рекламной кампании при гостевой покупке
This commit is contained in:
Fringg
2026-08-17 21:23:35 +03:00
2 changed files with 11 additions and 0 deletions

View File

@@ -114,6 +114,10 @@ export interface PurchaseRequest {
yandex_cid?: string;
referrer?: string;
subid?: string;
// Слаг рекламной кампании: без него покупка гостем не попадает в статистику
// кампании и не даёт её бонус — auth-флоу, который привязывает кампанию
// обычно, на этом пути не срабатывает.
campaign_slug?: string;
}
export interface PurchaseResponse {

View File

@@ -29,6 +29,7 @@ import { CheckCircleIcon, CheckIcon, DevicesIcon, DownloadIcon } from '@/compone
import LanguageSwitcher from '../components/LanguageSwitcher';
import { cn } from '../lib/utils';
import { getApiErrorMessage } from '../utils/api-error';
import { getPendingCampaignSlug } from '../utils/campaign';
import { formatPrice } from '../utils/format';
import { setFavicon, letterFaviconDataUri, roundedFaviconDataUri } from '../utils/favicon';
import { useCurrency } from '../hooks/useCurrency';
@@ -1085,6 +1086,12 @@ export default function QuickPurchase() {
const subid = sessionStorage.getItem('landing_subid');
if (subid) (data as unknown as Record<string, unknown>).subid = subid;
// Слаг рекламной кампании захватил captureCampaignFromUrl() при заходе по
// рекламной ссылке. Читаем БЕЗ потребления: гость может позже войти в
// кабинет, и там привязка должна остаться возможной.
const campaignSlug = getPendingCampaignSlug();
if (campaignSlug) data.campaign_slug = campaignSlug;
// Fire landing-specific click goal
if (config?.analytics_click_enabled && config?.analytics_click_goal) {
try {