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

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

في المرحلة الأولى ، أعدنا من الصفر الجزء الذي كان يعمل سابقًا في PHP - خدمة اختصار الرابط والترخيص.
تعد أداة اختصار الروابط جزءًا من الوظائف المتاحة مجانًا لجميع المستخدمين المسجلين وتستخدم لجذب العملاء إلى خدمات الشركة المدفوعة. تتيح لك الخدمة إحضار رابط طويل إلى نموذج قصير لنشره على الشبكات الاجتماعية. في الوقت نفسه ، يمكنك تخصيص الرابط من خلال إعداد ، على سبيل المثال ، الاستهداف الجغرافي: حسب البلد الذي جاء منه المستخدم ، يمكن عرض صفحات مقصودة مختلفة.
عند تحديث الواجهة الخلفية ، استخدمنا OpenJDK 1.8 و Kotlin و Spring boot / data / web - الإطار القياسي لمشروع لا يتوقع أحمالاً عالية. بالمناسبة ، في هذا المشروع ، جربنا Kotlin "في معركة" لأول مرة ، وبسبب بناء الجملة ، سمح لنا بتسريع عملية التطوير بشكل كبير. بالتأكيد ، سوف نستخدمها في مشاريع أخرى.
تم بناء قاعدة بيانات خدمة التفويض والمختصرة المنفذة في المرحلة الأولى على أساس PostgreSQL - كان نموذج تخزين البيانات الارتباطي مناسبًا تمامًا لحل هذه المشكلات.
في المرحلة الثانية ، تولينا إدارة الحملات الإعلانية. كانت هذه الوظيفة على نظام العميل موجودة أيضًا في وقت سابق ، ولكن من خلال خدمة الشريك ، والتي كان عليك دفعها. الآن نمت منصة العميل إلى الحد الذي كان من الضروري فيه الاهتمام بالبنية التحتية الخاصة به. الخدمة الخاصة ، على عكس الطرف الثالث ، هي أسهل بكثير في التطور في الاتجاه الصحيح ، وإجراء التغييرات اللازمة بسرعة.
في هذا الجزء من المشروع ، قمنا بتنفيذ واجهة برمجة التطبيقات الخارجية فقط لمدير الحملة. ولكن في المرحلة الثالثة ، قمنا بتطوير هذه الوحدة - وضعنا اللمسات الأخيرة على واجهة برمجة التطبيقات وقمنا بإنشاء واجهة مستخدم كاملة لمدير الحملة.
في موازاة ذلك ، قمنا بتطوير DMP صغير (نظام إدارة البيانات) الذي يدير جمع بيانات الزائر. يتم تخزين بيانات DMP في MongoDB ، لأننا قررنا ترك العمل الأساسي للتحجيم الأفقي المستقبلي لقاعدة البيانات هذه. يخدم الآن DMP ما يصل إلى ألفي طلب في الثانية (في الذروة) ، بينما ركزنا على تخزين حوالي تيرابايت من البيانات. كان من الممكن حفظ هذا المجلد في PostgreSQL ، لكن على المدى الطويل كان من الضروري استخدام جهود كبيرة للتوسع.
يتم استخدام MongoDB نفسه في قاعدة بيانات مدير الحملة (Campaign DB) - هنا نموذج قاعدة بيانات موجهة نحو المستند اقترب منا بشكل جيد. تذهب الحملات ككيانات مفردة ويمكن أن تتوسع.
جميع مخابئ العمل على Redis.
الواجهة الأمامية: Angular 5 ، TypeScript ، HTML5 ، Sass ، Node.js ، npm ، Angular CLI.
خلال المرحلة الأخيرة من المشروع ، أكملنا تكامل أنظمة العملاء وخدمات شريك رئيسي ، مما فتح الوصول إلى قاعدة ضخمة من الموسيقيين للشركة ، مما سيضمن زيادة في عدد المستخدمين.
كانت هناك بعض الصعوبات في المشروع. أراد العميل حفظ بيانات المستخدم والتسجيلات المتراكمة أثناء تشغيل الخدمة ، مع تغيير النموذج قليلاً. بالتوازي مع تغيير البنية ، قمنا بنقل التسجيلات وتغيير مبادئها - من اسم المستخدم إلى البريد الإلكتروني كمعلومات تسجيل دخول ، والتي جلبت لنا العديد من الليالي بلا نوم بسبب القيود المفروضة على عدد المستخدمين الذين لديهم نفس عنوان البريد الإلكتروني. لقد تغير نموذج الحقوق في النظام. في السابق ، كانت الخدمة تعمل وفقًا لنموذج من مستويين ، لكننا طبقنا نموذجًا للحقوق دون قيود (بما في ذلك القدرة على إصدار حقوق محدودة).
في الوقت نفسه ، وسعت وظيفة. على سبيل المثال ، في إحدى المراحل ، ظهر متعدد المراحل ، بمساعدة الزوار النهائيين الذين ينقرون على روابط قصيرة لتكوين معين ، يمكنك إعداد صفحات مع قائمة من الخدمات التي تكون فيها هذه التراكيب متاحة للشراء القانوني أو الاستماع.
بشكل منفصل ، الناتج القومي الإجمالي
السوق الرئيسي لعملائنا هو الولايات المتحدة الأمريكية ، ولكن حوالي 10 ٪ من حركة المرور التي لا تريد الشركة أن تخسرها جاءت من أوروبا. منذ بدء سريان اللائحة الجديدة (25 مايو 2018) ، تم ببساطة تعطيل استهدافها. بعد التشاور مع المحامين ، قمنا ببناء الخدمة بطريقة لا تتعارض مع إجمالي الناتج المحلي ، ومن 16 أغسطس بدأنا في الاستهداف مرة أخرى.
بصراحة ، درسنا تعقيدات اللوائح في جميع أنحاء المجموعة لمدة أسبوعين. كانت الصعوبة في هذه المرحلة أنه ، مع الغموض العام للكلمات ، لا توجد ممارسة لفرض القانون حتى الآن - حالات حقيقية يمكن أن تظهر كيفية القيام بذلك بشكل صحيح وكيفية القيام بذلك بشكل خاطئ. ومع ذلك ، الآن (بعد بحثنا والتشاور مع المحامين) ، نحن واثقون من بنية تطبيق الحل.
يتضمن منطق الخدمة إضافة مستخدم يتبع رابطًا قصيرًا لجمهور محدد ، بحيث يمكن عرض الإعلانات عليه لاحقًا. من حيث الناتج المحلي الإجمالي ، لا يمكن القيام بذلك دون موافقة صريحة من المستخدم. ونفذنا طلبًا للموافقة - عندما تنقر على الرابط في أسفل الصفحة ، تظهر لوحة بها سؤال وزرين. يتم فتح الطلب للمستخدمين الذين ينتمي IP الخاص بهم إلى أوروبا ، ويتم تخزين ردهم في شكل ملفات تعريف الارتباط ، بحيث لا يضطر الزوار إلى الضغط على الأزرار في كل مرة.
إذا لم يكن هناك موافقة من المستخدم (مثل ملفات تعريف الارتباط) ، فنحن ببساطة لا نعرضها بكسل ، أي في الإحصاءات العامة للخدمة ، سيتم حساب حقيقة الزيارة ، ولكن لن يتم جمع بيانات المستخدم وأخذها في الاعتبار.
يفرض إجمالي الناتج المحلي قيودًا معمارية - يجب ألا يتم جمع البيانات الشخصية بشكل صحيح فحسب ، بل يجب أيضًا تخزينها بأمان. في حالتنا ، تنطبق هذه القيود على DMP المطبق (على الرغم من أنه يخزن بيانات مجهولة الهوية مع معرّفات مجهولة تسمح لها افتراضيًا بإلغاء الهوية) وقاعدة بيانات خدمة التخويل. في الهندسة المعمارية لدينا ، يتم تخصيص هذه القواعد بشكل واضح في كتل منفصلة. وفقًا للوائح ، يكون وصول الجهات الخارجية إلى هذه الوحدات "الحساسة" محدودًا بشكل طبيعي.
الخدمة المقابلة فقط لديها حق الوصول إلى قاعدة بيانات التخويل. لا تعرف جميع الخدمات الأخرى أي شيء عن البيانات الشخصية لمستخدم النظام الأساسي - فهي تحتاج فقط إلى التحقق من صحة خدمة التفويض.
تتضمن قاعدة بيانات DMP فقط الخدمة مسمى. في الوقت نفسه ، يتم إرجاع مجاميع بيانات الجمهور فقط من قاعدة البيانات ، وليس البيانات نفسها. تشكل هذه المجاميع أساس التحليلات التي يتلقاها مستخدمو الخدمة من صناعة الموسيقى في حساباتهم الشخصية.
لدينا أيضًا إجراء إلزامي لتحميل وحذف بيانات المستخدم. كان هناك سؤال حول كيفية التحقق من أن المستخدم يطلب حقًا بياناته بطريقة مشروعة. ونحن نستخدم ملف تعريف الارتباط المخزن من قبل المستخدم كعامل للتحقق.
تم الانتهاء من المشروع مؤخرًا ، لذلك من السابق لأوانه الحديث عن أي نتائج رقمية.
مؤلف المقال: نيكولاي إريمين
ملاحظة: ننشر مقالاتنا على عدة مواقع من Runet. اشترك في صفحاتنا على
VK أو
FB أو
Telegram-channel لمعرفة كل منشوراتنا وغيرها من أخبار Maxilect.