ใช้เฟรมเวิร์กคำขอให้ลบข้อมูล

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

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

คู่มือนี้ครอบคลุมการตั้งค่าเริ่มต้นของการผสานรวมเฟรมเวิร์กคำขอให้ลบข้อมูล กับ Google Exchange และให้ภาพรวมของเวิร์กโฟลว์เฟรมเวิร์กคำขอให้ลบข้อมูล ภายในบริบทของ Google Exchange ดูคำแนะนำเพิ่มเติมได้ที่เฟรมเวิร์กคำขอลบข้อมูล

ตั้งค่าการผสานรวม

หากต้องการเริ่มรับคำขอให้ลบข้อมูลจาก Google คุณต้องลงทะเบียนโดเมนกับ Google ที่ต้องการเชื่อมโยงกับบัญชี และโฮสต์ไฟล์ dsrdelete.json ที่รูทของโดเมนที่ลงทะเบียน หากต้องการจดทะเบียนโดเมนกับ Google โปรดติดต่อผู้จัดการฝ่ายดูแลลูกค้า ไฟล์ dsrdelete.json มีวัตถุประสงค์หลายประการ เช่น

  • การระบุปลายทางที่ Google ส่งคำขอลบข้อมูล
  • แสดงตัวระบุที่รองรับและวิธีจัดรูปแบบ
  • การระบุคีย์สาธารณะของคุณตามมาตรฐาน JSON Web Key (JWK) ซึ่งบุคคลที่สามใช้เพื่อยืนยันความถูกต้องของคำขอ การลบหรือการรับทราบข้อมูลที่เผยแพร่ที่คุณส่ง

ดูรายละเอียดเกี่ยวกับไฟล์ drsdelete.json เช่น ฟิลด์ที่จำเป็นและไม่บังคับที่คุณสามารถป้อนได้ที่การค้นพบ

ปลายทางที่ระบุในไฟล์ dsrdelete.json ต้องรับและตอบกลับ คำขอให้นำข้อมูลออกที่เข้ามา Google ขอแนะนําให้ใช้ไลบรารีการเข้ารหัสสําหรับภาษาโปรแกรมที่คุณเลือกเพื่อยืนยันคําขอที่คุณได้รับและลงนามในข้อความรับทราบที่คุณส่ง

ตัวอย่างต่อไปนี้จะตั้งค่าไฟล์ dsrdelete.json ที่มีปลายทาง ตัวระบุ และคีย์สาธารณะ

{
    "endpoint": "https://www.doubleclick.net/iab-ddrf",
    "identifiers": [
        { "id": 1, "type": "ppid", "format": "plaintext" },
        { "id": 2, "type": "idfv", "format": "plaintext" },
        { "id": 3, "type": "pfpid_domain", "format": "plaintext" }
    ],
    "publicKey": [
        {
            "kty": "EC",
            "crv": "P-256",
            "x": "_OPPeKSEdi3_JEHla93vOGTx8VD01ozhyYxwQzYCVLs",
            "y": "_XHufu2A_hbN5Uj4Wm7JPHE7ly0_4cmqntmz93pweys",
            "kid": "yUa3wQ",
            "use": "sig",
            "alg": "ES256"
        }
    ],
    "vendorScriptRequirement": false
}

รับคำขอให้ลบข้อมูล

Google จะส่งต่อคำขอให้ลบข้อมูลจากผู้เผยแพร่โฆษณาถึงคุณเมื่อตรงตามเงื่อนไขต่อไปนี้ทั้งหมด

  • คุณโฮสต์ไฟล์ dsrdelete.json ที่ถูกต้องในโดเมนที่จดทะเบียนกับ Google
  • ผู้เผยแพร่โฆษณาส่งคำขอลบข้อมูลสำหรับตัวระบุไปยัง Google
  • Google พบว่าตัวระบุผู้เผยแพร่โฆษณาที่ส่งในคำขอให้ลบข้อมูล มีการแชร์กับคุณ

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

  • ppid: ตัวระบุที่ผู้เผยแพร่โฆษณามีให้ (PPID)
  • pfpid_domain: ตัวระบุของบุคคลที่หนึ่งของผู้เผยแพร่โฆษณาสำหรับเว็บ
  • idfv: ตัวระบุของบุคคลที่หนึ่งของผู้เผยแพร่โฆษณาสําหรับอุปกรณ์ iOS

