বিডিং এবং নিলাম পরিষেবা একীকরণ এবং অপ্টিমাইজেশান

Android ডিজাইন প্রস্তাবের জন্য বিডিং এবং নিলাম পরিষেবাগুলি বিশ্বস্ত বিডিং এবং নিলাম সার্ভার ব্যবহার করে Android এ চলমান নিলামগুলির সম্পাদন এবং ডেটা প্রবাহের বিবরণ দেয়৷ ট্রানজিটে ডেটা শুধুমাত্র গোপনীয়তা-সংরক্ষণকারী API এবং বিশ্বস্ত সার্ভার দ্বারা পরিচালিত হয় তা নিশ্চিত করতে, দ্বিমুখী হাইব্রিড পাবলিক কী এনক্রিপশন ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা এনক্রিপ্ট করা হয়।

সুরক্ষিত শ্রোতা প্রবাহের চিত্র। তিনটি কলাম প্রতিনিধিত্ব করে যে কীভাবে ডেটা ডিভাইস, অবিশ্বস্ত বিক্রেতা পরিষেবা এবং একটি বিশ্বস্ত কার্যকরী পরিবেশের মধ্যে স্থানান্তরিত হয়।
সুরক্ষিত শ্রোতা নিলাম প্রবাহ।

আগে বিশদভাবে নিলাম চালানোর জন্য, ডিভাইসে বিক্রেতার বিজ্ঞাপন প্রযুক্তিকে অবশ্যই নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করতে হবে:

  1. সার্ভার নিলামের জন্য ডেটা সংগ্রহ এবং এনক্রিপ্ট করুন
  2. একটি অবিশ্বস্ত বিক্রেতা পরিষেবা একটি অনুরোধ পাঠান
  3. একটি অবিশ্বস্ত বিক্রেতা পরিষেবা থেকে একটি প্রতিক্রিয়া পান
  4. সুরক্ষিত দর্শকের নিলাম প্রতিক্রিয়া ডিক্রিপ্ট করুন এবং নিলামের ফলাফল পান

চলমান সার্ভার নিলাম সমর্থন করার জন্য সুরক্ষিত শ্রোতা দুটি নতুন API প্রবর্তন করছে:

  1. getAdSelectionData API সার্ভার নিলামের জন্য ডেটা সংগ্রহ করে এবং নিলামের ডেটা ধারণকারী একটি এনক্রিপ্ট করা পেলোড তৈরি করে। বিডিং এবং নিলাম সার্ভার একটি নিলাম চালাতে, নিলামের ফলাফল তৈরি করতে এবং নিলামের ফলাফল ফেরত দিতে এই পেলোড ব্যবহার করে।
  2. অন-ডিভাইস বিজ্ঞাপন প্রযুক্তি ক্লায়েন্টরা সার্ভার নিলামের মাধ্যমে তৈরি ফলাফল ডিক্রিপ্ট করতে এবং বিজয়ী বিজ্ঞাপন রেন্ডার URL পেতে persistAdSelectionResult API-কে কল করতে পারে।

ডিভাইসে বিক্রেতার বিজ্ঞাপন প্রযুক্তিকে একটি নিলাম চালানোর জন্য নিম্নলিখিতগুলিকে একীভূত করতে হবে এবং তৈরি করতে হবে:

  1. সার্ভার নিলাম বিক্রেতার জন্য ডেটা সংগ্রহ এবং এনক্রিপ্ট করুন : এনক্রিপ্ট করা পেলোড পেতে বিজ্ঞাপন প্রযুক্তির getAdSelectionData API কল করা উচিত।
  2. অবিশ্বস্ত বিক্রেতা পরিষেবার কাছে অনুরোধ পাঠান পাঠান : একটি HTTP POST বা PUT অনুরোধ যাতে getAdSelectionData API দ্বারা তাদের অবিশ্বস্ত বিক্রেতা পরিষেবাতে তৈরি করা এনক্রিপ্ট করা পেলোড এবং প্রাসঙ্গিক ফলাফল তৈরি করতে অবিশ্বস্ত বিক্রেতা পরিষেবার প্রয়োজনীয় ডেটা রয়েছে৷
  3. অবিশ্বস্ত বিক্রেতা পরিষেবা থেকে প্রতিক্রিয়া পান : অবিশ্বস্ত বিক্রেতা পরিষেবা থেকে প্রতিক্রিয়া এনক্রিপ্ট করা সুরক্ষিত দর্শক নিলাম ফলাফল এবং প্রাসঙ্গিক নিলাম ফলাফল ধারণ করবে৷
  4. সুরক্ষিত শ্রোতা নিলাম প্রতিক্রিয়া ডিক্রিপ্ট করুন এবং নিলামের ফলাফল পান: সুরক্ষিত দর্শক নিলাম ফলাফল ডিক্রিপ্ট করতে, বিক্রেতা বিজ্ঞাপন প্রযুক্তিকে persistAdSelectionResult API কল করা উচিত। persistAdSelectionResult দ্বারা উত্পন্ন ফলাফল প্রযোজ্য হলে প্রাসঙ্গিক বিজ্ঞাপন বা সুরক্ষিত দর্শক বিজ্ঞাপন নিলাম এবং বিজয়ী সুরক্ষিত দর্শক বিজ্ঞাপনের URI জিতেছে কিনা তা নির্ধারণ করতে বিজ্ঞাপন প্রযুক্তিকে সাহায্য করবে৷

সার্ভার নিলামের জন্য সমর্থিত বৈশিষ্ট্য

আমরা বর্তমানে অন-ডিভাইস নিলামের জন্য উপলব্ধ সমস্ত বৈশিষ্ট্য সমর্থন করার লক্ষ্য রাখি। সার্ভার নিলামে এই বৈশিষ্ট্যগুলিকে সমর্থন করার সময়সীমা নিম্নরূপ:

অন-ডিভাইস নিলাম

সার্ভার নিলাম

বিকাশকারী পূর্বরূপ

