Báo cáo phân bổ

Gửi ý kiến phản hồi

Ngày nay, các giải pháp phân bổ và đo lường trên thiết bị di động thường sử dụng giá trị nhận dạng trên các bên, chẳng hạn như Mã nhận dạng cho quảng cáo. API Báo cáo phân bổ được thiết kế nhằm tăng cường quyền riêng tư cho người dùng, thông qua việc loại bỏ sự phụ thuộc vào giá trị nhận dạng người dùng trên các bên, và để hỗ trợ các trường hợp sử dụng chính nhằm phân bổ và đo lường lượt chuyển đổi trên các ứng dụng và web.

API này có các cơ chế cấu trúc sau đây nhằm cung cấp một khung để cải thiện quyền riêng tư. Các phần sau trong tài liệu này sẽ mô tả chi tiết hơn:

Các cơ chế trước đây giới hạn khả năng liên kết danh tính người dùng trên 2 ứng dụng hoặc miền khác nhau.

API Báo cáo phân bổ hỗ trợ các trường hợp sử dụng sau đây:

  • Báo cáo lượt chuyển đổi: Giúp nhà quảng cáo đo lường hiệu quả chiến dịch của họ bằng cách hiển thị cho họ số lượt chuyển đổi (trình kích hoạt) và giá trị lượt chuyển đổi (trình kích hoạt) trên các phương diện khác nhau, chẳng hạn như chiến dịch, nhóm quảng cáo và mẫu quảng cáo.
  • Tối ưu hoá: Cung cấp các báo cáo cấp sự kiện hỗ trợ tối ưu hoá chi tiêu quảng cáo, bằng cách cung cấp dữ liệu phân bổ trên mỗi lượt hiển thị có thể dùng để đào tạo mô hình ML.
  • Phát hiện hoạt động không hợp lệ: Cung cấp báo cáo có thể dùng trong lưu lượng truy cập không hợp lệ, cũng như tính năng phân tích và phát hiện gian lận trong quảng cáo.