Google จะส่งคำขอลบข้อมูลเป็นคำขอ HTTP POST ไปยังปลายทาง ที่ระบุไว้ในไฟล์ dsrdelete.json เนื้อหาของคำขอให้ลบข้อมูล มีโทเค็นเว็บ JSON (JWT) ซึ่งประกอบด้วย ส่วนต่อไปนี้

  • ส่วนหัวของ JOSE ที่อธิบายอัลกอริทึมการเข้ารหัส
  • เพย์โหลด JWS ที่มีคำขอลบ
  • ลายเซ็น JWS เพื่อยืนยันความถูกต้องของคำขอ

Google จะเข้ารหัสส่วนหัว เพย์โหลด และลายเซ็นใน base64 และจัดรูปแบบรายการเหล่านี้ ดังนี้

WEB_SAFE_BASE64_ENCODED_HEADER.WEB_SAFE_BASE64_ENCODED_PAYLOAD.WEB_SAFE_BASE64_ENCODED_SIGNATURE

ดูข้อมูลเพิ่มเติมเกี่ยวกับ JWT ที่แตกต่างกันซึ่งใช้ในเฟรมเวิร์กการลบข้อมูลได้ที่ การติดตั้งใช้งาน JSON Web Token (JWT) คำขอให้ลบข้อมูลที่คุณได้รับจาก Google คือ Request JWT (rqJWT) ซึ่งมี Identity JWT (idJWT) ที่ผู้เผยแพร่โฆษณาส่งเมื่อขอ ให้ลบ

ดูรายละเอียดการตรวจสอบในส่วนหัว

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

ตัวอย่างต่อไปนี้คือส่วนหัวที่ถอดรหัสแล้วซึ่งแสดงให้เห็นว่าคุณสามารถใช้อัลกอริทึม RSA256 กับรหัสคีย์ abc123 เพื่อตรวจสอบลายเซ็นได้

{
    "typ": "JWT",
    "alg": "RS256",
    "kid": "abc123"
}

ตรวจสอบสิทธิ์คำขอ

คุณสามารถยืนยันว่า Google ส่งคำขอลบข้อมูลด้วยคีย์สาธารณะ ในไฟล์ dsrdelete.json ของ Google Google dsrdelete.json โฮสต์ไฟล์ ที่ https://static.doubleclick.net/dsrdelete.json

หากต้องการยืนยันความถูกต้องของคำขอลบข้อมูล ให้ทำตามขั้นตอนต่อไปนี้

  1. คำนวณแฮชของส่วนหัวและเพย์โหลดโดยใช้อัลกอริทึมที่ระบุในส่วนหัว ข้อมูลที่ส่งไปยังฟังก์ชันแฮชต้องใช้โครงสร้างต่อไปนี้

    WEB_SAFE_BASE64_ENCODED_HEADER.WEB_SAFE_BASE64_ENCODED_PAYLOAD
    
  2. ใช้คีย์สาธารณะที่ระบุไว้ในไฟล์ dsrdelete.json ของผู้ออกเพื่อ ถอดรหัสลายเซ็นที่ถอดรหัสแล้ว

  3. เปรียบเทียบแฮชที่คุณสร้างในขั้นตอนที่ 1 กับค่าที่ถอดรหัสจาก ลายเซ็น หากรายการเหล่านี้ตรงกัน แสดงว่าคำขอลบข้อมูลเป็นของจริง

แยกวิเคราะห์เพย์โหลดคำขอลบ

หลังจากยืนยันความถูกต้องของคำขอลบข้อมูลแล้ว คุณต้อง แยกวิเคราะห์เพย์โหลดเพื่อยืนยันตัวระบุที่จะลบ เพย์โหลดที่ถอดรหัสแล้วคือโทเค็น rqJWT โปรดดูรายละเอียดที่ rqJWT: JWT ของ "คำขอ" ของผู้ขอ

ตัวอย่างต่อไปนี้แสดงเพย์โหลดที่ถอดรหัสเป็นโทเค็น rqJWT และมี พารามิเตอร์ที่ไม่บังคับ

