फ़्रीक्वेंसी कैपिंग, विज्ञापन दिखाने का एक तरीका है. इससे किसी उपयोगकर्ता को, किसी तय समयसीमा में किसी कैटगरी के विज्ञापन दिखाने की संख्या सीमित की जा सकती है. फ़्रीक्वेंसी कैपिंग से, असली उपयोगकर्ता को बेहतर अनुभव मिलता है. ऐसा इसलिए, क्योंकि विज्ञापन इंप्रेशन को नया और दिलचस्प बनाए रखा जाता है. साथ ही, इससे विज्ञापन देने वाले लोगों या कंपनियों को विज्ञापन खर्च मैनेज करने में मदद मिलती है.
इस प्रस्ताव में बताया गया है कि Android पर Protected Audience का इस्तेमाल करके, फ़्रीक्वेंसी कैपिंग की सुविधा को सटीक और निजता बनाए रखने वाले तरीके से कैसे लागू किया जा सकता है.
Protected Audience API, फ़्रीक्वेंसी कैपिंग को लागू करने के लिए दो सुविधाओं का इस्तेमाल करता है: विज्ञापन से जुड़े इवेंट के लिए, डिवाइस पर काउंटर का ऑन-डिवाइस स्टोरेज और फ़िल्टर करने की पहले से तय की गई रणनीतियों के सेट के हिसाब से विज्ञापनों को फ़िल्टर करने की सुविधा. फ़्रीक्वेंसी कैपिंग की मदद से, विज्ञापन देने वाले लोग या कंपनियां, किसी तय समयसीमा के लिए हिस्टोग्राम की वैल्यू के योग पर काउंटर थ्रेशोल्ड सेट कर सकती हैं.
डिवाइस प्रोफ़ाइल, विज्ञापन टेक्नोलॉजी, और काउंटर कुंजी के हर कॉम्बिनेशन के लिए काउंटर यूनीक होते हैं. हर विज्ञापन में काउंटर की का एक सेट होना चाहिए, ताकि विज्ञापन के लिए व्यू या इंप्रेशन रजिस्टर होने पर उसका इस्तेमाल किया जा सके. हर कुंजी के लिए, Protected Audience एक काउंटर सेट सेव करता है. हर काउंटर, विज्ञापन से जुड़े उन सभी इवेंट का हिसाब रखता है जो किसी तय समय अंतराल में होते हैं. जब कोई इंप्रेशन या व्यू मिलता है, तो डिवाइस पर मौजूद काउंटर की वैल्यू बढ़ जाती है. साथ ही, काउंटर का डेटा डिवाइस पर सेव रहता है. डेटा के बने रहने की सटीक अवधि के बारे में बाद में बताया जाएगा.
Protected Audience के विज्ञापन चुनने के वर्कफ़्लो में, विज्ञापन फ़िल्टर करने के लॉजिक के पास काउंटर, रीमार्केटिंग विज्ञापन, और कॉन्टेक्स्ट के हिसाब से दिखाए जाने वाले विज्ञापनों का ऐक्सेस होता है. इससे Protected Audience की फ़्रीक्वेंसी कैपिंग, इस तरह के सभी विज्ञापन अनुरोधों के साथ काम कर पाती है.
ध्यान दें: विज्ञापन फ़िल्टर करने की सुविधा, सिर्फ़ Android पर Privacy Sandbox में उपलब्ध है. Chrome में Protected Audience को लागू करने के दौरान, कॉन्टेक्स्ट के हिसाब से टारगेट किए गए, Protected Audience के बाहर के विज्ञापनों को फ़िल्टर करने का कोई तरीका लागू नहीं किया जाता. इस प्रस्ताव में, सिर्फ़ खरीदार के लिए सहायता शामिल है. अगर मांग होती है, तो हम बाद में सेलिंग-साइड के लिए भी यह सुविधा उपलब्ध कराएंगे.
Protected Audience की फ़्रीक्वेंसी कैपिंग, कई तरह की ज़रूरी शर्तों को पूरा करती है. जैसे:
- डिवाइस पर मौजूद काउंटर अपडेट होने पर, सर्वर-साइड में कम से कम देरी के साथ रीयल-टाइम फ़िल्टरिंग.
- कुंजी की हैरारकी को अपनी ज़रूरत के हिसाब से सेट किया जा सकता है. इसमें अलग-अलग विज्ञापन, कैंपेन या कोई अन्य ग्रुपिंग शामिल है.
- AdID पर निर्भर न रहते हुए, फ़्रीक्वेंसी कैपिंग के अन्य तरीकों के साथ तालमेल बिठाना.
- यह किसी डिवाइस पर मौजूद उपयोगकर्ता की प्रोफ़ाइल के सभी ऐप्लिकेशन पर काम करता है.
- सटीक और पूरे काउंटर.
- विज्ञापन इवेंट की कस्टम डेफ़िनिशन के लिए सहायता. जैसे, व्यू या इंप्रेशन.
- रीमार्केटिंग और कॉन्टेक्स्ट के हिसाब से दिखाए जाने वाले विज्ञापनों, दोनों के लिए एक ही फ़ंक्शन.
फ़्रीक्वेंसी कैपिंग सेट अप करने के लिए, यह तरीका अपनाएं:
पहला चरण: विज्ञापनों में फ़्रीक्वेंसी कैपिंग की जानकारी जोड़ना
समान कॉन्टेक्स्ट वाले और रीमार्केटिंग विज्ञापनों में, ad_counter_keys फ़ील्ड का इस्तेमाल करके व्यू या इंप्रेशन के मामले में अपडेट करने के लिए, काम के हिस्टोग्राम काउंटर दिखाए जाते हैं. इस फ़ील्ड में, किसी भी पूर्णांक की सूची होती है. यह फ़ील्ड, metadata फ़ील्ड में शामिल नहीं है. इस फ़ील्ड को Protected Audience पार्स नहीं करता.
यहां दिए गए उदाहरण में, AdSelectionConfig में adsData फ़ील्ड के लिए डेटा फ़ॉर्मैट दिखाया गया है. रीमार्केटिंग के लिए, किसी कस्टम ऑडियंस के लिए विज्ञापनों की सूची का फ़ॉर्मैट, यहां दिए गए उदाहरण में दिखाए गए ads फ़ील्ड के कॉन्टेंट के मुताबिक होता है:
'adsData': [
{
"buyer": "ads.example.com",
"ads": [
{
'render_url': 'exampleUrl',
'metadata': {...}, /* metadata are opaque to Protected Audience are
required to be in valid JSON format */
'ad_counter_keys': [1234, 5678]
}]
}]
}
दूसरा चरण: व्यू या इंप्रेशन रजिस्टर करना
विज्ञापन टेक्नोलॉजी कंपनियां, updateAdCounterHistogram तरीके का इस्तेमाल करके, फ़्रीक्वेंसी कैपिंग के लिए इस्तेमाल किए जाने वाले इवेंट को रजिस्टर कर सकती हैं. eventType में दी गई कुंजियों के लिए, एक ही इवेंट पर किसी तरीके को बार-बार लागू किया जा सकता है.
void updateAdCounterHistogram(@EventType eventType, long adSelectionId)
इनपुट:
eventType: इससे यह पता चलता है कि किसी इवेंट को व्यू, इंप्रेशन, क्लिक या विज्ञापन चुनने की प्रोसेस में जीत के तौर पर गिना गया है या नहीं.adSelectionId:AdSelectionOutcomeऑब्जेक्ट में मौजूद आईडी वैल्यू, जोselectAdsकॉल से मिलती हैं.
updateAdCounterHistogram कॉल, कुंजियों के सेट के लिए हिस्टोग्राम को अपडेट करता है. इन कुंजियों को CustomAudience से फ़ेच किए गए रीमार्केटिंग विज्ञापनों या selectAds के लिए AdSelectionConfig पैरामीटर में शामिल कॉन्टेक्स्ट के हिसाब से दिखाए जाने वाले विज्ञापनों के हिस्से के तौर पर तय किया जाता है.
मान लें कि पहले चरण में दिखाया गया विज्ञापन, AdSelection का विजेता है और इसकी id वैल्यू 9999 है. ऐसे में, updateAdCounterHistogram(FrequencyCapFilters.AD_EVENT_TYPE_VIEW,
adSelectionId: 999) को कॉल करने पर, इन तीन मुख्य कुंजियों के काउंटर बढ़ जाते हैं:
{'ads.example.com', 1234, VIEW}{'ads.example.com', 5678, VIEW}
विज्ञापन टेक्नोलॉजी का नाम, खरीदार फ़ील्ड से लिया जाता है. यह नाम, कॉन्टेक्स्ट के हिसाब से दिखाए जाने वाले विज्ञापनों या कस्टम ऑडियंस से लिया जाता है. यह इस बात पर निर्भर करता है कि सबसे ज़्यादा कन्वर्ज़न देने वाले विज्ञापन कहां से आए हैं.
Android के लिए Protected Audience, FrequencyCapFilters.AD_EVENT_TYPE_WIN API कॉल से दिखाए गए विज्ञापनों के लिए, इवेंट टाइप FrequencyCapFilters.AD_EVENT_TYPE_WIN के लिए पहले बताए गए सभी काउंटर को अपने-आप बढ़ा देता है.selectAds यह फ़ंक्शन, Chrome के Protected Audience API को लागू करने के दौरान generateBid में browser_signals में prev_wins आर्ग्युमेंट जोड़ने के बराबर है.
तीसरा चरण: फ़िल्टर की मदद से फ़्रीक्वेंसी कैप फ़िल्टरिंग लागू करना
बेहतर परफ़ॉर्मेंस के लिए, फ़्रीक्वेंसी कैप फ़िल्टर करने का फ़ंक्शन AdServices में लागू किया जाता है. Protected Audience को यह पता चलता है कि किसी मैसेज को फ़िल्टर करना है या नहीं. इसके लिए, वह AdsData ऑब्जेक्ट में मौजूद फ़िल्टर फ़ील्ड को पढ़ता है. frequency_cap में फ़िल्टर की सूची दी गई है. कुंजी, event_type, और interval_in_seconds की वैल्यू का इस्तेमाल, उन इवेंट का हिस्टोग्राम पाने के लिए किया जाता है जिनका इस्तेमाल फ़िल्टर करने और Protected Audience के लिए किया जाता है.
रीमार्केटिंग विज्ञापनों के लिए फ़िल्टर करने की जानकारी दी जा सकती है. ये विज्ञापन, कस्टम ऑडियंस के ज़रिए दिखाए जाते हैं. साथ ही, कॉन्टेक्स्ट के हिसाब से दिखाए जाने वाले विज्ञापनों के लिए भी यह जानकारी दी जा सकती है. ये विज्ञापन, AdSelectionConfig ऑब्जेक्ट का हिस्सा होते हैं.
फ़्रीक्वेंसी कैप फ़िल्टर वाले कॉन्टेक्स्ट के हिसाब से दिखाए जाने वाले विज्ञापनों के लिए, AdSelectionConfig ऑब्जेक्ट में ads फ़ील्ड का इस्तेमाल करके विज्ञापन पास किए जाते हैं. विज्ञापनों को फ़िल्टर किया जाता है. इसके बाद, सबसे ज़्यादा बिड वाले विज्ञापन को selectAds कॉल के नतीजे के तौर पर दिखाया जाता है.
फ़्रीक्वेंसी कैपिंग फ़िल्टर वाले रीमार्केटिंग विज्ञापनों के लिए, खरीदार की ओर से दिए गए generateBid() JavaScript फ़ंक्शन को लागू करने से पहले ही विज्ञापनों को फ़िल्टर कर दिया जाता है.
यहां फ़्रीक्वेंसी कैप फ़िल्टरिंग वाला मैसेज दिखाया गया है:
{
'render_url': 'url',
'metadata': {...}, /* metadata are opaque to Protected Audience and assumed
to be in valid JSON format */
'ad_counter_keys': [1234, 5678],
"filters": {
"frequency_cap": {
"view": [
{
"ad_counter_key": 1234
"max_count": 10,
"interval_in_seconds": 86400
},
{
"ad_counter_key": 5678
"max_count": 10,
"interval_in_seconds": 86400
},
],
"win": [
{
"ad_counter_key": 1234
"max_count": 5,
"interval_in_seconds": 604800
},
{
"ad_counter_key": 5678
"max_count": 5,
"interval_in_seconds": 345600
},
]
},
// This field is only required in contextual ads and is used in
// reportImpression calls to fetch the reportWin function.
'reportingJS': "https://ads.example.com?reportWin.js"
}
चौथा चरण: सबसे ज़्यादा कन्वर्ज़न पाने वाले विज्ञापनों की रिपोर्ट
विज्ञापन चुनने की प्रोसेस पूरी होने के बाद, यह एक AdSelectionOutcome ऑब्जेक्ट दिखाता है. इसमें renderUri और adSelectionId शामिल होते हैं. साथ ही, selectAds कॉल के लिए एक संख्यात्मक आइडेंटिफ़ायर भी होता है. इस आईडी का इस्तेमाल, इवेंट-लेवल की रिपोर्टिंग की सुविधा देने वाले reportImpression एपीआई को शुरू करने के लिए किया जा सकता है. बीटा 1 में, यह तरीका रीमार्केटिंग विज्ञापनों के लिए रिपोर्टिंग की सुविधा देता है. बाद के वर्शन में, इसे कॉन्टेक्स्ट के हिसाब से दिखाए जाने वाले विज्ञापनों के लिए रिपोर्टिंग की सुविधा देने के लिए बढ़ाया जाएगा. कॉन्टेक्स्ट के हिसाब से दिखाए जाने वाले विज्ञापनों के लिए, खरीदार को यह बताना होगा कि reportImpression कॉल के दौरान, reportWin फ़ंक्शन को कहां से वापस पाया जा सकता है. इसके लिए, विज्ञापन स्ट्रक्चर में reportingJS नाम के अतिरिक्त फ़ील्ड का इस्तेमाल करना होगा. जैसा कि पिछले उदाहरण में दिखाया गया है.
विज्ञापन के लिए उम्मीदवार चुनने के सबसे सही तरीके
Protected Audience API, फ़्रीक्वेंसी कैपिंग को सर्वर से डिवाइस पर ले जाता है. Privacy Sandbox की मदद से, जीतने वाली बिड की जानकारी दी जाती है. हालांकि, डेवलपर को यह पता नहीं चलेगा कि विज्ञापन क्यों नहीं दिखाया गया. ऐसा हो सकता है कि बिड हारने या फ़्रीक्वेंसी कैपिंग की वजह से, विज्ञापन न दिखाए गए हों. कुछ विज्ञापन क्यों नहीं दिखाए जाते, इसकी पूरी जानकारी न होने की वजह से, बिडिंग सिस्टम को यह पुष्टि करने के लिए ज़्यादा काम करना पड़ता है कि सबसे अच्छे विज्ञापन दिखाए जा रहे हैं. इन सबसे सही तरीकों से, सुरक्षित ऑडियंस की मदद से विज्ञापन दिखाने की प्रोसेस को ऑप्टिमाइज़ करने में मदद मिलेगी.
रीमार्केटिंग विज्ञापन दिखाने के लिए ज़रूरी डेटा भेजना
रीमार्केटिंग विज्ञापनों को हर उपयोगकर्ता के हिसाब से ऑप्टिमाइज़ नहीं किया जा सकता. अगर किसी उपयोगकर्ता को कस्टम ऑडियंस के कई विज्ञापन दिखते हैं और विज्ञापन दिखाने की सीमा कम है, तो हो सकता है कि सभी विज्ञापन फ़िल्टर कर दिए जाएं. रीमार्केटिंग विज्ञापन समय-समय पर रीफ़्रेश होते हैं. इसलिए, यह ज़रूरी है कि विज्ञापनों की फ़्रीक्वेंसी कैपिंग के लिए, विज्ञापन इन्वेंट्री काफ़ी हो. इससे यह पुष्टि की जा सकेगी कि रीमार्केटिंग विज्ञापन दिखाए जा रहे हैं. हालांकि, इसके साथ-साथ यह भी ध्यान रखना होगा कि joinCustomAudience कॉल के दौरान और कस्टम ऑडियंस के डेटा को हर दिन अपडेट करने के दौरान, विज्ञापनों के साइज़ से जुड़ी सीमाओं का पालन किया जाए. खरीदारों को यह ध्यान रखना चाहिए कि बिडिंग फ़ेज़ के दौरान, लेटेन्सी बढ़ सकती है. इन समस्याओं के असर को कम करने के लिए, generateBid को कॉल करने से पहले फ़्रीक्वेंसी कैप फ़िल्टरिंग की जाती है.
सर्वर पर कॉन्टेक्स्ट के हिसाब से काउंटर बनाए रखता है
सर्वर साइड के अनुमान की मदद से, डेवलपर को इस बात का अनुमान मिल सकता है कि फ़्रीक्वेंसी कैपिंग कब चालू हो सकती है. इन अनुमानों से यह पता चल सकता है कि किसी विज्ञापन ने फ़्रीक्वेंसी कैप की सीमा को पार कर लिया है. इसलिए, उसे ज़्यादा विज्ञापन कैंडिडेट के साथ भेजा जाना चाहिए या पूरी तरह से हटा दिया जाना चाहिए.
कॉन्टेक्स्ट के हिसाब से दिए गए जवाब में, विज्ञापन के कई विकल्प भेजना
आपको Protected Audience ऑक्शन से पहले, कॉन्टेक्स्ट के हिसाब से जवाब के साथ कई विज्ञापन कैंडिडेट भेजने चाहिए. इससे यह पुष्टि होती है कि अगर कई विज्ञापनों को फ़िल्टर कर दिया जाता है, तो भी अन्य विज्ञापन दिखाए जाते हैं. विज्ञापन के विकल्पों को प्राथमिकता दी जा सकती है, ताकि कुछ विज्ञापनों को बैकअप के तौर पर दिखाया जा सके.
विज्ञापन दिखाने की प्रोसेस में समय लगता है. इसलिए, विज्ञापन दिखाने के लिए ऐसे विज्ञापन चुनने चाहिए जिनके ऑक्शन जीतने और फ़िल्टर न होने की संभावना ज़्यादा हो.
सीमाएं
Protected Audience की फ़्रीक्वेंसी कैपिंग की ये सीमाएं हैं:
- Protected Audience की फ़्रीक्वेंसी कैपिंग, डिवाइस इस्तेमाल करने वाले व्यक्ति की प्रोफ़ाइल के लेवल पर काम करती है. साथ ही, अन्य डिवाइसों और अन्य प्रोफ़ाइलों पर कोई भी काउंटर शेयर नहीं किया जाता है. अगर ज़रूरत हो, तो अन्य डिवाइसों पर दिखाए गए विज्ञापनों की संख्या में हुई बढ़ोतरी को मैन्युअल तरीके से शामिल करें.
- डिवाइस काउंटर को डिवाइस पर सेव किया जाता है और वहीं से ऐक्सेस किया जाता है. सर्वर-साइड काउंटर को अलग से मैनेज करना होगा.
- फ़्रीक्वेंसी कैपिंग और इससे जुड़े विज्ञापन फ़िल्टर करने की प्रोसेस, डिवाइस पर होती है. इसलिए, विज्ञापन टेक्नोलॉजी प्लैटफ़ॉर्म के पास इन कार्रवाइयों का सीधा कंट्रोल नहीं होता. डिवाइस के लिए फ़्रीक्वेंसी कैपिंग की सीमा को बायपास करने के लिए, विज्ञापन टेक्नोलॉजी प्लैटफ़ॉर्म अलग-अलग फ़िल्टर वाले कई विज्ञापन भेज सकते हैं.
- रिकॉर्ड की गई फ़्रीक्वेंसी के आधार पर बिड घटाने या बढ़ाने की सुविधा काम नहीं करती है.
generateBidफ़ंक्शन, फ़्रीक्वेंसी काउंटर नहीं देख सकते.
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक का टेक्स्ट दिखता है
- Protected Audience: इंटिग्रेशन गाइड Android डेवलपर गाइड में Protected Audience API
- Protected Audience API की मदद से, कस्टम ऑडियंस टारगेटिंग की सुविधा