การกำหนดความถี่สูงสุดของกลุ่มเป้าหมายที่มีการป้องกัน

การกําหนดความถี่สูงสุดเป็นแนวทางปฏิบัติด้านการโฆษณาที่จํากัดจํานวนโฆษณาจากหมวดหมู่หนึ่งๆ ที่แสดงต่อผู้ใช้ภายในระยะเวลาหนึ่งๆ การกําหนดความถี่สูงสุดช่วยปรับปรุงประสบการณ์ของผู้ใช้ปลายทางด้วยการแสดงโฆษณาที่หลากหลายและน่าสนใจอยู่เสมอ รวมถึงช่วยผู้ลงโฆษณาจัดการการใช้จ่ายค่าโฆษณา

ข้อเสนอนี้อธิบายวิธีใช้ Protected Audience ใน Android เพื่อใช้ฟังก์ชันการกำหนดความถี่สูงสุดอย่างถูกต้องและรักษาความเป็นส่วนตัว

Protected Audience ใช้การกำหนดความถี่สูงสุดโดยรวม 2 ฟีเจอร์เข้าด้วยกัน ได้แก่ พื้นที่เก็บข้อมูลในอุปกรณ์สำหรับตัวนับเหตุการณ์เฉพาะโฆษณา และความสามารถในการกรองโฆษณาตามชุดกลยุทธ์ตัวกรองที่กำหนดไว้ล่วงหน้า การจำกัดความถี่สูงสุดช่วยให้ผู้ลงโฆษณาระบุเกณฑ์ตัวนับจากผลรวมของค่าฮิสโตแกรมในช่วงระยะเวลาหนึ่งๆ ได้

ตัวนับจะมีความเฉพาะเจาะจงสำหรับชุดค่าผสมของโปรไฟล์อุปกรณ์ เทคโนโลยีโฆษณา และคำอธิบายของรายการควบคุมแต่ละชุด โฆษณาแต่ละรายการควรมีชุดคีย์ตัวนับไว้ใช้ในกรณีที่มีการบันทึกยอดดูหรือการแสดงผลของโฆษณา สําหรับคีย์แต่ละรายการ Protected Audience จะเก็บชุดตัวนับไว้ และตัวนับแต่ละตัวจะนับเหตุการณ์ทั้งหมดที่เกี่ยวข้องกับโฆษณาที่เกิดขึ้นภายในช่วงเวลาที่เฉพาะเจาะจง ระบบจะเพิ่มตัวนับในอุปกรณ์เมื่อมีการแสดงผลหรือการดูเกิดขึ้น และข้อมูลตัวนับจะยังคงอยู่ในอุปกรณ์ เราจะกำหนดเวลาคงที่ที่แน่นอนในภายหลัง

ตรรกะการกรองโฆษณาในเวิร์กโฟลว์การเลือกโฆษณาของกลุ่มเป้าหมายที่ได้รับการปกป้องมีสิทธิ์เข้าถึงตัวนับ โฆษณารีมาร์เก็ตติ้ง และโฆษณาตามบริบท ซึ่งช่วยให้การกำหนดความถี่สูงสุดของกลุ่มเป้าหมายที่ได้รับการปกป้องสามารถทำงานร่วมกับคำขอโฆษณาประเภทดังกล่าวทั้งหมดได้

หมายเหตุ: การกรองโฆษณาใช้ได้ใน Privacy Sandbox บน Android เท่านั้น การใช้งานกลุ่มเป้าหมายที่ได้รับการคุ้มครองของ Chrome ไม่ได้ใช้กลไกในการกรองโฆษณาที่ไม่ใช่กลุ่มเป้าหมายที่ได้รับการคุ้มครองซึ่งกําหนดเป้าหมายตามบริบท ข้อเสนอนี้ครอบคลุมการสนับสนุนฝั่งซื้อเท่านั้น หากมีดีมานด์ เราจะเพิ่มการสนับสนุนฝั่งผู้ขายในภายหลัง

