كيف يساعد BigQuery المسوق عبر الإنترنت: بعض الحيل باستخدام SQL وتصور التقارير في Google Data Studio

أخبر إيغور جاليشين ، رئيس تطوير الأجهزة المحمولة في Axmor ، مدونة Netology عن كيف يمكن لمسوق لديه معرفة بـ SQL (أو بمساعدة بسيطة من زملائه المهندسين) التغلب على مشكلة توفير سلوك المستخدم في تطبيقات Android.



هذه المقالة مفيدة لأولئك الذين يعملون مع تطبيقات Android ، ويطلقون حملات إعلانية فيها ، ويحللون النتائج ، والذين يشعرون بالضيق من عدم إمكانية استخدام Google Analytics لهذا الغرض. تحتوي المقالة على إرشادات حول كيفية ربط BigQuery بـ Firebase والعرض بشكل جميل في Data Studio.



تعمل Axmor على تطوير تطبيقات الهاتف المحمول منذ عام 2010. في عام 2016 ، طلبت منا إحدى أكبر شركات الطيران في روسيا مراجعة وتطوير تطبيق عميل Android الخاص بها لمبيعات التذاكر. من بين أمور أخرى ، تضمنت مهامنا تطوير أدوات لجمع التحليلات من أجل العروض الترويجية التي تتم بانتظام داخل التطبيق ، وتوفير البيانات في شكل مرئي. 



حتى عام 2020 ، استخدمنا Google Analytics لهذه الأغراض - وكذلك في تطبيقاتنا الأخرى. ولكن في 4 فبراير ، أوقفت الشركة هذه الميزة وأوصت بالتبديل إلى Firebase Analytics. اتضح أن SDK (من مجموعة تطوير البرامج الإنجليزية) لا توفر جميع الاحتمالات التي قدمها الإصدار السابق ، على وجه الخصوص ، لا تسمح ببناء تقارير غير قياسية.   



ما هي حدود Firebase Analytics وماذا تفعل بها



لوصف تجربتنا في حل هذه المشكلة ، دعنا ننتقل إلى تطبيق بيع تذاكر الطيران. عندما تم إيقاف تشغيل Google Analytics واستبدال Firebase Analytics ، واجهنا مهمة الحفاظ على نفس العمق في تحليل سلوك المستخدم للعميل ، وترك القدرة على إعداد تقارير جديدة غير قياسية بسرعة وفي نفس الوقت توفير تصور جميل يمكن الوصول إليه. 



في Google Analytics ، يمكننا معرفة الشاشات التي يذهب إليها المستخدمون ، والوجهات التي يبحثون عنها ، والمدن التي يتواجدون منها ، وعدد الشاشات المصرح لها في التطبيق ، وعددها المجهول. بالإضافة إلى ذلك ، رأينا دائمًا مقدار التذاكر التي تم شراؤها لكل اتجاه ، وكيف زادت المبيعات لاتجاهات معينة بعد الترويج ، وما إلى ذلك. باستخدام Firebase Analytics ، كان هذا الجزء الثاني من الإحصائيات ، والذي يمكننا من خلاله تحليل التحويل بالتفصيل ، متاحًا فقط في شكل أولي ، مما يعني أننا بحاجة إلى طريقة لإثرائه. 



إليك ما يمكننا فعله في Firebase Analytics: 



  • إقامة أحداث الشراء ؛
  • في المعلمات نشير إلى اسم المنتج - الاتجاه أو معرفه والسعر ؛
  • بعد ذلك ، في التقرير الموجود على موقع الويب ، يمكننا معرفة عدد التذاكر التي تم بيعها لأي رحلة ، ومتوسط ​​سعر الشراء ، وكم إجمالي المشتريات التي تم إجراؤها. 


المعلومات الواردة في الرسوم التوضيحية لا تتوافق مع المعلومات الحقيقية ؛ تم تغيير جميع الأرقام لصالح الأسرار التجارية. لا يؤثر هذا على معنى المثال ووضوحه ، فنحن في الأساس نعرض فقط إمكانيات Firebase.






هنا نرى في أي اتجاه عدد التذاكر التي تم شراؤها من قبل عدد المستخدمين. يريد العميل أن يعرف ، على سبيل المثال ، مقدار ما اشتراه من تذاكر لطريق يكاترينبورغ - موسكو. لا يقدم Firebase Analytics مثل هذه الإجابات. 