বেটা

বিকাশকারী পূর্বরূপ

বেটা

ইভেন্ট-স্তরের জয়ের প্রতিবেদন

Q1 '23

Q3 '23

N/A

Q4 '23

জলপ্রপাত মধ্যস্থতা

Q1 '23

Q4 '23

N/A

প্রশ্ন 1 24

ফ্রিকোয়েন্সি ক্যাপ ফিল্টারিং

Q2 '23

Q3 '23

N/A

Q4 '23

ফিল্টারিংয়ের জন্য বিজ্ঞাপন নির্বাচন কর্মপ্রবাহে প্রাসঙ্গিক বিজ্ঞাপনগুলি পাস করুন

Q2 '23

Q1 '24

N/A

N/A

ইন্টারঅ্যাকশন রিপোর্টিং

Q2 '23

Q3 '23

N/A

Q4 '23

কাস্টম শ্রোতা প্রতিনিধি দলে যোগ দিন

Q3 '23

Q4 '23

N/A

Q4 '23

নন-সিপিএম বিলিং

Q3 '23

Q4 '23

ডিবাগ
রিপোর্টিং

Q3 '23

Q4 '23

Q3 '23

Q4 '23

ওপেন বিডিং মধ্যস্থতা

N/A

N/A

N/A

Q1 '24

অ্যাপ ইনস্টল বিজ্ঞাপন ফিল্টারিং

Q2 '23

Q1 '24

N/A

Q1 '24

মুদ্রা ব্যবস্থাপনা

N/A

N/A

N/A

Q1 '24

কে-অ্যানন ইন্টিগ্রেশন

N/A

Q1 '24

N/A

Q1 '24

প্রাইভেট অ্যাগ্রিগেশন ইন্টিগ্রেশন

N/A

N/A

N/A

Q3 '24

সুরক্ষিত দর্শক API ব্যবহার করে সার্ভার নিলাম চালান

ডেভেলপার প্রিভিউ ট্র্যাকে, AdSelectionManager দুটি নতুন API প্রকাশ করে: getAdSelectionData এবং persistAdSelectionResult । এই APIগুলি বিজ্ঞাপন প্রযুক্তি SDK গুলিকে বিডিং এবং নিলাম সার্ভারগুলির সাথে একীভূত করার অনুমতি দেয়৷

একটি সার্ভার নিলামের জন্য ডেটা সংগ্রহ এবং এনক্রিপ্ট করুন

getAdSelectionData API বিডিং এবং নিলামের উপাদানগুলির জন্য প্রয়োজনীয় ইনপুট তৈরি করে যেমন BuyerInput এবং ProtectedAudienceInput , এবং ফলাফলটি কলারের কাছে উপলব্ধ করার আগে ডেটা এনক্রিপ্ট করে৷ অ্যাপ জুড়ে ডেটা ফাঁস প্রতিরোধ করতে, এই ডেটাতে ডিভাইসে উপস্থিত সমস্ত ক্রেতার তথ্য রয়েছে৷ গোপনীয়তা বিবেচনা বিভাগে এই সিদ্ধান্ত সম্পর্কে আরও পড়ুন এবং আকার বিবেচনা বিভাগে এটি অপ্টিমাইজ করার কৌশলগুলি।

API অ্যাক্সেস করতে, সুরক্ষিত শ্রোতা API-তে অ্যাক্সেস সক্ষম করতে হবে এবং ACCESS_ADSERVICES_CUSTOM_AUDIENCE অনুমতি অবশ্যই কলারের ম্যানিফেস্টে সংজ্ঞায়িত করতে হবে।

public class AdSelectionManager {
    public void getAdSelectionData(
            GetAdSelectionDataRequest getAdSelectionDataRequest,
            Executor executor,
            OutcomeReceiver<GetAdSelectionDataOutcome, Exception> receiver) {}
}

GetAdSelectionDataRequest

  1. কলকারীকে অবশ্যই অনুরোধে seller ক্ষেত্রটি সেট করতে হবে কারণ এটি অনুরোধটি পরিবেশন করার আগে তালিকাভুক্তি চেক চালানোর জন্য ব্যবহৃত হয়।
  2. coordinatorOriginUri ক্ষেত্রটি ঐচ্ছিক।
    1. সেট করা থাকলে, এটি বিক্রেতার B&A সার্ভার স্থাপন করার সময় কনফিগার করা সমন্বয়কারী URL-এর স্কিম, হোস্টনাম এবং পোর্টের সমান হওয়া উচিত।
    2. সমন্বয়কারীকে অবশ্যই অনুমোদিত সমন্বয়কারীদের তালিকার অন্তর্ভুক্ত হতে হবে:
      প্রদানকারী ইউআরআই URI অরিজিন ডিফল্ট
      গুগল ক্লাউড https://publickeyservice.pa.gcp.privacysandboxservices.com/.well-known/protected-auction/v1/public-keys https://publickeyservice.pa.gcp.privacysandboxservices.com হ্যাঁ
      আমাজন ওয়েব সার্ভিসেস https://publickeyservice.pa.aws.privacysandboxservices.com/.well-known/protected-auction/v1/public-keys https://publickeyservice.pa.aws.privacysandboxservices.com না
    3. যদি কোন সমন্বয়কারীর উৎস প্রদান করা না হয়, ডিফল্ট সমন্বয়কারী ব্যবহার করা হয়।
    4. যদিও কোঅর্ডিনেটর ইউআরএলের পরিবর্তন হওয়ার সম্ভাবনা খুবই কম, তবে এই ইউআরএলটি গতিশীলভাবে পরিচালনা করার জন্য একটি পদ্ধতি প্রয়োগ করার জন্য দৃঢ়ভাবে সুপারিশ করা হয়। এটি নিশ্চিত করে যে ইউআরএলে ভবিষ্যতের যেকোনো পরিবর্তন নতুন SDK রিলিজের প্রয়োজন ছাড়াই সামঞ্জস্য করা যেতে পারে।
