Retaineering: چگونه ابزارهای تجزیه و تحلیل محصول منبع باز را در پایتون و پاندا نوشتیم

هی هابر این مقاله به نتایج یک توسعه چهار ساله مجموعه ای از روش ها و ابزارها برای پردازش مسیر حرکت کاربر در یک برنامه کاربردی یا در یک وب سایت اختصاص دارد. نویسنده توسعه - ماکسیم گودزی، که در راس تیم تولیدکنندگان محصول قرار دارد، نویسنده مقاله نیز هست. خود محصول Retentioneering نام داشت، اکنون به یک کتابخانه منبع باز تبدیل شده و در Github میزبانی شده است تا همه بتوانند از آن استفاده کنند. همه اینها ممکن است برای کسانی که در تجزیه و تحلیل محصول و بازاریابی، ترویج و توسعه محصول شرکت دارند، جالب باشد. به هر حال، در هابره قبلاً مقاله ای در مورد یکی از موارد کار با Retaineering منتشر شده است. مواد جدید توضیح می دهد که محصول چه قابلیت هایی دارد و چگونه می توان از آن استفاده کرد.

پس از خواندن مقاله، شما قادر خواهید بود Retaineering خود را بنویسید، این می تواند هر روش استاندارد شده ای برای پردازش مسیرهای کاربر در برنامه و فراتر از آن باشد، که به شما امکان می دهد ویژگی های رفتار را با جزئیات ببینید و بینش هایی را از این برای رشد استخراج کنید. معیارهای کسب و کار

Retaineering چیست و چرا به آن نیاز است؟

در ابتدا، هدف ما انتقال هک رشد از دنیای "جادوگری دیجیتال" به دنیای اعداد، تحلیل ها و پیش بینی ها بود. در نتیجه، تجزیه و تحلیل محصول برای کسانی که اعداد را به جای داستان‌های خارق‌العاده ترجیح می‌دهند، به ریاضیات و برنامه‌نویسی محض تقلیل می‌یابد، و فرمول‌ها را به کلمات هوشمندانه‌ای مانند «تغییر نام تجاری»، «تغییر موقعیت» و غیره ترجیح می‌دهند که زیبا به نظر می‌رسند، اما در عمل اینطور نیست. کمک زیادی

برای حل این مشکلات، ما به چارچوبی برای تجزیه و تحلیل از طریق نمودارها و مسیرها، و در عین حال کتابخانه ای نیاز داشتیم که روال معمول تحلیلگر را ساده کند، به عنوان راهی برای توصیف وظایف منظم تجزیه و تحلیل محصول که هم برای انسان ها و هم برای روبات ها قابل درک باشد. این کتابخانه توانایی توصیف رفتار کاربر و پیوند آن با معیارهای کسب و کار محصول را به زبانی رسمی و واضح فراهم می کند تا وظایف معمول توسعه دهندگان و تحلیلگران را ساده و خودکار کند و ارتباط آنها با کسب و کار را تسهیل کند.

Retaineering یک روش و ابزار نرم افزار تحلیلی است که می تواند با هر محصول دیجیتال (و نه تنها) سازگار و ادغام شود.

ما کار روی محصول را در سال 2015 شروع کردیم. اکنون این یک مجموعه ابزار آماده، اگرچه هنوز ایده‌آل در پایتون و پانداها برای کار با داده‌ها، مدل‌های یادگیری ماشین با api شبیه به sklearn، ابزارهایی برای تفسیر نتایج مدل‌های یادگیری ماشینی eli5 و shap است.

همه چیز تمام شده است به یک کتابخانه منبع باز مناسب در مخزن باز Github - Retentioneering-Tools. استفاده از کتابخانه کار سختی نیست، تقریباً هر کسی که عاشق تجزیه و تحلیل محصول است، اما قبلاً کد ننوشته است، می تواند روش های تجزیه و تحلیل ما را به تنهایی و بدون سرمایه گذاری زمان قابل توجهی روی داده های خود اعمال کند.

خوب، یک برنامه نویس، خالق برنامه، یا عضوی از یک تیم توسعه یا آزمایش که قبلا هرگز تجزیه و تحلیل انجام نداده است، می تواند شروع به بازی با این کد کند و الگوهای استفاده از برنامه خود را بدون کمک خارجی ببیند.

مسیر کاربر به عنوان یک عنصر اساسی تجزیه و تحلیل و روش های پردازش آن

مسیر کاربر دنباله ای از حالات کاربر در مقاطع زمانی معین است. علاوه بر این، رویدادها می توانند از منابع داده های مختلف، چه آنلاین و چه آفلاین باشند. اتفاقاتی که برای کاربر رخ می دهد بخشی از مسیر حرکت او است. مثال ها:
• دکمه را فشار داد
• تصویری را دید
ضربه زدن به صفحه نمایش
• یک ایمیل دریافت کرد
• محصول را به یک دوست توصیه کرد
• فرم را پر کرد
• روی صفحه ضربه زد
• پیمایش شده است
• به صندوق پرداخت نزدیک شد
• یک بوریتو سفارش داد
• یک بوریتو خورد
• توسط بوریتوی که خورده بود مسموم شد
• از ورودی پشتی وارد کافه شد
• از ورودی اصلی وارد شد
• برنامه را به حداقل رساند
• یک اعلان فشار دریافت کرد
• برای مدت طولانی تری در صفحه نمایش احمقانه Х
• هزینه سفارش را پرداخت کرد
• سفارش را بازخرید کرد
• از دریافت وام محروم شد