يقتصر محتوى المعلومات في التقرير على مجموعة المعايير القياسية - لا نرى سوى الصورة العامة. 



مثال آخر على تحليل البيانات ، والذي في حالتنا لا يمكن تنفيذه بالكامل في Firebase Analytics: يعرض التطبيق إعلانات داخلية لرحلات الطيران والاتجاهات. أراد العميل معرفة عدد المستخدمين الذين شاهدوا الإعلان ثم قاموا بشراء التذاكر. وبطبيعة الحال ، مع تقسيم الدخل حسب السلع والأسهم وما إلى ذلك. مرة أخرى ، لم تمنحنا الأدوات القياسية هذه الفرصة. 



كيفية استخدام BigQuery لتحليل المبيعات داخل تطبيق Android



بدأنا في البحث عن طريقة للحصول على تقارير مرئية سريعة في أقسام مختلفة. في الحالات التي تتطلب إجراء تحليل أعمق للبيانات ، تنصح Google بربط خدمة ويب BigQuery. لكن في فهمنا ، كان مثل مدفع على العصافير ، لأنه يُزعم أن الأداة تعمل مع البيانات الضخمة. ومع ذلك ، بناءً على دراسة تفصيلية للأداة ، اتضح أنها مناسبة حتى للمهام التي تتطلب تحليل كمية صغيرة نسبيًا من البيانات ، ولكن في نفس الوقت غير قياسي. بالتأكيد ، على مدار العامين الماضيين ، تغير مفهوم البيانات الضخمة - والآن أصبح كل ما هو غير مريح للمعالجة في Excel.



اتصال BigQuery



يعد ربط BigQuery بـ Firebase Analytics أمرًا بسيطًا. في كل صفحة من صفحات Firebase Analytics تقريبًا ، تقترح Google القيام بذلك. هناك تعليمات مفصلة لهذا.



التحذير الوحيد هو أنه لربط BigQuery ببيانات الأحداث ، عليك التبديل إلى خطة دفع Blaze في Firebase. هذا يعني أنه سيتم محاسبتك على خدمات Firebase أثناء استخدامك لها. من واقع خبرتنا ، فإن خدمات BigQuery غير مكلفة عند استخدامها بعناية في المشاريع الصغيرة. 



في خطة مجانية من خلال BigQuery ، لا يمكنك الوصول إلا إلى بيانات Crashlytics والتنبؤات والرسائل السحابية ومراقبة الأداء. 



يجب أن تفهم أن BigQuery ليس جزءًا من Firebase Analytics. إنها خدمة Google منفصلة مصممة للتعامل مع كميات كبيرة من البيانات. في هذه الحالة ، يعد Firebase Analytics for BigQuery أحد مصادر البيانات المحتملة. سيمكنك ربط BigQuery من العثور على الارتباطات والمزيد من الإحصاءات. 



ماذا يحدث بعد الاتصال 



بعد ربط BigQuery بـ Firebase Analytics ، أصبح بإمكاننا رؤية البيانات التي تم جمعها في شكل أولي. لا يمكننا الوصول إلى البيانات التي تم جمعها إلا بعد ربط BigQuery بمشروعنا. إذا قمت بتوصيل BigQuery اليوم ، فيمكنك معالجة البيانات التي تم استلامها بدءًا من اليوم ، فلن تكون بيانات الأمس كذلك.



لذلك ، قمنا بتوصيل كل شيء ، ننتقل إلى الصفحة الرئيسية للخدمة. نرى مشروعنا في الموارد. يوجد جدول واحد في البيانات - events. يتم جمع جميع البيانات من Firebase Analytics هنا. 







في الواقع ، هذه ليست طاولة واحدة. يتم وضع بيانات كل يوم في جدول باسم events_<>، على سبيل المثال events_20200308