public class GetAdSelectionDataRequest {
  public setSeller(AdTechIdentifier seller);
  public setCoordinatorOriginUri(Uri coordinatorOriginUri)
}

অনুরোধটি বৈধ হওয়ার পর, ডিভাইসের ক্রেতার ডেটা BuyerInput এবং ProtectedAudienceInput এ তৈরি করা হয়। চূড়ান্ত পেলোড অবজেক্ট তারপর দ্বিমুখী হাইব্রিড পাবলিক কী এনক্রিপশন ব্যবহার করে এনক্রিপ্ট করা হয়।

GetAdSelectionDataOutcome

GetAdSelectionDataOutcome getAdSelectionData API এর ফলাফল হিসাবে তৈরি হয়। এতে নিম্নলিখিতগুলি রয়েছে:

  1. adSelectionId : getAdSelectionData এর এই আহ্বান সনাক্ত করতে একটি অস্বচ্ছ পূর্ণসংখ্যা। বিজ্ঞাপন প্রযুক্তি ক্লায়েন্টের এই adSelectionId মান বজায় রাখা উচিত কারণ এটি getAdSelectionData কলের পয়েন্টার হিসাবে কাজ করে। বিডিং এবং নিলাম সার্ভার থেকে নিলামের ফলাফল ডিক্রিপ্ট করতে persistAdSelectionResult API-এর দ্বারা এই শনাক্তকারীর প্রয়োজন হয় এবং reportImpression এবং reportEvent API-এর জন্যও এটি প্রয়োজনীয়।
  2. adSelectionData : এটি হল এনক্রিপ্ট করা নিলাম ডেটা যা নিলাম চালানোর জন্য বিডিং এবং নিলাম সার্ভারের প্রয়োজন হবে। এই পদ্ধতিতে রয়েছে:
    1. ফ্রিকোয়েন্সি ক্যাপিং, অ্যাপ ইনস্টল ফিল্টার এবং কাস্টম দর্শকদের জন্য সার্ভার নিলামের প্রয়োজনীয়তার উপর ভিত্তি করে ফিল্টার করা কাস্টম অডিয়েন্স ডেটা।
    2. ভবিষ্যতের সংস্করণে, এতে অ্যাপ ইনস্টল ডেটা থাকবে।
public class GetAdSelectionDataOutcome {
  Public getAdSelectionId(long adSelectionId);
  public byte[] getAdSelectionData();
}

ত্রুটি, ব্যতিক্রম এবং ব্যর্থতা পরিচালনা