การจำกัดความถี่ของกลุ่มเป้าหมายที่ได้รับการคุ้มครองรองรับข้อกําหนดต่างๆ มากมาย ซึ่งรวมถึง

  • การกรองแบบเรียลไทม์โดยมีความล่าช้าฝั่งเซิร์ฟเวอร์น้อยที่สุดเมื่อมีการอัปเดตตัวนับในอุปกรณ์
  • ลําดับชั้นของคีย์ที่ยืดหยุ่น ซึ่งรวมถึงโฆษณาแต่ละรายการ แคมเปญ หรือการจัดกลุ่มอื่นๆ
  • สอดคล้องกับวิธีการกําหนดความถี่สูงสุดอื่นๆ โดยที่ไม่ต้องใช้ AdID
  • ใช้งานได้กับแอปต่างๆ ในโปรไฟล์ผู้ใช้ของอุปกรณ์หนึ่งๆ
  • เคาน์เตอร์ที่ถูกต้องและสมบูรณ์
  • รองรับคําจํากัดความที่กําหนดเองของเหตุการณ์โฆษณา เช่น การดูหรือการแสดงผล
  • ฟังก์ชันเดียวสําหรับทั้งรีมาร์เก็ตติ้งและโฆษณาตามบริบท

ทําตามขั้นตอนต่อไปนี้เพื่อตั้งค่าการกําหนดความถี่สูงสุด

ขั้นตอนที่ 1: เพิ่มข้อมูลการจำกัดความถี่สูงสุดลงในโฆษณา

โฆษณาตามบริบทและรีมาร์เก็ตติ้งจะระบุตัวนับฮิสโตแกรมที่เกี่ยวข้องเพื่ออัปเดตในกรณีที่มีการดูหรือการแสดงผลโดยใช้ช่อง ad_counter_keys ที่มีรายการจำนวนเต็มที่กำหนดเอง ช่องนี้ไม่รวมอยู่ในช่อง metadata ที่ Protected Audience ไม่ได้แยกวิเคราะห์

ตัวอย่างต่อไปนี้แสดงรูปแบบข้อมูลสำหรับช่อง adsData ใน AdSelectionConfig สําหรับรีมาร์เก็ตติ้ง รูปแบบของรายการโฆษณาสําหรับกลุ่มเป้าหมายที่กําหนดเองหนึ่งๆ จะสอดคล้องกับเนื้อหาของช่อง 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]
      }]
  }]
}

ขั้นตอนที่ 2: บันทึกยอดดูหรือการแสดงผล

เทคโนโลยีโฆษณาสามารถเรียกใช้เมธอด updateAdCounterHistogram เพื่อบันทึกการเกิดเหตุการณ์ที่ใช้สําหรับการกําหนดความถี่สูงสุด เรียกใช้เมธอดซ้ำๆ ในเหตุการณ์เดียวกันได้สําหรับคีย์ที่ระบุในeventTypeของโฆษณาที่ชนะ

void updateAdCounterHistogram(@EventType eventType, long adSelectionId)

อินพุต

  • eventType: ระบุว่าระบบจะนับเหตุการณ์เป็นการดู การเห็น การคลิก หรือการชนะในกระบวนการเลือกโฆษณาหรือไม่
  • adSelectionId: ค่ารหัสในออบเจ็กต์ AdSelectionOutcome ที่การเรียก selectAds แสดงผล

การเรียก updateAdCounterHistogram จะอัปเดตฮิสโตแกรมสําหรับชุดคีย์ที่กําหนดเป็นส่วนหนึ่งของโฆษณารีมาร์เก็ตติ้งที่ดึงข้อมูลโดย CustomAudience หรือโฆษณาตามบริบทที่รวมอยู่ในพารามิเตอร์ AdSelectionConfig สําหรับ selectAds

หากคุณสมมติว่าโฆษณาในขั้นตอนที่ 1 เป็นผู้ชนะ AdSelection ที่มีค่า id เท่ากับ 9999 การเรียกใช้ updateAdCounterHistogram(FrequencyCapFilters.AD_EVENT_TYPE_VIEW, adSelectionId: 999) จะเพิ่มตัวนับสําหรับคีย์หลัก 3 รายการต่อไปนี้

  • {'ads.example.com', 1234, VIEW}
  • {'ads.example.com', 5678, VIEW}

ระบบจะนําชื่อเทคโนโลยีโฆษณามาจากช่องผู้ซื้อ ซึ่งมาจากโฆษณาตามบริบทหรือจากกลุ่มเป้าหมายที่กําหนดเอง ทั้งนี้ขึ้นอยู่กับว่าโฆษณาที่มีประสิทธิภาพสูงสุดมาจากที่ใด