{
    "optionalParameters": "{\"gamNetworkCode\":\"311057\"}",
    "sub": "{\n    \"identifierValue\": \"crvBtLjLqNUiafwXZiyukLD4Tf6mMUYhBdQaPZ0pjyd\",\n    \"identifierType\": \"ppid\",\n    \"identifierFormat\": \"plaintext\"\n  }",
    "iat": 1756257951,
    "version": "1.0",
    "iss": "test_publisher",
    "idJWT": "eyJhbGciOiJFUzI1NiIsImtpZCI6IkVodWR1USIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ0ZXN0X3B1Ymxpc2hlciIsInN1YiI6IntcbiAgICBcImlkZW50aWZpZXJWYWx1ZVwiOiBcImNydkJ0TGpMcU5VaWFmd1haaXl1a0xENFRmNm1NVVloQmRRYVBaMHBqeWRcIixcbiAgICBcImlkZW50aWZpZXJUeXBlXCI6IFwicHBpZFwiLFxuICAgIFwiaWRlbnRpZmllckZvcm1hdFwiOiBcInBsYWludGV4dFwiXG4gIH0iLCJpYXQiOjE3NTYyNTc5NTEsInZlcnNpb24iOiIxLjAifQ.Dh17fv1sxKMnkOa7HOWfVdsIYo8BBy2p9SkDTSfZoW6ypMdl_5wDYtUIYEfuX3n6UbwMoH0WVgGQnFQraMH6XQ"
}

คำขอให้ลบข้อมูลมีฟิลด์ sub ซึ่งมีสตริง JSON ที่ระบุว่าผู้เผยแพร่โฆษณากำลังขอให้ลบ PPID ที่มีค่า เป็น crvBtLjLqNUiafwXZiyukLD4Tf6mMUYhBdQaPZ0pjyd โทเค็น rqJWT มีโทเค็น idJWT ที่เข้ารหัส ดูรายละเอียดได้ที่ idJWT: JWT "ตัวระบุ" ของผู้ออก

ส่งต่อคำขอลบข้อมูล

คุณต้องส่งต่อคำขอให้ลบข้อมูลไปยังพาร์ทเนอร์ข้อมูลที่คุณแชร์ตัวระบุที่ระบุไว้ด้วย ตัวอย่างเช่น หากคุณผสานรวมกับ การเสนอราคาแบบเปิด คุณต้องส่งต่อคำขอให้ลบข้อมูลไปยังผู้เสนอราคาใน การแลกเปลี่ยนที่คุณแชร์ตัวระบุของบุคคลที่หนึ่งด้วย กระบวนการนี้ กำหนดให้คุณต้องส่งโทเค็น rqJWT ให้กับพาร์ทเนอร์ด้านข้อมูล โทเค็น rqJWT ต้องมีตัวระบุที่เกี่ยวข้องซึ่งจัดรูปแบบตามการกำหนดค่าในไฟล์ dsrdelete.json ของพาร์ทเนอร์ด้านข้อมูล นอกจากนี้ โทเค็น rqJWT ต้องมีลายเซ็นที่สร้างด้วยคีย์ส่วนตัวของคุณด้วย

รับทราบคำขอลบข้อมูล

หากต้องการรับทราบว่าคุณได้รับและดำเนินการตามคำขอให้ลบข้อมูลแล้ว ให้ส่ง JWT การรับทราบไปยังปลายทางที่ Google ระบุไว้ในไฟล์ dsrdelete.json โปรดดูรายละเอียดที่หัวข้อ acJWT: JWT "การรับทราบ" ของผู้รับ

รหัสสถานะ HTTP ของการตอบกลับจะขึ้นอยู่กับผลลัพธ์ต่อไปนี้

  • สำเร็จ: แสดงผล HTTP 202 หากได้รับคำขอ แยกวิเคราะห์ และดำเนินการตามคำขอเรียบร้อยแล้ว
  • ล้มเหลว: แสดง HTTP 400 หากไม่ได้รับคำขอ แยกวิเคราะห์ และดำเนินการตามคำขอสำเร็จ

เนื้อความของคำขอต้องมีโทเค็น acJWT พร้อมเพย์โหลดที่ป้อนข้อมูลในฟิลด์ raResultCode ด้วยรหัสผลลัพธ์ที่เป็นจำนวนเต็ม คุณระบุข้อความอธิบายเกี่ยวกับผลลัพธ์ในช่อง raResultString ได้ (ไม่บังคับ) โทเค็น acJWT ต้องมีลายเซ็นที่สร้างขึ้นด้วยคีย์ส่วนตัว