যদি অবৈধ আর্গুমেন্ট, টাইমআউট বা অত্যধিক রিসোর্স খরচের কারণে বিজ্ঞাপন নির্বাচন ডেটা জেনারেশন সফলভাবে সম্পন্ন না করা যায়, তাহলে OutcomeReceiver.onError() কলব্যাক নিম্নলিখিত আচরণগুলির সাথে একটি AdServicesException প্রদান করে:

  1. যদি getAdSelectionData অবৈধ আর্গুমেন্ট দিয়ে শুরু করা হয়, তাহলে AdServicesException ` কারণ হিসেবে একটি IllegalArgumentException নির্দেশ করে।
  2. অন্যান্য সমস্ত ত্রুটি কারণ হিসাবে একটি IllegalStateException সহ একটি AdServicesException পায়।

একটি অবিশ্বস্ত বিক্রেতা সেবা একটি অনুরোধ পাঠান

AdSelectionData ব্যবহার করে, ডিভাইসে থাকা SDK একটি POST বা PUT অনুরোধে ডেটা অন্তর্ভুক্ত করে তাদের বিক্রেতার বিজ্ঞাপন পরিষেবায় একটি অনুরোধ পাঠাতে পারে:

fetch('https://www.example-ssp.com/auction', {
  method: "PUT",
  body: data,
...
})

ডিভাইসে থাকা SDK এই ডেটা এনকোড করার জন্য দায়ী৷ মাল্টিপার্ট/ফর্ম-ডেটা হিসাবে বিক্রেতার বিজ্ঞাপন পরিষেবাতে অনুরোধ পাঠানোর মতো একটি স্থান দক্ষ সমাধান ব্যবহার করার পরামর্শ দেওয়া হয়।

অবিশ্বস্ত বিক্রেতার পরিষেবা থেকে একটি প্রতিক্রিয়া পান৷

বিডিং এবং নিলাম সার্ভার ব্যাখ্যাকারীতে বিশদভাবে বলা হয়েছে, যখন অবিশ্বস্ত বিক্রেতা পরিষেবা অনুরোধটি গ্রহণ করে, তখন এটি প্রাসঙ্গিক বিজ্ঞাপনের জন্য অংশীদার ক্রেতাদের কল করে।

অবিশ্বস্ত বিক্রেতা পরিষেবা এনক্রিপ্ট করা adSelectionData এবং AuctionConfig একটি TEE তে চলমান বিডিং এবং নিলাম সার্ভারের সেলারফ্রন্টএন্ড পরিষেবাতে ফরোয়ার্ড করে৷

সুরক্ষিত শ্রোতা নিলাম সম্পূর্ণ হলে, SellerFrontEnd পরিষেবা নিলামের ফলাফল এনক্রিপ্ট করে এবং অবিশ্বস্ত বিক্রেতা পরিষেবার প্রতিক্রিয়া হিসাবে এটি ফেরত দেয়।

অবিশ্বস্ত বিক্রেতা পরিষেবা প্রাসঙ্গিক বিজ্ঞাপন এবং/অথবা এনক্রিপ্ট করা সুরক্ষিত দর্শক নিলামের ফলাফল ধারণকারী ডিভাইসে একটি প্রতিক্রিয়া পাঠায়।

প্রতিক্রিয়া পাওয়ার পরে, ডিভাইসে বিক্রেতার বিজ্ঞাপন প্রযুক্তি কোড শুধুমাত্র প্রতিক্রিয়াতে প্রাসঙ্গিক বিজ্ঞাপন ব্যবহার করতে বেছে নিতে পারে বা যদি মনে করে যে সুরক্ষিত দর্শকের ফলাফল পাওয়ার ক্ষেত্রে ক্রমবর্ধমান মূল্য রয়েছে, তবে এটি কল করে সুরক্ষিত দর্শক ফলাফল ডিক্রিপ্ট করতে বেছে নিতে পারে PersistAdSelectionResult API।

PersistAdSelectionResult API

সুরক্ষিত দর্শক ফলাফল ডিক্রিপ্ট করতে, বিক্রেতা বিজ্ঞাপন প্রযুক্তি দ্বিতীয় সুরক্ষিত দর্শক API persistAdSelectionResult কল করতে পারে। API ফলাফলটিকে ডিক্রিপ্ট করে এবং একটি AdSelectionOutcome প্রদান করে, একই বস্তু যা আজ একটি অন-ডিভাইস নিলাম থেকে ফেরত দেওয়া হয়।

API অ্যাক্সেস করতে, কলারকে অবশ্যই সুরক্ষিত দর্শক API-এ অ্যাক্সেস সক্ষম করতে হবে এবং তাদের ম্যানিফেস্টে ACCESS_ADSERVICES_CUSTOM_AUDIENCE অনুমতিটি সংজ্ঞায়িত করতে হবে

    public void persistAdSelectionResult(
            PersistAdSelectionResultRequest persistAdSelectionResultRequest,
            Executor executor,
            OutcomeReceiver<AdSelectionOutcome, Exception> receiver) {}

অবিরত বিজ্ঞাপন নির্বাচন ফলাফল অনুরোধ

কলকারীকে অনুরোধে নিম্নলিখিতগুলি সেট করতে হবে:

public final class PersistAdSelectionResultRequest {
  Public setAdSelectionId(long adSelectionId);
  public setSeller(AdTechIdentifier seller);
  public setAdSelectionResult(byte[] adSelectionResult);
}
  1. adSelectionId : getAdSelectionData কল দ্বারা উত্পন্ন অস্বচ্ছ শনাক্তকারী যার ফলাফল কলকারী ডিক্রিপ্ট করতে চায়৷
  2. seller : বিক্রেতার বিজ্ঞাপন প্রযুক্তি শনাক্তকারীকে অনুরোধটি পরিবেশন করার আগে তালিকাভুক্তি চেক চালানোর অনুরোধে সেট করতে হবে।
  3. adSelectionResult : বিডিং এবং নিলাম সার্ভার দ্বারা উত্পন্ন এনক্রিপ্ট করা নিলাম ফলাফল যা কলকারী ডিক্রিপ্ট করতে চায়৷

AdSelectionOutcome প্রতিক্রিয়া

যদি একজন সুরক্ষিত দর্শক বিজয়ী হয়, তাহলে AdSelectionOutcome বিজয়ী বিজ্ঞাপন রেন্ডার URI ফেরত দেয়। একবার adSelectionResult ডিক্রিপ্ট হয়ে গেলে, রিপোর্টিং ডেটা অভ্যন্তরীণভাবে বজায় থাকে। OutcomeReceiver.onResult() কলব্যাক একটি AdSelectionOutcome প্রদান করে যাতে রয়েছে:

  • URI : যদি একটি বিজয়ী সুরক্ষিত দর্শক বিজ্ঞাপন থাকে, তাহলে বিজয়ী বিজ্ঞাপনের জন্য একটি বিজ্ঞাপন রেন্ডার URL ফেরত দেওয়া হয়। যদি কোন সুরক্ষিত দর্শক বিজয়ী না হয়, তাহলে `Uri.EMPTY ফেরত দেওয়া হবে।
  • adSelectionId : এই সার্ভার নিলামের সাথে যুক্ত adSelectionId

ত্রুটি, ব্যতিক্রম এবং ব্যর্থতা পরিচালনা

যদি অবৈধ আর্গুমেন্ট, টাইমআউট বা অত্যধিক রিসোর্স খরচের কারণে বিজ্ঞাপন নির্বাচন ডেটা জেনারেশন সফলভাবে সম্পন্ন না করা যায়, তাহলে OutcomeReceiver.onError() কলব্যাক নিম্নলিখিত আচরণগুলির সাথে একটি AdServicesException প্রদান করে:

  1. যদি getAdSelectionData অবৈধ আর্গুমেন্ট দিয়ে শুরু করা হয়, তাহলে AdServicesException কারণ হিসেবে একটি IllegalArgumentException নির্দেশ করে।
  2. অন্যান্য সমস্ত ত্রুটি কারণ হিসাবে একটি IllegalStateException সহ একটি AdServicesException পায়।

গোপনীয়তা বিবেচনা

ট্রানজিটের ডেটা শুধুমাত্র PPAPI এবং বিশ্বস্ত সার্ভারগুলিতে অ্যাক্সেসযোগ্য তা নিশ্চিত করতে adSelectionData এনক্রিপ্ট করা হয়েছে।

এনক্রিপশন সত্ত্বেও, adSelectionData আকারের কারণে ডেটা ফাঁস হতে পারে। adSelectionData আকার এর কারণে পরিবর্তিত হতে পারে:

  1. ডিভাইসে উপস্থিত CustomAudience ডেটাতে পরিবর্তন।
  2. CustomAudience ফিল্টারিং যুক্তিতে পরিবর্তন
  3. getAdSelectionData কলে ইনপুটে পরিবর্তন।

1-বিট লিক আলোচনায় উল্লিখিত হিসাবে একটি ক্রস-অ্যাপ শনাক্তকারী তৈরি করতে adSelectionData আকারে পরিবর্তন ব্যবহার করা যেতে পারে। 1-বিট ফাঁসের জন্য প্রযোজ্য অনেক প্রশমন এখানেও প্রযোজ্য।