Protected Audience สําหรับ Android จะเพิ่มตัวนับทั้งหมดที่กล่าวถึงก่อนหน้านี้สําหรับเหตุการณ์ประเภท FrequencyCapFilters.AD_EVENT_TYPE_WIN สําหรับโฆษณาที่การเรียก selectAds API แสดง ซึ่งเทียบเท่ากับการทํางานของการเพิ่มอาร์กิวเมนต์ prev_wins ลงใน browser_signals ใน generateBid ในการใช้งาน Protected Audience ของ Chrome

ขั้นตอนที่ 3: ใช้การกรองความถี่สูงสุดด้วยตัวกรอง

ฟังก์ชันการกรองความถี่สูงสุดจะทำงานภายใน AdServicesเพื่อให้ได้ประสิทธิภาพสูงสุด Protected Audience จะเข้าใจว่าต้องกรองข้อความหรือไม่โดยอ่านฟิลด์ตัวกรองในแออบเจ็กต์ AdsData รายการตัวกรองจะระบุไว้ใน frequency_cap ระบบจะใช้ค่าของคีย์ event_type และ interval_in_seconds เพื่อดึงข้อมูลฮิสโตแกรมของเหตุการณ์ที่ใช้สําหรับการกรองและ Protected Audience

คุณสามารถระบุข้อมูลการกรองสําหรับโฆษณารีมาร์เก็ตติ้งที่ได้จากกลุ่มเป้าหมายที่กําหนดเองและโฆษณาตามบริบทซึ่งเป็นส่วนหนึ่งของออบเจ็กต์ AdSelectionConfig

สําหรับโฆษณาตามบริบทที่มีตัวกรองความถี่สูงสุด ระบบจะส่งโฆษณาโดยใช้ช่อง ads ในออบเจ็กต์ AdSelectionConfig ระบบจะกรองโฆษณาและแสดงโฆษณาที่มีราคาเสนอสูงสุดตามผลลัพธ์ของการเรียกใช้ 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"
}

ขั้นตอนที่ 4: รายงานเกี่ยวกับโฆษณาที่มีประสิทธิภาพสูงสุด

เมื่อกระบวนการเลือกโฆษณาเสร็จสมบูรณ์ ระบบจะแสดงผลAdSelectionOutcome ออบเจ็กต์ที่มี renderUri และ adSelectionId ซึ่งเป็นตัวระบุตัวเลขสําหรับการเรียก selectAds คุณสามารถใช้รหัสนี้เพื่อเรียกใช้ reportImpression API ที่รองรับการรายงานระดับเหตุการณ์ ในเบต้า 1 วิธีการนี้จะรองรับการรายงานสําหรับโฆษณารีมาร์เก็ตติ้ง และจะขยายการให้บริการเพื่อรองรับการรายงานสําหรับโฆษณาตามบริบทในรุ่นที่ใหม่กว่า สําหรับโฆษณาตามบริบท ผู้ซื้อต้องระบุตําแหน่งที่เรียกใช้ฟังก์ชัน reportWin ในระหว่างการเรียกใช้ reportImpression โดยใช้ช่องเพิ่มเติมชื่อ reportingJS ในโครงสร้างโฆษณา ดังที่แสดงในตัวอย่างก่อนหน้านี้

แนวทางปฏิบัติแนะนำในการเลือกโฆษณาที่จะแสดง

Protected Audience จะย้ายการบังคับใช้การกำหนดความถี่สูงสุดจากเซิร์ฟเวอร์ไปยังอุปกรณ์ แม้ว่าจะมีการรายงานราคาเสนอที่ชนะด้วย Privacy Sandbox แต่นักพัฒนาแอปจะไม่ทราบสาเหตุที่โฆษณาไม่แสดง โฆษณาอาจไม่แสดงเนื่องจากราคาเสนอแพ้ หรือเนื่องจากความถี่สูงสุด เนื่องจากไม่สามารถมองเห็นสาเหตุที่โฆษณาบางรายการไม่ได้รับเลือก ระบบการเสนอราคาจึงต้องทํางานเพิ่มเติมเพื่อให้มั่นใจว่าโฆษณาที่ดีที่สุดจะแสดง แนวทางปฏิบัติแนะนำเหล่านี้จะช่วยให้การแสดงโฆษณาด้วย Protected Audience มีประสิทธิภาพสูงสุด

ส่งโฆษณารีมาร์เก็ตติ้งมากพอ

