استفاده از Tag Manager برای بررسی رفتار کاربران در نرم‌افزارهای موبایلی


دنبال‌کردن رفتار کاربران در وب‌سایت‌ها و نرم‌افزارها همیشه بهترین روش برای شناسایی نقاط قوت و ضعف محصول است که می‌تواند به فرایند بازطراحی کمک کند. امروزه ابزارهای جانبی مختلفی برای بررسی رفتار کاربران به کمک تیم‌های توسعه آمده‌اند که می‌توان از آن‌ها به همین منظور استفاده کرد. ازجمله دلایل همه‌ تیم‌های توسعه محصول برای بررسی رفتار کاربر نیز می‌توان به 4 مورد زیر اشاره کرد:

  1. پیداکردن نقاط ضعف و قوت محصول.
  2. پیداکردن مسیرهایی که کاربر در محصول ما طی می‌کند؛ مثلا کاربر برای خرید اشتراک یا خرید یک محصول در وب‌سایت ما، از کجا شروع می‌کند و چه بخش‌هایی را مشاهده می‌کند.
  3. سنجش موثربودن تغییرات محصول در تعامل کاربر؛ یعنی بعداز انجام یک‌سری تغییرات جدید، تعامل کاربر با این تغییرات چگونه است؟
  4. انجام A/B تست و تست‌های دیگر؛ مثلاً همزمان دو نسخه از محصول را در اختیار دو گروه از کاربران قرار می‌دهیم و با بررسی رفتار آن‌ها، میزان موفق‌بودن هرکدام از این نسخه‌ها در بخش‌های مختلف را می‌سنجیم.




چالشی سر راه بررسی رفتار کاربران!

امروزه ابزارهای مختلف بسیاری برای بررسی رفتار کاربران در وب‌سایت‌ها ارائه شده، اما هنوز چالش اصلی ما برای بررسی رفتار کاربر، در نرم‌افزارهای تلفن همراه است. اما دلیل اینکه بررسی رفتار کاربر در نرم‌افزار موبایل، سخت‌تر از وب‌سایت است چیست؟

  1. ازطریق وب‌سایت می‌توانیم تغییرات مربوط به بررسی رفتار کاربر را راحت‌تر انجام دهیم؛ یعنی در وب‌سایت به‌راحتی و در هرزمان می‌توانیم تنظیمات مربوط به ابزار بررسی رفتار کاربر را تغییر دهیم و نتایج جدیدتری دریافت کنیم.
  2. نرم‌افزار موبایل نیازمند راه‌اندازی مجدد است؛ در نسخه وب‌سایت ما فقط یک کد جاوااسکریپت را در صفحه‌ای که می‌خواهیم رفتار کاربر بررسی شود قرار می‌دهیم و نتایج دل‌خواه را به‌دست می‌آوریم. اما در نرم‌افزار باید هربار مراحل بازطراحی، تست QA و راه‌اندازی طی‌شود و درنهایت می‌توانیم قبل از راه‌اندازی، کدهای مربوط به ابزارهای جانبی بررسی رفتار کاربر را در آن قرار دهیم.
  3. در وب‌سایت به اطلاعات بیشتری دسترسی داریم؛ مثلاً داده‌های مربوط به Site Heatmap در نرم‌افزار موبایلی وجود ندارد.
  4. ابزارهای بیشتری برای بررسی رفتار کاربر در وب‌سایت موجود است؛ تعداد ابزارهای جانبی موجود برای وب‌سایت و همچنین امکانات آن‌ها بسیار بیشتر از ابزارهای جانبی برای بررسی رفتار کاربر در نرم‌افزارهای موبایلی است.

یک مثال از نمونه داده به‌دست‌آمده از بررسی وب‌سایت: در وب‌سایت ما می‌توانیم قسمت‌هایی از صفحه که کاربر بیشترین توجه به آن را داشته (ازطریق نگه‌داشتن موس روی آن قسمت) پیدا کنیم که نام این داده، نقشه Site Heatmap است. اما در نرم‌افزار موبایل، این اطلاعات را نمی‌توانیم به‌دست آوریم. به تصویر زیر توجه کنید:


بررسی رفتار کاربر در نرم‌افزارهای موبایلی

برای بررسی رفتار کاربران در نرم‌افزارهای موبایلی، ممکن است مجبور باشیم همزمان از ابزارهای بسیار زیادی استفاده کنیم؛ زیرا هرکدام از این ابزارها فقط بخشی از خواسته ما را برآورده می‌کنند و رفتارهای خاصی را رصد می‌کنند. پس مثلاً ممکن است مجبور باشیم همزمان از Firebase، Facebookpixel، Segmentino، Branch، WebEngage، Adjust، Adtrace، Metrix و… روی نرم‌افزار موبایلی استفاده کنیم. تصور کنید که چه اوضاع به‌هم‌ریخته‌ای ممکن است برای تیم توسعه به‌وجود آید، و طبیعتاً مدیریت کدهای مربوط به این ابزارها برای برنامه‌نویسان بسیار سخت است! حالا اگر نرم‌افزار نیازمند یک تغییر کوچک باشد، آیا باید تنظیمات مربوط به تمام این ابزارهای جانبی را نیز تغییر دهیم؟ جواب بله است! سخت‌ترین چالشی که در بررسی رفتار کاربر روی نرم‌افزارهای موبایلی برای ما پیش می‌آید، همین است. اما آیا راه‌حلی برای برطرف‌کردن این مشکل وجود دارد؟

یک واسطه، حلال مشکلات!

راه‌حلی که ما در صبا ایده برای حل این مساله پیدا کردیم استفاده از ابزار Google Tag Manager به عنوان واسط بین Firebase و سایر ابزارهایی است که می‌خواهیم از آن‌ها استفاده کنیم. معماری راه‌حلِ ما، به طور شماتیک در تصویر زیر نشان داده شده است:

درواقع tag manager به عنوان یک داشبورد مدیریتی عمل می‌کند و تمام اطلاعات مربوط به eventها را از نرم‌افزار می‌گیرد و به ابزارهای جانبی ارسال می‌کند. علاوه‌بر این می‌توانیم تمام تنظیمات مربوط به ابزارهای جانبی دیگر را ازطریق tag manager مدیریت کنیم؛ مثلاً برای متوقف‌کردن آنالیتیکس می‌توانیم از داخل tag manager این کار را انجام دهیم.  اما نکته مهم این است که این tag manager نیز همانند ابزارهای جانبی دیگر، دارای یک کد جاوااسکریپت است که در وب‌سایت، در قسمت کدهای مربوط به صفحه موردنظر قرار می‌گیرد، و هنوز مشکل ما در برقراری ارتباط آن با نرم‌افزار موبایلی برقرار است. در این بین متوجه شدم که ابزار Firebase که قبلاً نیز از آن برای بررسی رفتار کاربر ازطریق نرم‌افزار موبایل استفاده کردیم، می‌تواند به‌عنوان پُلی بین نرم‌افزار موبایل و tag manager قرار گیرد و تمام اطلاعات را به‌صورت یک‌جا به tag manager ارسال کند.

فایربیس eventها (رخدادهایی که می‌خواهیم رفتار کاربر را در آن‌ها بررسی کنیم) را از نرم‌افزار دریافت می‌کند، به tag manager ارسال می‌کند و اینجا tag manager تصمیم می‌گیرد که اطلاعات مربوط به هر event را به کدام‌یک از ابزارهای جانبی ارسال کند. ممکن است اطلاعات را به خود فایربیس نیز برگرداند (چون فایربیس نیز یکی از ابزارهای جانبی برای بررسی رفتار کاربران محسوب می‌شود).

خبر خوش برای برنامه‌نویس‌ها!

اضافه‌کردن فایربیس و tag manager به نرم‌افزار موبایلی می‌تواند با افزودن SDK توسط برنامه‌نویس به‌راحتی انجام شود. در ادامه می‌خواهم کار با داشبورد tag manager و نحوه کار با آن را توضیح دهم. در مرحله اول شما باید در این بستر عضو شوید. بعد از واردشدن و ساخت حساب در tag manager با صفحه زیر روبرو می‌شوید.

پس‌از اینکه در tag manager حساب خود را ساختید، می‌توانید در قسمت Triggers (همانند تصویر زیر)، eventهایی که قصد دارید در بررسی رفتار کاربر صدا بزنید را مشاهده کنید. می‌توانید دقیقاً همان eventهایی که در فایربیس ساختید را با همان اسم در اینجا تعریف کنید.

مثلاً برای ساختن event «خرید» (purchase) با چنین تنظیماتی می‌توانیم آن را ایجاد کنیم:

هرکدام از این eventها یک سری پارامترهایی به‌همراه دارند که توضیحات بیشتری راجع‌به آن event می‌دهند. مثلاً اگر درحال ساختن event خرید هستیم، پارامترهای آن عبارتنداز:

  • چه کالایی خریداری شده؟
  • قیمت آن کالا چقدر بوده؟
  • شناسه آن کالا چیست؟
  • و….

که این پارامترها را می‌توانیم در بخش variables، دقیقاً به همان نامی که در فایربیس ایجاد شدند تعریف کنیم. مثلاً یکی از پارامترهای event خرید، می‌تواند «نوع پرداخت» باشد که با نام PAYMENT_TYPE آن را تعریف کردیم:

بعداز تعریف کردن این eventها و پارامترهای مربوط به آن‌ها، نوبت آن است که مشخص‌کنیم وقتی هرکدام از این eventها اتفاق می‌افتند، کدام‌یک از ابزارهای دیگر فراخوانی شوند و اطلاعات به‌دست‌آمده به آن انتقال داده شود؟

به‌همراه هرکدام از این eventها می‌توانید event دیگری را فراخوانی کنید، جلوی آن را بگیرید (بلاک کنید) یا اسم آن event را تغییر دهید.


یک نکته مهم

اگر ابزارهای آنالیتیکسی که قصد استفاده از آن‌ها را داریم در tag manager وجود نداشتند، می‌توانیم از بخش function call استفاده کنیم. که به این ترتیب، اطلاعات eventها و پارامترهایی که از فایربیس آمده، به نرم‌افزار موبایل برگردانده می‌شود و در ادامه می‌توانیم مشخص کنیم که این اطلاعات ازطریق خود نرم‌افزار موبایل به کدام ابزار جانبی ارسال شود؟

درواقع درصورتی که ابزار در tag manager وجود نداشت، به‌جای اینکه اطلاعات ازطریق tag manager به ابزار جانبی ارسال شود، مستقیماً از خود نرم‌افزار به ابزار جانبی ارسال می‌شود.


کلام آخر

خلاصه این که، مدیریت داده‌های رفتار کاربر با کمک Google Tag Manager، ما را از اتصال تک‌تکِ ابزارهای جانبی به نرم‌افزار بی‌نیاز می‌کند و روشی بسیار منعطف و بهینه برای مدیریت همه‌ ابزارهای اندازه‌گیری و Analytics در یک داشبورد واحد است. استفاده از ابزار Tag Manager با این که بسیار مفید و کارگشا است ولی هنوز بین تیم‌های توسعه رایج نشده و به همین دلیل احساس کردم که به اشتراک‌گذاشتن تجربه‌ی تیم ما در پیاده‌سازی این ابزار کاربردی، می‌تواند برای تیم‌های دیگر نیز مفید باشد.