এই ফাঁসগুলি পরিচালনা করার জন্য, আমরা getAdSelectionData API এ সমস্ত কলের জন্য একই adSelectionData তৈরি করার পরিকল্পনা করছি৷ প্রাথমিক রিলিজে, ডিভাইসের সমস্ত CustomAudiences adSelectionData তৈরি করার জন্য ব্যবহার করা হয় এবং এনক্রিপ্ট করা পেলোড মাস্ক আকারের বৈচিত্রের জন্য প্যাড করা হবে। আমরা জেনারেট করা adSelectionDataGetAdSelectionData ইনপুট প্যারামিটারের প্রভাবও সীমাবদ্ধ করব।

যাইহোক, সমস্ত অন-ডিভাইস নিলাম ডেটা ব্যবহার করে সমস্ত বিজ্ঞাপন প্রযুক্তির জন্য একই adSelectionData তৈরি করা একটি বড় পেলোড তৈরি করে যা এখন প্রতিটি কলে বিজ্ঞাপন প্রযুক্তি সার্ভারে স্থানান্তর করতে হবে। নিলাম পেলোড তৈরি করতে সমস্ত অন-ডিভাইস কাস্টম শ্রোতাদের ব্যবহার করে ক্ষতিকারক সত্তা থেকে অপব্যবহারের জন্য ইকোসিস্টেমও খুলে যায়। আমরা নীচের আকার অপ্টিমাইজেশান এবং অপব্যবহার প্রশমন বিভাগে এই উদ্বেগগুলি কভার করেছি৷

আকার অপ্টিমাইজেশান

বিজ্ঞাপন প্রযুক্তির ক্লায়েন্ট SDK বিজ্ঞাপন প্রযুক্তি সার্ভারে করা HTTP PUT/POST প্রাসঙ্গিক কলে adSelectionData এর এনক্রিপ্ট করা বাইট প্যাকেজ করবে বলে আশা করা হচ্ছে। কম রাউন্ড-ট্রিপ টাইম লেটেন্সি এবং খরচের জন্য, ইউটিলিটি প্রভাবিত না করে যতটা সম্ভব adSelectionData সাইজ কমাতে হবে।