لنلق نظرة على البيانات نفسها. يتم تسجيل جميع الأحداث من Firebase Analytics في جداول events_*. كل صف في الجدول هو حدث منفصل. تمثل العديد من الأعمدة معلمات الحدث: التاريخ ومعلومات الجهاز ومعلومات المستخدم وما إلى ذلك. على الرغم من أن البيانات معروضة في جدول ، إلا أنها ليست عادية تمامًا. إنه بالأحرى تمثيل جدولي لهيكل شجرة. يوجد أدناه مثال على بنية JSON لصف الجدول. للإيجاز ، لا يتم تضمين جميع البيانات في الهيكل ، ولكن يمكن فهم الصورة العامة منه:







بالنظر إلى بنية البيانات ، يمكنك أن ترى أنها تحتوي على:



  • . , - . : event_date, event_timestamp, event_name.
  • -. , , event_params user_properties. — . . — --. ,
  • -. — device. . — device.category, device.operating_system device.operating_system_version.


إذا بدت بنية البيانات معقدة في البداية ، فعند الفحص الدقيق يصبح الأمر أسهل. في النهاية ، لدينا معلومات عن جميع الأحداث من Firebase Analytics في أيدينا. ونحتاج فقط إلى سحب البيانات التي نحتاجها منه. 

دعنا نحاول تقديم بعض الطلبات. على سبيل المثال ، دعنا نعرض جميع تواريخ الأحداث:

    

SELECT event_date

FROM `project_name.data_set.events_20200202`


سنرى النتيجة:







project_name.data_set.events_20200202في هذه الحالة ، اسم الجدول المحدد ، والذي يتكون من اسم المشروع واسم مجموعة البيانات والجدول اليومي الذي يحتوي على أحداث من Firebase Analytics. أي ، في هذا الاستعلام ، حصلنا على تواريخ الأحداث من الجدول الذي كانت توجد فيه أحداث يوم 2 فبراير :) ليست مفيدة جدًا ، ولكنها ستفعل كمثال على الاستعلام. في الواقع ، من الأفضل أخذ عينات من جميع البيانات المتاحة. في هذه الحالة ، يمكنك تحديد جدول معين بدلاً من ذلك project_name.data_set.events_*. دعنا نضيف فائدة إلى الطلب ونكتشف ، على سبيل المثال ، تواريخ ومدن الأحداث بالاسم "booking_purchase":

    

SELECT geo.city, event_date

FROM `project_name.data_set.events_*`

WHERE event_name = "booking_purchase" and geo.city != ""


نحن نحصل:







الفائدة هي الحقول الخاصة فقط في الجدول - المصفوفات. على سبيل المثال event_params. يوصى باستخدام مشغل UNNEST للعمل مع هذه الحقول . يأخذ هذا المشغل حقل مصفوفة ويحوله إلى جدول. 

دعنا نحسن استعلامنا ونعرض قيمة المعلمة "direction":

    

SELECT 
geo.city, 
event_date,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = "direction") AS direction,
    	
FROM
`project_name.data_set.events_*`
    	
WHERE
event_name = "booking_purchase" and geo.city != ""


نتيجة:







فماذا أضفنا. لقد طبقنا مشغل UNNEST في الميدان event_params. نتيجة لذلك ، حصلنا على جدول تكون فيه الخطوط هي معلمات الحدث ، والأعمدة هي خصائص هذه المعلمات. المعلمات لها خاصيتان: مفتاح وقيمة. قيمة - كائن مع 4 مجالات: string_value، int_value، float_valueو double_value. هذه الحقول مطلوبة لأنواع بيانات مختلفة ، لأن قيمة المعلمة يمكن أن تكون سلسلة ، int ، float ، double. بعد ذلك ، من خلال الاستعلام الفرعي ، سحبنا قيمة سلسلة المعلمة مع الحقل keyيساوي direction. هذه هي الطريقة التي يمكنك بها العمل مع حقول الصفيف في جدول.



دعنا نحصل على ما لا يمكن أن تقدمه لنا Firebase Analytics - توزيع الإيرادات لكل منتج يتم بيعه في التطبيق:



  1. في Firebase Analytics ، نجتاز حدث الشراء "booking_purchase"
  2. في ذلك ، نقوم بتمرير معلمتين: "direction"و "price". الاتجاه - معرّف المنتج ، السعر - سعره.


أود أن أعرف عدد المنتجات التي تم بيعها وكميتها. يبدو طلب معرفة ذلك كما يلي:



SELECT
  	
direction,
  	
