Ela.kpi.ua



НАЦ?ОНАЛЬНИЙ ТЕХН?ЧНИЙ УН?ВЕРСИТЕТ УКРА?НИ?КИ?ВСЬКИЙ ПОЛ?ТЕХН?ЧНИЙ ?НСТИТУТ?мен? ?ГОРЯ С?КОРСЬКОГО??нститут прикладного системного анал?зуКафедра математичних метод?в системного анал?зуДо захисту допущеноВ. о. зав?дувача кафедри__________ О.Л. Тимощук?___?_____________20__ р.Дипломна роботана здобуття ступеня бакалавраза осв?тньо-профес?йною програмою ?Системний анал?з ? управл?ння?спец?альност??124 "Системний анал?з"на тему: ?Системний анал?з моделей маркетингово? атрибуц???Виконав:Студент IV курсу, групи КА-61Колда?в Дмитро Андр?йовичКер?вник:професор, д.т.н., Данилов Валер?й Якович __________Консультант з економ?чного розд?лу:доцент, к.е.н., Шевчук Олена Анатол??вна __________ Консультант з нормоконтролю:доцент, к.т.н., Коваленко Анатол?й ?п?фанович __________Рецензент:доцент, к.т.н., Кисельов Геннад?й Дмитрович __________Засв?дчую, що у ц?й дипломн?й робот? нема? запозичень з праць ?нших автор?в без в?дпов?дних посилань.Студент (-ка) _____________Ки?в – 2020 рокуНац?ональний техн?чний ун?верситет Укра?ни?Ки?вський пол?техн?чний ?нститут ?мен? ?горя С?корського??нститут прикладного системного анал?зуКафедра математичних метод?в системного анал?зуР?вень вищо? осв?ти – перший (бакалаврський)Спец?альн?сть – 124 "Системний анал?з"Осв?тньо-профес?йна програма ?Системний анал?з ? управл?ння?ЗАТВЕРДЖУЮ В. о. зав?дувача кафедри __________ О.Л. Тимощук ?___?_____________20__ р.ЗАВДАННЯна дипломну роботу студентуКолда?ву Дмитру Андр?йовичу1. Тема роботи ?Системний анал?з моделей маркетингово? атрибуц???, кер?вник роботи Данилов Валер?й Якович, професор, д.т.н, затверджен? наказом по ун?верситету в?д ?___?_________ 20__ р. №_____2. Терм?н подання студентом роботи 3. Вих?дн? дан? до роботи: Статистичн? маркетингов? дан? в?дносно повед?нки користувача на веб-сайт?4. Зм?ст роботи: Огляд та анал?з п?дход?в до оц?нки ефективност? маркетингу, конструювання системи для обробки та анал?зу маркетингових даних5. Перел?к ?люстративного матер?алу (?з зазначенням плакат?в, презентац?й тощо) 1. Основн? поняття маркетингу 2. Концепц?я р?зних моделей атрибуц?? 3. Результати роботи програмного забезпечення 4. Слайди презентац?? 6. Консультанти розд?л?в роботиРозд?лПр?звище, ?н?ц?али та посада консультантаП?дпис, датазавдання видавзавданняприйнявЕконом?чнийШевчук О.А., доцент7. Дата видач? завдання: 14.04.2020 Календарний план№ з/пНазва етап?в виконання дипломно? роботиТерм?н виконання етап?в роботиПрим?тка1Затвердження теми ДР14.04.2020 – 21.04.2020виконано2Ознайомлення з? структурою БДР зг?дно з Положенням про державну атестац?ю студент?в НТУУ ?КП? ?м. ?. С?корського?21.04.2020 – 28.04.2020виконано3Ознайомлення з ДСТУ 3008-95 та стандарти ?СПД28.04.2020 – 05.05.2020виконано4Проведення анал?зу предметно? област? в?дпов?дно до теми БДР та узгодження результат?в з кер?вником05.05.2020 – 12.05.2020виконано5Робота над базовою арх?тектурою програмного продукту05.05.2020 – 22.05.2020виконано6Розробка серв?су для програмного продукту15.05.2020 – 22.05.2020виконано7Анал?з отриманих результат?в22.05.2020 – 27.05.2020виконано8Оформлення БДР22.05.2020 – 27.05.2020виконаноСтудент Колда?в Дмитро Андр?йовичКер?вник Данилов Валер?й Якович РЕФЕРАТДипломна робота: 104 c., 29 рис., 18 табл., 2 дод., 29 джерел.МАРКЕТИНГ, МОДЕЛЬ МАРКЕТИНГ-М?КС, АТРИБУЦ?Я, КОНВЕРС?Я, ВОРОНКА, ЛАНЦЮГИ МАРКОВА.Темою роботи ? анал?з моделей ? п?дход?в до оц?нки ефективност? ?нтернет-реклами. Об’?ктом досл?дження ? розпод?л прибутку отриманого в результат? маркетингово? д?яльност?. Предметом досл?дження ? модел? маркетингово? атрибуц?? та ?х в?дпов?дн?сть р?зним б?знес-моделямМетою дано? роботи ? побудова системи з використанням оптимально? модел? атрибуц?? для п?двищення ефективност? маркетингово? стратег?? компан??. Актуальн?сть роботи пов’язана ?з швидким ростом ринку ?нтернет реклами та в?дсутн?стю ун?ф?кованого п?дходу до атрибуц??. В результат? роботи було побудовано модель, що в?дпов?да? ус?м поставленим вимогам та справедливо оц?ню? вклад кожного маркетингового каналу залучення у прибуток компан??.?ABSTRACTTheme: “System analysis of marking attribution models”Bachelor’s thesis: 104 p., 29 figs, 18 tab., 2 appendix, 29 sources. MARKETING, MARKETING MIX MODEL, ATTRIBUTION, CONVERSION, HOPPER, MARKOV CHAINS.The theme of the work is the analysis of models and approaches to evaluating the effectiveness of internet advertising.The object of the study is the distribution of profits from marketing activities.The subject of the study is the models of marketing attribution and their compliance with different business modelsThe purpose of this work is to build a system using an optimal attribution model to increase the effectiveness of the company's marketing strategy.The urgency of the work is due to the rapid growth of the online advertising market and the lack of a unified approach to attribution.As a result of the work, a model was built that meets all the requirements and fairly assesses the contribution of each marketing channel to the involvement in the company’s profit.ЗМ?СТ TOC \o "1-3" \h \z \u ПЕРЕЛ?К СКОРОЧЕНЬ PAGEREF _Toc42793372 \h 8Вступ PAGEREF _Toc42793373 \h 9Розд?л 1 Маркетингове середовище PAGEREF _Toc42793374 \h 101.1 МММ PAGEREF _Toc42793375 \h 101.2 Складнощ? застосування МММ в сучасному середовищ? PAGEREF _Toc42793376 \h 141.3 Подорож користувача PAGEREF _Toc42793377 \h 161.4 Поняття атрибуц?? PAGEREF _Toc42793378 \h 18Висновки до Розд?лу 1 PAGEREF _Toc42793379 \h 19Розд?л 2 Модел? атрибуц?? PAGEREF _Toc42793380 \h 212.1 Види моделей атрибуц?? PAGEREF _Toc42793381 \h 212.2 Анал?з ? пор?вняння базових моделей атрибуц?? PAGEREF _Toc42793382 \h 222.3 Анал?з ? пор?вняння алгоритм?чних моделей атрибуц?? PAGEREF _Toc42793383 \h 272.3.1 Атрибуц?я на основ? даних PAGEREF _Toc42793384 \h 282.3.2 Атрибуц?я на основ? воронки PAGEREF _Toc42793385 \h 302.3.3 Атрибуц?я на основ? Ланцюг?в Маркова PAGEREF _Toc42793386 \h 332.4 Конструювання власно? модел? атрибуц?? PAGEREF _Toc42793387 \h 362.5 Поширен? помилки в атрибуц?? PAGEREF _Toc42793388 \h 37Висновки до Розд?лу 2 PAGEREF _Toc42793389 \h 40РОЗД?Л 3 АНАЛ?З ПРОГРАМНОГО ПРОДУКТУ PAGEREF _Toc42793390 \h 423.1 Формулювання вимог до програми PAGEREF _Toc42793391 \h 423.2 Розробка арх?тектури ? функц?онально? схеми програми PAGEREF _Toc42793392 \h 433.3 Виб?р ?нструментально? платформи для реал?зац?? програми, ?нструкц?я по експлуатац?? програми PAGEREF _Toc42793393 \h 433.4 Побудова системи PAGEREF _Toc42793394 \h 483.4.1 Попередня обробка даних PAGEREF _Toc42793395 \h 483.4.2 Модель за останн?м кл?ком PAGEREF _Toc42793396 \h 493.4.3 Модель на основ? воронки PAGEREF _Toc42793397 \h 503.4.4 Модель на основ? ланцюг?в Маркова PAGEREF _Toc42793398 \h 523.5 Анал?з результат?в PAGEREF _Toc42793399 \h 533.5.1 Анал?з результат?в роботи програми PAGEREF _Toc42793400 \h 543.5.2 Анал?з маркетингово? стратег?? PAGEREF _Toc42793401 \h 58Висновки до розд?лу 3 PAGEREF _Toc42793402 \h 60РОЗД?Л 4 ФУНКЦ?ОНАЛЬНО-ВАРТ?СНИЙ АНАЛ?З ПРОГРАМНОГО ПРОДУКТУ PAGEREF _Toc42793403 \h 624.1 Об?рунтування функц?й та параметр?в програмного продукту PAGEREF _Toc42793404 \h 624.2 Економ?чний анал?з вар?ант?в розробки ПП PAGEREF _Toc42793405 \h 714.3 Висновки до розд?лу PAGEREF _Toc42793406 \h 74Висновки PAGEREF _Toc42793407 \h 75ПЕРЕЛ?К ПОСИЛАНЬ PAGEREF _Toc42793408 \h 76ДОДАТОК А СЛАЙДИ ПРЕЗЕНТАЦ?? PAGEREF _Toc42793409 \h 80ДОДАТОК Б Л?СТИНГ ПРОГРАМИ PAGEREF _Toc42793410 \h 87ПЕРЕЛ?К СКОРОЧЕНЬММ – Маркетинг-м?кс (marketing mix)МММ – Модель маркетинг-м?кс (marketing mix model)ROI – Показник повернення ?нвестиц?й (return on investment)ROMI – Показник повернення маркетингових ?нвестиц?й (return on marketing investment)FC – Перший кл?к (first click)LC – Останн?й кл?к (last click)LP – Останн?й платний кл?к (last paid)PF – Воронка (product flow)MC – Ланцюги Маркова (markov chains)ВступРинок ?нтернет-реклами ? одним з найб?льших та найконкурентн?ших осередк?в кап?талу. В умовах жорстко? конкуренц?? ? батал?й за увагу аудитор?? у реальному час? на перший план виходять так? поняття як планування, оц?нка ризик?в, оптим?зац?я, ефективн?сть. Сьогодн?шн? маркетингове середовище знаходиться у процес? росту та розвитку. Як результат, пост?йно з’являються нов? п?дходи та методи оптим?зац?? маркетингових кампан?й. На зм?ну традиц?йним методам приходять нов?, прогресивн? ?де? зам?щують базов? п?дходи, а роль людини як особи, що прийма? р?шення, зроста? швидше н?ж обчислювальна сила комп’ютер?в. Методи оц?нки ефективност? маркетингових кампан?й пройшли довгий шлях з моменту виникнення у 1960-х до сьогодн?шнього часу. Концепц?я оц?нки ефективност? стратег?? зараз перетворю?ться на концепц?ю оц?нки окремих тактик, а в?дпов?дн? модел? можуть в?дпов?дати на б?льш комплексн? питання.До сих п?р не ?сну? ?диного п?дходу до оц?нки ефективност? маркетингових канал?в. Модел? маркетингово? атрибуц??, розглянут? в робот?, допомагають маркетологам у ц?й непрост?й задач?. Кожна модель ма? сво? переваги ? недол?ки ? потребу? експертизи щодо сво?? сум?сност? ?з проектом та його баченням перед тим як ?? запускати. Розд?л 1 Маркетингове середовище1.1 ММММаркетинг – система орган?зац?? д?яльност? б?знесу по розробц?, виробництву ? збуту товар?в та наданню послуг за допомогою комплексного вивчення ринку ? потреб споживач?в ?з метою одержання прибутку. Дуже часто маркетинг помилково ототожнюють з рекламною д?яльн?стю, проте маркетинг включа? також збут, монетизац?ю, ц?нову пол?тику компан??, вивчення психолог?? споживач?в, моделювання б?знесових та ринкових процес?в. Маркетинг почина?ться з ?де? задоволення певно? людсько? потреби ? не зак?нчую?ться нав?ть п?сля досягнення ц??? мети. Результати ефективно? маркетингово? д?яльност? можна побачити нав?ть п?сля в?дключення ус?х кампан?й з просування бренду. Для моделювання маркетингових процес?в використовуються р?зн? п?дходи, проте вперше базов? засади сьогодн?шнього маркетингу сформувалися у модель маркетинг-м?ксу в середин? минулого стор?ччя.Модель маркетинг-м?кс (marketing mix model) - це анал?з розвитку ? просування товару компан?? на ринку, який вим?рю? потенц?йну ц?нн?сть вс?х маркетингових ресурс?в у в?дношенн? до зростання продаж?в. MMM ? основним елементом будь-яко? б?знес-стратег?? [10].Моделювання маркетингового м?ксу - це перев?рений часом метод вим?рювання верхньор?вневого впливу на ефективн?сть маркетингу. МММ використову?ться для розпод?лу ?нвестиц?й, вид?ляючи канали та стратег??, що дають найкращ? результати. Результати МММ отримуються шляхом тривалого збору даних про повед?нку користувача з урахуванням витрачених засоб?в на канали ?х привернення, а також додаткових фактор?в, як? можуть впливати на оптим?зац?ю кампан??, так? як акц??, конкуренти, ц?нн?сть бренду або сезонн? тенденц??. Даний п?дх?д ма? сво? переваги, включаючи потенц?йне використання принаймн? частково контрольованих маркетингових експеримент?в, а також його покриття ус?х маркетингових канал?в.Мета маркетинг-м?ксу - розробити стратег?ю, яка дозволить п?двищити прийнятну ц?нн?сть товару, а також допоможе зб?льшити довгостроковий прибуток компан??. Застосовуючи методи регрес?йного анал?зу до ?сторичних даних про продаж?, маркетологи використовують MMM для анал?зу насл?дк?в зм?ни р?зних маркетингових заход?в. Результати таких досл?джень дозволяють маркетологам знаходити л?н?йн? та нел?н?йн? залежност? в даних ? в?дпов?дним чином управляти маркетинговым бюджетом [11].Mодель маркетинг-м?кс визнача? ефективн?сть кожного з елемент?в маркетингу з точки зору його вкладу в обсяг продаж?в. Результати такого анал?зу застосовуються для коригування стратег?? ? тактики маркетингу, оптим?зац?? маркетингового плану, а також для прогнозування продаж?в при моделюванн? р?зних сценар??в.У модел? маркетинг-м?кс продаж? д?ляться на 2 складов?:Базов? продаж? - коли реклами продукту нема?, а продаж? все одно генеруються за рахунок бренду, створеного за час роботи компан??, а також р?зних економ?чних або еколог?чних фактор?в.Поступов? продаж? - продаж?, як? генеруються зусиллями маркетолог?в. Загальна к?льк?сть поступових продаж?в розпод?ля?ться по кожному каналу залучення користувач?в для розрахунку вкладу маркетингу в загальний обсяг продаж?в.Базова модель маркетинг-м?ксу, запропонована у 1960 роц? Едмундом Джеромом МакКарт? складалась ?з 4 (4P) основних етап?в маркетингового планування. З плином часу модель розширилась до 5 (5P), а згодом ? до 7 (див. рис. 1.1) (7P) етап?в. ?снують ? б?льш широк? верс?? дано? модел?, проте базова сучасна модель маркетинг-м?ксу вигляда? наступним чином:Product - товар або послуга, асортимент, потреби ц?льово? аудитор??Price - ц?на, нац?нки, знижки, акц??, програми лояльност?Promotion - просування, реклама, п?ар, стимулювання попитуPlace - дистрибуц?я, розташування торг?вельних точок, канали розпод?луPeople - кл??нтиProcess – створення, оптим?зац?я та п?дтримка процес?в управл?ння, анал?з досв?ду покупцяPhysical evidence – оточення та ?м?дж компан??Рисунок 1.1 - Модель маркетинг-м?ксу 7PМодель маркетинг-м?кс - це також ? анал?тичний п?дх?д, який використову? ?сторичн? дан? про продаж ? внутр?шн? дан? компан?? для визначення впливу р?зних маркетингових заход?в. Стратег?я роботи з моделлю маркетинг-м?кс склада?ться з трьох етап?в:Попередн? планування. Включа? анал?з ?сторичних даних, таких як продаж?, витрати на вс? минул? рекламн? кампан?? ? ROI.Планування. Поляга? в прогнозуванн? й оц?нц? ефективност? маркетингу. На цьому етап? модель маркетинг-м?кс допомага? спрогнозувати р?вень продаж?в ? конверс?ю по рекламним кампан?ям, а також дозволя? правильно розпод?лити бюджет, щоб оптим?зувати ROI.Анал?з результат?в. Включа? в себе в?дстеження ефективност? вс?х зм?нних маркетингу, моделювання сценар??в витрат ?, при необх?дност?, перегляд маркетингових д?й.Модель маркетинг-м?кс використову? метод регрес??, а анал?з, виконаний за допомогою ц??? модел?, використову?ться для вид?ленн? ключово? маркетингово? ?нформац??. В розрахунках ефективност? стратег?й залежною зм?нною може бути Р?вень Продаж?в або Доля ринку. В якост? незалежних зм?нних найчаст?ше використовують Ц?ну, Витрати на рекламу, Користувач?в сайту ? т.д. Коеф?ц??нти, згенерован? з регрес?йного анал?зу, допомагають к?льк?сно оц?нити вплив кожного ресурсу. Продаж?= λ0+λ1x1+λ2x2Деяк? методи просування, наприклад кампан?? з п?двищення вп?знаваност? бренду, краще описуються нел?н?йними процесами насичення ? розпаду. Продаж?t= λ*Продаж?t-1+xnП?сля створення зм?нних викону?ться к?лька ?терац?й для створення модел?, яка добре поясню? тенденц?? прибутку. Критер?? для такого анал?зу обираються ?ндив?дуально для р?зних сфер б?знесу.Модель маркетинг-м?кс може використову?ться для анал?зу впливу елемент?в маркетингу на р?зн? аспекти маркетингу. Також результати модел? маркетинг-м?кс можна використовувати для ?м?тац?? маркетингових сценар??в. Маркетологи можуть перерозпод?лити св?й маркетинговий бюджет в р?зних пропорц?ях ? побачити прямий вплив на р?ст продаж?в. Щоб правильно оптим?зувати майбутн? маркетингов? витрати використовуючи МММ, маркетологам необх?дно розум?ти сильн? та слабк? сторони MMM та ?х в?дпов?дн?сть сучасному середовищу. Маркетолог повинен використовувати МММ у по?днанн? з? знаннями компан?? та ринку, що може забезпечити ц?л?сний погляд на ROI [12].1.2 Складнощ? застосування МММ в сучасному середовищ?До появи цифрового маркетингу традиц?йне моделювання маркетингового м?ксу було ефективним, оск?льки розум?ння його нав?ть на поверхневому (високому) р?вн? було достатньо. Маркетологам не потр?бно було сп?лкуватися з аудитор??ю напряму або настроювати персонал?зований таргетинг, тому вони могли використовувати менше даних у плануванн? сво?? кампан??, збер?гаючи високий ROI.Однак сьогодн? маркетингове середовище сильно в?др?зня?ться. Ран?ше маркетингов? стратег?? полягали в тому, щоб донести якомога б?льше ?нформац?? до сусп?льства. Однак цей п?дх?д зараз застар?лий. Зараз задачею маркетолога ? донести правильну ?нформац?ю правильн?й людин?.Результати традиц?йних МММ часто доступн? лише тод?, коли модель буде завершена, а це може бути тижнями чи м?сяцями п?сля актив?зац?? кампан??. Маркетологи просто не можуть чекати к?лька м?сяц?в, щоб зрозум?ти, як вза?мод?ють споживач? з? мед?а. З моменту п?дготовки МММ до ?? запуску необх?дн? знання про потреби та вподобання користувача вже зм?нилися.МММ врахову? т?льки короткостроковий ефект появи реклами в ЗМ?, але при цьому ?гнору? або не оц?ню? його ефекти в довгостроков?й перспектив?Маркетинг-м?кс оц?ню? т?льки сумарний рейтинг реклами або загальн? витрати на не? без урахування ?? сенсу або креативно? складово?. Кр?м того, традиц?йн? MMM зосереджуються на тому, щоб рекомендувати мед?а-м?кс без урахування його ц?льово? аудитор?? та впливу якост? генерованих пов?домлень, якими в?н рекоменду?ться.Без оновлених п?дход?в, щоб в?дпов?дати сьогодн?шн?м потребам маркетингу, вони втрачають можлив?сть для оптим?зац?? витрат на кампан?ю та оптим?зац?? продукту.MMM нада? дуже потр?бну ?нформац?ю про загальну продуктивность мед?а-м?ксу. Однак, оск?льки маркетингове середовище зм?щу?ться до цифрового маркетингу, застосування лише MMM ста? неефективною стратег??ю. МММ може створити враження щодо наявност? спектру можливостей, але не може надати рекомендац?? щодо оптим?зац?? окремих канал?в.Сьогодн? маркетологи використовують р?зн? стратег??, ор??нтован? на використання необх?дних знань в оптим?зац?? кампан??. Маркетингов? модел? атрибуц?? допомагають маркетологам виявити, де ?хн?й цифровий мед?а-м?кс стимулю? конверс?? найб?льше, тод? як досл?дження росту бренду допомагають продемонструвати вплив ?диного мед?а-каналу уздовж маркетингового м?ксу.Б?льш?сть критичних зауважень на адресу моделювання маркетинг-м?кс стосуються проблем з найб?льш поширеними методами моделювання, ?х здатн?стю надавати точн? в?домост? або нездатн?стю оц?нювати певн? аспекти маркетингово? екосистеми. Об'?днавши вс? ц? претенз??, можна зробити висновок, що методика МММ втрача? релевантн?сть ? вже не може дати в?дпов?д? на головн? питання б?знесу, не справля?ться з всезростаючо? складн?стю ? фрагментац??ю ринку. При цьому ? впевнен?сть в тому, що сьогодн? ?снують ц?лком реальн? р?шення, що дозволяють позбутися в?д б?льшост? - якщо не в?д ус?х - цих недол?к?в.1.3 Подорож користувачаПодорож користувача (customer journey) - це в?зуал?зований маршрут покупця, який в?н проходить в?д моменту виникнення потреби в певному продукт? ? до моменту зд?йснення покупки ? нав?ть дал?. До того як зробити покупку кл??нт робить багато ц?льових для бренду д?й, як? об’?днуються в етапи, при чому на кожному з них його потенц?на корисн?сть для бренду може обнулитися, при цьому складно здогадатися на яких етапах ризик втратити кл??нта найб?льший. В цьому ? ? одна з основних ц?лей побудови подорож? користувача - зрозум?ти, як до вас приходить кл??нт ? зробити його досв?д бездоганним.Модель подорож? користувача (див. рис. 1.2) склада?ться з таких етап?в:Усв?домлення потребиФормування ?нтересу до продукту або послугиПроведення попереднього досл?дження продуктуЗалучення у вза?мод?ю з конкретним брендомЗд?йснення покупкиВикористання товаруОц?нка якост? пост продажного обслуговуванняФормування лояльност? до брендуАдвокац?я бренду (генерац?я рекомендац?й)Рисунок 1.2 - Карта шляху користувачаПодорож користувача частково нагаду? воронку продаж?в, але ма? сутт?в? в?дм?нност?:Нел?н?йн?сть - покупець може пропускати р?зн? стад?? на шляху до продажу, повертатися на одну ? ту ж по к?лька раз?в;Включа? ? постпродажну вза?мод?ю з компан??юВрахову? ц?льов? д?? на кожному етап?До появи цифрових технолог?й здавалося, що досить ?згодувати? поб?льше реклами потенц?йному кл??нту - ? в?н перетвориться на покупця. Але з'явився ?нтернет, а з ним ? додатков? канали, за якими можна д?знатися про товар ? вибрати п?дходящу пропозиц?ю. Бренди б?льше не контролювали весь пот?к ?нформац??, який м?г отримати кл??нт - а значить, не могли управляти його р?шенням безпосередньо.Згодом маркетологи д?йшли висновку, що ? ще один спос?б боротися з конкурентами, кр?м ц?ни або якост?. Потр?бно д?знатися, чим живе кл??нт до ? п?сля покупки, а пот?м використовувати ц? знання, щоб його утримати.1.4 Поняття атрибуц??В ?нтернет-маркетингу та веб-анал?тиц? поняття атрибуц?? означа? ?дентиф?кац?ю набору д?й користувача ? надання кожн?й д?? певно? ц?нност? у в?дпов?дност? ?з бажаним результатом [29]. ?ншими словами, маркетингова атрибуц?я - це анал?тичне уявлення того, як? маркетингов? тактики призводять до конверс??. В подальшому розгляда?мо ?? у в?дношенн? рекламних канал?в, як? допомогли залучити користувача.Атрибуц?я да? певний р?вень розум?ння того, яка комб?нац?я та порядок д?й заохочують користувача до певного шаблону повед?нки. Правильно настро?на атрибуц?я зазвичай виража?ться у рост? р?вня конверс?? - в?дношенн? к?лькост? користувач?в з ц?льовою д??ю до загально? к?лькост? користувач?в [13]. Призначення атрибуц?? в тому, щоб визначити, як? канали та пов?домлення мають найкращий вплив на р?шення про конверс?ю або ц?льовий крок ? чисельно оц?нити вплив показу кожного рекламного оголошення на процес прийняття р?шень користувача, тобто на його ймов?рн?сть “конвертуватися”. Розум?ння що ? в як?й м?р? вплива? на ц?льову аудитор?ю допомага? маркетологу оптим?зувати витрати ресурс?в на т? чи ?нш? маркетингов? канали. Розум?ння потоку конверс?? в ц?лому дозволя? зб?льшити точн?сть анал?зу даних з р?зних канал?в [12]. Для маркетолог?в необх?дн?сть такого анал?зу доповню?ться ще й необх?дн?стю оц?нки кампан?й з точки зору р?зниц? м?ж ?хньою ефективн?стю та витраченими ресурсами вираженою у певних метриках (ROI, ROAS, CPA, CPC, CTR та безл?ч ?нших), а також плануванням та прогнозуванням майбутн?х кампан?й.Прогресивн? методи маркетингово? атрибуц?? потребують накопичення даних з багатьох канал?в для того щоб переконатися в адекватност? розпод?лу ваги кожно? вза?мод??. Наприклад, якщо користувач встиг побачити певний банер або рекламу в пошуковому серв?с?, але конверс?я в?дбулась лише п?сля спец?ально? пропозиц?? по email, маркетолог може зробити висновок, що розсилка да? кращу конверс?ю.Модель атрибуц??, яка використову?ться у вашому проект? лежить в основ? оц?нки рекламних канал?в та управл?ння маркетинговим бюджетом. Тому в?д якост? та точност? модел? атрибуц?? напряму залежить виконання плану продаж та росту б?знесу.Щоб досягти ц?л?сност? даних необх?дних для ефективно? модел? атрибуц?? маркетологу необх?дн? прогресивн? анал?тичн? платформи, як? здатн? перевести великий об’?м даних на персонал?зований р?вень.Для розпод?лу ц?нност? конкретно? покупки необх?дно оц?нювати кожну сес?ю, а не т?льки сес?ю перед покупкою. Отримавши оц?нку розпод?лу ц?нност? на р?вн? сес?? ми легко можемо знайти ц?нн?сть каналу в ц?лому, об’?днавши вклад сес?й з однаковими каналами. У результат?, якщо користувач перед покупкою вза?мод?яв з р?зними рекламними кампан?ями, свою ц?нн?сть в?д ц??? покупки отрима? кожна з них.Ключова проблема застосування атрибуц?? поляга? саме в справедливому розпод?л? ц?нност? продаж?в м?ж маркетинговими каналами на шляху користувачаВисновки до Розд?лу 1Маркетингове середовище пост?йно розвива?ться. Разом з ним розвиваються п?дходи ? методи оц?нки ефективност? маркетингових кампан?й. Традиц?йний п?дх?д стратег?чного планування, заснований на анал?з? ринку, застар?в, а на зм?ну йому з’явилися поглиблен? методи анал?зу ? оц?нки ефективност? маркетингових кампан?й.Модель маркетинг-м?кс допомага? вам зрозум?ти, як ваш маркетинг вплива? на генерац?ю додаткових продаж?в, визначити найб?льш ефективн? канали реклами, отрима?ти прогнози результат?в ваших сьогодн?шн?х маркетингових р?шень ? в п?дсумку оптим?зувати св?й маркетинговий бюджет.Атрибуц?я да? б?льш глибоке уявлення ?, на в?дм?ну в?д МММ, дозволя? оптим?зувати маркетингову стратег?ю детал?зовано. Модел? атрибуц?? не потребують такого затяжного процесу збору даних, а можуть працювати ? п?дтримуватися в реальному час? та в ц?лому ? б?льш ефективним ?нструментом для оц?нки маркетингового впливу на продаж?.Розд?л 2 Модел? атрибуц??2.1 Види моделей атрибуц??Внасл?док стр?мкого зростання онлайн-рекламних продукт?в сьогодн? маркетингов? орган?зац?? мають значно б?льше даних щоб сл?дкувати за сво?ю ефективн?стю та ROI, з’явились нов? метрики для ?х вим?рювання, CPC, CPM, CPA, CTR, що дало фундамент для розвитку р?зноман?тних моделей атрибуц??. ?снують десятки можливих моделей атрибуц??. Модел? можна класиф?кувати р?зними способами в залежност? в?д того, яка лог?ка використову?ться при розрахунку. Основна класиф?кац?я под?ля? ?х на 3 блоки:1.Одноканальн? модел? - тобто коли ц?нн?сть конверс?? ц?лком переда?ться одному джерелу. Сюди в?дносять модел? “Перший кл?к”, “Останн?й кл?к” та ?нш?.2.Мультиканальн? модел? - тобто коли ц?нн?сть конверс?? певним чином розпод?ля?ться м?ж джерелами, як? так чи ?накше були зад?ян? на шляху користувача до конверс??, даючи ?м певну вагу. Сюди в?дносять модел? “Р?вном?рн? ваги ”, “Часове згасання” та ?нш?3.Алгоритм?чн? (ймов?рн?сн?) модел?. Використовують методи машинного навчання, статистичне моделювання та методи ?нтелектуального анал?зу даних для виведення ймов?рностей конверс?? з ус?х маркетингових канал?в, як? пот?м можуть бути використан? для зважування точок дотику, що передують конверс??. П?сля присво?ння кожн?й точц? дотику ваги, загальну ц?нн?сть (вагу) джерела можна оц?нити агрегувавши ваги його точок дотику. Сюди в?дносять “Data-Driven”, “Ланцюги Маркова” та ?нш?.2.2 Анал?з ? пор?вняння базових моделей атрибуц??Розглянемо для прикладу шлях користувача, що склада?ться ?з 5 точок входу ? типовим сценар??м. Користувач вперше побачив рекламу сайту в груп? у соцмереж? Facebook (Referral). Перейшовши за посиланням в?дбулося знайомство з брендом. Через якийсь час в?н випадково побачив ? кл?кнув на знайомий логотип на банер? з ?ншого сайту (Retargeting). Нарешт? користувач почав формувати ?нтерес до продукц?? компан??, зробивши в?дпов?дн? запити у пошуковому серв?с? (Organic, CPC), обрав товар, збер?г сайт у закладки браузера. Покупка в?дбулася п?сля прямого переходу за посиланням на наступний день (Direct) Схематично даний сценар?й (шлях) користувача зображено на рис. 2.1Рисунок 2.1 - Зразок шляху користувачаПочнемо з? стандартних одноканальних та мультиканальних моделей атрибуц??.Анал?з будемо проводити у стил? SWOT1. За першим кл?ком (First Click, First Interaction) (див. рис. 2.2)Рисунок 2.2 - Атрибуц?я за першим кл?комОпис: вся ц?нн?сть, отримана в?д конверс??, атрибуту?ться першому каналу, який познайомив користувача з брендом [14].Аргументи: якщо б не цей, перший канал, не в?дбулося б знайомство користувача з брендом, не було б покупки, н?чого було б атрибутуватиS: легко настрою?тьсяW: не да? розум?ння вза?мозв’язк?в м?ж каналами, не показу? усю картинуO: п?дходить для б?знес?в, поточною метою яких ? п?двищення вп?знаваност?T: переоц?ню? канали ? кампан?? налаштован? на формування попиту та вп?знаваност? бренду2. За останн?м кл?ком (Last Click, Last Interaction) (див. рис. 2.3)Рисунок 2.3 - Атрибуц?я за крайн?м кл?комОпис: вся ц?нн?сть, отримана в?д конверс??, атрибуту?ться останньому каналу перед покупкою [14].Аргументи: останн?й канал спонукав користувача до покупки, тому лог?чно атрибутувати ц?нн?сть конверс?? саме йому S: проста ? популярна модель, ?деальна для швидких покупокW: не да? розум?ння вза?мозв’язк?в м?ж каналами, не показу? усю картинуO: п?дходить для б?знес?в з швидким циклом продаж?в ? малою к?льк?стю канал?вT: ?гнору? вклад передуючих канал?в у конверс?ю3. За останн?м платним кл?ком (Last Non-Direct та Last Paid Click) (див. рис. 2.4)Рисунок 2.4 - Атрибуц?я за останн?м платним кл?комОпис: модиф?кац?? Last Click, як? ?гнорують в?дпов?дно прям? переходи та безплатн? канали (наприклад безкоштовний пошук або партнерськ? програми), якщо саме вони ? останн?ми перед покупкою, та атрибутують ц?нн?сть конверс?? останньому платному каналу перед ними [14].S: дозволя? ?гнорувати незначн? з точки зору маркетингу канали ? зосередитися на платнихW: ?гнору? вклад передуючих канал?в у конверс?ю, не показу? усю картинуO: п?дходить для оц?нки ефективност? конкретного платного каналу для б?знес?в ?з швидким циклом продаж, для яких вп?знаван?сть бренду не сутт?ваT: ?гнору? вклад передуючих канал?в у конверс?ю4. Л?н?йна модель (див. рис. 2.5)Рисунок 2.5 - Л?н?йна атрибуц?яОпис: ц?нн?сть конверс?? пор?вну розпод?ля?ться м?ж ус?ма каналами у ланцюгу [14]Аргументи: кожна точка входу ? повернення важлива. випадання будь-якого елементу обрубу? ланцюгS: проста модель, проте б?льш продвинута за одноканальн?, врахову? вс? сес?? перед покупкоюW: не врахову? вза?мозв’язки м?ж каналамиO: дана модель п?дходить для компан?й, яким однаково важлив? вс? сес?? кл??нта, б?знесам ?з довгим циклом продаж?вT: неоптимальна при плануванн? та перерозпод?л? бюджету маркетингових кампан?й, адже не да? розум?ння ефективност? окремих канал?в5. Позиц?йна або U-под?бна модель (див. рис. 2.6)Рисунок 2.6 - U-под?бна атрибуц?яОпис: атрибуту? найб?льшу ц?нн?сть крайн?м каналам у ланцюгу, канали м?ж ними отримують р?вн? дол?. ? в певному розум?нн? сум?шшю моделей First Click, Last Click та л?н?йно? [14].Аргументи: етапи знайомства та покупки ? найважлив?шими, ?нш? етапи також мають вплив, проте значно меншийS: урахування ус?х сес?й, атрибутування найб?льшо? ц?нност? найважлив?шим каналамW: недооц?нка етап?в всередин? ланцюга, як? можуть мати б?льш значний вплив, н?ж закладено у модел?O: п?дходить для компан?й, зосереджених як на залученн? нових користувач?в, так ? на конвертуванн? наявних, не п?дходить для б?знес?в ?з або досить довгою воронкою продаж, або ?з критично важливими етапами всередин? не?T: надто сильно п?дда?ться впливу аномал?й та помилок у даних. Рекоменду?ться впроваджувати лише за наявност? в?дпов?дно? експертизи 6. Модель ?з затримкою у час? (див. рис. 2.7)Рисунок 2.7 - Атрибуц?я ?з затримкою у час?Опис: ц?нн?сть в?д покупки розпод?ля?ться за зростанням в?дпов?дно до м?сця каналу у шляху користувача. Останн?й канал отриму? найб?льшу ц?нн?сть, але не всю [14]. S: дозволя? врахувати ус? сес?? кл??нта. Вс? канали отримують свою частку в?д конверс??, актуал?зу? вклад “св?жих” точок дотикуW: ефективно працю? лише в ?деальних умовах (наприклад описана на початку ситуац?я в як?й випадковий кл??нт поступово перетворю?ться в “л?да” (lead), а згодом ? в покупця), не врахову? р?зноман?ття д?й кл??нта всередин? ланцюга ? ц?нн?сть цих д?й для конверс??O: п?дходить для оц?нки акц?йних або обмежених у час? рекламних кампан?й, а також компан?й з короткою воронкою продаж?в (наприклад з монетизац??ю за п?дпискою)T: -Що об’?дну? описан? модел??В?дсутн?сть персонал?зац??Слабке розум?ння воронкиЗалежн?сть в?д експертних оц?нокНе врахову?ться вза?мозв’язок м?ж каналамиСтатичн?стьНегнучк?стьНаявн?сть “упередженого виживання” в результатах 2.3 Анал?з ? пор?вняння алгоритм?чних моделей атрибуц???сну? 3 основн? п?дходи ? в?дпов?дно 3 основн? алгоритм?чн? модел? атрибуц??2.3.1 Атрибуц?я на основ? данихАтрибуц?я на основ? даних (Data Driven) дозволя? при розпод?л? ц?нност? конверс?й враховувати, як в?дв?дувач? знайшли вашу компан?ю. Дана модель розпод?ля? ц?нн?сть конверс?? на основ? кореляц?? м?ж наявн?стю в?дпов?дного каналу в ланцюгу та власне конверс??ю ланцюга, незалежно в?д його позиц?? в ньому. Фактично ?? задачею ? оц?нити, як присутн?сть каналу у ланцюз? вплива? на конверс?ю ланцюга.Ця модель знайшла застосунок у серв?с? Google Analytics, яка може збирати дан? з р?зних джерел-продукт?в Google, при цьому врахову? як ланцюги ?з конверс??ю, так ? без конверс??. Точн?сть модел? зроста? з? зб?льшенням к?лькост? даних [21]. На в?дм?ну в?д стандартних моделей на основ? позиц?? або правил, дана модель використову? справжн? жив? дан?, як? можуть зм?нюватися з часом ? тим самим перерозпод?ляти ваги в?дпов?дних ланцюг?в.В основ? модел? лежить Вектор Шепл? - принцип оптимальност? розпод?лу загального виграшу м?ж гравцями в кооперативн?й гр? на основ? ?х вкладу в усп?х коал?ц??, розроблений нобел?вським лауреатом Ллойдом Шепл?. Для п?драхунку вектора Шепл? використову?ться наступна формулаФ(v)i=i ? K(k-1)!(n-k)!n!(v(K)-v(K\i))Де n - к?льк?сть гравц?в (в нашому випадку загальна к?льк?сть канал?в) K - коал?ц?я (поточний ланцюг), k - к?льк?сть учасник?в коал?ц?? K, v - функц?я виграшу (ц?нн?сть ланцюга).Модель атрибуц?? на основ? даних розрахову? р?зницю в конверс?? м?ж ланцюгами, в яких в?дсутн?й поточний канал, ? тими, в яких в?н присутн?й (див. рис. 2.8)Рисунок 2.8 - Атрибуц?я на основ? данихСеред ?ншого, перевагою модел? ? можлив?сть управляти функц??ю виграшу, наприклад якщо вам важлива не т?льки сама покупка, але й додавання товару у корзину перед нею, ви можете задати розм?р виграшу за проходження цього етапу. Таким чином, дан? про переходи дозволяють зрозум?ти, як? оголошення найб?льш ефективн? для досягнення ваших ц?лей.Модель ?деально п?дходить для ефективного розпод?лу рекламного бюджету, адже ? динам?чною та об’?ктивною, що зумовлю?ться використанням для анал?зу власних даних компан?? [17]. Серед ?? м?нус?в можна вид?лити х?ба що складн?сть впровадження (необх?дн?сть велико? к?лькост? даних для запуску, анал?тичних та обчислювальних можливостей) та ?гнорування просування всередин? воронки.2.3.2 Атрибуц?я на основ? воронкиПроблема описаних вище моделей в тому, що ц?нн?сть конкретно? сес?? фактично не залежить в?д повед?нки користувача в н?й. Дана модель пропону? переосмислити загальний п?дх?д до атрибуц??. ?дея в тому, щоб використовувати для оц?нки б?льш продвинут? дан?, а саме дан? про проходження користувачем воронки. Це дозволя? б?льш об’?ктивно п?д?йти до оц?нки кампан?й, оц?нивши реальный вплив каналу на повед?нку користувача всередин? сес?? [17]. Будь-який б?знес ма? свою воронку продаж?в. Концептуально ?дея воронки - це ментальна мандр?вка користувача з першого враження в?д продукту до р?шення заплатити за нього. Воронка зазвичай виража?ться у рост? р?вня зац?кавленост? користувача в продукт?. Для цього ?сну? модель етап?в (див. рис. 2.9), як? можуть р?знитися для р?зних б?знес?в. Рисунок 2.9 - Концепц?я воронкиДля прикладу використа?мо стандартну воронку ?нтернет-магазину, що склада?ться з 5 основних етап?в:В?зитКорисний в?зитПерегляд товаруДодавання товару в корзинуПокупка товаруЕфективн?сть рекламних кампан?й для р?зних етап?в може бути р?зна. Тому необх?дно оц?нювати кожен крок з урахуванням проходження користувачем воронки, а не т?льки завершенням повного циклу. Це дозволить врахувати ц?нн?сть нав?ть тих сес?й, в яких не було покупки, проте було просування по воронц?. Алгоритм розрахунку дано? атрибуц?? наступний:Розрахову?мо ц?нн?сть проходження кожного етапу воронкиРозрахову?мо ц?нн?сть сес?й, як? допомагають просуватися по воронц?Агрегу?мо ц?нн?сть за кампан?ямиОчевидно, що не вс? етапи воронки пройти однаково складно для користувача, наприклад в?зит в?дбува?ться у кожн?й сес??, а покупка далеко не у кожн?й. Тут доц?льно використати конверс?ю м?ж етапами, яка буде показувати, яка частина користувач?в переходить з одного в ?нший, до?днавши ?? до базово? модел? воронки (див. рис. 2.10).Рисунок 2.10 - Воронка ? конверс??В?дпов?дно модель буду?ться таким чином, щоб ц?нн?сть за проходження етапу воронки мала в?д’?мну кореляц?ю з конверс??ю на цьому етап?. Методи для розрахунку само? ц?нност? можуть бути р?зн?, наприклад наступний [17]:Отриму?мо статистику к?лькост? користувач?в на кожному етап? воронки (Ci) Розрахову?мо конверс?ю етапу (Кi=Ci/Ci-1)Ставимо оц?нку за етап ( Бi=1-Кi )Норму?мо вектор оц?нок (Цi=БiiБi)Отриман? результати заносимо в таблицю (див. табл. 2.1)Таблиця 2.1 - Оц?нка ц?нност? етап?в воронки ЕтапКористувач?Конверс?яБаллЦ?нн?стьВ?зит100%---Корисний в?зит60%60%0,400,18Перегляд товару42%70%0,300,13Додавання у корзину7,8%19%0,810,36Продовження таблиц?ЕтапКористувач?Конверс?яБаллЦ?нн?стьПокупка2,1%27%0,730,33Для того щоб розрахувати ц?нн?сть само? сес?? необх?дно знайти суму ц?нност? етап?в, як? в ц?й сес?? були пройден? вперше. У випадку описаному на початку розд?лу матимемо наступний розпод?л (див. рис. 2.11) ц?нност? покупки.Рис. 2.11 Результат атрибуц?? на основ? воронкиУ результат? отриму?мо модель, яка також буду?ться на власних емп?ричних даних компан??, але зовс?м ?ншим п?дходом. Цей п?дх?д не потребу? велико? к?лькост? даних, гарно масштабу?ться та ?деально п?дходить б?знесам, як? роблять акцент на розвитку власно? воронки.2.3.3 Атрибуц?я на основ? Ланцюг?в МарковаЛанцюг Маркова - посл?довн?сть випадкових под?й з? ск?нченним або зл?ченним числом результат?в, яка характеризу?ться марк?всько? властив?стю, тобто на кожн?й ?терац?? майбутн?й стан залежить лише в?д поточного, а не в?д минулих стан?в.Атрибуц?я на основ? ланцюг?в Маркова дозволя? в?дпов?сти на питання “Як видалення каналу вплине на конверс?ю”. В якост? прикладу розглянемо 3 користувацьких шляхи м?ж каналами С1, С2 та С3:С1 → C2 → C3 → Покупка.C1 → Неусп?шна конверс?я.C2 → C3 → Неусп?шна конверс?я.Алгоритм д?й при побудов? дано? модел? наступний:1. Зображу?мо шлях користувача у вигляд? ор??нтованого графу з каналами в якост? вершин (+стартова вершина “Старт” та 2 можлив? терм?нальн? стани “Конверс?я” та “Н?чого” (або null) ) ? статистичних ймов?рностей переходу м?ж ними в якост? перех?дних ймов?рностей (pij), як? легко отримати розбивши ланцюги на пари (див. рис. 2.12) ? агрегувавши дан? на р?вн? канал?в (див. рис. 2.13). Рисунок 2.12 – Розбиття шлях?в користувача на попарн? переходи [17]Рисунок 2.13 - Приклад ланцюга Маркова [19]Додатково необх?дно розрахувати конверс?ю ланцюга знайшовши ймов?рн?сть потрапляння у вершину “Конверс?я” (P) P=(0.667*0.5+0.33)*1*0.5 = 0.332. Знаходимо частосту втрачання конверс?? при в?дсутност? вершини (Pi) В даному випадку P1=0.33*1*0.5 = 0.167, P2=P3=03. Оц?ню?мо “ефект видалення” (removal effect) (див. рис. 2.14) за формулою:Ri=1-PiPВ даному випадку R1=0.5, R2=R3=1Рисунок 2.14 - Видалення вершини з ланцюга [19]4. Нарешт? норму?мо отриман? значення для розрахунку ц?нност?Vi=RiiRiТаким чином атрибуц?я на основ? ланцюг?в Маркова дозволя? оц?нити вза?мний вплив канал?в на користувача. 2.4 Конструювання власно? модел? атрибуц??На основ? описаних п?дход?в до атрибуц?? можна будувати й власн? модел?, наприклад методами статистично? класиф?кац?? або машинного навчання. До розроблювано? модел? ? 2 ключов? вимоги:Достов?рн?сть - модель ма? враховувати об’?ктивний вклад кожного каналуПрозор?сть - лог?ка розрахунк?в ма? бути аудийованою та в?дтворюваною для впевненост? у результат?.Розглянемо ?нш? популярн? п?дходи до побудови модел? атрибуц?? [29].Повед?нков? модел? - розглядають рекламн? дан? як сукупн?сть точок виду Xi, Ai, Yi, де в?дпов?дно Xi- ковар?ати (користувач+оголошення), Ai?{0,1},Yi?{0,1}- булев? ?ндикатори в?дпов?дно для зд?йснення користувачем перегляду оголошення ? конверс??Модел? споживчого вибору - розглядають умовн? математичн? спод?вання конверс?? Y на X, A (u(x,a) =E(Y|X=x,A=a))Теор?я корисност? - максим?зац?я оч?кувано? корисност? результат?в на основ? функц?? корисност??Неймапа-МоргенштернаГ?потетичн? процедури - виокремлення ефекту в?дхилення в?д звичайно? повед?нки користувача без маркетингового впливу. Пошук коал?ц?й – використання метод?в кооперативно? теор?? ?гор для анал?зу шлях?в користувача 2.5 Поширен? помилки в атрибуц??Що може бути г?ршим за н?яку модель атрибуц??? - Погана модель атрибуц??.Хоча атрибуц?я ? ? ефективним ?нструментом оптим?зац?? рекламних витрат, це твердження в?дноситься т?льки до правильно застосовано? та налагоджено? модел?. Неефективна модель атрибуц?? нев?дкладно негативно вплине на ваш ROI та п?двищить CPA. До того ж в даних зазвичай ?снують аномал??, як? можуть призвести до неправильного п?драхунку ц?нност? ? таким чином привести до неправильного розпод?лу рекламних бюджет?в та втрат? прибутк?в компан??. Серед таких помилок вид?ляють [10]:Помилка узагальненняБ?льш?сть моделей побудован? на певних узагальненнях ? не використовують персонал?зован? дан?, що призводить до неч?тких поверхневих висновк?в. Для уникнення цього модель ма? будуватися на особист?сному р?вн?. Помилка кореляц??Зачасту при анал?з? шляху користувача може здатися, що м?ж под?ями ?сну? певний причинно-насл?дковий зв’язок, хоча це не завжди так. Для п?дтвердження або спростування наявност? кореляц?? м?ж д?ями користувача необх?дн? статистичн? дан? на р?вн? ринкуПомилка базиП?д “базою” розум?ють головну ц?льову аудитор?ю компан??. Сл?д враховувати, що деяк? кл??нти приймають р?шення про покупку ще до того, як побачать рекламу ?, таким чином, в даному випадку пов?домлення виступа? у рол? пров?дника, а не фактора впливу. Однак, модел? сприймають дану ситуац?ю як позитивний впливПомилка дешевизниВажливим ? не т?льки те, яка реклама показу?ться користувачев?, але й те, що саме рекламу?ться. Реклама б?льш дешевого товару матиме вищу базову конверс?ю для ц?льово? аудитор??.Помилка онлайн зм?щенняУ випадку, якщо ваша модель заснована лише на онлайн-джерелах, але б?знес може працювати й оффлайн, модель за замовчуванням буде не об’?ктивною через потенц?альний зв’язок м?ж цими видами д?яльност?. Нав?ть за неможливост? синхрон?зувати оффлайн та онлайн джерела та дан?, маркетолог повинен враховувати зв’язок м?ж нимиПомилка брендовост?Модел? атрибуц?? часто можуть не пом?тити вза?мозв'язок м?ж ростом вп?знаваност? ? сприйняттям бренду та повед?нкою споживач?в, або лише розглядатимуть ?х на р?вн? тенденц?й.Маркетолог ма? забезпечити здатн?сть модел? враховувати вза?мозв’язок м?ж конверс?ями та ростом вп?знаваност? бренду та ?ншими стратег?чними брендовими ?н?ц?ативамиПомилка несегментованост?Поширена помилка вважати, що вс? креативи та канали однаково впливають на р?зн? аудитор??. Наприклад, менш ефективний в загальному креатив може показувати значн? результати для меншо?, б?льш ц?льово? аудитор??. Це п?дкреслю? важлив?сть персонал?зованого п?дходуГеограф?яБ?льш?сть моделей не зважають на так? фактори, як погода чи в?дстань споживача до м?сця розташування. Проте для кожного б?знесу ?снують певн? особливост?, як? так чи ?накше будуть впливати на користувача. Наприклад для роздр?бно? торг?вл? важливо знаходитись неподал?к в?д кл??нта, а для онлайн-к?нотеатру погана погода ? додатковим фактором росту аудитор??. М?ткиНайб?льша проблема в даних для анал?зу в тому, що значна к?льк?сть користувач?в регулярно очищають “cookies” в сво?х браузерах, а для ?нших вони очищаються автоматично через 30 дн?в без активност? зг?дно рекомендац?й Network Advertising Initiative (NAI), що становить проблему при в?дсл?дковуванн? повного шляху користувача. Цю проблему намагаються вир?шувати продвинут? анал?тичн? серв?си на зразок OWOX BI та Google Analytics, проте об’?ктивна реальн?сть показу?, що ?деальну модель атрибуц?? на сьогодн?шн?й день побудувати майже неможливо.Не в?дпов?дн?сть атрибуц?? МММКритер?? оц?нки якост? модел? атрибуц?? можуть в?дзр?знятися для р?зних реал?зац?й МММ. Тому, завжди необх?дно переконатися, що побудована модель адекватна в?дносно б?знес-ц?лей та потреб ринку. Необх?дно вид?лити основн? фактори усп?ху модел? для адекватного розпод?лу ц?нност? при ?? досягненн?Висновки до Розд?лу 2Модель атрибуц??, яка застосову?ться у б?знес? може бути як другом так ? ворогом. Для коректно? роботи модел? необх?дно розум?ти як сильн? так ? слабк? сторони б?знесу та модел?, а також ?х сум?сн?стьЗважаючи на описан? у розд?л? плюси та м?нуси моделей атрибуц?? можна створити наступну пор?вняльну таблицю (див. табл.2.2) :Таблиця 2.2 - Пор?вняння моделей атрибуц?? [17]Критер?йFCLCLPЛ?н?йнаПози-ц?йнаЗатри-мкаДан?ВоронкаЛанцюги МарковаСкладн?сть+++++++++++++++++++++Точн?сть++++++++++++++++++++++Врахування ус?х етап?в---++++++Оц?нка вза?много впливу етап?в------+++Можлив?сть врахування оффлайн даних--------+Продовження таблиц?Критер?йFCLCLPЛ?н?йнаПозиц?йнаЗатримкаДан?ВоронкаЛанцюги МарковаПереоц?нка перших канал?в+---+----Недооц?нка перших канал?в-++--++++Недооц?нка канал?в у середин?+++-+----Недооц?нка канал?в у к?нц?+--------Переоц?нка канал?в у к?нц?-++-+++--Конструювати власну алгоритм?чну модель атрибуц?? можна грунтуючись на р?зних п?дходах ? методах, проте сл?д уникати розповсюджених помилок в даних та висновках.РОЗД?Л 3 АНАЛ?З ПРОГРАМНОГО ПРОДУКТУВ третьому розд?л? роботи розгляда?ться практичне застосування розглянутих вище моделей маркетингово? атрибуц?? та анал?з отриманих результат?в. В робот? використовуються реальн? маркетингов? дан?, надан? укра?нською e-commerce компан??ю за 2019 р?к3.1 Формулювання вимог до програмиЗважаючи на отриман? попередн? результати анал?зу якост? моделей, задачею програмного продукту ? пор?вняти як?сть атрибуц?? на основ? воронки та ланцюг?в Маркова, а також оц?нити р?вень покращення та в?дм?нност? в?д базово? для ?ндустр?? модел? за останн?м кл?ком. Також необх?дно оц?нити маркетингов? показники окремих канал?в, так? як ROI (ROMI) ? надати рекомендац?? про оптим?зац?ю, зб?льшення або зменшення витрат на маркетингов? канали.Для цього необх?дно побудувати систему, яка склада?ться з таких р?вн?в ??рарх??:Зб?р даних Обробка данихРозрахунок ц?нност? канал?вРозрахунок ефективност? маркетингуАнал?з результат?в3.2 Розробка арх?тектури ? функц?онально? схеми програмиРозробка програмного продукту в?дбува?ться у дек?лька етап?в:Зб?р даних про повед?нку користувача на сайт?, канали та точки входу, маркетингов? витрати, проходження основних етап?в воронки, а саме: “Перегляд товару”, “Додавання товару у корзину”, “Початок оформлення замовлення”, “П?дтвердження замовлення”; групування окремих д?й у сес??.Формування користувацьких шлях?в за принципом посл?довност? сес?й до першо? покупки або при часов?й затримц? у 90 дн?в з моменту останньо? д??Попередня обробка даних, отримання показник?в конверс?? та середнього чеку, усунення аномал?й в даних, узгодження фактичних показник?в ефективност? з результатами попереднього анал?зуПрограмування модел? атрибуц??Оц?нка ефективност? маркетингово? стратег??Анал?з та пор?вняння результат?в. Висновки щодо ефективност? канал?в3.3 Виб?р ?нструментально? платформи для реал?зац?? програми, ?нструкц?я по експлуатац?? програмиВ?дпов?дно до наведеного плану роботи, програмний продукт склада?ться з окремих п?дпрограм для виконання кожного етапуЗб?р даних в?дбува?ться за допомогою серверного компьютера за п?дтримки анал?тичних серв?с?в Google Analytics та OWOX BI. Для формування користувацьких шлях?в використову?ться SQL-запит до хмарного сховища Big Query.Отриман? дан? мають наступний вигляд (див рис 3.1):Рисунок 3.1 - Вигляд данихТут ? надал?:date - дата сес??client - порядковий номер кл??нтаsession - порядковий номер сес?? для кл??нтаchannel - каналAdModel - модель оплати траф?куAdCost - варт?сть траф?куtype - тип точки входуdetail - ознака проходження першого етапу воронки - перегляд товаруadd - ознака проходження другого етапу воронки - додавання товару у корзинуcheckout - ознака проходження третього етапу воронки - початок оформлення замовленняtransaction - ознака проходження четвертого етапу воронки - п?дтвердження замовленняprofit - прибуток в?д транзакц??Подальш? кроки виконуються в середовищ? розробки Jupyter з використанням мови програмування PythonДля виконання роботи необх?дн? наступн? б?бл?отеки ? модул? Python:Numpy - б?бл?отека для роботи з масивамиPandas - б?бл?отека для роботи з таблицямиCollections - допом?жна б?бл?отека контейнер?вPyQt5 – ?нтерфейсова б?бл?отекаОсновн? функц?? програмного додатку:handle - функц?я для попередньо? обробки вх?дних данихinfo - функц?я, яка да? ?нформац?ю про конверс?юcosts - функц?я для розрахунку витратmarks - функц?я для оц?нки вартост? етап?в конверс??last_click - розрахунок атрибуц?? за останн?м кл?комways - функц?я для формування повних шлях?вproduct_flow - розрахунок атрибуц?? на основ? воронкиtransition_states - функц?я для формування попарних шлях?вtransition_prob - функц?я для формування ймов?рностей переходуtransition_matrix - функц?я для формування перех?дно? матриц?removal_effects - функц?я для оц?нки ефекту видаленняmarkov_chain_allocations – розпод?л ц?нност? для ланцюга Маркова markov_chains - розрахунок атрибуц?? на основ? ланцюга Маркова results - функц?я для об’?днання результат?вПрограма управля?ться через меню, в якому ? 5 функц?й:Завантаження данихВиконання атрибуц?? за останн?м кл?комВиконання атрибуц?? на основ? воронкиВиконання атрибуц?? на основ? ланцюг?в МарковаКомплексна пор?вняльна таблиця результат?в?нтерфейс користувача вигляда? наступним чином (див. рис. 3.2-3.5)Рисунок 3.2 - Панель користувачаРисунок 3.3 - Вигляд даних в ?нтерфейс?Рисунок 3.4 - Результати атрибуц??Рисунок 3.5 - Комплексна пор?вняльна таблиця результат?в3.4 Побудова системи3.4.1 Попередня обробка данихПеред тим як будувати обран? модел? необх?дно провести попередн?й анал?з ? обробку даних 10771880 сес?й.В даних наявн? аномал??, при яких користувач перестрибу? один або дек?лька етап?в воронки. Для усунення таких аномал?й будемо вважати, що для виконання наступного етапу обов’язково необх?дно виконати попередн?й. Цього можна досягти перекриттям молодших ознак старшими. П?сля цього можна побачити розпод?л сес?й за ознаками (див рис 3.6-3.7). Рисунок 3.6 - К?льк?сний розпод?л Рис. 3.7 - В?дносний розпод?лФактично, ми отримали показники конверс?й етап?в, як? в подальшому будуть використан? для модел? на основ? воронки. Тепер можна перейти до побудови моделей3.4.2 Модель за останн?м кл?комПобудова модел? за останн?м кл?ком ? елементарною процедурою. Все що необх?дно - знайти у виб?рц? ряди з ознакою конверс?? та згрупувати дан? за каналами. Однак, модель ? базовою для e-commerce б?знес?в ? ?? результати будуть використовуватись надал? для анал?зу алгоритм?чних моделейРезультати роботи програми наступн? (див. табл 3.1) Таблиця 3.1 - Результати модел? за останн?м кл?комКаналАтрибутовано транзакц?йАтрибутовано прибуткуDirect66461745725Display1988489023Organic217294851571Paid271326265491Branded111133011990Referral542128995Remarketing2106495000Total71256169877953.4.3 Модель на основ? воронкиМодель на основ? воронки буду?мо за алгоритмом наведеним у 2.3.2.В?дпов?дно до отриманих на п?дготовчому етап? даних заповню?мо таблицю оц?нок етап?в воронки (див. табл 3.2).Таблиця 3.2 - Оц?нки етап?в воронкиЕтап воронкиКористувач?Конверс?яБаллЦ?нн?стьВ?зит100,00%Перегляд товару28,05%28,05%0,720,29Додавання в корзину2,01%7,17%0,930,37Початок оформлення1,09%54,15%0,460,18П?дтвердження замовлення0,66%60,76%0,390,16“Найскладн?шим” етапом для користувача виявився етап додавання товару у корзину. У серв?с? Google Analytics це вигляда? наступним чином (див рис 3.8):Рисунок 3.8 - Продуктова воронка в Google AnalyticsРезультати виконання роботи програми наступн? (див. табл 3.3).Таблиця 3.3 - Результати модел? на основ? воронкиКаналАтрибутовано транзакц?йАтрибутовано прибуткуDirect72941922278Display1973470022Organic218464874155Paid274506338270Branded108192946560Referral505121801Продовження таблиц?Remarketing1369314710Total71256169877953.4.4 Модель на основ? ланцюг?в МарковаМодель на основ? ланцюг?в Маркова в?дпов?дно буду?мо за алгоритмом наведеним у 2.3.3. Перех?дна матриця для побудованого ланцюга Маркова ма? наступний вигляд (див. рис. 3.9)Рисунок 3.9 - Перех?дна матрицяРезультати виконання роботи програми наступн? (див. табл 3.4).Таблиця 3.4 - Результати модел? на основ? ланцюг?в МарковаКаналАтрибутовано транзакц?йАтрибутовано прибуткуDirect68551634334Display3535842837Organic221085270604Paid253826051308Branded88912119552Referral1133270051Remarketing3352799109Total71256169877953.5 Анал?з результат?вРезультати роботи програми необх?дно проанал?зувати з двох стор?н -результати маркетингово? стратег?? та результати моделей атрибуц??3.5.1 Анал?з результат?в роботи програмиКанали Organic та Direct ? нев?д’?мною частиною будь-якого ?нтернет-б?знесу. Organic - траф?к з пошукових серв?с?в, а Direct - прям? переходи за посиланням. ?х неможливо в?дключити ? вони безкоштовн? у робот?. На “усп?х” даних канал?в впливають лише так? фактори як вп?знаван?сть бренду та як?сть роботи з контентом сайту. Тим не менш, довол? численна частина аудитор?? приносить компан?? прибуток завдяки саме цим каналам.Специф?чн?сть залучення через дан? канали у тому, що вони б?льш ор??нтован? на ц?льову аудитор?ю За результатами роботи трьох моделей можна побудувати наступну таблицю (див. табл 3.5).Таблиця 3.5 - Результати Direct та OrganicКаналLC (N)LC (?)PF (N)PF (?)MC (N)MC (?)Direct664617457257294192227868551634334Organic217294851571218464874155221085270604Канал Direct майже н?коли не бува? першим у ланцюгу, користувач зазвичай використову? його вже п?сля того як пройшов етап знайомства, а отже модель з воронкою дещо завищу? його фактичн? показники зарахунок направленост? каналу на ц?льову аудитор?ю. Канал Organic навпаки, зачасту бува? саме першим у ланцюгу. Тому, модел? за останн?м кл?ком та на основ? воронки можуть дещо недооц?нювати його ефект. Модель на основ? ланцюг?в Маркова для даних канал?в ? оптимальною, незважаючи на абсурдн?сть розрахунку ефекту видалення для цих канал?в. Ц?нн?сть, отримана за ц??ю моделлю, виплива? не з наявност? моментального ефекту, а з впливу на наступн? д?? користувача.Розрахунок маркетингових показник?в, таких як ROMI, не ма? сенсу для даних канал?в через безоплатний характер залучення користувач?в.Канали Display та Referral ор??нтуються на залучення ново? аудитор??. Display - це баннерна реклама, Referral - посилання. ?х базова конверс?я в швидку покупку нижча за середню, проте настро?вши ?х на модель оплати за ц?льову д?ю можна досить непогано оптим?зувати ?х роботу (в даному приклад? Display працю? за CPC, а Referral саме за CPA)За результатами роботи трьох моделей можна побудувати наступну таблицю (див. табл 3.6).Таблиця 3.6 - Результати Display та ReferralКаналВарт?стьLC (N)LC (?)PF (N)PF (?)MC (N)MC (?)Display827822198848902319734700223535842837Referral650405421289955051218011133270051Очевидно, що результати, атрибутован? даним каналам на основ? ефекту видалення, значно завищен?. Це пов’язано з тим, що дан? канали “спамлять” велику к?льк?сть ланцюг?в, як? чисто з? статистично? точки зору в к?нц?-к?нц?в можуть зак?нчитися транзакц?ями. На цей показник також вплива? в?кно для ланцюга (в даному приклад? брали 90 дн?в). Зменшивши дане в?кно можна отримати б?льш реальн? результати за допомогою ланцюг?в Маркова, проте модел? на основ? воронки та останнього кл?ку все ж ефективн?ш?, до того ж ?х результати в б?льш?й м?р? сп?впадають.Канал Remarketing зосереджу?ться на поверненн? та спонуканн? аудитор?? до покупки. Remarketing - це механ?зм цифрового пересл?дування користувача банерами сайту задля подальшого занурення його у продуктову воронку. Remarketing не може бути першим каналом у ланцюз?, а отже його базова конверс?я вища. Оптимальною моделлю оплати за такий траф?к ? CPA, таким чином можна уникнути наспамлених недобросов?сними арб?тражними компан?ями користувач?в. За результатами роботи трьох моделей можна побудувати наступну таблицю (див. табл 3.7).Таблиця 3.7 - Результати RemarketingКаналВарт?стьLC (N)LC (?)PF (N)PF (?)MC (N)MC (?)Remarketing210600210649500013693147103352799109Складно сказати, яка модель на такому тип? залучення користувач?в працю? краще. Однак, можна вид?лити наступн? м?ркування:Remarketing часто виступа? каналом покупки, тобто викону? свою основну функц?юRemarketing р?дко просува? користувача основними етапами воронки (зг?дно розрахунк?в, це етапи перегляду товару та додавання в корзину)Користувач?, залучен? за допомогою Remarketing, част?ше зак?нчують св?й шлях конверс??ю Зважаючи на специф?ку каналу та пом?тну р?зницю в результатах, кращою моделлю для цього каналу за р?шенням експерта визна?ться модель за останн?м кл?ком (найкращою була б модель за останн?м платним кл?ком). Занижен? результати модел? на основ? воронки пояснюються розпод?лом оц?нок за етапи воронки. П?д?бравши ?ншу формулу або п?днявши конверс?ю важких етап?в даний розпод?л зм?ниться, а отже зм?няться ? результати роботи програми. Завищен? ж результати модел? на основ? ланцюг?в Маркова можна пояснити виконанням принципу “все або н?чого”, адже, при переход? на сайт через Remarketing, користувач ймов?рн?ше всього або зробить покупку, яку в?дклав з моменту останнього в?зиту, або ж цей перех?д виявиться даремним, проте ц?льова аудитор?я, яка переважа? в структур? такого траф?ку врешт? зробить свою покупку ? ланцюг виявиться конверс?йним. Канали групи Paid Search (включно з Branded) - платна реклама в пошукових серв?сах. Така реклама генеру? найб?льше траф?ку ? ? основою для e-commerce компан?й. Оптим?зац?я маркетингових кампан?й в пошукових серв?сах чи не найважлив?ша задача маркетолога.За результатами роботи трьох моделей можна побудувати наступну таблицю (див. табл 3.8).Таблиця 3.8 - Результати Paid SearchКаналВарт?стьLC (N)LC (?)PF (N)PF (?)MC (N)MC (?)Paid3112686271326265491274506338270253826051308Branded79509911113301199010819294656088912119552Paid Search ор??нту?ться на ц?льов? для компан?? пошуков? запити. Це означа?, що генерувати ROI такий траф?к може як митт?во, так ? з затримкою. В?дпов?дно, одним з показник?в якост? застосовано? модел? ? ?? ун?версальн?сть, а б?льш ун?версальною для e-commerce компан?й ? модель на основ? воронки. Етап знайомства з продуктом для такого траф?ку ? несутт?вим, адже при в?дпов?дност? ц?льовим запитам, як? пост?йно оптим?зуються, траф?к ста? очищенним в?д потенц?йно надлишково? або не конверс?йно? аудитор??. Тому ц?нн?сть, яка отриму?ться в процес? анал?зу впливу цього каналу на конверс?ю, н?велю?ться, а отже результати модел? на основ? ланцюг?в Маркова можна вважати дещо заниженимиВраховуючи наведен? вище м?ркування, кращою моделлю маркетингово? атрибуц?? для e-commerce компан?? ? модель на основ? воронки.3.5.2 Анал?з маркетингово? стратег??Для розрахунку показник?в ефективност? маркетингово? стратег?? розраху?мо ROMI кожного проанал?зованого каналу та кампан?? в?дпов?дно до результат?в модел? на основ? воронки (табл. 3.3)В?дпов?дно до результат?в обрано? модел? атрибуц?? розраху?мо ROMI за формулоюROMI = profit-costcost*100%В результат? отриму?мо наступну таблицю (див. табл 3.9).Таблиця 3.9 - Показники маркетингово? стратег??КаналВарт?стьЦ?нн?стьПрибутокROMIDirect072941922278∞Display8278221973470022-43%Organic Search0218464874155∞Paid Search3112686274506338270104%Paid Search Branded795099108192946560271%Referral6504050512180187%Remarketing210600136931471049%Total50112467125616987795239%Показники ROMI у менш н?ж 100% вважаються низькими. Таким чином, кр?м очевидно провально? кампан?? Display траф?ку, слабку ефективн?сть також показали кампан?? Referral та Remarketing. Кампан?? групи Paid Search ? загалом ефективними, але з огляду на великий об’?м траф?ку, необх?дно оптим?зувати налаштування таргетингу. Для того щоб зрозум?ти як? саме кампан?? ц??? групи менш ефективн? проведемо анал?з з детал?зац??ю за типом кампан??.В результат? отриму?мо наступну таблицю (див. табл 3.10).Таблиця 3.10 - Результати Paid Search за типом кампан??Тип кампан??Варт?стьПрибутокROMIArtikul295174591497100%Brand5917512742009363%Car6970241765383153%Item70716289857827%Car+Item16166733287363103%Зв?дси можна зробити висновок, що кампан?я Item потребу? оптим?зац?? б?льше за ?нш?. Показники ефективност? ?нших кампан?й знаходяться на високому р?вн?Висновки до розд?лу 3В ход? роботи програми було протестовано роботу двох алгоритм?чних моделей атрибуц?? - на основ? продуктово? воронки та ланцюг?в Маркова. В результат? було виявлено, що обран? модел? добре гармонують та всец?ло задовольняють вимогам. Також було пом?чено, що модел? добре гармонують та мають потенц?ал до комб?нуванняВиконано наступн? етапи роботи:Зб?р данихФормування користувацьких шлях?вПопередня обробка данихПрограмування модел? атрибуц??Анал?з та пор?вняння результат?вЗа результатами емп?ричних м?ркувань та експертних оц?нок щодо природи канал?в було визначено, що оптимальною моделлю для e-commerce компан?? ? модель на основ? воронки. Також було розраховано показники ефективност? маркетингових кампан?й та зроблено висновки щодо ?х ефективност?.Цей розд?л ? лог?чним завершенням початих у попередн?х розд?лах теоретичних викладок ? ?люстру? ?х практичну реал?зац?ю у вигляд? повноц?нного додатку. Програмний додаток, розроблений у робот?, може бути використаний для будь-якого онлайн-б?знесу для оц?нки ефективност? маркетингово? стратег??.РОЗД?Л 4 ФУНКЦ?ОНАЛЬНО-ВАРТ?СНИЙ АНАЛ?З ПРОГРАМНОГО ПРОДУКТУФункц?онально-варт?сний анал?з — це технолог?я, яка дозволя? оц?нити реальну варт?сть продукту або послуги незалежно в?д орган?зац?йно? структури компан??. Як прям?, так ? поб?чн? витрати розпод?ляються по продуктам та послугам у залежност? в?д потр?бних на кожному етап? виробництва обсяг?в ресурс?в. Виконан? на цих етапах д?? у контекст? метода ФВА називаються функц?ями.Мета ФВА поляга? у забезпеченн? правильного розпод?лу ресурс?в, вид?лених на виробництво продукц?? або надання послуг, на прям? та непрям? витрати. У даному випадку – анал?зу функц?й програмного продукту й виявлення ус?х витрат на реал?зац?ю цих функц?й. Такий анал?з дозволя? провести досл?дження продукту заради його найоптимальн?шо? реал?зац??. Зокрема, виключення надлишкових або неефективних функц?й дозволя? зменшити витрати на виробництво. 4.1 Об?рунтування функц?й та параметр?в програмного продуктуУ четвертому розд?л? оц?нюються основн? характеристики програмного продукту для оптим?зац?? модел? маркетингово? атрибуц?? з використанням наведеному у третьому розд?л? алгоритму. Моделювання було проведено за допомогою мови програмування Python у середовищ? розробки Jupyter.Результати моделювання призначен? для використання на персональних комп’ютерах п?д управл?нням операц?йно? системи Windows, Linux та Mac OS.Головна функц?я F0 – розробка програмного продукту, який анал?зу? процес за вх?дними даними та буду? його модель для подальшого прогнозування. Виходячи з конкретно? мети, можна вид?лити наступн? основн? функц?? ПП:F1 – мова програмування: а) мова програмування Python; б) мова програмування RF2 – дан?: а) т?льки онлайн дан? б) офлайн та онлайн дан?.F3 – арх?тектура: а) програмний додаток для роботи з табличними даними;б) система для збору ? обробки ?нформац??F4 – функц?онал: а) м?н?мальний функц?онал, т?льки розрахунки;б)система п?дтримки прийняття р?шень;в) система п?дтримки прийняття р?шень у реальному час?.F5 – ?нтерфейс: а) граф?чний ?нтерфейс;б) текстовий ?нтерфейс.Вар?анти реал?зац?? основних функц?й наведено у морфолог?чн?й карт? системи (рис. 4.1). На основ? ц??? карти побудовано позитивно-негативну матрицю вар?ант?в основних функц?й (таблиця 4.1)Рисунок 4.1 - Морфолог?чна картаТаблиця 4.1 – Позитивно-негативна матрицяОсновн? функц??Вар?анти реал?зац??ПеревагиНедол?киF1аОсобистий досв?д у використанн?, наявн?сть готових модул?в для обробки та анал?зу даних, швидше написання кодуНижча швидкод?я на великому об’?м? данихбШвидше працю? з великим об'?мом даних.В?дсутн?сть готових модул?в для обробки та анал?зу даних.Продовження таблиц?Основн? функц??Вар?анти реал?зац??ПеревагиНедол?киF2аБ?льш точний анал?з, менше втрат даних та вищий ККДПотребу? додаткових зусиль для синхрон?зац?? данихбНе потребу? додаткових зусиль для синхрон?зац??, викону?ться ?з коробки?Менш точний анал?з, великий ризик втрати важливих данихF3аМаксимально можлива точн?сть вх?дних данихЗначн? затрати ресурс?в для розробки та п?дтримкибШвидка в реал?зац??Точн?сть та характер даних жорстко залежить в?д системи для збору ? обробки ?нформац??F4аПрацю? з актуальними даними впливаючи на планування бюджету в реальному час?Необх?дн?сть та практична корисн?сть даного р?шення майже в?дсутня через специф?чн?сть результат?в анал?зубСередня швидк?сть реал?зац??, можлив?сть отримання рекомендац?й ? прогноз?в для швидшого прийняття р?шеньНадлишковий функц?онал для дано? задач?, затрати часу ? ресурс?в переважають потенц?альну корисн?стьвШвидка в реал?зац??Функц?онал обмежений вимогами задач? ? не ма? властивост? до розрширенняF5аГарний ?нтерфейсДодаткова складн?сть ?нтегрувати процес до граф?чного супроводубДостатньо зручно, нема? проблем з ?нтеграц??юВ?дсутн?сть в?зуального розум?ння результат?вНа основ? анал?зу позитивно-негативно? матриц? робимо висновок, що при розробц? програмного продукту деяк? вар?анти реал?зац?? функц?й варто в?дкинути, тому, що вони не в?дпов?дають поставленим перед програмним продуктом задачам. Ц? вар?анти в?дзначен? у морфолог?чн?й карт?.Таким чином, будемо розглядати наступн? 2 вар?анти реал?зац?? ПП, що задовольняють поставленим ц?лям:1)F1a – F2a – F3б – F4в– F5а;2)F1a – F2а – F3б – F4б – F5а.Для оц?нювання якост? розглянутих функц?й обрана система параметр?в, описана нижче.На п?дстав? даних про основн? функц??, що повинен реал?зувати програмний продукт, вимог до нього, визначаються основн? параметри виробу, що будуть використан? для розрахунку коеф?ц??нта техн?чного р?вня.Для того, щоб охарактеризувати програмний продукт, будемо використовувати наступн? параметри:X1 – швидкод?я мови програмування;X2 – час обробки даних;X3 – потенц?йний об’?м програмного коду.F1залежить лише в?д швидкод?? мови (X1) тод? як ?нш? функц?? можна повноц?нно описати двома ?ншими параметрами.Г?рш?, середн? ? кращ? значення параметр?в вибираються на основ? вимог замовника й умов, що характеризують експлуатац?ю ПП як показано у табл. 4.2.Таблиця 4.2 – Основн? параметри ППУмовн? позначенняОдиниц? вим?руЗначення параметраг?рш?середн?кращ?X1Операц?й/мс20000100004000X2Час виконання80020050X3К?льк?сть строк коду50002000500За даними таблиц? 4.2 будуються граф?чн? характеристики параметр?в – рис. 4.2 – рис. 4.4. Рис. 4.2 – X1, швидкод?я мовиРис. 4.3. – X2, час виконання запит?вРис. 4.4 – X3, потенц?йний об’?м програмного кодуРезультати експертного ранжування наведен? у таблиц? 4.3.Таблиця 4.3 – Результати ранжування параметр?вПозначення параметраРанг параметра за оц?нкою експертаСума ранг?в RiВ?дхилення ΔiΔi21234567X1333333321749X211122119-525X3222112212-24Разом666666642078Пораху?мо коеф?ц??нт узгодженост?: W=12SN2n3-n=12?787233-3=0,796>Wнорм=0,67.Ранжування можна вважати достов?рним, тому що знайдений коеф?ц??нт узгодженост? перевищу? нормативний, котрий дор?вню? 0,67.Скориставшись результатами ранжування, проведемо попарне пор?вняння вс?х параметр?в ? результати занесемо у таблицю 4.4. За найб?льший ранг взято 1, за найменший – 3.Таблиця 4.4 – Попарне пор?вняння параметр?вПараметриЕкспертиК?нцева оц?нкаЧислове значення1234567X1 ? X2<<<<<<<<0,5X1 ? X3<<<<<<<<0,5X2 ? X3>>><<>>>1.5Розрахунок вагомост? параметр?в занесемо у табл. 4.5Таблиця 4.5 – Розрахунок вагомост? параметр?вПараметри xiПараметриПерша ?тер.Друга ?тер.Третя ?тер.Х1Х2Х3biKв?bi1Kв?1bi2Kв?2Х11,00,50,52,00.2225.50.2215.250.223Х21,51,01,54,00.44511.50.4631.750.465Х31,50,51,03,00. 3338.00.3221.250.312Всього:9125168.251Розрахунок показник?в р?вня якост? вар?ант?в реал?зац?? основних функц?й ПП показано у таблиц? 4.6Таблиця 4.6 – Розрахунок показник?в р?вня якост? вар?ант?в реал?зац?? основних функц?й ПП Основн? функц??Вар?ант реал?зац?? функц??ПараметриАбсолютне значення параметраБальна оц?нка параметраКоеф?ц??нт вагомост? параметраКоеф?ц??нт р?вня якост?F1a)X180006,6670,2231,487F2a)Х21008,3330,4653,875Х310008,3330,3122,600F3б)Х22005,0000,4652,325Х320005,0000,3121,560F4б)Х25002,5000,4651,163Х320005,0000,3121,560в)Х22005,0000,4652,325Х38009,0000,3122,808F5а)Х23004,1670,4651,938Х350010,0000,3123,120КК1 = 1,487+3,875+2,600+2,325+1,560?+2,325+2,808?+1,938+3,120= 22,037КК2= 1,487+3,875+2,600+2,325+1,560?+1,163+1,560+1,938+3,120= 19,627?Як видно з розрахунк?в, кращим ? перший вар?ант, для якого коеф?ц??нт техн?чного р?вня ма? найб?льше значення.4.2Економ?чний анал?з вар?ант?в розробки ППДля визначення вартост? розробки ПП спочатку проведемо розрахунок трудом?сткост?.Вс? вар?анти включають в себе два окремих завдання:1. Розробка проекту програмного продукту;2. Розробка програмно? оболонки;Вар?ант I ма? ще одне завдання: 3. Функц?онал т?льки з розрахунками;Цьому завданню у вар?ант? ?? в?дпов?да?:4. Функц?онал ?з системою п?дтримки прийняття р?шень;Завдання 1 за ступенем новизни в?дноситься до групи А, завдання 2 – до групи Б, 4 – до групи В та 3 – Г. За складн?стю алгоритми, як? використовуються в завданн? 1 належать до групи 1; завдання 2 – до групи 2, а завдання 3, 4 – до групи 3. Для реал?зац?? завдань 1, 3 та 4 використову?ться дов?дкова ?нформац?я, а завдання 2 використову? ?нформац?ю у вигляд? даних.Для першого завдання, виходячи ?з норм часу для завдань розрахункового характеру степеню новизни А та групи складност? алгоритму 1, трудом?стк?сть дор?вню?: ТР = 90 людино-дн?в. Поправочний коеф?ц??нт, який врахову? вид нормативно-дов?дково? ?нформац?? для першого завдання: КП = 1.7. поправочний коеф?ц??нт, який врахову? складн?сть контролю вх?дно? та вих?дно? ?нформац?? для вс?х чотирьох завдань р?вний 1: КСК = 1. Оск?льки при розробц? першого завдання використовуються стандартн? модул?, враху?мо це за допомогою коеф?ц??нта КСТ = 0.8. Тод?, за формулою 4.11, загальна трудом?стк?сть програмування першого завдання дор?вню?:Т1 = 90?1.7?0.8 = 122.4 людино-дн?в.Проведемо аналог?чн? розрахунки для подальших завдань.Для другого завдання (використову?ться алгоритм друго? групи складност?, степ?нь новизни Б), тобто ТР =27 людино-дн?в, КП =0.9, КСК = 1, КСТ =0.8:Т2 = 27 *0.9 *0.8 = 19.44 людино-дн?в.Для третього та четвертого в?дпов?дно: ТР= 8 КП =0.3, КСК = 1, КСТ =0.8 та ТР =12 КП =0.5, КСК = 1, КСТ =0.8Т3 = 8 *0.3 *0.8 = 1.92 людино-дн?в.Т4 = 12 *0.5 *0.8 = 4.80 людино-дн?в.Склада?мо трудом?стк?сть в?дпов?дних завдань для кожного з обраних вар?ант?в реал?зац?? програми, щоб отримати ?х трудом?стк?сть:ТI = (108.8 + 19.44+1.92) * 8 = 1041,28 людино-годин;ТII = (108.8 + 19.44 + 4.80) * 8 = 1064,32 людино-годин;Найб?льш високу трудом?стк?сть ма? вар?ант II.В розробц? беруть участь програм?ст з окладом 14000 грн. та один анал?тик даних з окладом 21000грн. Визначимо зарплату за годину СЧ=14000+210002?21?8=104,17грн.Зарплата розробник?в за вар?антами становить:I.СЗП = 104,17 ?1041,28 ? 1.2 = 130164,17 грн.II.СЗП = 104,17 ?1064,32 ? 1.2 = 133044,26 грн. В?драхування на ?диний соц?альний внесок в залежност? в?д групи профес?йного ризику (II клас) становить 22%:I.СВ?Д = СЗП ? 0.22 = 130164,17? 0.22 = 28636,11грн.II.СВ?Д = СЗП ? 0.22 = 133044,26 ? 0.22 = 29269,74 грн.Тепер визначимо витрати на оплату одн??? машино-години. (СМ)Так як одна ЕОМ обслугову? одного програм?ста з окладом 14000 грн., з коеф?ц??нтом зайнятост? 0,2 то для одн??? машини отрима?мо:СГ = 12?M?KЗ = 12 ?14000? 0,2 = 33600 грн.З урахуванням додатково? зароб?тно? плати:СЗП =СГ? (1+ KЗ) = 33600? (1 + 0.2)=40320 грн.В?драхування на ?диний соц?альний внесок:СВ?Д= СЗП ? 0.22 = 40320? 0,22 = 8870,40 грн.Амортизац?йн? в?драхування розрахову?мо при амортизац?? 25% та вартост? ЕОМ – 20000 грн.СА = КТМ? KА?ЦПР = 1.15 ? 0.25 ?20000 = 5750 грн.,Витрати на ремонт та проф?лактику розрахову?мо як:СР = КТМ?ЦПР? КР = 1.15 ?20000 ? 0.05 = 1150 грн.,Ефективний годинний фонд часу ПК за р?к ТЕФ = (365 – 104 – 8 – 16) ? 8 ? 0.9 = 1706.4 годин,Витрати на оплату електроенерг?? розрахову?мо за формулою:СЕЛ =1706,4 ? 0,65? 0,9733?(1,29677?1,2)=1?707,90 грн.,Накладн? витрати розрахову?мо за формулою:СН = ЦПР?0.67 = 20000? 0,67 =13400 грн.Тод?, р?чн? експлуатац?йн? витрати будуть:СЕКС = 40320+ 8870,40 + 5750 + 1150 + 2394,82 + 13400 = 71885,22?грн.Соб?варт?сть одн??? машино-години ЕОМ дор?внюватиме:СМ-Г = СЕКС/ ТЕФ = 71885,22/1706,4 = 42,13 грн/час.Витрати на оплату машинного часу, в залежност? в?д обраного вар?анта реал?зац??, складають:?. СМ = 42,13?1041,28= 43869,13 грн.; ??. СМ = 42,13?1064,32 = 44839,80 грн.; Накладн? витрати складають 67% в?д зароб?тно? плати:?. СН = 130164,17 ? 0,67 = 87209,99грн.; ??. СН = 133044,26 ? 0,67 = 89139,65грн.; Отже, варт?сть розробки ПП за вар?антами становить:?. СПП = 130164,17+ 28636,11+ 43869,13 + 87209,99 = 289879,4? ?грн.; ??. СПП = 133044,26+ 29269,74+ 44839,80+89139,65= 296293,45 ?грн.; Розраху?мо коеф?ц??нт техн?ко-економ?чного р?вня за формулою:КТЕР1 = 22,037/ 289879,4?= 7,602?10-5;КТЕР2 = 19,627?/ 296293,45?= 6,624?10-5.Як бачимо, найб?льш ефективним ? перший вар?ант реал?зац?? програми з коеф?ц??нтом техн?ко-економ?чного р?вня КТЕР1= 7,602?10-5.4.3 Висновки до розд?луП?сля виконання функц?онально-варт?сного анал?зу можна зробити висновок, що з альтернативних вар?ант?в виконання програмного комплексу оптимальним ? перший вар?ант реал?зац?? програмного продукту. Цей вар?ант реал?зац?? програмного продукту ма? так? параметри:мова програмування – Python;використання озробкииавофлайн та онлайн данихпрограмний додаток для роботи з табличними данимит?льки розрахункиграф?чний ?нтерфейс.ВисновкиДипломна робота присвячена р?зним методам оц?нки ефективност? маркетингу. Метою роботи ? розробити оптимальну модель атрибуц?? для компан?? та проанал?зувати ?? маркетингову стратег?ю. Практичним результатом роботи слугу? програмний продукт, який викону? розрахунок атрибуц?? та показника прибутковост? ?нвестиц?й. В першому розд?л? роботи розглянуто ?сторичн? передумови виникнення проблеми, ?? актуальн?сть та шляхи р?шення. В другому розд?л? проведено анал?з характеристик ?снуючих моделей, а також пор?вняння ?снуючих моделей атрибуц??, та сформовано вимоги для створення ? впровадження власних моделей.В третьому розд?л? описано роботу програмного продукту для анал?зу ефективност? маркетингово? стратег?? компан??. Проведено анал?з сум?сност? розроблених моделей ?з мед?а-м?ксом та б?знес-стратег??ю компан??, та пор?вняльну характеристику моделей. Розроблена система була усп?шно впроваджена на п?дпри?мств?.У четвертому розд?л? проведено функц?онально-варт?сний анал?з розроблювано? системи.Перспектива подальших досл?джень у комб?нуванн? описаних в робот? моделей та розробц? нових на основ? машинного навчання та нейронних мереж.ПЕРЕЛ?К ПОСИЛАНЬПаклин Н.Б., Орешков В.И. Бизнес-аналитика: от данных к знаниям (+ СD): Учебное пособие. 2-е изд., испр. - СПб.:Питер, 2013. 704 с.Katsov Ilya. Introduction to Algorithmic Marketing: Artificial Intelligence for Marketing Operations, 2017. 506 с.Барсегян, А. А. Анализ данных и процессов СПб.: БХВ-Петербург, 2009. 512 с.Барсегян, А. А. Методы и модели анализа данных: OLAP и Data mining. СПб.: БХВ- Петербург, 2004. 336 с.5.Барсегян,А. А. Технологии анализа данных. Data mining, visual mining, text mining, OLAP. СПб.: БХВ-Петербург, 2007. 384 с.Саати Т.Л. Принятие решений при зависимости и обратных связях: Аналити-ческие сети / ред. А.В.Андрейчков, О.Н.Андрейчикова; пер. с англ. А.В.Андрейчков, О.Н.Андрейчикова. Москва: Издательство ЛКИ, 2008. 262 с.Saaty T. L. Decision making with dependence and feedback: The analytic network process. Pittsburgh, PA: RWS Publications, 1996. 434 p.Аналитическая культура. От сбора данных до бизнес-результатов / Карл Ан-дерсон ; пер. с англ. Юлии Константиновой ; [науч. ред. Руслан Салахиев]. — М. : Манн, Иванов и Фербер, 2017. 336 с.Котлер Ф. Основы маркетинга Краткий курс Пер с англ — М.: Издательский дом "Вильяме", 2007. 656 сMarketing Attribution Models: How Did We Get Here? A History of Measurement. Marketing Evolution. URL: (дата звернення: 11.05.2020).Changing Your Approach to Marketing Mix Modeling to Achieve Better Results. Marketing Evolution. URL: (дата звернення: 13.05.2020).How to Leverage Multi-Touch Attribution & Marketing Mix Modeling through UMM. Marketing Evolution. URL: (дата звернення: 16.05.2020).Что означает атрибуция в маркетинге. OWOX. URL: (дата звернення: 18.05.2020).Модели атрибуции — подробный обзор и сравнение. OWOX. URL: (дата звернення: 9.05.2020).Модель маркетинг-микс — увеличьте свой ROI. OWOX. URL: (дата звернення: 30.05.2020).Google Analytics Attribution Models: Detailed Review and Comparison. OWOX. URL: (дата звернення: 28.05.2020).Атрибуция на основе воронки. OWOX. URL: (дата звернення: 7.05.2020).Market Mix Modeling (MMM). Towards Data Science. URL: (дата звернення: 18.05.2020).Marketing Channel Attribution with Markov Chains in Python — Part 2: The Complete Walkthrough. Towards Data Science. URL: (дата звернення: 15.05.2020).Attribution reports and attribution models. Support Google. URL: (дата звернення: 30.05.2020).About data-driven attribution. Support Google. URL: (дата звернення: 8.05.2020).Marketing Mix Modeling by Jerry W. Thomas. Decision Analyst. URL: (дата звернення: 30.05.2020).A Beginner’s Guide to Channel Attribution Modeling in Marketing (using Markov Chains, with a case study in R). Analytics Vidhya. URL: (дата звернення: 28.05.2020).Концепция маркетинг — микс (4P, 5P, 7P). PowerBranding. URL: (дата звернення: 6.05.2020).MULTI-TOUCH ATTRIBUTION (MTA) IMPLEMENTATION AND EVALUATION PRIMER. IAB. URL: (дата звернення: 6.05.2020).DIGITAL ATTRIBUTION PRIMER 2.0. IAB. URL: (дата звернення: 27.05.2020).The problem with click-based attribution. iMedia. URL: (дата звернення: 29.05.2020).JUST PUBLISHED: THE FORRESTER WAVE: CROSS-CHANNEL ATTRIBUTION PROVIDERS. Forrester. URL: (дата звернення: 9.05.2020).Attribution (marketing). Wikipedia. URL: (marketing) (дата звернення: 1.05.2020).ДОДАТОК А СЛАЙДИ ПРЕЗЕНТАЦ??ДОДАТОК Б Л?СТИНГ ПРОГРАМИ#!/usr/bin/env python# coding: utf-8# In[41]:import pandas as pdfrom pandas.io.json import json_normalizeimport numpy as npfrom collections import defaultdictimport sys, time, matplotlib.pyplot as pltfrom PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtWidgets import QMainWindow, QApplication, QFileDialog, QWidget, QLabel, QTableWidgetItem, QActionfrom functools import partial# In[33]:data_raw = pd.read_csv('data/bq data.csv')# # Information# In[42]:def handle(data_raw): data = data_raw[['date','client','session','channel','detail','add','checkout','transaction','profit']] data = data.sort_values(['client', 'session'], ascending=[True, True]) data['detail'] = np.sign(data['detail']+data['add']+data['checkout']+data['transaction']) data['add'] = np.sign(data['add']+data['checkout']+data['transaction']) data['checkout'] = np.sign(data['checkout']+data['transaction']) return data# In[43]:def info(data): frame = pd.DataFrame([data['detail'].value_counts(normalize=False)]) frame = frame.append(pd.DataFrame([data['add'].value_counts(normalize=False)])) frame = frame.append(pd.DataFrame([data['checkout'].value_counts(normalize=False)])) frame = frame.append(pd.DataFrame([data['transaction'].value_counts(normalize=False)])) print(frame) frame = pd.DataFrame([data['detail'].value_counts(normalize=True)]) frame = frame.append(pd.DataFrame([data['add'].value_counts(normalize=True)])) frame = frame.append(pd.DataFrame([data['checkout'].value_counts(normalize=True)])) frame = frame.append(pd.DataFrame([data['transaction'].value_counts(normalize=True)])) print(frame)# In[46]:#info(handle(data_raw))# # Costs# In[47]:def costs(data): costs = data_raw.groupby(['channel','AdModel']).agg({'AdCost':'sum'}) return costs# # Последний Клик# In[48]:def last_click(data): last_click = data.loc[data['transaction']>0][['channel','transaction','profit']].groupby('channel').sum().reset_index() last_click.to_excel("last_click.xlsx")# # Цепи Маркова# In[49]:def ways(data): df_paths = data.groupby('client')['channel'].aggregate(lambda x: x.unique().tolist()).reset_index() df_last_interaction = data.drop_duplicates('client', keep='last')[['client', 'transaction']] df_paths = pd.merge(df_paths, df_last_interaction, how='left', on='client') df_paths['path'] = np.where( df_paths['transaction'] == 0, ['Start'] + df_paths['channel'] + ['Null'], ['Start'] + df_paths['channel'] + ['Conversion']) df_paths = df_paths[['client', 'path']] return df_pathsdef transition_states(list_of_paths): list_of_unique_channels = set(x for element in list_of_paths for x in element) transition_states = {x + '>' + y: 0 for x in list_of_unique_channels for y in list_of_unique_channels} for possible_state in list_of_unique_channels: if possible_state not in ['Conversion', 'Null']: for user_path in list_of_paths: if possible_state in user_path: indices = [i for i, s in enumerate(user_path) if possible_state in s] for col in indices: transition_states[user_path[col] + '>' + user_path[col + 1]] += 1 return transition_statesdef transition_prob(list_of_paths, trans_dict): list_of_unique_channels = set(x for element in list_of_paths for x in element) trans_prob = defaultdict(dict) for state in list_of_unique_channels: if state not in ['Conversion', 'Null']: counter = 0 index = [i for i, s in enumerate(trans_dict) if state + '>' in s] for col in index: if trans_dict[list(trans_dict)[col]] > 0: counter += trans_dict[list(trans_dict)[col]] for col in index: if trans_dict[list(trans_dict)[col]] > 0: state_prob = float((trans_dict[list(trans_dict)[col]])) / float(counter) trans_prob[list(trans_dict)[col]] = state_prob return trans_probdef transition_matrix(list_of_paths, transition_probabilities): trans_matrix = pd.DataFrame() list_of_unique_channels = set(x for element in list_of_paths for x in element) for channel in list_of_unique_channels: trans_matrix[channel] = 0.00 trans_matrix.loc[channel] = 0.00 trans_matrix.loc[channel][channel] = 1.0 if channel in ['Conversion', 'Null'] else 0.0 for key, value in transition_probabilities.items(): origin, destination = key.split('>') trans_matrix.at[origin, destination] = value return trans_matrixdef removal_effects(df, conversion_rate): removal_effects_dict = {} channels = [channel for channel in df.columns if channel not in ['Start', 'Null', 'Conversion']] for channel in channels: removal_df = df.drop(channel, axis=1).drop(channel, axis=0) for column in removal_df.columns: row_sum = np.sum(list(removal_df.loc[column])) null_pct = float(1) - row_sum if null_pct != 0: removal_df.loc[column]['Null'] = null_pct removal_df.loc['Null']['Null'] = 1.0 removal_to_conv = removal_df[ ['Null', 'Conversion']].drop(['Null', 'Conversion'], axis=0) removal_to_non_conv = removal_df.drop( ['Null', 'Conversion'], axis=1).drop(['Null', 'Conversion'], axis=0) removal_inv_diff = np.linalg.inv( np.identity( len(removal_to_non_conv.columns)) - np.asarray(removal_to_non_conv)) removal_dot_prod = np.dot(removal_inv_diff, np.asarray(removal_to_conv)) removal_cvr = pd.DataFrame(removal_dot_prod, index=removal_to_conv.index)[[1]].loc['Start'].values[0] removal_effect = 1 - removal_cvr / conversion_rate removal_effects_dict[channel] = removal_effect return removal_effects_dictdef markov_chain_allocations(removal_effects, total_conversions): re_sum = np.sum(list(removal_effects.values())) return {k: (v / re_sum) * total_conversions for k, v in removal_effects.items()}# In[50]:def markov_chains(data): df_paths = ways(data) list_of_paths = df_paths['path'] total_conversions = sum(path.count('Conversion') for path in df_paths['path'].tolist()) trans_states = transition_states(list_of_paths) trans_prob = transition_prob(list_of_paths, trans_states) trans_matrix = transition_matrix(list_of_paths, trans_prob) base_conversion_rate = total_conversions / len(list_of_paths) removal_effects_dict = removal_effects(trans_matrix, base_conversion_rate) res = markov_chain_allocations(removal_effects_dict, total_conversions) attributions = json_normalize(res).transpose().reset_index() attributions.columns = ['channel','value'] attributions['profit'] = data['profit'].sum()*attributions['value']/attributions['value'].sum() attributions.reset_index().to_excel("markov_chains.xlsx")# # Воронка# In[51]:def marks(data): conversions = [1,data['detail'].value_counts(normalize=True).iloc[1], data['add'].value_counts(normalize=True).iloc[1], data['checkout'].value_counts(normalize=True).iloc[1], data['transaction'].value_counts(normalize=True).iloc[1]] flows = conversions.copy() for i in range(len(flows),1,-1): flows[i-1] = flows[i-1]/flows[i-2] marks = np.ones(len(flows))-flows marks = marks/np.sum(marks) return marks# In[52]:def product_flow(data): marks = marks(data) view = data.groupby(['client']).nth(0).reset_index() view = view[['client','date','session','channel','detail','add','checkout','transaction']] detail = data.groupby(['client','detail']).nth(0).reset_index() detail = detail.loc[detail['detail']>0] detail = detail[['client','date','session','channel','detail','add','checkout','transaction']] add = data.groupby(['client','add']).nth(0).reset_index() add = add.loc[add['add']>0] add = add[['client','date','session','channel','detail','add','checkout','transaction']] checkout = data.groupby(['client','checkout']).nth(0).reset_index() checkout = checkout.loc[checkout['checkout']>0] checkout = checkout[['client','date','session','channel','detail','add','checkout','transaction']] transaction = data.groupby(['client','transaction']).nth(0).reset_index() transaction = transaction.loc[transaction['transaction']>0] transaction = transaction[['client','date','session','channel','detail','add','checkout','transaction','profit']] way = view.merge(detail.merge(add.merge(checkout.merge(transaction, how = 'left', left_on = 'client', right_on = 'client'), how = 'left', left_on = 'client', right_on = 'client'), how = 'left', left_on = 'client', right_on = 'client'), how = 'left', left_on = 'client', right_on = 'client') way.columns = ['client', 'date_view','session_view','channel_view','detail_view','add_view', 'checkout_view', 'transaction_view', 'detail_detail', 'date_detail', 'session_detail', 'channel_detail', 'add_detail', 'checkout_detail', 'transaction_detail', 'add_add', 'date_add', 'session_add','channel_add', 'detail_add', 'checkout_add', 'transaction_add', 'checkout_checkout','date_checkout', 'session_checkout', 'channel_checkout', 'detail_checkout', 'add_checkout', 'transaction_checkout', 'transaction_transaction', 'date_transaction', 'session_transaction', 'channel_transaction', 'detail_transaction', 'add_transaction', 'checkout_transaction','profit'] way = way[['client','channel_view','session_detail', 'channel_detail','session_add','channel_add','session_checkout', 'channel_checkout','session_transaction', 'channel_transaction','profit']] way.columns = ['client','impression','n_detail', 'detail','n_add','add','n_checkout', 'checkout','n_transaction', 'transaction','profit'] finished = way.loc[way['profit'].notna()] view['value'] = marks[0] detail['value'] = marks[1] add['value'] = marks[2] checkout['value'] = marks[3] transaction['value'] = marks[4] total = view.append(detail,sort=True).append(add,sort=True).append(checkout,sort=True).append(transaction,sort=True) total = total.merge(finished, how = 'inner', left_on = 'client', right_on = 'client') total['profit'] = total['profit_y']*total['value'] total = total[['channel','value','profit']].groupby('channel').sum() total.reset_index().to_excel("product_flow.xlsx")# # Results# In[53]:def results(): last_click = pd.read_excel("last_click.xlsx", index_col=0) product_flow = pd.read_excel("product_flow.xlsx", index_col=0) markov_chains = pd.read_excel("markov_chains.xlsx", index_col=0) results = costs(data).merge(last_click.merge(product_flow.merge(markov_chains, how = 'left', on = 'channel'), how = 'left', on = 'channel'), how = 'left', on = 'channel') results.columns = ['Channel','Cost','Last Click count','Last Click profit','Product Flow count','Product Flow profit','Markov Chains count','Markov Chains profit'] results.reset_index().to_excel("results.xlsx")# In[54]:class UI(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1615, 408) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1615, 26)) self.menubar.setObjectName("menubar") self.menu = QtWidgets.QMenu(self.menubar) self.menu.setGeometry(QtCore.QRect(230, 153, 220, 174)) self.menu.setObjectName("menu") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.action1 = QtWidgets.QAction(MainWindow) self.action1.setObjectName("action1") self.action2 = QtWidgets.QAction(MainWindow) self.action2.setObjectName("action2") self.action3 = QtWidgets.QAction(MainWindow) self.action3.setObjectName("action3") self.action4 = QtWidgets.QAction(MainWindow) self.action4.setObjectName("action4") self.action5 = QtWidgets.QAction(MainWindow) self.action5.setObjectName("action5") self.menu.addAction(self.action1) self.menu.addAction(self.action2) self.menu.addAction(self.action3) self.menu.addAction(self.action4) self.menu.addAction(self.action5) self.menubar.addAction(self.menu.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.menu.setTitle(_translate("MainWindow", "Д??")) self.action1.setText(_translate("MainWindow", "Завантажити дан?")) self.action2.setText(_translate("MainWindow", "Останн?й кл?к")) self.action3.setText(_translate("MainWindow", "Воронка")) self.action4.setText(_translate("MainWindow", "Ланцюги Маркова")) self.action5.setText(_translate("MainWindow", "Пор?вняння"))# In[55]:class Window(QMainWindow): space = [] file_path = 'data/bq data.csv' data def __init__(self, parent=None): QMainWindow.__init__(self,parent) screen = app.primaryScreen() size = screen.size() self.space = [size.width(), size.height()] self.start() #self.showMaximized() self.show() def start(self): self.ui = UI() self.ui.setupUi(self) self.ui.action1.triggered.connect(self.click) self.ui.action2.triggered.connect(partial(self.table,last_click,'last_click')) self.ui.action3.triggered.connect(partial(self.table,product_flow,'product_flow')) self.ui.action4.triggered.connect(partial(self.table,markov_chains,'markov_chains')) self.ui.action5.triggered.connect(self.results) self.ui.Tables = QtWidgets.QTabWidget(self.ui.centralwidget) self.ui.Tables.setGeometry(QtCore.QRect(0, 0, self.space[0],self.space[1])) def click(self): options = QFileDialog.Options() fileName, _ = QFileDialog.getOpenFileName(self,"QFileDialog.getOpenFileName()", "","All Files (*)", options=options) if fileName: self.file_path = fileName self.data = handle(pd.read_csv(self.file_path)) def read(self): return np.array(pd.read_csv(self.file_path, delimiter=',', index_col=None)) def results(self): results() array = pd.read_excel("results.xlsx", index_col=0) array.loc[array['Cost']>0,'Last Click ROMI'] = (array['Last Click profit']-array['Cost'])/array['Cost'] array.loc[array['Cost']==0,'Last Click ROMI'] = "∞" array.loc[array['Cost']>0,'Product Flow ROMI'] = (array['Product Flow profit']-array['Cost'])/array['Cost'] array.loc[array['Cost']==0,'Product Flow ROMI'] = "∞" array.loc[array['Cost']>0,'Markov Chains ROMI'] = (array['Markov Chains profit']-array['Cost'])/array['Cost'] array.loc[array['Cost']==0,'Markov Chains ROMI'] = "∞" array = array[['Channel','Cost', 'Last Click count','Last Click profit','Last Click ROMI', 'Product Flow count', 'Product Flow profit','Product Flow ROMI', 'Markov Chains count','Markov Chains profit','Markov Chains ROMI']] array = np.array(array) table = QtWidgets.QTableWidget() self.ui.Tables.addTab(table,"results") table.setColumnCount(len(array[0])) table.setRowCount(len(array)) table.setHorizontalHeaderLabels(['Channel','Cost', 'Last Click count','Last Click profit','Last Click ROMI', 'Product Flow count', 'Product Flow profit','Product Flow ROMI', 'Markov Chains count','Markov Chains profit','Markov Chains ROMI']) for j in range(len(array[0])): for i in range(len(array)): table.setItem(i, j, QTableWidgetItem(str(array[i][j]))) table.resizeColumnsToContents() def table(self, func, xxx): func(handle(self.data)) table = QtWidgets.QTableWidget() self.ui.Tables.addTab(table,xxx) array = np.array(pd.read_excel(xxx+".xlsx", index_col=0)) print(array) table.setColumnCount(len(array[0])) table.setRowCount(len(array)) table.setHorizontalHeaderLabels(['Channel','Value','Profit']) for j in range(len(array[0])): for i in range(len(array)): table.setItem(i, j, QTableWidgetItem(str(array[i][j]))) table.resizeColumnsToContents()# In[56]:app = 0app = QApplication(sys.argv)window = Window()sys.exit(app.exec_())# In[ ]: ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download