আমরা adSelectionData আকার কমাতে আসন্ন রিলিজে নিম্নলিখিত অপ্টিমাইজেশনগুলি অন্বেষণ এবং সম্ভাব্যভাবে চালু করার পরিকল্পনা করছি:

  1. প্যাডিং সহ বালতি আকারের একটি নির্দিষ্ট সেটে তৈরি করা পেলোড : নিম্ন পেলোডের জন্য অনুমতি দেওয়ার সময় আকারের তারতম্য থেকে ফুটো কমাতে, আমরা জেনারেট করা পেলোডের জন্য নির্দিষ্ট আকারের বালতি ব্যবহার করার পরামর্শ দিই। বালতির সংখ্যা ছোট রাখলে, উদাহরণস্বরূপ, 7 getAdSelectionData এ প্রতি কলে 3 বিটের কম এনট্রপি ফাঁস করবে।

    অন-ডিভাইস ডেটা যদি সর্বোচ্চ বালতির আকারকে অতিক্রম করে, তাহলে নিচে উল্লেখিত কৌশলগুলি যেমন অগ্রাধিকার মানগুলি ব্যবহার করা হবে সিদ্ধান্ত নেওয়ার জন্য কোন ডেটা বাদ দেওয়া হবে৷

  2. ক্রেতা কনফিগারেশন : আমরা ক্রেতাদের প্রতি-ক্রেতা পেলোড কনফিগারেশন সেট আপ করতে দেওয়ার সম্ভাব্যতা মূল্যায়ন করছি। কোন ক্রেতা কোন নিলামে যোগ দিতে আগ্রহী তা সনাক্ত করার জন্য এই কনফিগারেশনটি কার্যকর হবে। যদি সম্ভব হয়, তালিকাভুক্তির সময়, একজন ক্রেতা বিজ্ঞাপন প্রযুক্তি একটি শেষ পয়েন্ট নিবন্ধন করতে পারে যেখান থেকে সুরক্ষিত দর্শক একটি দৈনিক নিয়মিত ক্যাডেন্সে পেলোড কনফিগারেশন আনবে। বিকল্পভাবে, গোপনীয়তা-সংরক্ষণকারী APIগুলি একটি API প্রকাশ করবে যাতে ক্রেতা বিজ্ঞাপন প্রযুক্তিগুলিকে এই এন্ডপয়েন্ট নিবন্ধন করার অনুমতি দেয়৷

    এই কনফিগারেশনটি প্রতিটি getAdSelectionData অনুরোধের জন্য তৈরি করা adSelectionData এ ক্রেতার অবদান মূল্যায়ন করতে ব্যবহার করা হবে।

    ক্রেতা পেলোড কনফিগারেশন ক্রেতাদের নির্দিষ্ট করার অনুমতি দেবে:

    1. মঞ্জুরিপ্রাপ্ত বিক্রেতাদের তালিকা : ক্রেতার কাস্টম অডিয়েন্স পেলোডে যোগ করা হবে শুধুমাত্র যদি getAdSelectionData কলটি অনুমোদিত তালিকার একজন বিক্রেতার দ্বারা শুরু হয়। অনুমোদিত তালিকা আপ টু ডেট রাখতে আমরা প্রতিদিনের ক্যাডেন্সে পেলোড কনফিগারেশন আনব।
    2. প্রতি-বিক্রেতার আকারের সীমা : একজন নির্দিষ্ট বিক্রেতার দ্বারা নিলাম শুরু হলে পেলোডে পাঠানো ডেটা আকার নির্ধারণ করতে ক্রেতা প্রতি-বিক্রেতার আকারের সীমা নির্দিষ্ট করতে পারে। এটি উপযোগী হবে যদি একজন ক্রেতা নির্দিষ্ট বিক্রেতাদের কাছ থেকে নিলাম ডেটা প্রক্রিয়াকরণের জন্য আরও সংস্থান উৎসর্গ করতে চান। SellerFrontendService প্রতিটি BuyerFrontendService-এ শুধুমাত্র ক্রেতা-নির্দিষ্ট ডেটা ফরোয়ার্ড করে। সুতরাং, প্রতি-বিক্রেতার আকারের সীমা সংজ্ঞায়িত করে, একজন ক্রেতা স্পষ্টভাবে একজন বিক্রেতার দ্বারা পরিচালিত নিলামের জন্য তাদের বিডিং এবং নিলাম সার্ভারের BuyerFrontendService দ্বারা প্রবেশ করা এবং প্রক্রিয়াকৃত ডেটার পরিমাণ নিয়ন্ত্রণ করতে পারে।
  3. বিক্রেতা কনফিগারেশন : আমরা প্রতি-বিক্রেতা নিলাম কনফিগারেশনের সম্ভাব্যতা মূল্যায়ন করছি যা বিক্রেতাদের পেলোডের আকার এবং নিলাম অংশগ্রহণকারীদের নিয়ন্ত্রণ করতে নিলামের পরামিতিগুলি সংজ্ঞায়িত করার অনুমতি দেবে। যদি সম্ভব হয়, তালিকাভুক্তির সময়, বিক্রেতা বিজ্ঞাপন প্রযুক্তি শেষ পয়েন্টটি নির্দিষ্ট করতে সক্ষম হবে যেখান থেকে সুরক্ষিত দর্শক একটি নিয়মিত ক্যাডেন্সে প্রতি-বিক্রেতার নিলাম কনফিগারেশন আনতে পারে। এই কনফিগারেশনটি তারপর প্রতিটি getAdSelectionData অনুরোধের জন্য তৈরি করা adSelectionData এর রচনা এবং সীমা নির্ধারণ করতে ব্যবহার করা হবে।

    ক্রেতা কনফিগারেশনের অনুরূপ, একটি প্রতি-বিক্রেতা কনফিগারেশন বিক্রেতাদের একটি নিলামে ক্রেতাদের কোন সেট দেখতে পাবে তা নির্দিষ্ট করতে এবং পেলোড আকারে প্রতি ক্রেতা অবদানের সীমা নির্দিষ্ট করার অনুমতি দেবে।

    বিক্রেতা নিলাম কনফিগারেশন বিক্রেতাদের নির্দিষ্ট করার অনুমতি দেবে:

    1. অনুমোদিত ক্রেতা তালিকা : প্রদত্ত বিক্রেতার দ্বারা শুরু করা নিলামের জন্য, শুধুমাত্র অনুমোদিত তালিকার ক্রেতারাই নিলামের জন্য কাস্টম দর্শকদের অবদান রাখতে সক্ষম হবে। নিলামের কনফিগারেশন প্রতিদিন আপডেট করতে হবে যাতে সার্ভার-সাইড ক্রেতা অনুমোদন তালিকার সাথে মঞ্জুরি তালিকা আপ টু ডেট থাকে।
    2. প্রতি-ক্রেতার আকারের সীমা : বিক্রেতারা SellerFrontendService-এ পাঠানো পেলোডে প্রতিটি ক্রেতার দ্বারা আপলোড করা ডেটা আকার নিয়ন্ত্রণ করতে প্রতি-ক্রেতার সীমা নির্দিষ্ট করতে পারে। ক্রেতা প্রতি-ক্রেতার আকারের সীমা অতিক্রম করলে, ক্রেতা পেলোড কনফিগারেশনে সেট করা কাস্টম অডিয়েন্স অগ্রাধিকারটি প্রত্যাশিত সীমাতে ডেটা পেতে ব্যবহার করা হবে।
    3. প্রতি-ক্রেতা অগ্রাধিকার : বিক্রেতাদের প্রতি-ক্রেতার অগ্রাধিকার সেট করার অনুমতি দিন। পেলোডের আকার পেলোড আকারের সীমা ছাড়িয়ে গেলে কোন ক্রেতার ডেটা পেলোডে রাখা উচিত তা শনাক্ত করতে ক্রেতার অগ্রাধিকার ব্যবহার করা হবে।
    4. পেলোডের জন্য সর্বোচ্চ আকারের সীমা : বিভিন্ন বিক্রেতার বিভিন্ন সংস্থান বরাদ্দ থাকতে পারে এবং প্রতি-অনুরোধের নিলাম পেলোডের জন্য সর্বোচ্চ আকারের সীমা সেট করতে চাইতে পারে। সর্বাধিক আকারের সীমা সুরক্ষিত শ্রোতা API দ্বারা সেট করা নির্দিষ্ট আকারের বালতিকে সম্মান করবে।
  4. কাস্টম শ্রোতা পরিবর্তন

    1. কাস্টম অডিয়েন্সের অগ্রাধিকার নির্দিষ্ট করুন : ক্রেতাদের একটি কাস্টম অডিয়েন্সে একটি অগ্রাধিকার মান নির্দিষ্ট করার অনুমতি দিন। priority ক্ষেত্রটি কাস্টম শ্রোতাদের সনাক্ত করতে ব্যবহার করা হবে যা একটি নিলামে অন্তর্ভুক্ত করা উচিত যদি ক্রেতা কাস্টম দর্শকদের সেট প্রতি-বিক্রেতা বা প্রতি-ক্রেতার আকারের সীমা অতিক্রম করে। একটি কাস্টম অডিয়েন্সে একটি অনির্দিষ্ট অগ্রাধিকার মান ডিফল্ট হবে 0.0
  5. পেলোড ডেটা পরিবর্তন

    1. পেলোডে পাঠানো ডেটা হ্রাস করুন : বিডিং এবং নিলাম পরিষেবা পেলোড অপ্টিমাইজেশানে বিশদ হিসাবে, উচ্চতর পেলোড কাস্টম দর্শক ads ডেটা, ব্যবহারকারীর বিডিং সংকেত, অ্যান্ড্রয়েড সংকেত দ্বারা চালিত হয়৷ উচ্চতর পেলোডগুলি এর দ্বারা কমানো যেতে পারে:
      1. পেলোডে ক্লায়েন্টকে অ্যাড রেন্ডার আইডি পাঠাতে (বিজ্ঞাপন বস্তুর পরিবর্তে)।
      2. ক্লায়েন্টকে পেলোডে কোনো বিজ্ঞাপনের ডেটা পাঠাতে হবে না।
      3. ক্লায়েন্ট পেলোডে ব্যবহারকারীর বিডিং সংকেত পাঠানো হচ্ছে না।