count(direction) as count,
  	
sum(price) as total_sum
FROM
(
    	
SELECT
      	
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = "direction") AS direction,
      	
(SELECT value.double_value FROM UNNEST(event_params) WHERE key = "price") AS price
    	
FROM
        	
`project_name.data_set.events_*`
    	
WHERE
      	
event_name = "booking_purchase"
      	
)
group by direction
order by total_sum desc


نتيجة:







حصلنا على البيانات التي أردناها. 



كيفية تقديم التقارير في Data Studio



لنفترض أن أحد العملاء يريد القدوم والاطلاع على إحصائيات المبيعات في أي وقت. يمكنك حفظ الاستعلام وإخبار العميل بأنه يمكنه الانتقال إلى وحدة تحكم BigQuery وتشغيل الاستعلام والاطلاع على النتيجة. لكن Google تقدم حلاً أفضل. 



يمكن تصور نتائج الاستعلام في خدمة Data Studio. تتيح لك الخدمة تقديم البيانات في شكل جداول ورسوم بيانية ومخططات وجمال ووظائف لا تقل عن تلك الموجودة في Firebase Analytics. دعونا نرى كيف يمكنك القيام بذلك.



لإنشاء تقرير ، يجب عليك الانتقال إلى الصفحة الرئيسية للخدمة وإنشاء مستند جديد. حدد BigQuery كمصدر بيانات:







يمكن إنشاء التقرير من جدول أو طريقة عرض محفوظة أو مباشرة عن طريق الاستعلام. يسمح لك الخيار الأخير باستخدام معلمات التاريخ. باستخدام هذه المعلمات ، يمكنك تقييد تحديد البيانات حسب التاريخ ، وبالتالي تحسين كمية البيانات المعالجة. النتيجة تشبه واجهة Google Analytics و Firebase - حول نفس الأشكال والوظائف. يبدو أن الشركة قد اتخذت أفضل ممارساتها من حيث التصور وجعلتها متاحة للجمهور: 







أضفنا شرطًا بحيث يكون التحديد فقط لتلك الأحداث التي وقعت بين المعلمات DS_START_DATEو DS_END_DATE. سيتم تمرير هذه المعلمات إلى الطلب مباشرة من نماذج التقرير. نقوم بإنشاء تقرير ونرى على الفور شيئًا كهذا:







بعد ذلك ، يمكنك إضافة تحديد النطاق الزمني. للقيام بذلك ، أضف

المكون المناسب إلى النموذج :







ستنتقل التواريخ المحددة في هذا المكون مباشرةً إلى الاستعلام كمعلمات DS_START_DATEو DS_END_DATE. ونتيجة لذلك ، سيبدو التقرير في وضع العرض كما يلي:







بالطريقة نفسها ، يمكنك إضافة وتخصيص مكونات أخرى في النموذج - الرسوم البيانية والمخططات والصور والنص وما إلى ذلك. بعد ذلك ، يمكن مشاركة التقرير عبر مشاركة الرابط أو عن طريق توفير الوصول إلى الحسابات المطلوبة.  



BiqQuery هي أداة فعالة لا ينبغي الخوف منها



تعد تطبيقات الأجهزة المحمولة أداة مبيعات وتسويق قوية ، خاصةً عندما تتبع نهجًا يعتمد على البيانات. لا يجب أن تخاف من BiqQuery ، وتعتقد أن هذه الأداة معقدة ، وبشكل عام ، تعد البيانات الضخمة رائعة جدًا بالنسبة لك. ستعمل BigQuery على رفع قسم التحليلات لديك إلى مستوى Spotify و Delivery Food وعمالقة البيانات الأخرى وتقديم نفس الأداء الذي يتمتعون به ، مقابل جزء بسيط من التكلفة ، مع أبسط SQL يجب على كل محلل تقدمي إتقانه ، سواء في التسويق أو التسويق. في المنتج. 



مزايا BigQuery:



  • يتم تكوينه بسرعة ويسمح لك بمعالجة البيانات في غضون ثوان. لا توجد خوادم ولا بنية تحتية باهظة الثمن ولا مسؤول. 
  • , , , : , , -, CRM.
  • , — .  
  • SQL — . 
  • Data Studio, .







All Articles