اگر داده‌های مسیر گروهی از کاربران را بگیرید و نحوه عملکرد انتقال‌ها را مطالعه کنید، می‌توانید دقیقاً ببینید که رفتار آنها در برنامه چگونه ساخته شده است. انجام این کار از طریق نموداری که در آن حالت ها گره هستند و انتقال بین حالت ها لبه هستند، راحت است:

Retaineering: چگونه ابزارهای تجزیه و تحلیل محصول منبع باز را در پایتون و پاندا نوشتیم

"مسیر" یک مفهوم بسیار راحت است - حاوی اطلاعات دقیق در مورد تمام اقدامات کاربر، با قابلیت افزودن هرگونه داده اضافی به شرح این اقدامات. این آن را به یک شیء عمومی تبدیل می کند. اگر ابزارهای زیبا و راحت دارید که به شما امکان می دهد با مسیرها کار کنید، می توانید شباهت ها را پیدا کنید و آنها را تقسیم بندی کنید.

بخش بندی مسیر ممکن است در ابتدا بسیار پیچیده به نظر برسد. در یک وضعیت عادی، این درست است - شما باید از مقایسه ماتریس های اتصال یا تراز توالی ها استفاده کنید. ما موفق شدیم راه ساده تری پیدا کنیم - مطالعه تعداد زیادی از مسیرها و تقسیم آنها از طریق خوشه بندی.

همانطور که مشخص شد، می توان یک مسیر را با استفاده از نمایش های پیوسته به یک نقطه تبدیل کرد، به عنوان مثال، TF-IDF. پس از تبدیل، مسیر به نقطه ای در فضا تبدیل می شود که در آن رخداد عادی شده در مسیر رویدادهای مختلف و انتقال بین آنها در امتداد محورها ترسیم می شود. این چیز از یک فضای عظیم هزار بعدی (dimS=sum(انواع رویداد)+sum(ngrams_2 نوع))، می تواند با استفاده از یک هواپیما بر روی یک صفحه نمایش داده شود. TSNE. TSNE - تبدیل، ابعاد فضا را به 2 محور کاهش می دهد و در صورت امکان، فاصله نسبی بین نقاط را حفظ می کند. بر این اساس، بر روی یک نقشه مسطح، یک نقشه نمایش تصویری از مسیرها، می توان بررسی کرد که چگونه نقاط مسیرهای مختلف در بین یکدیگر قرار گرفته اند. تجزیه و تحلیل می شود که آنها چقدر به یکدیگر نزدیک یا متفاوت بودند، چه آنها خوشه ها را تشکیل دادند یا در سراسر نقشه پراکنده بودند و غیره:

Retaineering: چگونه ابزارهای تجزیه و تحلیل محصول منبع باز را در پایتون و پاندا نوشتیم

ابزارهای تحلیلی Retaineering توانایی تبدیل داده‌ها و مسیرهای پیچیده را به نمایشی که می‌توان با یکدیگر مقایسه کرد و سپس کاوش و تفسیر نتیجه تبدیل را فراهم می‌کند.

صحبت از روش‌های استاندارد پردازش مسیر، منظور ما سه ابزار اصلی است که در Retaineering پیاده‌سازی کرده‌ایم - نمودارها، ماتریس‌های گام و نقشه‌های طرح‌ریزی مسیر.

کار با Google Analytics، Firebase و سیستم های تحلیلی مشابه بسیار پیچیده است و 100٪ کارآمد نیست. مشکل تعدادی محدودیت برای کاربر است که در نتیجه کار تحلیلگر در چنین سیستم هایی بر روی کلیک ماوس و انتخاب برش ها استوار است. Retaineering کار با مسیرهای کاربر و نه فقط با قیف‌ها را ممکن می‌سازد، همانطور که در Google Analytics، که در آن سطح جزئیات اغلب به یک قیف کاهش می‌یابد، البته برای بخش خاصی ساخته شده است.

حفظ و نگهداری و مطالعات موردی

به عنوان نمونه ای از استفاده از ابزار توسعه یافته، می توان به مورد یک سرویس طاقچه بزرگ در روسیه اشاره کرد. این شرکت دارای یک اپلیکیشن موبایل اندرویدی است که مورد پسند مشتریان قرار گرفته است. گردش مالی سالانه از برنامه تلفن همراه حدود 7 میلیون روبل بود، نوسانات فصلی بین 60-130 هزار بود. همین شرکت همچنین یک برنامه برای iOS دارد و میانگین چک کاربر از برنامه "apple" بالاتر از میانگین بود. بررسی مشتری با استفاده از برنامه اندروید - 1080 روبل. در مقابل 1300 روبل.

