Avvalo, Ads API nima? Nega bizga kerak? Oxirgi xatboshidan ko'rinib turibdiki, bizning veb-interfeysimiz juda murakkab shaklga ega bo'lishi va mijozlarimizga (reklamachilarga) buyurtmalarini boshqarishda yordam berishi kerak. Ushbu o'zgarishlarning barchasini davom ettirish va foydalanuvchi interfeysi uchun ma'lumotlarni taqdim etish uchun bizga CRUDlarni amalga oshirish uchun xizmat ko'rsatish qatlami kerak bo'ladi. Biroq, agar bu yagona funksionallik bo'lsa, biz uni API deb atay olmaymiz. Bu har qanday boshqa backend kabi bo'lishi mumkin.
Aslida, reklama beruvchilar odatda barcha tuxumlarni bitta chelakka joylashtirmaydi. Biz ular uchun yaratgan ushbu veb-interfeysdan foydalanishdan tashqari, ular ba'zi reklama agentliklari bilan maslahatlashadilar va o'z byudjetlarining bir qismini u erda sarflashadi. Ushbu reklama agentliklari odatda marketing kampaniyalarini kuzatish va barcha asosiy raqamli reklama platformalariga to'g'ridan-to'g'ri kirish uchun o'z dasturlariga ega. Shuning uchun, Ads API-lar agentliklar tomonidan ham foydalanish uchun mo'ljallangan. Agar biz o‘z ichki yechimimizni ushbu tashqi Ads API ustiga qursak, muammolarni API mijozlarimizga qaraganda ertaroq aniqlashimiz mumkin.
Uchinchi tomon agentliklari bilan kurashish uchun ko'pincha eng yaxshi imkoniyat RESTful API-larni yaratishdir, chunki bu ikki notanish tomonning muloqot qilishining deyarli standart usuli. Bundan tashqari, gRPC va GraphQL kabi ajoyib echimlar mavjud, ammo RESTful bu erda eng moslikni kafolatlaydi. Bundan tashqari, RESTful API’laringiz uchun umumiy hujjatlarni yozish ham osonroq, chunki narsalar resurslar va usullar bo‘yicha guruhlangan.
Endi biz API-larni qanday tuzish haqida umumiy fikrga egamiz. Men ushbu API-larni amalga oshirishda to'rtta ustun haqida qisqacha gaplashmoqchiman.
Kampaniya boshqaruvi Muxtasar qilib aytganda, kampaniyani boshqarish men oxirgi bo'limda sanab o'tgan barcha reklama ob'ektlarining CRUDidir. Biroq, biznes nuqtai nazaridan, bu ba'zi qadriyatlarni saqlab qolishdan ko'ra murakkabroq. Birinchidan, biz har qanday biznes qoidalari uchun tonna tasdiqlash bilan shug'ullanishimiz kerak. Demak, Fasad kabi to'g'ri dizayn namunasi va interfeyslar va merosdan foydalangan holda izchil abstraktsiya muhim ahamiyatga ega. Ikkinchidan, ish jarayonini boshqarish mumkin bo'lishini ta'minlash uchun kampaniyalar, reklama to'plami yoki reklamaning turli holatini saqlab qolish uchun bu erda davlat mashinasidan foydalanish ham mumkin. Uchinchidan, ko'plab reklama operatsiyalari uzoq muddatli yoki asinxrondir. Misol uchun, har safar yangi video yuklanganda, biz videoning turli xil rezolyutsiyalarini/kodlashni bir nechta platformalarda foydalanish uchun tayyorlash uchun qurish jarayonini boshlashimiz kerak. Ushbu turdagi asinxron ishlar odatda PubSub yoki TaskQueue tizimi tomonidan boshqariladi va men yuqorida aytib o'tgan davlat mashinasi bilan birlashadi. To'rtinchidan, ma'lumotlar bazasi tranzaktsiyalarni kengaytiriladigan tarzda qo'llab-quvvatlashi kerak, chunki Kampaniyalarni boshqarishdagi aksariyat operatsiyalar bir nechta jadvallarga ta'sir qilishi mumkin.