درباره Topics API
در تبلیغات موبایلی، تبلیغکنندگان میخواهند تبلیغات مرتبطی را ارائه دهند که به علاقه کاربر مربوط میشود. Topics API برای پشتیبانی از SDK های تبلیغاتی شخص ثالث طراحی شده است که معمولاً در چندین برنامه کار می کنند. این پشتیبانی به شکل نمایان شدن برخی از علایق بین برنامه ای است که آن SDK ها معمولاً مشاهده می کنند. توسعه دهندگان برنامه های جداگانه نباید انتظار داشته باشند که اطلاعات بیشتری در مورد کاربران خود بیاموزند. بیاموزید که چگونه Topics تبلیغات مبتنی بر علاقه را فعال می کند .
مفاهیم کلیدی
- موضوع یک موضوع قابل خواندن توسط انسان مورد علاقه این کاربر است و بخشی از طبقه بندی موضوعات است.
- اگر تماسگیرنده در 3 دوره گذشته درخواستهای API موضوعاتی را از یک برنامه مرتبط با این موضوع داشته باشد، توسط تماسگیرنده (یک برنامه یا یک SDK شخص ثالث مورد استفاده در برنامه) مشاهده میشود.
- دوره یک دوره محاسبه موضوع است، مانند یک هفته.
چگونه کار می کند
با این پیشنهاد، Topics API در نظر دارد موضوعات تبلیغاتی مورد علاقه خود را بر اساس میزان استفاده کاربر از برنامه ارائه دهد. برای مثالهای کدی که نحوه تنظیم توانایی واکشی موضوعات برای تبلیغات مبتنی بر علاقه را نشان میدهد، به راهنمای توسعهدهنده Topics API مراجعه کنید. توجه: API ها هنوز نهایی نشده اند.
موضوعات از یک طبقه بندی منبع باز از پیش تعریف شده انتخاب شده اند.
این پلتفرم از یک مدل طبقه بندی کننده برای استنتاج موضوعات استفاده می کند. پیادهسازی Topics API و استفاده آن از طبقهبندیکننده بخشی از پروژه منبع باز Android خواهد بود و با گذشت زمان بهبود مییابد.
برای اهداف توضیحی، مثال کد زیر استفاده از موضوعات را برای واکشی یک تبلیغ مبتنی بر علاقه نشان میدهد. API های استفاده شده در اینجا نهایی نیستند.
// Initialize the Topics API.
…
topicsFuture = AdvertisingTopicsClient.getTopics();
// Retrieve Topics and use them in Ad request.
Futures.addCallback(
topicsFuture,
new FutureCallback<AdvertisingTopicsInfo>() {
@Override
public void onSuccess(@Nullable AdvertisingTopicsInfo topicsInfo) {
// Sanitize Topics result.
...
// Initialize ad request with Topics obtained.
AdRequest adRequest = AdRequest.initialize(topicsInfo);
}
@Override
public void onFailure(Throwable t) {
// Handle error.
...
}
});
برای درک بهتر نحوه عملکرد مدل طبقهبندیکننده، میتوانید با استفاده از Android Topics Classifier Colab، نحوه واکنش دادههای برنامههای مختلف در سیستم را آزمایش کنید.
به موضوعات API دسترسی پیدا کنید
پلتفرمهای فناوری تبلیغات برای دسترسی به Topics API باید ثبتنام کنند، برای اطلاعات بیشتر به ثبت نام برای حساب Sandbox حریم خصوصی مراجعه کنید.
جزئیات
یک بار در هر دوره (به عنوان مثال یک بار در هفته)، 5 موضوع برتر کاربر با استفاده از اطلاعات روی دستگاه محاسبه می شود.
- هنگامی که Topics API فراخوانی می شود، پلتفرم بررسی می کند که آیا موضوعی به برنامه ای که API را فراخوانی می کند اختصاص داده شده است یا خیر. اگر هیچ موضوع اختصاص داده شده وجود نداشته باشد، یکی به شرح زیر انتخاب می شود و موضوع انتخابی برای بقیه این دوره به این برنامه اختصاص داده می شود.
- با احتمال 95٪، یک موضوع به طور تصادفی از لیست 5 موضوع برتر محاسبه شده برای آن دوره انتخاب می شود.
- با احتمال 5 درصد، موضوعی به صورت تصادفی از طبقه بندی انتخاب می شود.
- تماس گیرنده می تواند تعیین کند که می خواهد موضوعات را بدون تغییر وضعیت با فراخوانی
getTopics
با استفاده از پارامترshouldRecordObservation = false
بازیابی کند. این بدان معنی است که موضوعات را می توان برگرداند، اما تماس در محاسبه دوره هفتگی گنجانده نمی شود، و همچنین لیست موضوعات مشاهده شده برای تماس گیرنده را به روز نمی کند.
- دلیل اینکه هر برنامه یکی از چندین موضوع را دریافت میکند این است که اطمینان حاصل شود که برنامههای مختلف موضوعات متفاوتی را دریافت میکنند، و این امر باعث میشود برنامهها ارتباط متقابل یک کاربر مشابه را سختتر کنند.
- برای مثال، برنامه A ممکن است موضوع T1 را برای کاربر ببیند، اما برنامه B ممکن است موضوع T2 را ببیند. این امر تشخیص این که این اطلاعات با یک کاربر مرتبط است برای دو برنامه دشوارتر می شود.
- هنگامی که Topics API فراخوانی می شود، پلتفرم بررسی می کند که آیا موضوعی به برنامه ای که API را فراخوانی می کند اختصاص داده شده است یا خیر. اگر هیچ موضوع اختصاص داده شده وجود نداشته باشد، یکی به شرح زیر انتخاب می شود و موضوع انتخابی برای بقیه این دوره به این برنامه اختصاص داده می شود.
Topics API فهرستی از حداکثر 3 موضوع، 1 برای هر یک از 3 دوره گذشته را برمیگرداند.
- با ارائه حداکثر 3 موضوع، برنامههایی که به ندرت استفاده میشوند، موضوعات کافی برای یافتن تبلیغات مرتبط خواهند داشت، اما برنامههای پرکاربرد حداکثر 1 موضوع جدید در هفته یاد خواهند گرفت.
- اطلاعات موضوع برگشتی شامل شناسه موضوع (int) مربوط به ورودی در طبقه بندی، نسخه طبقه بندی و نسخه مدل طبقه بندی کننده است.
- فقط تماسگیرندگانی که کاربر را مشاهده کردهاند از برنامه مرتبط با موضوع مورد نظر در 3 دوره گذشته استفاده میکنند میتوانند موضوع را دریافت کنند.
- همه موضوعات بازگردانده شده نشان دهنده علایق کاربر است و شما می توانید یکی یا همه این موضوعات را برای شخصی سازی آگهی در درخواست آگهی خود انتخاب کنید.
پس از اختصاص موضوعی به برنامه ای که Topics API را فراخوانی می کند، پلتفرم تعیین می کند که آیا تماس گیرنده می تواند این موضوع را دریافت کند یا خیر.
- فقط تماسگیرندگانی که تعامل کاربر با یک برنامه مرتبط با موضوع مورد نظر را در 3 دوره گذشته مشاهده کردهاند، میتوانند موضوع را دریافت کنند.
- اگر تماسگیرنده در گذشته برای آن کاربر در برنامهای درباره آن موضوع با API تماس نگرفته باشد، آن موضوع در فهرستی که توسط API برگردانده میشود گنجانده نمیشود.
- اگر تماسگیرنده در 3 دوره گذشته هیچ موضوعی دریافت نکرده باشد، Topics API یک لیست خالی را برمیگرداند.
به عنوان مثال، فرض کنید که کاربر 7 برنامه روی دستگاه نصب کرده است: A، B، C، D، E، F و G. فرض کنید که طبقه بندی موضوع برای برنامه و SDK های فناوری تبلیغات در این برنامه ها به شرح زیر است:
برنامه طبقه بندی موضوع SDK فناوری تبلیغات الف T1، T5 ad-sdk1، ad-sdk2 ب T2 ad-sdk2 سی T3، T6 ad-sdk3، ad-sdk4 دی T1، T4 ad-sdk1 E T5 ad-sdk4، ad-sdk5 اف T6 ad-sdk2، ad-sdk3، ad-sdk4 جی T7 ad-sdk2 - پایان هفته 1: Topics API 5 موضوع برتر کاربر را برای این دوره تولید می کند.
موضوع برتر تماس گیرندگانی که می توانند در مورد موضوع یاد بگیرند T1 ad-sdk1، ad-sdk2 T2 ad-sdk2 T3 ad-sdk3، ad-sdk4 T4 ad-sdk1 T5 ad-sdk1، ad-sdk2، ad-sdk4، ad-sdk5 - در هفته 2، اگر تماسگیرندهای در هر برنامهای با API تماس بگیرد، لیست موضوعات برگشتی فقط شامل موضوعاتی میشود که تماسگیرنده در ستون «تماسگیرندگانی که میتوانند درباره موضوع یاد بگیرند» برای آن موضوع برای آن برنامه برای آن دوره است.
- پنجره تاریخ گنجانده شده در محاسبه موضوعات موجود برای هر تماس گیرنده 3 دوره (یا 3 هفته) است.
- فقط از موضوعات مرتبط با برنامههایی استفاده میشود که از طریق کیتهای توسعه نرمافزار (SDK) آگهی، موضوعات API را فراخوانی میکنند. این به این معنی است که اگر برنامهای شامل هیچ کیت توسعه نرمافزاری (SDK) تبلیغاتی نباشد که آنها API موضوعات را فراخوانی میکنند، موضوعات مرتبط با آن برنامه به مجموعه موضوعات قابل دسترسی توسط کیت توسعه نرمافزارهای تبلیغاتی کمک نمیکنند.
- یک برنامه همچنین میتواند از طریق عناصر مانیفست جدید و XML بهطور اعلامی از API موضوعات انصراف دهد تا SDKهای تبلیغاتی را از استفاده از API برای آن برنامه منع کند. موضوعات مرتبط با برنامه های انصراف داده شده به محاسبه هفتگی موضوع کمک نمی کند. این سند بهروزرسانی میشود تا شامل جزئیات پیادهسازی مرتبط باشد.
اگر استفاده از برنامه کافی برای پلتفرم برای استنتاج 5 موضوع وجود نداشته باشد، پلتفرم ممکن است گزینه هایی مانند تولید تصادفی موضوعات باقی مانده را در نظر بگیرد.
طبقه بندی
- در پیشنهاد فعلی، طبقه بندی اولیه چیزی بین چند صد تا چند هزار موضوع را شامل می شود. پیشنهاد طبقه بندی اولیه در به روز رسانی آینده این سند به اشتراک گذاشته خواهد شد.
- این طبقه بندی توسط انسان تنظیم می شود تا موضوعات حساس بخشی از طبقه بندی نباشد.
- این طبقهبندی برای دستهبندی تبلیغاتی که میتوانند در برنامههای تلفن همراه در اندروید نشان داده شوند، تنظیم میشود.
- طبقه بندی برای عموم در دسترس است و ممکن است تغییر کند. پیشنهادات را می توان با استفاده از دکمه بازخورد در بالای این صفحه ثبت کرد.
طبقه بندی موضوع
موضوعات مورد علاقه از یک مدل طبقهبندیکننده مشتق شدهاند که بر روی اطلاعات برنامه در دسترس عموم (مانند نام برنامه، توضیحات و نام بسته) آموزش داده شده است.
- هنگامی که از مدل طبقهبندی کننده برای استنتاج برای محاسبه موضوعات برای یک دوره معین استفاده میشود، مجموعه سیگنالهای مورد استفاده روی دستگاه باقی میماند. این مجموعه سیگنالها ممکن است شامل برنامههایی باشد که نصب شده یا اخیراً استفاده شدهاند، و ممکن است بعداً برای شامل سایر سیگنالها گسترش یابد.
- مدلهای اولیه توسط Google آموزش داده میشوند، جایی که دادههای آموزشی شامل برچسبهای تنظیمشده توسط انسان برای اطلاعات برنامههای در دسترس عموم است. این مدل بهطور رایگان در دسترس برنامهها قرار خواهد گرفت تا ببینند برنامه آنها در چه موضوعاتی طبقهبندی میشود.
- مدلهای اولیه بر روی اطلاعات عمومی در دسترس برنامهها از مجموعه محدودی از فروشگاههای برنامه مانند فروشگاه Google Play آموزش داده میشوند.
- این امکان وجود دارد که یک برنامه به بیش از 1 موضوع، به هیچ موضوعی نگاشت یا به تاریخچه موضوعی کاربر اضافه نشود. در صورتی که یک برنامه به بیش از 1 موضوع در طبقه بندی نقشه برداری کند، تعداد موضوعات انتخاب شده برای این برنامه به 3 موضوع برتر محدود می شود.
کنترل های کاربر
- این طرح قصد دارد به کاربران امکان مشاهده و حذف موضوعات مرتبط با استفاده از برنامه را ارائه دهد. پیاده سازی این قابلیت کنترل کاربر در حال انجام است و در به روز رسانی آینده گنجانده خواهد شد.
- اگر کاربر برنامهای را حذف نصب کند که در انتخاب موضوع استنباطشده در 3 دوره گذشته نقش داشته است، برای جلوگیری از افشای اطلاعات مربوط به حذف نصب، آن موضوع از فهرست موضوعات بازگردانده شده برای 3 دوره گذشته حذف نخواهد شد.
به منظور تسهیل آزمایش برای تجربه کاربر نهایی، میتوانید یک هدف درونبرنامهای را نیز راهاندازی کنید تا تنظیمات UI برای موضوعات مشابه با نحوه مشاهده کاربر نهایی را مشاهده کنید. نمونه ای از آن تماس را می توانید در زیر مشاهده کنید:
//Button that launches settings UI
private Button mSettingsAppButton;
private static final String RB_SETTING_APP_INTENT = "android.adservices.ui.SETTINGS";
//Does setup for button on screen that will launch settings UI to observe Topics
private void registerLaunchSettingsAppButton() {
mSettingsAppButton.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
Context context = getApplicationContext();
Intent activity2Intent = new Intent(RB_SETTING_APP_INTENT);
activity2Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(activity2Intent);
}
});
}
یک پلتفرم فناوری تبلیغاتی ثبت نام کنید
برای دسترسی به Topics API، همه پلتفرمهای فناوری تبلیغات (از جمله Google) باید یک فرآیند ثبتنام را تکمیل کنند.
توسعهدهندگان برنامه میتوانند با درج شناسه ثبتنام توسعهدهنده فناوری تبلیغات در داخل مانیفست برنامه، مدیریت کنند که کدام توسعهدهندگان فناوری تبلیغات میتوانند به APIهای موضوعات دسترسی داشته باشند.
رمزگذاری موضوعات برگشتی
پلتفرمهای فناوری تبلیغاتی ثبتشده که Topics API را فراخوانی میکنند نیز ملزم به ارائه کلیدهای رمزگذاری هستند تا اطمینان حاصل شود که موضوعات بازگشتی فقط برای تماسگیرنده قابل خواندن هستند.
Privacy Sandbox این کلیدها را از نقطه پایانی ارائه شده توسط فناوری تبلیغات دریافت می کند. به عنوان بهترین روش توصیه می کنیم که کلیدها باید اغلب، اما حداکثر هر 6 ماه یکبار به روز شوند.
Privacy Sandbox از تکنسینهای آگهی میخواهد که در طول فرآیند ثبتنام، در دسترس بودن نقطه پایانی ارائهشده توسط فناوری آگهی را تأیید کنند. برای جزئیات بیشتر در مورد اقدامات مورد نیاز adtech های فعلی و تازه ثبت نام شده، به راهنمای برنامه نویس ثبت نام مراجعه کنید.
جزئیات رمزگذاری
با معرفی رمزگذاری، فراخوانی به "GetTopics()" اکنون پاسخی با لیستی از اشیاء "EncryptedTopic" ایجاد می کند. رمزگشایی این نتایج منجر به ایجاد یک شی با همان قالب JSON شیء قبلی می شود.
Topics API از اجرای یک شات HPKE (رمزگذاری کلید عمومی ترکیبی) پشتیبانی می کند. انتظار داریم تماس گیرنده ثبت نام شده یک کلید عمومی 32 بیتی را در نقطه پایانی URL رمزگذاری عمومی ارائه شده در حین ثبت نام میزبانی کند. انتظار می رود این کلیدها با کد Base64 باشند.
شی EncryptedTopic دارای 3 فیلد است. لیست موضوعات برگشتی را می توان با استفاده از کلید خصوصی مربوطه برای کلید عمومی به دست آورد.
برای اهداف توسعه، می توانید رمزگذاری Topics API را با غیرفعال کردن بررسی ثبت نام آزمایش کنید. این باعث می شود API مجبور شود از کلید عمومی آزمایشی برای رمزگذاری پاسخ های شما استفاده کند. می توانید موضوعات رمزگذاری شده را با استفاده از کلید خصوصی مربوطه رمزگشایی کنید.
{% کلمه به کلمه %}برای شما توصیه می شود
- توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
- یادداشت های انتشار
- راهنمای برنامهنویس Android Protected Audience API
- راهنمای توسعهدهنده موضوعات API