رفع اشکال تحویل آگهی در پینترست نیشانت روی | مدیر مهندسی، پلت فرم ارائه تبلیغات صفحه نمایش تلفن با بینش برداشت ها، کل مخاطبان، تعامل و مخاطبان درگیر: https://unsplash.com/photos/hOGKh5qHNAE مقدمه و پس زمینه پلت فرم ارائه تبلیغات Pinterest بیش از 2.5 میلیارد دلار هزینه تبلیغات در سال 2021 از هزاران تبلیغ کننده ارائه کرد. تیم عملیات مشتری ما به طور میانگین هر ماه بیش از 600 بلیت از تبلیغکنندگانی دریافت میکند که به دنبال درک عملکرد آنها در پلتفرم ما هستند. انجام پروژه انجام پروژه متلب متلب یکی از رایج ترین سوالاتی که دریافت می کنیم این است که چرا یک تبلیغ کننده/کمپین تبلیغاتی خاص به طور کامل از بودجه خود استفاده نمی کند. این سوال به تجزیه و تحلیل عمیق یک سیستم توصیه تبلیغاتی متشکل از 5+ میکروسرویس، 1 میلیون خط کد و بیش از 100 توسعه دهنده فعال نیاز دارد که روزانه بیش از 90 میلیون درخواست را ارائه می دهد. این وبلاگ توضیح میدهد که چگونه سیستمی برای پاسخگویی سریع به این سؤالات بدون نیاز به تخصص یا زمینه فنی عمیق ایجاد کردیم. ما سه هدف اصلی داشتیم: با کاهش زمان صرف شده برای حل مشکلات آنها، رضایت تبلیغ کنندگان را بهبود بخشید تجزیه و تحلیل داده ها را به صورت خودکار انجام دهید و توصیه هایی برای تبلیغ کننده برای بهبود نرخ تحویل ایجاد کنید پوشش تمامی اجزای سیستم (نمایه گذاری، بودجه بندی/سرعت گذاری، تولید نامزد، رتبه بندی، قیف تبلیغات، حراج و غیره) طراحی/چالش ها پوشش داده ها اکثر دادههای موجود برای اشکالزدایی در سطح درخواست بودند و بهشدت برای کاهش هزینهها نمونهگیری شدند، که به این معنی بود که ما دادههای کافی برای درک رفتار سیستم برای همه تبلیغکنندگان نداریم. ما به پوشش گسترده ای برای همه تبلیغ کنندگان نیاز داشتیم، با شمارش در تمام مراحل سیستم توصیه تبلیغات، بدون متحمل شدن هزینه های هنگفت ثبت و ذخیره سازی. راه حل: خط لوله داده جمع آوری شده در Druid پس از تحقیق در مورد گزینه های خود، به دلایل زیر استفاده از Druid را به عنوان راه حل ذخیره سازی خود انتخاب کردیم: نرخ بالای جذب در زمان واقعی از طریق کافکا: هر درخواست تبلیغات ممکن است شامل هزاران نامزد باشد، و ما باید دادههای همه این شناسهها را ثبت کنیم. ما قبلاً به طور گسترده از کافکا برای ورود به سیستم استفاده می کردیم، بنابراین توانستیم بسیاری از زیرساخت های خود را با Druid دوباره استفاده کنیم. با استفاده از کافکا با Druid، خط لوله ما داده ها را به صورت بلادرنگ برای اشکال زدایی با حداکثر چند دقیقه تاخیر در دسترس قرار می دهد. پشتیبانی از جستارهای تجمعی: الگوی پرس و جو مورد انتظار ما بازیابی تعداد برای یک شناسه خاص در یک دوره زمانی معین است. Druid برای دادههای سری زمانی بهینهسازی شده است و انعطافپذیری انباشتگی بسیار خوبی را فراهم میکند، طراحی لوگو طراحان لوگو لوگو بنابراین نیازهای ما را برآورده میکند. تأخیر کم و هزینه ذخیره سازی: Druid به ما امکان می دهد تا در زمان واقعی تعداد دفعات شناسه را مشاهده کنیم. همچنین، Druid از تجمع در زمان مصرف پشتیبانی می کند، که اندازه داده های ذخیره شده را به حداقل می رساند. در اینجا نمونه ای از طرح ورود به سیستم و یک پاسخ Druid آمده است: طرحواره گزارش (نمونه) { TimestampMs CampaignID AdvertiserID TrimmedStage … } Druid Response (نمونه) // برای CampaignID = 1234 { تعداد کل: 500000، // تعداد کل موارد ثبت شده در محدوده زمانی idCounts: 20000 تعداد کل / با تعداد کل / این CampaignID در محدوده زمانی نتایج: [ { “stage”: “ad_relevance_stage”, “TrimmedCount”: 1500, }, { “stage”: “ad_budget_checker_stage”, “TrimmedCount” : 550, },… ] } با این داده ها، اکنون می توانیم به سوالاتی مانند: یک کمپین بیشتر در چه مرحله ای از بین می رود؟ میانگین نرخ برش برای هر مرحله چقدر است؟ نرخ برش یا نرخ درج کمپین در طول روز چگونه تغییر کرده است؟ با پاسخ دادن به این سؤالات، میتوانیم به سرعت بفهمیم که آیا ارائه ضعیف تبلیغات ناشی از یک اشکال در سیستم است (به عنوان مثال، تغییر کد به یک مرحله خاص) یا پیکربندی بد کمپین (به عنوان مثال، پیشنهاد قیمت یا بودجه بسیار کم). میکروسرویس ها سیستم تحویل آگهی ما از چندین سیستم مختلف تشکیل شده است که هر کدام وظایف خاص خود را دارند (تولید نامزد، اصلاح، امتیازدهی، مدیریت پیشنهاد/بودجه، نمایه سازی، فیلتر ایمنی محتوا و غیره). دلیل اصلی عملکرد ضعیف کمپین ممکن است در هر یک از این سیستمها باشد که متعلق به چندین تیم مختلف در Pinterest است و تریاژ و حل مشکلات تحویل را به چالش میکشد. راه حل: UI واحد اشکال زدایی برای سادهسازی فرآیند اشکالزدایی، یک رابط کاربری یکپارچه ایجاد کردیم تا دادههای ثبتشده از همه سیستمهای درگیر در فرآیند تحویل آگهی را تجسم کنیم. طراحی سایت سفارش طراحی سایت سایت کاربران اکنون می توانند شناسه کمپین را وارد کرده و تنها در چند ثانیه اطلاعات دقیق اشکال زدایی را در تمام سیستم ها مشاهده کنند. اکنون می توانیم به راحتی به سوالاتی مانند: کدام مراحل بالاترین نرخ تریم را داشتند؟ آیا فیلترینگ بیش از حد محتوا وجود داشت؟ آیا کمپین در شاخص فعال نبود؟ آیا تغییراتی در بودجه ایجاد شد؟ آیا تبلیغ کننده تغییراتی در تنظیمات کمپین خود ایجاد کرده است؟ اسکرین شات از UI Debugger Delivery که خلاصه هزینه کمپین و برگهها را برای جزئیات بیشتر در مورد بخشهای مختلف سیستم تحویل آگهی (بازیابی، بودجهبندی و غیره) نشان میدهد. شکل 1: رابط کاربری یکپارچه اشکال زدایی با برگه ها برای هر سیستم در فرآیند تحویل تبلیغات نمودار نمونه ای که تعداد کمپین معین را در هر مرحله از قیف تبلیغاتی نشان می دهد شکل 2: تعداد بریده شده توسط گوزن