যদিও উপরে উল্লিখিত কৌশলগুলি বিজ্ঞাপন প্রযুক্তিগুলিকে adSelectionData পেলোড রচনা এবং সীমাগুলি পরিচালনা করার জন্য কনফিগারেশনগুলিকে সংজ্ঞায়িত করার অনুমতি দেয়, তারা কনফিগারেশন প্যারামিটারগুলি পরিবর্তন করে adSelectionData আকার পরিবর্তন করার জন্য একটি ফ্যাক্টরও হতে পারে৷ এটি এড়াতে, কনফিগারেশনটি কনফিগার করা শেষ পয়েন্ট থেকে সুরক্ষিত দর্শকদের দ্বারা প্রতিদিন আনা হবে।

লেটেন্সি অপ্টিমাইজেশান

সার্ভারের নিলামে একটি আকাঙ্খিত ইউটিলিটি স্তরের জন্য, আমাদের নিশ্চিত করতে হবে যে getAdSelectionData API এবং persistAdSelectionResult API-এর প্রতি কলে কম লেটেন্সি আছে। যদিও আমরা 2023 সালে API-এর জন্য বৈশিষ্ট্য সমর্থন প্রদানের লক্ষ্য রাখি, আমাদের পরবর্তী রিলিজটি API-গুলির জন্য লেটেন্সি বেঞ্চমার্ক এবং অপ্টিমাইজেশনের উপর ফোকাস করবে।

গ্রহণযোগ্য সীমার মধ্যে বিলম্ব বজায় রাখার জন্য আমরা নিম্নলিখিত কৌশলগুলি অন্বেষণ করছি:

  1. বিক্রেতা প্রতি সুরক্ষিত শ্রোতাদের ডেটার প্রাক-প্রজন্ম : যেহেতু বিক্রেতার নিলাম কনফিগারেশন এবং ক্রেতার পেলোড কনফিগারেশন যথেষ্ট সময়কালের জন্য স্থিতিশীল থাকবে (প্রতিদিন), প্ল্যাটফর্মটি প্রাক-গণনা করতে পারে এবং যোগ্য সুরক্ষিত দর্শক ডেটা সংরক্ষণ করতে পারে।

    এর জন্য প্ল্যাটফর্মটিকে কাস্টম শ্রোতা আপডেটগুলি নিরীক্ষণ করার জন্য একটি প্রক্রিয়া তৈরি করতে এবং আপডেটগুলির উপর ভিত্তি করে পূর্ব-উত্পাদিত সুরক্ষিত শ্রোতা ডেটা সংশোধন করতে হবে। প্ল্যাটফর্মটিকে রেস বিলম্বের বিজ্ঞাপন প্রযুক্তিতেও SLO ঘোষণা করতে হবে কাস্টম শ্রোতা আপডেট এবং সার্ভার নিলামের জন্য তৈরি adSelectionData পরিবর্তন দেখার মধ্যে আশা করতে পারে৷

    যেহেতু একটি ডিভাইস বিভিন্ন প্রক্রিয়া অগ্রাধিকারের সাথে একটি সীমিত সম্পদ গণনা মডেল সরবরাহ করে, তাই আমরা স্বীকার করি যে এই প্রাক-প্রজন্ম সুবিধা প্রদান অবশ্যই উচ্চ নির্ভরযোগ্যতা এবং এসএলও গ্যারান্টি সহ আসতে হবে।

    প্রোটেক্টেড অডিয়েন্স ডেটা প্রাক-জেনারেট করা তারপরের উপর ভিত্তি করে করা হবে

    1. বিক্রেতা সুরক্ষিত শ্রোতা ডেটা প্রাক-জেনারেট করতে অপ্ট-ইন করুন৷
    2. একটি নির্দিষ্ট বিক্রেতার দ্বারা শুরু করা একটি নিলামে অংশগ্রহণের যোগ্য ক্রেতারা৷
    3. ক্রেতা প্রতি কাস্টম শ্রোতা সনাক্ত করা যা এর উপর ভিত্তি করে পেলোডের অংশ হবে:
      1. প্রতি-ক্রেতার আকারের সীমা, প্রতি-ক্রেতার অগ্রাধিকার এবং সর্বাধিক আকারের সীমা বিক্রেতার কনফিগারেশনে সংজ্ঞায়িত করা হয়েছে,
      2. প্রতি-বিক্রেতার আকার সীমা, ক্রেতা কনফিগারেশনে সংজ্ঞায়িত কাস্টম দর্শক অগ্রাধিকার।
  2. নেতিবাচক ফিল্টারিংয়ের আগ্রহী প্রয়োগ : যদি একজন বিক্রেতা পছন্দ করেন, তাহলে প্ল্যাটফর্মটি প্রটেক্টেড অডিয়েন্স ডেটা প্রাক-জেনারেট করে এবং গুরুত্বপূর্ণ getAdSelectionData কল বন্ধ করে নেতিবাচক ফিল্টারিং প্রয়োগ করে adSelectionData প্রাক-গণনা করতে পারে। এটি বিক্রেতাদের নেতিবাচক ফিল্টারিং-এ স্থবিরতা গ্রহণ করার সময় কম লেটেন্সি ভারসাম্য করতে অনুমতি দেবে।

    প্ল্যাটফর্মটি বিক্রেতা কনফিগারেশনে একটি স্থিরতা সীমা সহ একটি ডিফল্ট বিকল্প এবং getAdSelectionData এ একটি ওভাররাইড বিকল্প প্রদান করে এই সমর্থনটি প্রদান করতে পারে যাতে প্রয়োজনে নতুনতম গণনার অনুমতি দেওয়া যায়। বিকল্পভাবে, প্ল্যাটফর্মটি নিলামকে উষ্ণ করার জন্য getAdSelectionData এর আগে কল করার জন্য একটি অতিরিক্ত ইনিশিয়ালাইজেশন API প্রদান করতে পারে।

  3. একাধিক নিলামের জন্য পেলোড গণনা : নির্দিষ্ট পরিস্থিতিতে, ডেটা অচলতার বর্ধিত খরচে একটি লেটেন্সি-পারফরম্যান্ট API থাকা পছন্দনীয় হতে পারে। এটি প্রদান করার জন্য, প্ল্যাটফর্মটি সম্পূর্ণ পেলোড গণনা করার জন্য একটি প্রাথমিক এপিআই প্রবর্তন করতে পারে এবং কলকারীকে গণনা করা পেলোডের একটি রেফারেন্স প্রদান করতে পারে।

    getAdSelectionData এর পরবর্তী কলগুলির জন্য, কলার adSelectionData জেনারেশনের জন্য ব্যবহার করা প্রাক-গণনা করা পেলোডের রেফারেন্স প্রদান করতে পারে।