เพิ่มประสิทธิภาพโฆษณารีมาร์เก็ตติ้งต่อผู้ใช้ไม่ได้ หากผู้ใช้เห็นโฆษณาจํานวนมากจากกลุ่มเป้าหมายที่กําหนดเองและจํานวนโฆษณามีจํากัดต่ำ ระบบอาจกรองโฆษณาทั้งหมดออก ระบบจะรีเฟรชโฆษณารีมาร์เก็ตติ้งเป็นระยะ ดังนั้นพื้นที่โฆษณาที่เพียงพอควรผ่านการกำหนดความถี่สูงสุดเพื่อให้โฆษณารีมาร์เก็ตติ้งแสดงต่อไป ข้อมูลนี้ต้องสอดคล้องกับข้อจํากัดด้านขนาดของโฆษณาที่ระบุได้ในระหว่างการเรียกใช้ joinCustomAudience และระหว่างการอัปเดตกลุ่มเป้าหมายที่กําหนดเองรายวัน ผู้ซื้อต้องทราบว่าอาจเกิดความล่าช้าเพิ่มขึ้นในระยะการเสนอราคา ระบบจะกรองการจำกัดความถี่ก่อนการเรียกใช้ generateBid เพื่อลดผลกระทบจากปัญหาเหล่านี้

เก็บตัวนับตามบริบทไว้ในเซิร์ฟเวอร์

การประมาณฝั่งเซิร์ฟเวอร์ช่วยให้นักพัฒนาแอปทราบค่าประมาณคร่าวๆ ว่าเมื่อใดที่อาจมีการจำกัดความถี่ การประมาณเหล่านี้อาจบ่งชี้ว่าโฆษณามีแนวโน้มที่จะถึงเกณฑ์ความถี่สูงสุด จึงควรส่งพร้อมกับผู้สมัครโฆษณาจำนวนมากขึ้นหรือถูกนําออกโดยสิ้นเชิง

ส่งผู้สมัครโฆษณาหลายรายการในการตอบสนองตามบริบท

คุณควรส่งผู้สมัครโฆษณาหลายรายการที่มีการตอบสนองตามบริบทก่อนการประมูลกลุ่มเป้าหมายที่ได้รับการคุ้มครอง วิธีนี้ช่วยให้มั่นใจได้ว่าหากมีการกรองโฆษณาหลายรายการออก โฆษณาอื่นๆ จะยังคงแสดงอยู่ คุณสามารถจัดลําดับความสําคัญของโฆษณาเพื่อให้มีโฆษณาบางส่วนแสดงเป็นโฆษณาสํารอง

เนื่องจากการแสดงโฆษณามีเวลาจำกัด คุณจึงควรเลือกผู้สมัครโฆษณาตามแนวโน้มที่จะชนะการประมูลและไม่ถูกกรองออก

ข้อจำกัด

ข้อจํากัดที่ทราบเกี่ยวกับการจํากัดความถี่ของกลุ่มเป้าหมายที่ได้รับการคุ้มครองมีดังนี้

  1. การจำกัดความถี่สูงสุดของกลุ่มเป้าหมายที่ได้รับการคุ้มครองจะทำงานในระดับโปรไฟล์ผู้ใช้ของอุปกรณ์ โดยไม่มีตัวนับที่แชร์ในอุปกรณ์และโปรไฟล์อื่นๆ คุณต้องรวมโฆษณาที่เพิ่มขึ้นซึ่งแสดงจากอุปกรณ์อื่นๆ ด้วยตนเอง หากจําเป็น
  2. ระบบจะจัดเก็บและเข้าถึงตัวนับของอุปกรณ์ในอุปกรณ์ ต้องจัดการตัวนับฝั่งเซิร์ฟเวอร์แยกต่างหาก
  3. เนื่องจากระบบจะประมวลผลการกำหนดความถี่สูงสุดและการกรองโฆษณาที่เกี่ยวข้องในอุปกรณ์ แพลตฟอร์มเทคโนโลยีโฆษณาจึงไม่สามารถควบคุมการดำเนินการเหล่านี้ได้โดยตรง หากต้องการข้ามเกณฑ์ความถี่สูงสุดของอุปกรณ์ แพลตฟอร์มเทคโนโลยีโฆษณาสามารถส่งโฆษณาที่มีโอกาสแสดงหลายรายการพร้อมตัวกรองที่แตกต่างกัน
  4. ระบบไม่รองรับการปรับราคาเสนอตามความถี่ที่บันทึกไว้ ฟังก์ชัน generateBid จะดูตัวนับความถี่ไม่ได้