Nhìn chung, API Báo cáo phân bổ hoạt động như sau (các phần sau trong tài liệu này sẽ mô tả chi tiết hơn:

  1. Nền tảng công nghệ quảng cáo hoàn tất quy trình đăng ký để sử dụng API Báo cáo phân bổ.
  2. Nền tảng công nghệ quảng cáo đăng ký các nguồn phân bổ — lượt nhấp quảng cáo hoặc lượt xem — bằng API Báo cáo phân bổ.
  3. Nền tảng công nghệ quảng cáo đăng ký trình kích hoạt — lượt chuyển đổi của người dùng trên ứng dụng hoặc trang web của nhà quảng cáo — bằng API Báo cáo phân bổ.
  4. API Báo cáo phân bổ khớp trình kích hoạt với một nguồn phân bổ — phân bổ lượt chuyển đổi — và một hoặc nhiều trình kích hoạt được gửi ra ngoài thiết bị thông qua các báo cáo cấp sự kiện và tổng hợp cho nền tảng công nghệ quảng cáo.

Đăng ký nền tảng công nghệ quảng cáo

Để truy cập vào API Báo cáo phân bổ và để đảm bảo rằng cơ chế quyền riêng tư hoạt động như mong muốn, tất cả các nền tảng công nghệ quảng cáo (bao gồm cả nền tảng của Google) đều cần hoàn tất quy trình đăng ký đơn giản. Thông tin chi tiết về quy trình này vẫn đang trong quá trình phát triển. Chúng tôi hoan nghênh ý kiến phản hồi của bạn.

Quy trình đăng ký đảm bảo rằng các nền tảng công nghệ quảng cáo không nhất thiết phải tự nhân bản để thu thập thêm thông tin về các hoạt động của người dùng trên trang web và ứng dụng. Ví dụ: API Báo cáo phân bổ giới hạn hoạt động theo dõi và lượng thông tin mà một nền tảng công nghệ quảng cáo có thể xem đối với một nguồn phân bổ và trình kích hoạt nhất định. Bạn có thể xem thông tin chi tiết về các giới hạn này trong phần cách xem dữ liệu đo lường trong báo cáo phân bổ ở phần sau của tài liệu này.

Doanh nghiệp có thể đăng ký nhiều lần nếu có nhu cầu kinh doanh hợp pháp (chẳng hạn như vận hành nhiều dòng sản phẩm độc lập) và họ không kết hợp dữ liệu của nhiều lần đăng ký để bỏ qua các giới hạn về quyền riêng tư.

Trong quá trình đăng ký, các nền tảng công nghệ quảng cáo cung cấp những thông tin, chẳng hạn như sau:

  • Thông tin liên hệ và thông tin doanh nghiệp
  • URL đăng lại dùng để đăng ký nguồn phân bổ, phân bổ trình kích hoạt và nhận báo cáo tổng hợp cấp sự kiện
  • Các trường hợp sử dụng API Báo cáo phân bổ

Đăng ký một nguồn phân bổ (nhấp hoặc xem)

API Báo cáo phân bổ đề cập đến lượt nhấp quảng cáo và lượt xem dưới dạng nguồn phân bổ. Để đăng ký một lượt nhấp quảng cáo hoặc lượt xem quảng cáo, hãy gọi registerAttributionSource(). API này yêu cầu các thông số sau đây:

  • URI nguồn phân bổ: Nền tảng đưa ra yêu cầu cho URI này để tìm nạp siêu dữ liệu liên kết với nguồn phân bổ.
  • Sự kiện đầu vào: Một đối tượng InputEvent (đối với sự kiện nhấp chuột) hoặc null (đối với sự kiện xem).

Khi API gửi yêu cầu đến URI nguồn phân bổ, nền tảng công nghệ quảng cáo sẽ phản hồi thông qua siêu dữ liệu nguồn phân bổ trong tiêu đề HTTP mới Attribution-Reporting-Register-Source, với các trường sau đây:

  • Mã nhận dạng sự kiện nguồn: Một DOMString mã hoá số nguyên 64 bit chưa ký. Giá trị này đại diện cho dữ liệu cấp sự kiện liên kết với nguồn phân bổ này (lượt xem hoặc lượt nhấp quảng cáo).
  • Đích: Nguồn gốc có eTLD+1 hoặc tên gói ứng dụng trong đó xảy ra sự kiện trình kích hoạt.
  • Thời gian hết hạn (không bắt buộc): Thời gian hết hạn, tính bằng giây là khoảng thời gian mà nguồn phải được xoá khỏi thiết bị. Giá trị mặc định là 30 ngày, với giá trị nhỏ nhất là 2 ngày và giá trị lớn nhất là 30 ngày. Giá trị này được làm tròn đến ngày gần nhất.
  • Mức ưu tiên nguồn (không bắt buộc): Số nguyên 64 bit đã ký được dùng để chọn nguồn phân bổ nào sẽ liên kết với một trình kích hoạt nhất định, trong trường hợp có nhiều nguồn phân bổ có thể được liên kết với trình kích hoạt này.

    Khi nhận được một trình kích hoạt, API sẽ tìm nguồn phân bổ phù hợp có giá trị mức ưu tiên nguồn cao nhất và tạo báo cáo. Mỗi nền tảng công nghệ quảng cáo có thể xác định chiến lược ưu tiên riêng của nền tảng đó.

    Giá trị càng cao thì mức ưu tiên càng lớn.

  • Thời lượng phân bổ cài đặt và sau cài đặt (không bắt buộc): Được dùng để xác định tính năng phân bổ cho sự kiện sau cài đặt, được mô tả ở phần sau của tài liệu này.

Phản hồi của siêu dữ liệu nguồn phân bổ có thể bao gồm dữ liệu bổ sung trong các tiêu đề riêng sau đây:

Đoạn mã sau đây cho biết thiết kế hiện tại của dữ liệu nguồn phân bổ:

Attribution-Reporting-Register-Source: {
  "source_event_id": "[64 bit unsigned integer]",
  "destination": "[eTLD+1 or app package name]",
  "expiry": "[64 bit signed integer]",
  "source_priority": "[64 bit signed integer]"
}
Attribution-Reporting-Register-Aggregate-Source: <aggregation-key-data>
Attribution-Reporting-Redirects: "https://adtechpartner.example"

Các bước sau đây minh hoạ một quy trình mẫu:

  1. SDK công nghệ quảng cáo gọi API để bắt đầu quy trình đăng ký nguồn phân bổ:

    registerAttributionSource(
        Uri.parse("https://adtech.example/attribution_source?my_ad_click_id=123"),
        myClickEvent);
    
  2. API gửi yêu cầu đến https://adtech.example/attribution_source?my_ad_click_id=123, bằng tiêu đề sau:

    Attribution-Reporting-Source-Info: navigation
    
  3. Máy chủ HTTPS của nền tảng công nghệ quảng cáo này phản hồi bằng các tiêu đề chứa thông tin sau:

    Attribution-Reporting-Register-Source: {
        "destination": "android-app://com.advertiser.example",
        "source_event_id": "234",
        "expiry": "60000",
        "source_priority": "5"
    }
    Attribution-Reporting-Redirects: https://adtechpartner.example?their_ad_click_id=567
    Attribution-Reporting-Source-Info: navigation
    
  4. API gửi yêu cầu cho từng URL được chỉ định trong Attribution-Reporting-Redirects. Trong ví dụ này, chỉ có một URL được chỉ định, do đó, API gửi yêu cầu cho https://adtechpartner.example?their_ad_click_id=567.

  5. Máy chủ HTTPS của nền tảng công nghệ quảng cáo này phản hồi bằng các tiêu đề chứa thông tin sau:

    Attribution-Reporting-Register-Source: {
        "destination": "android-app://com.advertiser.example",
        "source_event_id": "789",
        "expiry": "120000",
        "source_priority": "2"
    }
    

Hai nguồn phân bổ điều hướng (lượt nhấp) được đăng ký dựa trên yêu cầu nêu trong các bước trước.

Đăng ký trình kích hoạt (lượt chuyển đổi)

Các nền tảng công nghệ quảng cáo có thể đăng ký trình kích hoạt — lượt chuyển đổi chẳng hạn như lượt cài đặt hoặc sự kiện sau cài đặt — bằng phương thức triggerAttribution().

Phương thức triggerAttribution() yêu cầu thông số URI trình kích hoạt. API đưa ra yêu cầu cho URI này để tìm nạp siêu dữ liệu liên kết với trình kích hoạt.

API tuân theo các lệnh chuyển hướng. Phản hồi của máy chủ công nghệ quảng cáo phải bao gồm tiêu đề HTTP gọi là Attribution-Reporting-Register-Event-Trigger, đại diện cho thông tin trên một hoặc nhiều trình kích hoạt đã đăng ký. Nội dung của tiêu đề phải được mã hoá bằng định dạng JSON và bao gồm các trường sau đây:

  • Dữ liệu trình kích hoạt: Dữ liệu để xác định sự kiện của trình kích hoạt (3 bit cho lượt nhấp, 1 bit cho lượt xem)
  • Mức ưu tiên của trình kích hoạt (không bắt buộc): Số nguyên 64 bit đã ký, đại diện cho mức ưu tiên của trình kích hoạt này so với các trình kích hoạt khác cho cùng một nguồn phân bổ
  • Khoá loại bỏ trùng lặp (không bắt buộc): Số nguyên 64 bit đã ký được dùng để xác định các trường hợp trong đó cùng một trình kích hoạt được đăng ký nhiều lần bằng cùng một nền tảng công nghệ quảng cáo, cho cùng một nguồn phân bổ

Phản hồi của máy chủ công nghệ quảng cáo có thể bao gồm dữ liệu bổ sung trong các tiêu đề sau đây:

Nhiều nền tảng công nghệ quảng cáo có thể đăng ký cùng một sự kiện trình kích hoạt bằng lệnh chuyển hướng trong trường Attribution-Reporting-Redirects hoặc nhiều lệnh gọi đến phương thức triggerAttribution(). Bạn nên sử dụng trường khoá loại bỏ trùng lặp để tránh đưa các trình kích hoạt trùng lặp vào báo cáo trong trường hợp cùng một nền tảng công nghệ quảng cáo cung cấp nhiều phản hồi cho cùng một sự kiện của trình kích hoạt.

Đoạn mã sau đây cho biết thiết kế hiện tại của dữ liệu trình kích hoạt:

Attribution-Reporting-Register-Event-Trigger: {
    "trigger_data": "[unsigned 64-bit integer]",
    "trigger_priority": "[signed 64-bit integer]",
    "deduplication_key": "[signed 64-bit integer]"
}
Attribution-Reporting-Aggregate-Trigger-Data: <aggregation-key-data>
Attribution-Reporting-Aggregate-Values: <aggregation-value-data>
Attribution-Reporting-Redirects: "https://adtechpartner.example"

Các bước sau đây minh hoạ một quy trình mẫu:

  1. SDK công nghệ quảng cáo gọi API để bắt đầu quy trình đăng ký trình kích hoạt:

    triggerAttribution(
        Uri.parse("https://adtech.example/attribution_trigger?app_install=123"));
    
  2. API gửi yêu cầu đến https://adtech.example/attribution_trigger?app_install=123.

  3. Máy chủ HTTPS của nền tảng công nghệ quảng cáo này phản hồi bằng các tiêu đề chứa thông tin sau:

    Attribution-Reporting-Register-Event-Trigger: {
        "trigger_data": "1122",
        "trigger_priority": "3",
        "deduplication_key": "3344",
    }
    Attribution-Reporting-Redirects: https://adtechpartner.example?app_install=567
    
  4. API gửi yêu cầu cho từng URL được chỉ định trong Attribution-Reporting-Redirects. Trong ví dụ này, chỉ có một URL được chỉ định, do đó, API gửi yêu cầu cho https://adtechpartner.example?app_install=567.

  5. Máy chủ HTTPS của nền tảng công nghệ quảng cáo này phản hồi bằng các tiêu đề chứa thông tin sau:

    Attribution-Reporting-Register-Event-Trigger: {
        "trigger_data": "5566",
        "trigger_priority": "3",
        "deduplication_key": "3344"
    }
    

    Hai trình kích hoạt được đăng ký dựa trên yêu cầu ở những bước trước.

Đã áp dụng thuật toán phân bổ ưu tiên nguồn

API Báo cáo phân bổ sử dụng thuật toán phân bổ ưu tiên nguồn để khớp một trình kích hoạt (lượt chuyển đổi) với một nguồn phân bổ. Trong trường hợp nhiều nền tảng công nghệ quảng cáo đăng ký một nguồn phân bổ, như mô tả ở phần sau của tài liệu này, quy trình phân bổ diễn ra độc lập đối với từng nền tảng công nghệ quảng cáo. Đối với từng nền tảng công nghệ quảng cáo, nguồn phân bổ có mức ưu tiên cao nhất sẽ được phân bổ bằng sự kiện của trình kích hoạt. Nếu có nhiều nguồn phân bổ có cùng mức ưu tiên, API sẽ chọn nguồn phân bổ được đăng ký gần nhất. Mọi nguồn phân bổ khác, không được chọn, sẽ bị loại bỏ và không còn đủ điều kiện được phân bổ trình kích hoạt trong tương lai.

Phân bổ sau cài đặt

Trong một số trường hợp, bạn cần phân bổ các trình kích hoạt sau cài đặt cho cùng một nguồn phân bổ dẫn đến lượt cài đặt, ngay cả khi có các nguồn phân bổ hợp pháp khác xuất hiện gần đây hơn.

API có thể hỗ trợ trường hợp sử dụng này bằng cách cho phép các nền tảng công nghệ quảng cáo đặt một khoảng thời gian phân bổ sau cài đặt:

  • Khi đăng ký một nguồn phân bổ, hãy chỉ định thời lượng phân bổ cài đặt trong đó xuất hiện các lượt cài đặt (thường là 2-7 ngày).
  • Khi đăng ký một nguồn phân bổ, hãy chỉ định thời lượng phân bổ sau cài đặt, trong đó mọi sự kiện của trình kích hoạt sau cài đặt đều được liên kết với nguồn phân bổ dẫn đến lượt cài đặt (thường là 7-30 ngày).
  • API Báo cáo phân bổ xác thực thời điểm diễn ra lượt cài đặt ứng dụng và phân bổ nội bộ lượt cài đặt cho nguồn phân bổ ưu tiên nguồn. Tuy nhiên, lượt cài đặt không được gửi đến các nền tảng công nghệ quảng cáo và không tính vào giới hạn tỷ lệ tương ứng của nền tảng.
  • Mọi trình kích hoạt trong tương lai xảy ra trong thời lượng phân bổ sau cài đặt đều được phân bổ cho cùng một nguồn phân bổ dưới dạng lượt cài đặt đã xác thực, với điều kiện nguồn phân bổ đó đủ điều kiện.

    Chúng tôi đang tìm cách hỗ trợ các trường hợp sử dụng mà người dùng gỡ cài đặt rồi cài đặt lại ứng dụng.

Trong tương lai, chúng tôi có thể tìm hiểu cách mở rộng thiết kế để hỗ trợ các mô hình phân bổ nâng cao hơn.

Mọi cách kết hợp đường dẫn đến trình kích hoạt dựa trên ứng dụng và dựa trên web đều được hỗ trợ

API Báo cáo phân bổ cho phép phân bổ các đường dẫn sau đây của trình kích hoạt trên một thiết bị Android:

  • Ứng dụng với ứng dụng: Người dùng thấy quảng cáo trong ứng dụng, sau đó chuyển đổi trong ứng dụng đó hoặc một ứng dụng khác đã cài đặt.
  • Ứng dụng với web: Người dùng thấy quảng cáo trong ứng dụng, sau đó chuyển đổi trên thiết bị di động hoặc trình duyệt ứng dụng.
  • Web với ứng dụng: Người dùng thấy quảng cáo trong trình duyệt ứng dụng hoặc thiết bị di động, sau đó chuyển đổi trong ứng dụng.
  • Web với web: Người dùng thấy quảng cáo trong trình duyệt ứng dụng hoặc thiết bị di động, sau đó chuyển đổi trong cùng một trình duyệt hoặc trình duyệt khác trên cùng một thiết bị.

Chúng tôi cho phép các trình duyệt web hỗ trợ chức năng hiển thị trên web mới, chẳng hạn như chức năng tương tự như Hộp cát về quyền riêng tư cho API Báo cáo phân bổ của web . Chức năng này có thể gọi Android API để hỗ trợ phân bổ trên ứng dụng và web.

Ưu tiên nhiều trình kích hoạt cho một nguồn phân bổ

Một nguồn phân bổ có thể dẫn đến nhiều trình kích hoạt. Ví dụ: một quy trình mua có thể liên quan đến trình kích hoạt "cài đặt ứng dụng", một hoặc nhiều trình kích hoạt "thêm vào giỏ hàng" và một trình kích hoạt "mua hàng". Mỗi trình kích hoạt được phân bổ cho một hoặc nhiều nguồn phân bổ theo thuật toán phân bổ ưu tiên nguồn, được mô tả ở phần sau của tài liệu này.

Có giới hạn về số trình kích hoạt có thể phân bổ cho một nguồn phân bổ; để biết thông tin chi tiết, hãy đọc về cách xem dữ liệu đo lường trong báo cáo phân bổ ở phần sau của tài liệu này. Trong trường hợp có nhiều trình kích hoạt vượt quá các giới hạn này, nên giới thiệu logic ưu tiên để khai thác tối đa trình kích hoạt có giá trị nhất. Ví dụ: nhà phát triển của một nền tảng công nghệ quảng cáo có thể muốn ưu tiên nhận được trình kích hoạt "mua hàng" hơn là trình kích hoạt "thêm vào giỏ hàng".

Để hỗ trợ logic này, bạn có thể thiết lập một trường mức ưu tiên riêng trên trình kích hoạt, và trình kích hoạt có mức ưu tiên cao nhất sẽ được chọn trước khi áp dụng các giới hạn, trong khoảng thời gian báo cáo nhất định.

Cho phép nhiều nền tảng công nghệ quảng cáo đăng ký các trình kích hoạt hoặc nguồn phân bổ

Thông thường, nhiều nền tảng công nghệ quảng cáo sẽ nhận được báo cáo phân bổ. Do đó, API cho phép nhiều nền tảng công nghệ quảng cáo đăng ký cùng một trình kích hoạt hoặc nguồn phân bổ.

Nguồn phân bổ

Các lệnh chuyển hướng nguồn phân bổ được hỗ trợ trong phương thức registerAttributionSource():

  1. Nền tảng công nghệ quảng cáo gọi phương thức registerAttributionSource() có thể cung cấp một trường Attribution-Reporting-Redirects bổ sung trong phản hồi. Trường này đại diện cho một tập hợp URL chuyển hướng của công nghệ quảng cáo của đối tác.
  2. Sau đó, API sẽ gọi URL chuyển hướng, do đó, nguồn phân bổ có thể được đăng ký bằng nền tảng công nghệ quảng cáo của đối tác.

Có thể liệt kê nhiều URL của nền tảng công nghệ quảng cáo của đối tác trong trường Attribution-Reporting-Redirects, và các nền tảng công nghệ quảng cáo của đối tác không thể chỉ định trường Attribution-Reporting-Redirects của riêng nền tảng đó.

API này cũng cho phép các nền tảng công nghệ quảng cáo khác nhau cho mỗi lệnh gọi registerAttributionSource().

Trình kích hoạt

Để đăng ký trình kích hoạt, các bên thứ ba được hỗ trợ theo cách tương tự: các nền tảng công nghệ quảng cáo có thể sử dụng trường Attribution-Reporting-Redirects bổ sung hoặc mỗi nền tảng có thể gọi phương thức triggerAttribution().

Khi một nhà quảng cáo sử dụng nhiều nền tảng công nghệ quảng cáo để đăng ký cùng một sự kiện của trình kích hoạt, nên sử dụng khoá loại bỏ trùng lặp. Khoá loại bỏ trùng lặp đóng vai trò phân biệt những báo cáo lặp lại của cùng một sự kiện. Nếu không cung cấp khoá loại bỏ trùng lặp, các trình kích hoạt trùng lặp có thể được báo cáo ngược lại cho từng nền tảng công nghệ báo cáo dưới dạng một trình kích hoạt duy nhất.

Xem dữ liệu đo lường trong báo cáo phân bổ

API Báo cáo phân bổ hỗ trợ các loại báo cáo sau đây, được mô tả chi tiết hơn ở phần sau của tài liệu này:

  • Báo cáo cấp sự kiện liên kết một nguồn phân bổ cụ thể (lượt nhấp hoặc lượt xem) với các bit giới hạn của dữ liệu trình kích hoạt có độ chân thực cao.
  • Báo cáo tổng hợp không nhất thiết phải liên kết với một nguồn phân bổ cụ thể. Những báo cáo này cung cấp dữ liệu trình kích hoạt phong phú hơn, có độ chân thực cao hơn so với báo cáo cấp sự kiện, nhưng dữ liệu này chỉ có ở dạng tổng hợp.

Hai loại báo cáo này bổ sung cho nhau và có thể được sử dụng đồng thời.

Báo cáo cấp sự kiện

Sau khi trình kích hoạt được phân bổ cho một nguồn phân bổ, một báo cáo cấp sự kiện sẽ được tạo và lưu trữ trên thiết bị cho đến khi được gửi trở lại cho URL đăng lại của từng nền tảng công nghệ quảng cáo trong một số khoảng thời gian gửi báo cáo. Thông tin mô tả chi tiết hơn có ở phần sau của tài liệu này.

Các báo cáo ở cấp sự kiện rất hữu ích do cần rất ít thông tin về trình kích hoạt. Dữ liệu trình kích hoạt ở cấp sự kiện được giới hạn ở 3 bit dữ liệu trình kích hoạt đối với lượt nhấp — điều này nghĩa là một trình kích hoạt có thể được chỉ định 1 trong số 8 danh mục — và 1 bit đối với lượt xem. Ngoài ra, các báo cáo ở cấp sự kiện không hỗ trợ việc mã hoá dữ liệu phía trình kích hoạt có độ chân thực cao, chẳng hạn như giá cụ thể hoặc thời gian kích hoạt.

Báo cáo ở cấp sự kiện chứa các dữ liệu, chẳng hạn như sau:

  • Đích đến: Tên gói ứng dụng hoặc eTLD+1 của nhà quảng cáo nơi xảy ra kích hoạt
  • Mã nhận dạng nguồn phân bổ: Mã nhận dạng nguồn phân bổ được dùng để đăng ký nguồn phân bổ
  • Loại trình kích hoạt: 1 hoặc 3 bit dữ liệu trình kích hoạt có độ chân thực thấp, tuỳ theo loại nguồn phân bổ

Các cơ chế bảo vệ quyền riêng tư áp dụng cho báo cáo ở cấp sự kiện

Độ trung thực hạn chế của dữ liệu trình kích hoạt

API này cung cấp 1 bit đối với trình kích hoạt lượt xem hết và 3 bit đối với trình kích hoạt lượt nhấp. Các nguồn phân bổ tiếp tục hỗ trợ 64 bit siêu dữ liệu đầy đủ.

Bạn nên đánh giá xem liệu có cần và cách giảm bớt thông tin biểu thị trong các trình kích hoạt để chúng hoạt động với số lượng bit giới hạn có trong báo cáo ở cấp sự kiện.

Khung của hiện tượng nhiễu liên quan đến sự riêng tư biệt lập

Mục tiêu của API này là cho phép đo lường ở cấp sự kiện để đáp ứng các yêu cầu cục bộ về quyền riêng tư biệt lập bằng cách sử dụng phản hồi được sắp xếp ngẫu nhiên nhằm tạo đầu ra nhiễu cho từng sự kiện nguồn.

Độ nhiễu được áp dụng khi xác định xem một sự kiện nguồn phân bổ có được báo cáo chính xác không. Một nguồn phân bổ được đăng ký trên thiết bị với xác suất $ p $ mà nguồn phân bổ này được đăng ký như bình thường, và với xác suất $ 1-p $ mà thiết bị lựa chọn ngẫu nhiên trong số tất cả trạng thái đầu ra có thể có của API (bao gồm cả không báo cáo hoặc đưa ra nhiều báo cáo giả mạo).

Phản hồi được sắp xếp ngẫu nhiên k là một thuật toán riêng tư biệt lập epsilon nếu thoả mãn phương trình sau:

\[ p = \frac{k}{k + e^ε - 1} \]

Đối với các giá trị ε thấp, đầu ra thực sự được bảo vệ bằng cơ chế phản hồi được sắp xếp ngẫu nhiên k. Các thông số nhiễu chính xác đang trong tiến trình tính toán và có thể thay đổi dựa trên phản hồi.

Giới hạn về các trình kích hoạt hiện có (lượt chuyển đổi)

Có giới hạn về số lượng trình kích hoạt trên mỗi nguồn phân bổ, với đề xuất hiện tại như sau:

  • 1-2 trình kích hoạt cho nguồn phân bổ xem quảng cáo
  • 3 trình kích hoạt cho nguồn phân bổ nhấp vào quảng cáo

Các giới hạn này được áp dụng sau khi xem xét mức ưu tiên về nguồn phân bổ và trình kích hoạt.

Giới hạn về số lượng nền tảng công nghệ quảng cáo trên mỗi nguồn phân bổ

Có giới hạn về số lượng nền tảng công nghệ quảng cáo có thể liên kết với một nguồn phân bổ duy nhất. Các giới hạn này được áp dụng sau khi xem xét mức ưu tiên về nguồn phân bổ và trình kích hoạt.

Khoảng thời gian cụ thể để gửi báo cáo

Các báo cáo về nguồn phân bổ lượt xem quảng cáo được gửi 1 giờ sau khi nguồn hết hạn. Ngày hết hạn này có thể được định cấu hình, nhưng không được ít hơn 2 ngày hoặc nhiều hơn 30 ngày.

Các báo cáo cho nguồn phân bổ lượt nhấp quảng cáo không được định cấu hình và gửi trước khi nguồn hết hạn, vào một thời điểm được chỉ định tương ứng với thời điểm nguồn được đăng ký. Thời gian từ nguồn phân bổ cho đến thời gian hết hạn được chia thành nhiều khoảng thời gian báo cáo. Mỗi khoảng thời gian báo cáo có một thời hạn (từ thời gian nguồn phân bổ). Vào cuối mỗi khoảng thời gian báo cáo, thiết bị sẽ thu thập tất cả các lượt kích hoạt đã diễn ra kể từ thời gian báo cáo trước đó và gửi báo cáo theo lịch. API hỗ trợ các khoảng thời gian báo cáo sau đây:

  • 2 ngày: Thiết bị thu thập tất cả các lượt kích hoạt xảy ra trong tối đa 2 ngày sau khi nguồn phân bổ được đăng ký. Báo cáo được gửi 2 ngày và 1 giờ sau khi nguồn phân bổ được đăng ký.
  • 7 ngày: Thiết bị thu thập tất cả các lượt kích hoạt xảy ra hơn 2 ngày nhưng không quá 7 ngày sau khi nguồn phân bổ được đăng ký. Báo cáo được gửi 7 ngày và 1 giờ sau khi nguồn phân bổ được đăng ký.
  • Khoảng thời gian tuỳ chỉnh, được xác định bởi thuộc tính "hết hạn" của một nguồn phân bổ. Báo cáo được gửi 1 giờ sau thời gian hết hạn đã chỉ định. Giá trị này không được ít hơn 2 ngày hoặc nhiều hơn 30 ngày.

Báo cáo tổng hợp

Báo cáo tổng hợp cung cấp dữ liệu về trình kích hoạt có độ trung thực cao từ thiết bị một cách nhanh hơn, ngoài dữ liệu được cung cấp cho báo cáo cáo ở cấp sự kiện. Bạn chỉ có thể tìm hiểu dữ liệu có độ trung thực cao hơn này trong báo cáo tổng hợp, và dữ liệu này không liên kết với một trình kích hoạt hoặc người dùng cụ thể. Khoá tổng hợp có kích thước tối đa 128 bit và khoá này cho phép các báo cáo tổng hợp hỗ trợ hoạt động báo cáo các trường hợp sử dụng, chẳng hạn như sau:

  • Báo cáo cho các giá trị của trình kích hoạt, chẳng hạn như doanh thu
  • Xử lý nhiều loại trình kích hoạt hơn

Ngoài ra, báo cáo tổng hợp có các đặc điểm sau:

  • Thời lượng phân bổ là 30 ngày
  • Có cùng một logic phân bổ ưu tiên nguồn như API cấp sự kiện (đã mô tả trong phần đầu của tài liệu này)

Thiết kế tổng thể về cách API Báo cáo phân bổ chuẩn bị và gửi báo cáo phân bổ (như minh hoạ trong hình 1) như sau:

  1. Thiết bị gửi các báo cáo tổng hợp đã mã hoá cho nền tảng công nghệ quảng cáo.
  2. Nền tảng công nghệ quảng cáo sẽ gửi một loạt các báo cáo tổng hợp cho dịch vụ tổng hợp để tổng hợp.
  3. Dịch vụ tổng hợp đọc một loạt các báo cáo tổng hợp, giải mã rồi tổng hợp chúng.
  4. Dữ liệu tổng hợp cuối cùng được gửi trở lại cho nền tảng công nghệ quảng cáo.
Hình 1. Quy trình mà API Báo cáo phân bổ sử dụng để chuẩn bị và gửi báo cáo tổng hợp.

Báo cáo tổng hợp chứa dữ liệu sau đây liên quan đến các nguồn phân bổ:

  • Nguồn: Tên gói của ứng dụng hoặc URL web eTLD+1 nơi quảng cáo được phân phát.
  • Đích đến: Tên gói của ứng dụng hoặc URL web eTLD+1 nơi diễn ra lượt kích hoạt.
  • Ngày: Ngày xảy ra sự kiện được biểu thị bởi nguồn phân bổ.
  • Phần tải: Các giá trị kích hoạt, được thu thập dưới dạng cặp giá trị/khoá đã mã hoá, được dùng trong dịch vụ tổng hợp đáng tin cậy để tính toán dữ liệu tổng hợp.

Dịch vụ tổng hợp

Các dịch vụ sau đây cung cấp chức năng tổng hợp và giúp ngăn chặn hoạt động truy cập không phù hợp vào dữ liệu tổng hợp.

Những dịch vụ này do các bên khác nhau quản lý. Điều này được mô tả chi tiết hơn ở phần sau của tài liệu này:

  • Dịch vụ tổng hợp là dịch vụ duy nhất mà các nền tảng công nghệ quảng cáo dự kiến triển khai.
  • Các dịch vụ quản lý khoá và ngân sách quyền riêng tư được chạy bởi các bên đáng tin cậy gọi là người xác minh. Những người xác minh này khẳng định rằng mã đang chạy dịch vụ tổng hợp là mã do Google cung cấp công khai và tất cả người dùng dịch vụ tổng hợp đều đã áp dụng cùng các dịch vụ ngân sách và khoá.
Dịch vụ tổng hợp

Trước tiên, nền tảng công nghệ quảng cáo phải triển khai một dịch vụ tổng hợp dựa trên tệp nhị phân do Google cung cấp.

Dịch vụ tổng hợp này hoạt động trong Môi trường thực thi đáng tin cậy (TEE) được lưu trữ trên đám mây. TEE mang lại các lợi ích bảo mật sau:

  • Đảm bảo mã vận hành trong TEE là tệp nhị phân cụ thể do Google cung cấp. Trừ khi điều kiện này được đáp ứng, nếu không dịch vụ tổng hợp không truy cập được vào khoá giải mã cần thiết để vận hành.
  • Tính năng này mang lại khả năng bảo mật trong quá trình chạy, cách ly quy trình đó khỏi hoạt động giám sát hoặc can thiệp từ bên ngoài.

Những lợi ích bảo mật này giúp dịch vụ tổng hợp thực hiện các hoạt động nhạy cảm một cách an toàn hơn, chẳng hạn như truy cập vào dữ liệu đã mã hoá.

Để biết thêm thông tin về những điều cần cân nhắc liên quan đến thiết kế, quy trình làm việc và bảo mật của dịch vụ tổng hợp, hãy tham khảo tài liệu về dịch vụ tổng hợp trên GitHub.

Dịch vụ quản lý chính

Dịch vụ này xác minh rằng một dịch vụ tổng hợp đang chạy phiên bản được phê duyệt của tệp nhị phân, sau đó cung cấp dịch vụ tổng hợp trong nền tảng công nghệ quảng cáo bằng khoá giải mã chính xác cho dữ liệu của trình kích hoạt.

Dịch vụ ngân sách quyền riêng tư

Dịch vụ này theo dõi tần suất một dịch vụ tổng hợp của nền tảng công nghệ quảng cáo truy cập vào một trình kích hoạt cụ thể — trình kích hoạt này có thể chứa nhiều khoá tổng hợp — và giới hạn quyền truy cập vào số khoá giải mã phù hợp. Mỗi trình kích hoạt được phép giải mã một lần .

API báo cáo tổng hợp

API dùng để tạo dữ liệu đóng góp cho các báo cáo tổng hợp, sử dụng cùng một API cơ sở như khi đăng ký nguồn phân bổ cho các báo cáo ở cấp sự kiện. Các phần sau đây mô tả phần mở rộng của API.

Đăng ký dữ liệu nguồn tổng hợp

Khi API gửi yêu cầu đến URI nguồn phân bổ, nền tảng công nghệ quảng cáo có thể đăng ký danh sách các khoá tổng hợp bằng cách phản hồi bằng tiêu đề HTTP mới Attribution-Reporting-Register-Aggregate-Source, với các trường sau đây cho từng khoá tổng hợp trong danh sách:

  • Mã nhận dạng sự kiện nguồn: Một chuỗi cho tên của khoá. Được dùng làm khoá kết hợp để kết hợp với các khoá phía trình kích hoạt nhằm tạo thành khoá cuối cùng.
  • Đoạn khoá: Giá trị bitstring của khoá.
  • Độ chệnh lệch khoá: Giá trị số nguyên của chỉ mục độ chênh lệch để kết hợp đoạn khoá này với đoạn khoá phía trình kích hoạt.

Khoá cuối cùng là sự kết hợp giữa đoạn này và các đoạn phía trình kích hoạt, sử dụng trường độ chênh lệch khoá để nối các bitstring. Các khoá cuối cùng được hạn chế ở tối đa 128 bit; các khoá dài hơn giới hạn này bị cắt ngắn.

Trong ví dụ sau đây, một nền tảng công nghệ quảng cáo sử dụng API để kết nối những giá trị sau:

  • Tổng số lượt chuyển đổi ở cấp chiến dịch
  • Giá trị mua hàng tổng hợp ở cấp địa lý
Attribution-Reporting-Register-Aggregate-Source:
[{
  // Generates a "101011001" key prefix named "campaignCounts".
  "source_event_id": "campaignCounts",
  "key_piece": "101011001", // User saw ad from campaign 345 (out of 511).
  "key_offset": 0 // The first part of the key
                  // when combined with trigger-side keys.
},
{
  // Generates a "101" key prefix named "geoValue".
  "source_event_id": "geoValue",
  // Source-side geo region = 5 (US) but pad with 0s since the shop operates in
  // ~100 separate countries.
  "key_piece": "0000101",
  "key_offset": 0 // The first part of the key
                  // when combined with trigger-side keys.
}]

Đăng ký trình kích hoạt tổng hợp

Quy trình đăng ký trình kích hoạt gồm 2 tiêu đề bổ sung.

Tiêu đề đầu tiên được dùng để đăng ký danh sách khoá tổng hợp phía trình kích hoạt. Nền tảng công nghệ quảng cáo sẽ phản hồi lại bằng tiêu đề HTTP Attribution-Reporting-Aggregate-Trigger-Data, với các trường sau đây cho từng khoá tổng hợp trong danh sách:

  • Đoạn khoá: Giá trị bitstring của khoá.
  • Độ chênh lệch khoá: Giá trị số nguyên, được dùng làm chỉ mục độ chênh lệch khi kết hợp đoạn khoá nguồn phân bổ với đoạn khoá trình kích hoạt.
  • Khoá nguồn: Danh sách các chuỗi có tên của khoá phía nguồn phân bổ mà sẽ kết hợp với khoá trình kích hoạt để tạo thành khoá cuối cùng.

Đoạn mã sau đây nối tiếp ví dụ từ phần đăng ký dữ liệu nguồn tổng hợp trong báo cáo tổng hợp:

Attribution-Reporting-Aggregate-Trigger-Data:
[
  // Each dictionary independently adds pieces to multiple source keys.
  {
    "key_piece": "10",// Conversion type purchase = 2
    // Combine key piece at offset index 9 with attribution source key piece.
    "key_offset": 9,
    // Apply this suffix to:
    "source_keys": ["campaignCounts"]
  },
  {
    "key_piece": "10101",// Purchase category shirts = 21
    // Combine key piece at offset index 9 with attribution source key piece.
    "key_offset": 7,
    // Apply this suffix to:
    "source_keys": ["geoValue" ]
  }
]

Tiêu đề thứ hai được dùng để đăng ký danh sách các giá trị đóng góp vào từng khoá. Nền tảng công nghệ quảng cáo sẽ phản hồi lại bằng tiêu đề HTTP Attribution-Reporting-Aggregate-Values.

Mỗi trình kích hoạt có thể đóng góp nhiều lượt cho báo cáo tổng hợp. Tổng số lượt đóng góp cho nguồn phân bổ nhất định chịu ràng buộc bởi thông số $ L1 $. Thông số này là tổng tối đa của các giá trị phân bổ (giá trị) trên tất cả các khoá tổng hợp của một nguồn phân bổ nhất định. Nếu vượt quá giới hạn này, các lượt đóng góp trong tương lai sẽ dừng trong yên lặng. Đề xuất ban đầu là đặt $ L1 $ thành $ 2^{16} $ (65536). Độ nhiễu trong dịch vụ tổng hợp sẽ được điều chỉnh theo tỷ lệ với thông số này. Do đó, nên mở rộng quy mô một cách phù hợp cho các giá trị được báo cáo cho một khoá tổng hợp nhất định, dựa trên tỷ lệ ngân sách quyền riêng tư $ L1 $ được phân bổ cho khoá đó. Cách này giúp đảm bảo rằng các báo cáo tổng hợp duy trì độ trung thực cao nhất có thể khi áp dụng độ nhiễu. Cơ chế này có tính linh hoạt cao và có thể hỗ trợ nhiều chiến dịch tổng hợp.

Trong ví dụ sau, ngân sách quyền riêng tư được chia đều giữa campaignCounts và geoValue bằng cách chia phần đóng góp $ L1 $ cho mỗi khoá:

Attribution-Reporting-Aggregate-Values:
{
    // Privacy budget for each key is L1 / 2 = 2^15 (32768).
    // Conversion count was 1.
    // Scale the count to use the full budget allocated: 1 * 32768 = 32768.
    "campaignCounts": 32768,

    // Purchase price was $52.
    // Purchase values for the app range from $1 to $1,024 (integers only).
    // Scaling factor applied is 32768 / 1024 = 32.
    // For $52 purchase, scale the value by 32 ($52 * 32 = $1,664).
    "geoValue": 1664
}

Ví dụ trên tạo ra số lượt tổng hợp sau:

[
  // campaignCounts:
  {
    // The attribution source key piece "101011001" (offset 0)
    // is concatenated with  "10" (offset 9) trigger key piece to form
    // the final key "10101100110" = 1382.
    "key": "1382",
    "value": 32768
  },
  // geoValue:
  {
    // The attribution source key piece "0000101" (offset 0)
    // is concatenated with  "10101" (offset 7) trigger key piece to form
    // the final key "000010110101" = 181.
    "key": "181",
    "value": "1664"
  }
]

Bạn có thể đảo ngược hệ số tỷ lệ để đạt được giá trị chính xác, độ nhiễu mô-đun được áp dụng:

L1 = 65536
trueCampaignCounts = campaignCounts / (L1 / 2)
trueGeoValue = geoValue / (L1 / 2) * 1024

Sự riêng tư biệt lập

Mục tiêu của API này là đặt ra một khung có thể hỗ trợ hoạt động đo lường tổng hợp sự riêng tư một cách biệt lập. Có thể đạt được điều này bằng cách thêm độ nhiễu theo tỷ lệ vào ngân sách $ L1 $, chẳng hạn như chọn độ nhiễu bằng lệnh phân phối sau:

\[ Laplace(\frac{ε}{L1}) \]

Câu hỏi mở và những điều cần cân nhắc sau này

API Báo cáo phân bổ đang trong quá trình hoàn thiện. Chúng tôi cũng sẽ khám phá các tính năng tiềm ẩn trong tương lai, chẳng hạn như mô hình phân bổ theo lần nhấp cuối cùng và các trường hợp sử dụng đo lường trên thiết bị.

Ngoài ra, chúng tôi muốn nhận được phản hồi của cộng đồng về một số vấn đề:

  1. Chúng tôi dự định cho phép nhiều nền tảng công nghệ quảng cáo đăng ký các nguồn phân bổ và trình kích hoạt để hỗ trợ hoạt động đo lường bên thứ ba. Với đề xuất hiện tại của chúng tôi, chỉ nền tảng công nghệ quảng cáo khởi đầu lệnh gọi API mới có thể chỉ định danh sách nền tảng công nghệ quảng cáo bên thứ ba. Để đơn giản hoá thiết kế API, chúng tôi có thể cho phép các nền tảng công nghệ quảng cáo tạo chuỗi lệnh chuyển hướng bằng cách chỉ chỉ định nền tảng công nghệ quảng cáo tiếp theo.
  2. Để hỗ trợ đo lường từ ứng dụng đến web, trong đó lượt kích hoạt có thể xảy ra trên ứng dụng hoặc web, các nền tảng công nghệ quảng cáo cần cung cấp cùng một trường đích trong nguồn phân bổ và quy trình đăng ký trình kích hoạt. Chúng tôi đang đánh giá xem có nên sử dụng eTLD+1 web hay không, ngay cả khi lượt kích hoạt đã xảy ra trong ứng dụng.
  3. Để ngăn các báo cáo trùng lặp của trình kích hoạt, trong trường hợp một nền tảng công nghệ quảng cáo đăng ký cùng một trình kích hoạt nhiều lần, bạn nên sử dụng khoá loại bỏ trùng lặp. Chúng tôi đang đánh giá xem các ứng dụng có thể chuyển khoá loại bỏ trùng lặp này cho tất cả các nền tảng công nghệ quảng cáo hay không, bao gồm cả nền tảng bên thứ ba.