Астана құрылыс компаниялары үшін Google Ads лидтерін скорингтеу: Vertex AI мен BigQuery арқылы фродты нақты уақытта қалай сүземіз
Құрылыс компанияларының бас ауруы: Лидтер бар, бірақ сатылым жоқ
Астананың жылжымайтын мүлік нарығы — нағыз еттартқыш. Бәсекелестік шектен шыққан, Google Ads-те «сол жақ жағалаудан пәтер сатып алу» сияқты сұраулар бойынша клик бағасы ғарышқа ұшып кеткен, ал маркетинг бюджеттері ондаған миллион теңгемен өлшенеді. Сіз Performance Max кампанияларын баптайсыз, лидтер судай ағып түседі, маркетологтар шампан ашады. Бірақ бір аптадан кейін сату бөлімінің басшысы (РОП) қабағын түйіп келіп: «Сендердің лидтерің — қоқыс!» деп мәлімдейді.
Бұл неліктен орын алады? Колл-орталық күніне жүздеген өтінімдерге қоңырау шалып, қатал шындықпен бетпе-бет келеді:
- «Мен жай ғана көріп отырғам» — ТК-ның (ЖК) әдемі суретін басып қызықтағандар.
- Оқушылар мен фейктер —
+7 777 777 77 77типті нөмірлер немесе «Бэтменнен» келген өтінімдер. - Боттар мен фрод (скликивание) — бәсекелестер ұйықтап жатқан жоқ, ал Google алгоритмдері кейде арзан конверсияларды табуға тырысып, нағыз қоқысты лақтырады.
- Мақсатты емес (нецелевые) — 15 миллионға студия іздеп жүріп, 80 миллион тұратын бизнес-класстағы 4 бөлмелі пәтерге өтінім қалдырғандар.
Нәтижесінде қымбат сату менеджерлері қоқысты қоңырау шалуға уақыттарының 70%-ын жұмсайды. Лидтен көрсетілімге (показ) дейінгі конверсия төмендейді, сату бөлімінің мотивациясы нөлге ұмтылады, ал маркетинг сөгіс естиді. Таныс жағдай ма?
Астанадағы жетекші құрылыс компанияларының бірі бізге дәл осындай мәселемен келді. Міндет өте өршіл болды: колл-орталық тек «ыстық» және төлем қабілеті бар клиенттерге ғана қоңырау шалуы үшін, ал «қоқыс» ұзақ SMS-шұңғымаға жіберілуі немесе мүлдем қабылданбауы үшін осы ағынды нақты уақыт режимінде (real-time) сүзуді үйрену керек болды. Содан біз ауыр артиллерияны — BigQuery мен Vertex AI-ді іске қосуды ұйғардық.
Шешім архитектурасы: Кликтен бастап 3 секунд ішіндегі скорға дейін
Біз Python-да кастомды ML-серверлері бар велосипед ойлап таппадық. Бізге Enterprise-деңгейі қажет болды: масштабталатын, сенімді және оңай қолдау көрсетілетін пайплайн. Google Cloud архитектурасы мінсіз сәйкес келді.
Бұл қалай жұмыс істейді (High-level):
- Шикі кликстримдерді жинау (GA4 + BigQuery): Біз Google Analytics 4 (GA4)-ті BigQuery-мен байланыстырдық. Пайдаланушының әрбір қимылы (клик, скролл, сайттағы уақыт, utm-белгілер) қоймаға нақты уақыт режимінде ұшып түседі (Streaming Export).
- Деректерді байыту (CRM): CRM жүйесінен (amoCRM) сол BigQuery-ге тұрақты түрде тарихи деректер түсіріледі: қандай телефон нөмірлері немесе Client ID-лер нәтижесінде пәтер сатып алды, қайсысы бас тартты және қандай себеппен.
- Feature Engineering (dbt): Біз шикі логтарды ұқыпты деректер витриналарына — біздің модельге арналған фичаларға трансформациялау үшін dbt (Data Build Tool) қолданамыз.
- Модельді оқыту (Vertex AI): Біз бұл фичаларды Vertex AI AutoML Tables-ке бердік. Модель өзі алгоритмдерді (XGBoost, нейрондық желілер) таңдап, сатып алу ықтималдығын (0-ден 1-ге дейін) болжауды үйренді.
- Real-time Inference (Cloud Functions): Жаңа лид түскен кезде вебхук іске қосылады. Cloud Function лезде юзердің жаңа фичаларын алу үшін BigQuery-ге кіреді, Vertex AI API-ге сұрау жібереді, скоринг-балды алады да, оны CRM-дегі мәміле (сделка) карточкасына жазады.
1-кезең: Датасетті дайындаймыз және фичаларды жинаймыз (Feature Engineering)
Машиналық оқыту (ML) — бұл 80% деректермен жұмыс және 20% математика. Егер модельге қоқыс салсаңыз, шығыста да қоқыс болады (Garbage In, Garbage Out). Сондықтан біз дұрыс фичаларға (белгілерге) назар аудардық.
Біз әрбір пайдаланушы (Client ID) бойынша нені талдадық:
- Мінез-құлық: Қарау тереңдігі, жоспарлау (планировка) беттеріндегі уақыт (егер юзер 4 бөлмелі пәтердің жоспарында ұзақ отырса — бұл күшті сигнал), ипотекалық калькулятормен өзара әрекеттесу (бастапқы жарнаны енгізді ме?).
- Техникалық: Құрылғы типі (iPhone 15 Pro Max па әлде 2018 жылғы ескі Android па?), браузер, экран ажыратымдылығы.
- Көздер (Источники): UTM-белгілер, кілт сөз, жарнамалық кампания.
- Уақыт: Тәулік уақыты (түнгі сағат 3-тегі лидтер жиі адекватты емес болып шығады) және апта күні.
Осы сұлулықтың бәрін біз BigQuery-де SQL-сұраулары арқылы жинадық. Мысалы, сайттағы уақытты есептеу:
-- Пайдаланушы фичаларын агрегациялауға арналған dbt моделі
SELECT
user_pseudo_id AS client_id,
COUNT(event_name) AS total_events,
SUM(CASE WHEN event_name = \'view_item\' THEN 1 ELSE 0 END) AS layout_views,
SUM(CASE WHEN event_name = \'calculator_use\' THEN 1 ELSE 0 END) AS calculator_uses,
TIMESTAMP_DIFF(MAX(event_timestamp), MIN(event_timestamp), SECOND) AS session_duration_seconds,
device.category AS device_category,
device.mobile_brand_name AS phone_brand
FROM
`project.analytics_123456789.events_*`
GROUP BY
client_id,
device_category,
phone_brand2-кезең: Деректерді Vertex AI AutoML-ге береміз
Бұдан әрі Google Cloud сиқыры басталады. Бізге TensorFlow немесе scikit-learn-де жүздеген жол код жазудың қажеті болмады. Біз оқыту процесін автоматтандыратын құрал — Vertex AI AutoML Tables қолдандық.
Көз ретінде BigQuery кестесін көрсеттік. Мақсатты айнымалы (Target) is_success_deal бағаны болды (1 — сатып алды, 0 — қоқыс). AutoML деректерді ондаған архитектуралар (Gradient Boosting, Neural Nets) арқылы өзі өткізді, кросс-валидация жасады, гиперпараметрлерді баптады және бізге ең жақсы модельді берді.
Feature Importance (белгілердің маңыздылығы) кезеңінде біз анықтаған модельден алынған қызықты инсайттар:
- Ипотекалық калькулятор: Калькулятордағы жүгірткілерді 3 реттен артық жылжытқан адамдардың конверсия ықтималдығы 4 есе жоғары болды.
- Құрылғы типі: Соңғы iPhone үлгілері бар пайдаланушылар премиум-сегментке 2.5 есе жиі конверсияланды (бұған кім күмәнданған).
- Өтінімге дейінгі уақыт: Егер адам сайтта 10 секундтан аз уақыт өткізіп, өтінім қалдырса — бұл 100% дерлік ықтималдықпен фрод немесе бот.
3-кезең: Циклды Cloud Functions арқылы тұйықтаймыз
Модель оқытылып, Endpoint-қа (API) деплой жасалды. Енді оны бизнес-процеске енгізу керек.
Біз Google Cloud Functions үшін Node.js-те микросервис жаздық. Пайдаланушы сайтта (форма арқылы) өтінім қалдырған кезде, фронтенд біздің функциямызға телефон нөмірі мен client_id-і бар webhook жібереді.
// Лидті скорингтеуге арналған Cloud Function фрагменті
const { aiplatform } = require(\'@google-cloud/aiplatform\');
const { BigQuery } = require(\'@google-cloud/bigquery\');
const bq = new BigQuery();
const client = new aiplatform.v1.PredictionServiceClient({
apiEndpoint: \'europe-west4-aiplatform.googleapis.com\',
});
exports.scoreLead = async (req, res) => {
const { clientId, phone, crmLeadId } = req.body;
// 1. Юзердің жаңа фичалары үшін BigQuery-ге барамыз
const query = `SELECT * FROM \`project.dbt_prod.user_features\` WHERE client_id = @clientId`;
const [rows] = await bq.query({ query, params: { clientId } });
if (!rows || rows.length === 0) return res.status(200).send(\'No data\');
const features = rows[0];
// 2. Фичаларды Vertex AI-ге жібереміз
const endpoint = `projects/PROJECT_ID/locations/europe-west4/endpoints/ENDPOINT_ID`;
const instance = {
structValue: {
fields: {
layout_views: { numberValue: features.layout_views },
calculator_uses: { numberValue: features.calculator_uses },
session_duration: { numberValue: features.session_duration_seconds },
phone_brand: { stringValue: features.phone_brand }
// ...
}
}
};
const [response] = await client.predict({
endpoint,
instances: [instance],
});
// 3. Ықтималдықты аламыз (score 0-ден 1-ге дейін)
const predictionResult = response.predictions[0].structValue.fields;
const score = predictionResult.classes.listValue.values[0].numberValue;
// 4. Нәтижені кері CRM-ге (amoCRM) жібереміз
await updateCrmLead(crmLeadId, {
\'score\': score,
\'priority\': score > 0.7 ? \'HIGH\' : \'LOW\'
});
res.status(200).send({ score });
};Енді CRM-дегі менеджер жай ғана жаңа лидті емес, бағасы мен түстік белгісі бар лидті көреді (Қызыл — қоқыс, Сары — жылы, Жасыл — VIP). Жасыл лидтер бірден ең тәжірибелі «клоузерлерге» түседі және 1 минут ішінде қоңырау шалынады. Қызылдар (бағасы < 0.2) колл-орталыққа мүлдем түспейді — олар бойынша WhatsApp-таратылымның автоматты тізбегі іске қосылады.
Сегменттер бойынша көрсетілімге (кездесуге) дейінгі конверсия
ML-скоринг енгізілгеннен кейін қоңырау шалу тиімділігі қалай өзгерді.
Қорытынды: Қоңыраулар аз, ақша көп
ML-скорингті енгізу біздің клиент үшін ойынды толығымен өзгертті.
- Мәмілеге дейінгі конверсияның өсуі: Лидтен кездесуге (көрсетілімге) дейінгі конверсия 42%-ға өсті, өйткені менеджерлер энергиясын «ауаға» жұмсауды тоқтатып, шынымен сатып алғысы келетіндерге назар аударды.
- Сату бөлімінің (ОП) уақытын үнемдеу: Колл-орталыққа түсетін жүктеме 35%-ға төмендеді. Қажу аз, сыйлықақысы бар бақытты менеджерлер көп.
- Жарнаманы оңтайландыру: Біз одан әрі ілгерілеп, скорингтік балдарды Measurement Protocol (Offline Conversions ретінде) арқылы Google Ads-ке кері жібере бастадық. Енді Google алгоритмдері бізге жай ғана арзан өтінімдер емес, жоғары скоры бар өтінімдер қажет екенін түсінеді. Контекстік-медиялық желідегі (КМЖ) фрод-алаңқайлар өздігінен түсіп қалды.
Скорингтік балдарды бөлу (Тығыздық)
Лидтердің қандай үлесі белгілі бір ықтималдық балдарын алады.
Түйіндеме
Лидтер форманы жіберу фактісі бойынша ғана бағаланатын дәуір артта қалды. Егер сіз күрделі әрі қымбат өнімдерді (жылжымайтын мүлік, авто, B2B SaaS) сатсаңыз, менеджердің әрбір қоңырауы ақша тұрады. Google Cloud экожүйесі (GA4 + BigQuery + Vertex AI) Data Scientist-тер штатын үрлемей-ақ, бірнеше апта ішінде Enterprise-шешім құруға мүмкіндік береді.
Күнделікті рутинаны автоматтандырыңыз, математикаға сеніңіз, ал менеджерлеріңіз анықтамалық бюро болып жұмыс істегенше, мәмілелерді жапсын!

Рустам Шарафутдинов
Google Cloud архитектурасы саласындағы сарапшы және 15 жылдан астам тәжірибесі бар Senior Full-Stack әзірлеушісі. Ақауға төзімді архитектураларға, жоғары жүктемелі жобаларды оңтайландыруға және AI (Vertex AI) интеграциясына маманданған.