این شرکت تصمیم گرفت کارایی اپلیکیشن اندروید را افزایش دهد که برای آن تجزیه و تحلیل کاملی انجام داد. چندین ده فرضیه برای افزایش اثربخشی برنامه شکل گرفت. پس از استفاده از Retentionneering، مشخص شد که مشکل در پیام هایی است که به کاربران جدید نشان داده شده است. آنها اطلاعاتی در مورد برند، مزایای شرکت و قیمت ها دریافت کردند. اما، همانطور که مشخص شد، قرار بود این پیام ها به کاربر کمک کند تا نحوه کار در برنامه را یاد بگیرد.

Retaineering: چگونه ابزارهای تجزیه و تحلیل محصول منبع باز را در پایتون و پاندا نوشتیم

این کار انجام شد، در نتیجه برنامه کمتر شروع به حذف کرد و افزایش تبدیل به سفارش 23٪ بود. ابتدا 20 درصد از ترافیک ورودی به آزمون داده شد، اما چند روز بعد پس از تجزیه و تحلیل نتایج اولیه و ارزیابی روند، نسبت ها را معکوس کردند و برعکس، 20 درصد را برای گروه کنترل گذاشتند و قرار دادند. هشتاد درصد در آزمون یک هفته بعد، تصمیم گرفته شد که آزمایش دو فرضیه دیگر به صورت متوالی اضافه شود. تنها در هفت هفته، گردش مالی اپلیکیشن اندروید نسبت به سطح قبلی یک و نیم برابر افزایش یافت.

چگونه با Retaineering کار کنیم؟

اولین مراحل بسیار ساده هستند - ما کتابخانه را با دستور pip install retaineering بارگذاری می کنیم. خود مخزن شامل نمونه های آماده و موارد پردازش داده برای برخی از وظایف تجزیه و تحلیل محصول است. این مجموعه به طور مداوم به روز می شود تا زمانی که برای اولین آشنایی کافی باشد. همه می توانند ماژول های آماده را بگیرند و بلافاصله برای وظایف خود اعمال کنند - این به شما امکان می دهد بلافاصله روند تجزیه و تحلیل دقیق تر و بهینه سازی مسیرهای کاربر را با بیشترین سرعت و کارآمدی تنظیم کنید. همه اینها امکان یافتن الگوهای استفاده از برنامه را از طریق کدهای قابل درک و به اشتراک گذاشتن این تجربه با همکاران فراهم می کند.

Retaineering ابزاری است که ارزش استفاده در طول عمر یک برنامه را دارد و دلیل آن در اینجا آمده است:

  • Retaineering برای ردیابی و بهینه سازی مداوم مسیرهای کاربر و بهبود عملکرد تجاری موثر است. بنابراین، اغلب ویژگی‌های جدیدی به برنامه‌های تجارت الکترونیک اضافه می‌شود که همیشه نمی‌توان تأثیر آن‌ها را بر محصول به درستی پیش‌بینی کرد. در برخی موارد، مشکلات سازگاری بین ویژگی‌های جدید و قدیمی وجود دارد - برای مثال، ویژگی‌های جدید، ویژگی‌های موجود را «آدم‌خواری» می‌کنند. و در این شرایط، تحلیل مداوم مسیرها مورد نیاز است.
  • وضعیت در کار با کانال های تبلیغاتی مشابه است: منابع ترافیک جدید و خلاقیت های تبلیغاتی به طور مداوم در حال آزمایش هستند، نظارت بر فصلی، روندها و تأثیر سایر رویدادها ضروری است که منجر به ظهور طبقات جدیدی از مشکلات می شود. همچنین نیاز به نظارت و تفسیر مداوم مکانیک کاربر دارد.
  • تعدادی از عوامل وجود دارد که دائماً بر عملکرد برنامه تأثیر می گذارد. به عنوان مثال، نسخه های جدید از توسعه دهندگان: با بستن یک مشکل واقعی، آنها ناخواسته مشکل قبلی را برمی گردانند یا یک مشکل کاملا جدید ایجاد می کنند. با گذشت زمان، تعداد نسخه‌های جدید افزایش می‌یابد، و فرآیند ردیابی باگ‌ها باید خودکار شود، از جمله از طریق تجزیه و تحلیل مسیرهای کاربر.

به طور کلی، حفظ و نگهداری ابزار موثری است. اما هیچ محدودیتی برای کمال وجود ندارد - می توان و باید آن را بهبود بخشید، توسعه داد و محصولات جدید جالبی بر اساس آن ساخته شد. هرچه جامعه پروژه فعال تر باشد، فورک های بیشتری وجود خواهد داشت، گزینه های جالب جدیدی برای استفاده از آن ظاهر می شود.

اطلاعات بیشتر در مورد ابزار Retaineering:

منبع: www.habr.com

اضافه کردن نظر