ดูข้อมูลเพิ่มเติมเกี่ยวกับรหัสผลลัพธ์ที่รองรับในเฟรมเวิร์กคำขอลบข้อมูลได้ที่รหัสผลลัพธ์

สร้างส่วนหัวโทเค็น acJWT

ป้อนข้อมูลส่วนหัวตามฟังก์ชันแฮชและคีย์สาธารณะที่คุณต้องการให้ ผู้รับใช้เมื่อยืนยันลายเซ็น ส่วนหัวที่ไม่ได้เข้ารหัสใน ตัวอย่างต่อไปนี้บ่งบอกว่าคุณต้องการให้ผู้รับใช้อัลกอริทึม ES256 เพื่อสร้างแฮช และผู้รับต้องใช้คีย์สาธารณะ ที่มีรหัสคีย์ EhuduQ จากไฟล์ dsrdelete.json เมื่อถอดรหัสลายเซ็น

{
    "alg": "ES256",
    "typ": "JWT",
    "kid": "EhuduQ"
}

สร้างเพย์โหลดโทเค็น acJWT

ป้อนข้อมูลเพย์โหลดตามผลลัพธ์ของคำขอลบ และป้อนข้อมูลฟิลด์ rqJWT ด้วยรูปแบบที่เข้ารหัสของโทเค็น rqJWT ที่คุณ รับทราบ ตัวอย่างต่อไปนี้ระบุraResultCodeฟิลด์ที่มีค่า 0 เพื่อระบุว่าการดำเนินการสำเร็จ

{
    "version": "1.0",
    "jti": "965492b2-74e5-409a-90f4-f041902db05f",
    "raResultString": "",
    "iat": 1756408212,
    "iss": "doubleclick.net",
    "raResultCode": 0,
    "rqJWT": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkVodWR1USJ9.eyJvcHRpb25hbFBhcmFtZXRlcnMiOiJ7XCJnYW1OZXR3b3JrQ29kZVwiOlwiMzExMDU3XCJ9Iiwic3ViIjoie1xuICAgIFwiaWRlbnRpZmllclZhbHVlXCI6IFwiY3J2QnRMakxxTlVpYWZ3WFppeXVrTEQ0VGY2bU1VWWhCZFFhUFowcGp5ZFwiLFxuICAgIFwiaWRlbnRpZmllclR5cGVcIjogXCJwcGlkXCIsXG4gICAgXCJpZGVudGlmaWVyRm9ybWF0XCI6IFwicGxhaW50ZXh0XCJcbiAgfSIsImlhdCI6MTc1NjI1Nzk1MSwidmVyc2lvbiI6IjEuMCIsImlzcyI6InRlc3RfcHVibGlzaGVyIiwiaWRKV1QiOiJleUpoYkdjaU9pSkZVekkxTmlJc0ltdHBaQ0k2SWtWb2RXUjFVU0lzSW5SNWNDSTZJa3BYVkNKOS5leUpwYzNNaU9pSjBaWE4wWDNCMVlteHBjMmhsY2lJc0luTjFZaUk2SW50Y2JpQWdJQ0JjSW1sa1pXNTBhV1pwWlhKV1lXeDFaVndpT2lCY0ltTnlka0owVEdwTWNVNVZhV0ZtZDFoYWFYbDFhMHhFTkZSbU5tMU5WVmxvUW1SUllWQmFNSEJxZVdSY0lpeGNiaUFnSUNCY0ltbGtaVzUwYVdacFpYSlVlWEJsWENJNklGd2ljSEJwWkZ3aUxGeHVJQ0FnSUZ3aWFXUmxiblJwWm1sbGNrWnZjbTFoZEZ3aU9pQmNJbkJzWVdsdWRHVjRkRndpWEc0Z0lIMGlMQ0pwWVhRaU9qRTNOVFl5TlRjNU5URXNJblpsY25OcGIyNGlPaUl4TGpBaWZRLkRoMTdmdjFzeEtNbmtPYTdIT1dmVmRzSVlvOEJCeTJwOVNrRFRTZlpvVzZ5cE1kbF81d0RZdFVJWUVmdVgzbjZVYndNb0gwV1ZnR1FuRlFyYU1INlhRIn0.zZnuUsUDzkARg31RzkhLOJCSXD5jPca8qff5IqyYrrRITgRgm29T__6gC3oOOK5RAcd_AFFYWzE8onx6Kj1w8A"
}