উপরে উল্লিখিত তিনটি কৌশলই প্রাথমিক অন্বেষণ পর্যায়ে রয়েছে এবং প্ল্যাটফর্মটি লেটেন্সির জন্য অপ্টিমাইজ করার জন্য যে দিকটি গ্রহণ করতে পারে তা বর্ণনা করার জন্য। যেহেতু আমরা API এবং বিজ্ঞাপন প্রযুক্তির প্রয়োজনীয়তাগুলির আরও বিস্তারিত লেটেন্সি প্রোফাইলগুলি অন্বেষণ করি, আমরা অতিরিক্ত কৌশলগুলি প্রস্তাব করা চালিয়ে যাব৷

অপব্যবহার প্রশমন এবং সনাক্তকরণ

গোপনীয়তা বিবেচনায় উল্লিখিত হিসাবে, ডিভাইসে সমস্ত ক্রেতার ডেটা ব্যবহার করে adSelectionData তৈরি করা হয়।

যাইহোক, যদি ডিভাইসের সমস্ত ক্রেতার ডেটা adSelectionData আউটপুট তৈরি করতে ব্যবহার করা হয়, তাহলে একটি দূষিত সত্তা একজন ক্রেতা হিসাবে জাহির করতে পারে এবং অ্যান্ড্রয়েড কার্যক্ষমতা হ্রাস করতে প্রতারণামূলক ক্রেতা ডেটা তৈরি করতে পারে, নিলাম চালানো বা চালানোর জন্য বিজ্ঞাপন প্রযুক্তির খরচ বাড়াতে পেলোড ব্লোট করতে পারে। বিডিং, এবং তাই ঘোষণা.

প্রশমন

আকার বিবেচনার বিভাগে উল্লিখিত কিছু ব্যবস্থা যেমন অনুমোদিত তালিকাভুক্ত বিক্রেতা সমন্বিত ক্রেতা পেলোড কনফিগারেশন এবং অনুমোদিত তালিকাভুক্ত ক্রেতা সমন্বিত বিক্রেতার নিলাম কনফিগারেশন পেলোডে অপ্রত্যাশিত ডেটা বাদ দিতে সাহায্য করবে।

অন্যান্য আকার বিবেচনার ব্যবস্থা যেমন SSP-কে ক্রেতার অগ্রাধিকার নির্দিষ্ট করার অনুমতি দেওয়া, জেনারেট করা পেলোডে প্রতি-ক্রেতা কোটা স্থাপন করা এবং প্রতি নিলাম পেলোডের জন্য সর্বোচ্চ আকার নির্ধারণ করাও ক্ষতিকারক পেলোড ব্লটিং এর প্রভাব কমাতে সাহায্য করতে পারে। এই ব্যবস্থাগুলির উদ্দেশ্য হল বিজ্ঞাপন প্রযুক্তিগুলিকে তারা কোন বিজ্ঞাপন প্রযুক্তির সাথে সহযোগিতা করবে তা নির্ধারণ করতে এবং তাদের প্রক্রিয়া করার জন্য পেলোডের গ্রহণযোগ্য সীমা সেট করার জন্য।

পূর্বে উল্লিখিত হিসাবে, অপব্যবহার বিরোধী এবং আকারের সীমাবদ্ধতার জন্য প্রবর্তিত সমস্ত প্রশমন অবশ্যই গোপনীয়তার বিবেচনার সাথে মেনে চলতে হবে।

দূষিত সত্তা সনাক্তকরণ

যদিও উপরে উল্লিখিত প্রশমনগুলি সার্ভার নিলামের জন্য adSelectionData জেনারেশনকে রক্ষা করে, তারা দূষিত সত্তা সনাক্ত করতে বা প্ল্যাটফর্মটিকে অপব্যবহার থেকে রক্ষা করতে সাহায্য করে না যেমন ক্রেতার কাছ থেকে অভূতপূর্ব সংখ্যক কাস্টম দর্শক তৈরি করা।

প্ল্যাটফর্মের স্থিতিশীলতা এবং স্বাস্থ্য নিশ্চিত করার জন্য, আমাদের দূষিত সত্তা চিহ্নিত করার জন্য, অপব্যবহারের ভেক্টর সনাক্ত করতে এবং নির্দিষ্ট আক্রমণের জন্য প্রেরণা সনাক্ত করার জন্য একটি পদ্ধতি খুঁজে বের করতে হবে। পরবর্তী রিলিজে, আমরা সম্ভাব্য অপব্যবহারের ভেক্টর এবং তাদের মোকাবেলা করার জন্য জায়গায় সুরক্ষার বিস্তারিত ব্যাখ্যাকারীদের পরিচয় করিয়ে দেব।