সুরক্ষিত শ্রোতা API দক্ষতার সাথে কাজ করে তা নিশ্চিত করা সকলের স্বার্থে:
- যারা ওয়েব ব্রাউজ করেন তারা চান সাইটগুলি দ্রুত লোড হোক। এর অর্থ হল ডেভেলপারদের সুরক্ষিত শ্রোতা API ব্যবহার করে দক্ষতার সাথে তৈরি করা উচিত যাতে সাইট এবং তাদের এমবেডেড বিজ্ঞাপন লোড করার জন্য প্রয়োজনীয় সীমিত ডিভাইস রিসোর্স, যেমন কম্পিউট বা নেটওয়ার্ক রিসোর্স, অতিরিক্ত ব্যবহার না করা হয়।
- প্রকাশকরা চান তাদের সাইটগুলি দ্রুত লোড হোক, ব্যবহারকারীদের একটি দক্ষ এবং প্রতিক্রিয়াশীল অভিজ্ঞতা প্রদান করুক। প্রকাশকরাও চান কার্যকর বিজ্ঞাপনের মাধ্যমে তাদের আয় সর্বাধিক করা হোক।
- বিজ্ঞাপনদাতা এবং বিজ্ঞাপন প্রযুক্তিবিদরা চান তাদের বিজ্ঞাপনগুলি দ্রুত প্রদর্শিত হোক যাতে সর্বাধিক উপযোগিতা প্রদান করা যায়।
এই ডকুমেন্টে আপনার সাইটটি সর্বোচ্চ দক্ষতার সাথে পরিচালিত হচ্ছে তা নিশ্চিত করার জন্য একটি সুরক্ষিত শ্রোতা API বাস্তবায়নের জন্য কিছু সেরা অনুশীলনের রূপরেখা দেওয়া হয়েছে।
ক্রেতা (দরদাতা) এর সেরা অনুশীলন
সুরক্ষিত শ্রোতা API নিলাম দক্ষতার জন্য আপনি অপ্টিমাইজ করছেন তা নিশ্চিত করতে, এই সেরা অনুশীলনগুলি অনুসরণ করুন।
আগ্রহ গোষ্ঠীর মালিকদের সংখ্যা কম
ব্রাউজার যেভাবে সাইট আইসোলেশন ব্যবহার করে ওয়েবে বিভিন্ন উৎসকে সুরক্ষিত করে, ঠিক সেইভাবে প্রোটেক্টেড অডিয়েন্স এপিআই দরদাতাদের সুরক্ষা দিতে, ব্রাউজারটি ব্যক্তিগত স্বার্থ গোষ্ঠীর মালিকদের সুরক্ষার জন্য ব্যয়বহুল সংস্থান (যেমন অপারেটিং সিস্টেম প্রক্রিয়া) ব্যবহার করে।
এই অত্যন্ত ব্যয়বহুল সম্পদের ব্যয় কমাতে, সবচেয়ে কম সংখ্যক স্বার্থ গোষ্ঠীর মালিক থাকা অত্যন্ত গুরুত্বপূর্ণ। বিভিন্ন সাবডোমেনের মালিকানাধীন বিভিন্ন স্বার্থ গোষ্ঠী থাকা এড়িয়ে চলুন। উদাহরণস্বরূপ, যদি adtech.example cats.adtech.example এবং dogs.adtech.example এর মালিকানাধীন স্বার্থ গোষ্ঠী থাকে, তাহলে ব্রাউজারটি সম্ভবত তাদের বিডিং স্ক্রিপ্ট চালানোর জন্য দুটি পৃথক প্রক্রিয়া ব্যবহার করবে।
কম স্বার্থ গোষ্ঠীর দরপত্র
ক্রেতার generateBid() স্ক্রিপ্ট ব্যবহার করার আগে ব্রাউজারকে উল্লেখযোগ্য সেটআপ এবং প্রস্তুতি নিতে হবে, যেমন একটি নতুন পরিষ্কার জাভাস্ক্রিপ্ট এক্সিকিউশন পরিবেশ সেট আপ করা এবং generateBid() কোড পার্সিং এবং লোড করা।
- যেসব আগ্রহী গোষ্ঠী এমন ব্যবহারকারীদের প্রতিনিধিত্ব করে যারা একটি সক্রিয় বিজ্ঞাপন প্রচারণার বর্তমান লক্ষ্য নয়, তাদের খালি বিজ্ঞাপন সৃজনশীল তালিকা থাকা উচিত। এটি সুরক্ষিত দর্শক API-কে প্রাসঙ্গিক বিজ্ঞাপন ছাড়াই আগ্রহী গোষ্ঠীর জন্য
generateBid()কার্যকর করতে বাধা দেয়। - একই ধরণের ইন্টারেস্ট গ্রুপ একত্রিত করলে
generateBid()চালানোর সংখ্যা কমে যাবে। ইন্টারেস্ট গ্রুপেরuserBiddingSignalsপ্রোপার্টি ব্যবহারকারীর অতিরিক্ত মেটাডেটা সংরক্ষণ করতে ব্যবহার করা যেতে পারে, তাই ইন্টারেস্ট গ্রুপ কম হলে কম কার্যকর টার্গেটিং হবে এমন কোন কথা নেই। - প্রোটেক্টেড অডিয়েন্স এপিআই বিক্রেতা-নির্দিষ্ট আগ্রহ গোষ্ঠীর সংখ্যার সীমা এবং ক্রেতাদের তাদের আগ্রহ গোষ্ঠীর আপেক্ষিক অগ্রাধিকার নির্দিষ্ট করার জন্য একটি এপিআই সমর্থন করে। এই সীমাগুলি চালানোর জন্য বিডিং স্ক্রিপ্টের সংখ্যা উল্লেখযোগ্যভাবে হ্রাস করতে ব্যবহার করা যেতে পারে।
আপনার কী/মান পরিষেবাতে বিডিং থেকে আগ্রহের গোষ্ঠীগুলিকে ফিল্টার করুন।
যদি একজন ক্রেতা তাদের রিয়েল-টাইম বিশ্বস্ত বিডিং সিগন্যাল সার্ভারে নির্ধারণ করতে পারেন যে নির্দিষ্ট কিছু আগ্রহী গোষ্ঠীর বিড করা উচিত নয় (যেমন প্রচারণাটি অক্ষম, স্থগিত, বা বাজেটের বাইরে, অথবা এই নির্দিষ্ট প্রকাশকের উপর বিড করা উচিত নয়), তাহলে তারা বিশ্বস্ত বিডিং সিগন্যালগুলি আনয়নের জন্য priorityVector প্রতিক্রিয়া সহ ব্রাউজারে এটি নির্দেশ করতে পারে। যদি priorityVector এবং prioritySignals এর ফলে স্পার্স ডট পণ্য নেতিবাচক হয়, তাহলে ব্রাউজারটি এই আগ্রহ গোষ্ঠীর জন্য generateBid() আহ্বান করা এড়িয়ে যাবে। আপনি ব্যাখ্যাকারীর "আগ্রহী গোষ্ঠীগুলিকে ফিল্টারিং এবং অগ্রাধিকার" বিভাগে এই প্রক্রিয়া সম্পর্কে আরও পড়তে পারেন।
জাভাস্ক্রিপ্ট এক্সিকিউশন পরিবেশ পুনঃব্যবহার করুন
ব্রাউজারটি generateBid() এক্সিকিউট করার আগে, এটিকে একটি নতুন জাভাস্ক্রিপ্ট এক্সিকিউশন এনভায়রনমেন্ট শুরু করতে হবে। এতে উল্লেখযোগ্য পরিমাণ সময় লাগতে পারে, যা একটি ন্যূনতম generateBid() এক্সিকিউট করতে যে পরিমাণ সময় নেয় তার সমতুল্য। গ্রুপ-বাই-অরিজিন বা ফ্রোজেন-কনটেক্সট এক্সিকিউশন মোড ব্যবহার করে এই সময় বাঁচানো যেতে পারে।
group-by-origin মোড এক্সিকিউশন এনভায়রনমেন্ট পুনঃব্যবহার করতে পারে যেখানে আগ্রহের গ্রুপগুলি একই অরিজিনে যুক্ত থাকে এবং সম্ভবত আপনার বিডিং স্ক্রিপ্টে পরিবর্তনের প্রয়োজন হবে না; আরও জানতে, ব্যাখ্যাকারীতে group-by-origin বর্ণনা দেখুন। ফ্রোজেন-কনটেক্সট মোড সম্ভাব্যভাবে সমস্ত এক্সিকিউশন এনভায়রনমেন্ট পুনঃব্যবহার করতে পারে তবে আপনার বিডিং স্ক্রিপ্টে পরিবর্তনের প্রয়োজন হতে পারে; আরও জানতে, এক্সপ্লেনারে frozen-context বিবরণ দেখুন।
বিডিং স্ক্রিপ্ট পুনঃব্যবহার করুন
সম্ভব হলে আগ্রহ গোষ্ঠীর জন্য একই বিডিং স্ক্রিপ্ট ব্যবহার করুন। এটি ব্রাউজারকে একাধিক স্ক্রিপ্ট ডাউনলোড, পার্স এবং কম্পাইল করতে বাধা দেয় (যার ফলে অতিরিক্ত নেটওয়ার্ক অনুরোধ আসে)। একই স্ক্রিপ্ট ব্যবহার করার সময় বিডাররা আগ্রহ গোষ্ঠীর তথ্যের (যেমন name বা userBiddingSignals ) উপর ভিত্তি করে বিডিং আলাদা করতে পারে।
HTTP ক্যাশে নিয়ন্ত্রণ শিরোনাম ছাড়া, বিডিং স্ক্রিপ্ট ক্যাশে করা হয় না। স্ক্রিপ্টটি অপ্রয়োজনীয়ভাবে আনা না হয় তা নিশ্চিত করার জন্য উপযুক্ত শিরোনাম নির্দিষ্ট করুন। যদি পৃষ্ঠায় একাধিক নিলাম সমান্তরালভাবে চলমান থাকে, তাহলে একই দরদাতার বিডিং স্ক্রিপ্টটি যদি ইতিমধ্যেই মেমরিতে থাকে তবে পুনরায় ব্যবহার করা হবে, ক্যাশিং শব্দার্থবিদ্যা উপেক্ষা করে। যদি নিলামগুলি ক্রমানুসারে চলে, তাহলে ব্রাউজারটি HTTP ক্যাশিং প্রক্রিয়া মেনে চলবে।
মনে রাখবেন যে ব্রাউজার বিডিং স্ক্রিপ্টটি বিডিং সময় ( generateBid() এর জন্য) এবং রিপোর্টিং সময় ( reportWin() এর জন্য) লোড করে। যদি ক্যাশে নিয়ন্ত্রণ হেডার সেট না করা থাকে, তাহলে ব্রাউজার একই স্ক্রিপ্টটি দুবার আনবে, প্রতিটি সময়কালের জন্য একবার।
অতএব, আমরা আপনার সমস্ত স্ক্রিপ্টে ক্যাশে নিয়ন্ত্রণ শিরোনাম সেট করার পরামর্শ দিচ্ছি।
trustedBiddingSignalsUrls পুনঃব্যবহার করুন
নেটওয়ার্ক ল্যাটেন্সি এবং রিসোর্স ব্যবহার খুবই গুরুত্বপূর্ণ হতে পারে। রিয়েল-টাইম বিশ্বস্ত বিডিং সিগন্যাল সংগ্রহের পরিমাণ কম হলে এই ল্যাটেন্সি কমাতে সাহায্য করতে পারে।
একাধিক আগ্রহ গোষ্ঠীর মধ্যে trustedBiddingSignalsUrl পুনঃব্যবহার করা হলে বিশ্বস্ত বিডিং সিগন্যাল ফেচগুলি একত্রিত করা যেতে পারে । যখন সম্ভব হয়, সমস্ত আগ্রহ গোষ্ঠীর জন্য একই trustedBiddingSignalsUrl ব্যবহার করুন।
নির্দিষ্ট ওয়েব পৃষ্ঠার বিজ্ঞাপন স্লট জুড়ে বিশ্বস্ত বিডিং সিগন্যাল ফেচগুলি ক্যাশে করা নিশ্চিত করতে উপযুক্ত HTTP ক্যাশে নিয়ন্ত্রণ হেডার নির্দিষ্ট করুন। trustedBiddingSignalsSlotSizeMode কে slot-size এ সেট করা এড়িয়ে চলুন কারণ এটি অনুরোধ করা URL ভিন্ন হওয়ার কারণে স্লটের আকার ভিন্ন হলে বিজ্ঞাপন স্লট জুড়ে ক্যাশিং প্রতিরোধ করবে।
ছোট রিয়েল-টাইম বিশ্বস্ত বিডিং সিগন্যাল পাওয়া যায়
নেটওয়ার্ক ল্যাটেন্সি খুবই তাৎপর্যপূর্ণ হতে পারে, এবং এটি সরাসরি রিয়েল-টাইম বিশ্বস্ত বিডিং সিগন্যাল আনার সময় কতটা ডেটা স্থানান্তরিত হয় তার উপর নির্ভর করে।
রিয়েল-টাইম বিশ্বস্ত বিডিং সিগন্যাল পরিষেবার পরিবর্তে, বিজ্ঞাপন-নির্দিষ্ট বা আগ্রহ-গোষ্ঠী-নির্দিষ্ট ডেটা আগ্রহ গোষ্ঠীতে সংরক্ষণ করা পছন্দ করুন। প্রচারাভিযানের বাজেটিং বা কিল-সুইচের মতো সত্যিকারের রিয়েল-টাইম সিগন্যালের জন্য রিয়েল-টাইম বিশ্বস্ত বিডিং সিগন্যাল ডেটা সংরক্ষণ করুন।
যেকোনো সংকেত যা দৈনিক বা তার বেশি সময় ধরে আপডেট করা যেতে পারে, তা আগ্রহের গোষ্ঠীতে সংরক্ষণ করা উচিত এবং দৈনিক আপডেট ব্যবহার করে আপডেট করা উচিত।
"আপনার কী/মান পরিষেবাতে বিডিং থেকে আগ্রহ গোষ্ঠীগুলিকে ফিল্টার আউট করুন" বিভাগে বর্ণিতভাবে ফিল্টার আউট করা আগ্রহ গোষ্ঠীগুলির জন্য বিশ্বস্ত বিডিং সংকেত ফেরত দেবেন না।
স্বার্থ সংশ্লিষ্ট গোষ্ঠীগুলিকে অগ্রাধিকার দিন
প্রকাশক পৃষ্ঠাগুলিতে ব্রাউজার রিসোর্সগুলি কীভাবে ব্যবহার করা হবে তা সীমিত করার জন্য বিক্রেতারা টাইমআউট ব্যবহার করবেন। যখন perBuyerCumulativeTimeouts ব্যবহার করে ক্রেতাদের তাদের বিশ্বস্ত বিডিং সিগন্যালগুলি আনতে এবং তাদের বিডিং স্ক্রিপ্টগুলি কার্যকর করতে কত সময় লাগে তা সীমিত করা হয়, তখন ক্রেতাদের জন্য তাদের আগ্রহের গোষ্ঠীগুলিকে অগ্রাধিকার দেওয়া নিশ্চিত করা গুরুত্বপূর্ণ যাতে নিলামে জয়ী হওয়ার সম্ভাবনা সবচেয়ে বেশি তাদের প্রথমে কার্যকর করা যায়। উদাহরণস্বরূপ, যদি perBuyerCumulativeTimeouts 100 ms এ সেট করা হয় এবং একজন বিডারের বিশ্বস্ত বিডিং সিগন্যালগুলি আনতে 50 ms সময় লাগে, এবং প্রতিটি generateBid() ইনভোকেশন 10 ms সময় নেয় এবং তাদের একটি ডিভাইসে 10 টি আগ্রহী গোষ্ঠী উপস্থিত থাকে, তাহলে তাদের আগ্রহের গোষ্ঠীর মাত্র অর্ধেকই বিড গণনা করার সুযোগ পাবে। এই উদাহরণে ক্রেতার উচিত তাদের আগ্রহের গোষ্ঠীগুলিকে সর্বাধিক সম্ভাব্য থেকে কম সম্ভাব্য জয়ের দিকে অগ্রাধিকার দেওয়া।
আগ্রহ গোষ্ঠীগুলি তাদের priority ক্ষেত্রের সাথে সংজ্ঞায়িত স্থির অগ্রাধিকার ধারণ করতে পারে। আগ্রহ গোষ্ঠীগুলি গতিশীল অগ্রাধিকারগুলিও ব্যবহার করতে পারে যা তাদের বিশ্বস্ত বিডিং সিগন্যাল পরিষেবাতে গণনা করা যেতে পারে এবং বিশ্বস্ত বিডিং সিগন্যালগুলি আনার জন্য priorityVector প্রতিক্রিয়া সহ ব্রাউজারে ফিরে যেতে পারে।
মনে রাখবেন যে যখন ব্রাউজার সর্বোচ্চ অগ্রাধিকার থেকে সর্বনিম্ন পর্যন্ত আগ্রহ গোষ্ঠীগুলিকে কার্যকর করে, তখন এটি বিভিন্ন যোগদানকারী উৎস থেকে আগ্রহ গোষ্ঠীগুলিকে ছেদ করতে পারে যা group-by-origin অপ্টিমাইজেশনকে পরাজিত করতে পারে।
বিক্রেতার সেরা অনুশীলন
নিশ্চিত করুন যে আপনি সুরক্ষিত শ্রোতা API নিলাম দক্ষতা পর্যবেক্ষণ এবং অপ্টিমাইজ করছেন।
নিলামের সমান্তরালকরণ
আধুনিক নেটওয়ার্ক সংযোগ এবং মাল্টি-কোর প্রসেসর একসাথে একাধিক ক্রিয়াকলাপ সম্পাদন করে দুর্দান্ত কাজ করে। ব্রাউজারটি অন্যান্য ক্রিয়াকলাপের সাথে সমান্তরালভাবে একটি সুরক্ষিত শ্রোতা নিলাম সম্পাদন করতে পারে। যত তাড়াতাড়ি সম্ভব runAdAuction() কল করে এটি সর্বোত্তমভাবে করা যেতে পারে। runAdAuction() এর কিছু ইনপুট প্রাথমিকভাবে উপলব্ধ নাও হতে পারে, উদাহরণস্বরূপ, যেগুলি প্রাসঙ্গিক প্রতিক্রিয়ায় ব্রাউজারে ফেরত পাঠানো হয় তা স্বীকার করে, ব্রাউজারটি উপলব্ধ হওয়ার আগে runAdAution() কল করার অনুমতি দেয় এবং পরবর্তী সময়ে জাভাস্ক্রিপ্ট প্রতিশ্রুতি ব্যবহার করে এই ইনপুটগুলি সরবরাহ করে। সর্বনিম্ন সম্ভাব্য নিলাম বিলম্ব অর্জনের জন্য, interestGroupBuyers ইনপুট জানা থাকলে runAdAuction() কল করা উচিত। এটি নিলামের অনেক অংশ অবিলম্বে শুরু করার অনুমতি দেয়, যার মধ্যে দরদাতার রিয়েল-টাইম বিডিং সিগন্যাল আনাও অন্তর্ভুক্ত।
আপনার নিলাম পর্যবেক্ষণ করুন
আপনার নিলামের মেট্রিক্স সংগ্রহ করুন। ব্রাউজারটি বিক্রেতাদের কাছে per-buyer ল্যাটেন্সি মেট্রিক্স রিপোর্ট করতে পারে যা বিক্রেতার নিলামে কীভাবে সময় ব্যয় করা হয় সে সম্পর্কে অনেক অন্তর্দৃষ্টি প্রদান করে। বিক্রেতারা এই মেট্রিক্স ব্যবহার করে তাদের নিলামগুলি অপ্টিমাইজ করার উপায়গুলি খুঁজতে পারেন, যার মধ্যে টাইমআউটগুলি সবচেয়ে কার্যকরভাবে কীভাবে সেট করা যায় তা জানানোও অন্তর্ভুক্ত। বিক্রেতারা ক্রেতার সাথে একটি নির্দিষ্ট ক্রেতার ল্যাটেন্সি মেট্রিক্স শেয়ার করতে পারেন যাতে তারা আরও অপ্টিমাইজ করতে পারে।
দরদাতাদের তাদের নিজস্ব স্বার্থ গোষ্ঠীর বিডিং পারফরম্যান্স সম্পর্কে অন্তর্দৃষ্টি থাকতে পারে, কিন্তু তারা অন্যান্য দরদাতাদের সাথে এটি তুলনা করতে সক্ষম নাও হতে পারে। বিভিন্ন দরদাতাদের জন্য আপেক্ষিক জয়ের হার এবং দর প্রত্যাখ্যানের হারের তুলনা করলে এমন ঘটনাগুলি সনাক্ত করতে সাহায্য করতে পারে যেখানে স্বার্থ গোষ্ঠীগুলি কার্যকর বিড তৈরি না করার কারণে বা অননুমোদিত সৃজনশীলতার সাথে অতিরিক্ত বিডিংয়ের কারণে বিডিং কম্পিউট রিসোর্স নষ্ট হয়েছিল।
ধীর বিড স্ক্রিপ্ট থেকে রক্ষা করুন
অতিরিক্ত সময় নেয় এমন বিডিং স্ক্রিপ্টগুলি সংশ্লিষ্ট সকলের জন্য সুরক্ষিত শ্রোতা API নিলামকে ধীর করে দিতে পারে। টাইমআউট ব্যবহার করলে ধীর নিলাম রোধ করা যায় এবং নিলাম ধীর হলে রাজস্ব পুনরুদ্ধার করা যায়।
বিক্রেতাদের perBuyerCumulativeTimeouts ব্যবহার করা উচিত যাতে ধীরগতির নিলাম রোধ করা যায় এবং নিলাম ধীরগতিতে শেষ হয়ে গেলেও বিড গ্রহণ করা যায়। perBuyerTimeouts এবং perBuyerGroupLimits ব্যবহারের চেয়ে perBuyerCumulativeTimeouts ব্যবহার করা ভালো কারণ perBuyerCumulativeTimeouts আগ্রহের গ্রুপের সংখ্যা বা generateBid() এর গতি সম্পর্কে মতামত দেওয়া হয় না (যেমন, অনেক আগ্রহের গ্রুপ যারা দ্রুত বিড করে এবং খুব কম আগ্রহের গ্রুপ যারা ধীরে বিড করে তারা উভয়ই টাইমআউটের আগে সম্পন্ন করতে পারে)।
বিশ্বস্ত স্কোরিং সিগন্যাল আনতে এবং scoreAd() কার্যকর করতে অনেক বেশি সময় লাগে এমন ক্ষেত্রে অতিরিক্ত দীর্ঘ নিলাম প্রতিরোধ করার জন্য সামগ্রিক নিলাম টাইমআউট বাস্তবায়নের জন্য নিলাম কনফিগ signal ফিল্ড ব্যবহার করাও একটি ভাল ধারণা।
এরপর কি?
আমরা প্রত্যেকের জন্য কাজ করে এমন একটি API তৈরি নিশ্চিত করতে আপনার সাথে কথোপকথনে নিযুক্ত হতে চাই।
API নিয়ে আলোচনা কর
অন্যান্য গোপনীয়তা স্যান্ডবক্স API-এর মতো, এই APIটি নথিভুক্ত এবং সর্বজনীনভাবে আলোচনা করা হয় ।
API এর সাথে পরীক্ষা করুন
আপনি সুরক্ষিত শ্রোতা API সম্পর্কে কথোপকথনে পরীক্ষা করতে এবং অংশগ্রহণ করতে পারেন৷