Khoá tổng hợp là gì, cách sử dụng khoá đó trong Attribution Reporting API và cách bạn có thể chuyển mục tiêu thành khoá.
Là một công ty công nghệ quảng cáo chạy các chiến dịch ở nhiều địa điểm cho nhiều danh mục sản phẩm, bạn muốn giúp nhà quảng cáo trả lời những câu hỏi sau:
- Mỗi chiến dịch của tôi ở mỗi khu vực địa lý đã tạo ra bao nhiêu giao dịch mua cho mỗi danh mục sản phẩm?
- Mỗi chiến dịch của tôi ở từng khu vực địa lý đã tạo ra bao nhiêu doanh thu cho từng danh mục sản phẩm?
Mặc dù nhiều công ty về công nghệ quảng cáo khuyến khích nhà quảng cáo định cấu hình nhiều loại chuyển đổi, nhưng việc tập trung vào các lượt chuyển đổi quan trọng nhất (như lượt mua hàng) là cách tốt để đảm bảo rằng kết quả tóm tắt chi tiết và chính xác cho những sự kiện quan trọng này.
Để làm như vậy, bạn cần phải suy nghĩ xem mình muốn trả lời những câu hỏi nào trước khi dữ liệu được thu thập.
Phương diện, khoá và giá trị
Để trả lời các câu hỏi này, hãy cùng tìm hiểu phương diện, khoá và giá trị.
Kích thước
Để hiểu cách chiến dịch của bạn tạo ra doanh thu, như được mô tả ở đây, bạn sẽ cần theo dõi các phương diện sau:
- Mã chiến dịch quảng cáo: giá trị nhận dạng của chiến dịch cụ thể.
- Mã địa lý: khu vực địa lý nơi quảng cáo được phân phát.
- Danh mục sản phẩm: loại sản phẩm như bạn đã xác định.
Mặc dù phương diện Mã chiến dịch và Mã địa lý được xác định khi quảng cáo được phân phát (thời gian phân phát quảng cáo), nhưng hệ thống sẽ biết danh mục Sản phẩm từ sự kiện kích hoạt khi người dùng hoàn tất một lượt chuyển đổi (thời gian chuyển đổi).
Các phương diện bạn muốn theo dõi cho ví dụ này được thể hiện trong hình sau:
Khoá tổng hợp (bộ chứa) là gì?
Các thuật ngữ khoá tổng hợp và bộ chứa có cùng ý nghĩa. Khoá tổng hợp được dùng trong các API trình duyệt dùng để định cấu hình báo cáo. Thuật ngữ bộ chứa được dùng trong các báo cáo tổng hợp và báo cáo tóm tắt, cũng như trong API dịch vụ tổng hợp.
Khoá tổng hợp (viết tắt là khoá) là một phần dữ liệu đại diện cho giá trị của những phương diện đang được theo dõi. Sau đó, dữ liệu được tổng hợp dọc theo từng khoá tổng hợp.
Ví dụ: giả sử bạn đang theo dõi các phương diện Danh mục sản phẩm, Mã địa lý và Mã chiến dịch.
Khi người dùng ở Mã chiến dịch 7 nhìn thấy quảng cáo cho Mã chiến dịch 12 và sau đó chuyển đổi bằng cách mua sản phẩm trong Danh mục sản phẩm 25, bạn có thể đặt khoá tổng hợp giống như khoá trong hình sau:
Bạn sẽ thấy sau này một khoá tổng hợp trông không giống hệt như vậy trong thực tế, nhưng bây giờ, hãy tập trung vào thông tin có trong khoá đó.
Các giá trị tổng hợp là gì?
Để trả lời câu hỏi của bạn về các tham số chúng tôi đã nêu, bạn cần biết:
- Số giao dịch mua hàng (số giao dịch mua). Sau khi được tổng hợp và có trong báo cáo tóm tắt, đây sẽ là tổng số giao dịch mua (giá trị tóm tắt).
- Doanh thu của mỗi giao dịch mua (giá trị giao dịch mua). Sau khi được tổng hợp và có trong báo cáo tóm tắt, đây sẽ là tổng doanh thu (giá trị tóm tắt).
Mỗi chỉ số này—số giao dịch mua cho một lượt chuyển đổi và giá trị giao dịch mua cho một lượt chuyển đổi—là giá trị tổng hợp. Bạn có thể coi các giá trị tổng hợp là giá trị cho các mục tiêu đo lường.
Câu hỏi | Giá trị tổng hợp = Mục tiêu đo lường |
---|---|
Số lượng giao dịch mua... | Số lượt mua hàng |
Doanh thu... | Giá trị giao dịch mua |
Khi người dùng ở Mã chiến dịch 7 nhìn thấy một quảng cáo cho Mã chiến dịch 12, sau đó chuyển đổi bằng cách mua một sản phẩm thuộc Danh mục sản phẩm 25 với giá 120 đô la Mỹ (giả sử đơn vị tiền tệ của bạn là đô la Mỹ), bạn có thể đặt khoá tổng hợp và các giá trị tổng hợp như sau:
Các giá trị tổng hợp được tổng hợp cho mỗi khoá trên nhiều người dùng để tạo thông tin chi tiết tổng hợp, dưới dạng giá trị tóm tắt trong các báo cáo tóm tắt.
Các giá trị tổng hợp được tổng hợp để tạo thông tin chi tiết tổng hợp cho các mục tiêu đo lường của bạn.
Lưu ý rằng sơ đồ này bỏ qua bước giải mã và trình bày một ví dụ đơn giản mà không áp dụng gây nhiễu. Trong phần tiếp theo, chúng ta sẽ trình bày ví dụ này bằng dữ liệu nhiễu.
Từ khoá và giá trị đến báo cáo
Bây giờ, hãy cùng thảo luận về mối liên hệ giữa các khoá và giá trị tổng hợp với báo cáo.
Các báo cáo tổng hợp
Khi người dùng nhấp hoặc xem quảng cáo và sau đó chuyển đổi, bạn hướng dẫn trình duyệt lưu trữ cặp {khoá tổng hợp, giá trị tổng hợp}.
Trong ví dụ của chúng tôi, khi người dùng nhấp hoặc xem quảng cáo, sau đó chuyển đổi, bạn hướng dẫn trình duyệt tạo hai nội dung đóng góp (một nội dung cho mỗi mục tiêu đo lường).
Bạn sẽ thấy sau này một báo cáo tổng hợp {khoá tổng hợp, giá trị tổng hợp} không giống hệt như vậy — nhưng bây giờ, hãy cùng tập trung vào thông tin có trong báo cáo.
Khi bạn hướng dẫn trình duyệt tạo hai lượt đóng góp, trình duyệt sẽ tạo một báo cáo tổng hợp (nếu có thể so khớp lượt chuyển đổi với một lượt xem hoặc lượt nhấp trước đó).
Một báo cáo tổng hợp chứa:
- (Các) nội dung đóng góp mà bạn đã thiết lập.
- Siêu dữ liệu về sự kiện nhấp hoặc xem và sự kiện chuyển đổi: trang web xảy ra lượt chuyển đổi, v.v. Xem tất cả các trường trong một báo cáo tổng hợp.
Báo cáo tổng hợp có định dạng JSON và bao gồm một trường tải trọng, ngoài ra còn có một trường tải trọng được dùng làm dữ liệu đầu vào cho báo cáo tóm tắt cuối cùng.
Tải trọng chứa danh sách các lượt đóng góp, mỗi lượt là một cặp {khoá tổng hợp, giá trị tổng hợp}:
bucket
: khoá tổng hợp, được mã hoá dưới dạng chuỗi byte.value
: giá trị tổng hợp cho mục tiêu đo lường đó, được mã hoá dưới dạng chuỗi byte.
Ví dụ:
{
"data": [
{
"bucket": "111001001",
"value": "11111010000",
}
],
"operation": "histogram"
}
Trong thực tế, báo cáo tổng hợp được mã hoá theo cách khiến các nhóm và giá trị trông khác với trong ví dụ trước (nghĩa là nhóm có thể trông giống như \u0000\u0000\x80\u0000
). Bộ chứa và giá trị đều là chuỗi byte.
Báo cáo tóm tắt
Các báo cáo tổng hợp được tổng hợp trên nhiều trình duyệt và thiết bị (người dùng) như sau:
- Một công nghệ quảng cáo yêu cầu các báo cáo tóm tắt cho một tập hợp các khoá nhất định và một tập hợp các báo cáo tổng hợp nhất định đến từ nhiều trình duyệt (người dùng).
- Các báo cáo tổng hợp được giải mã bằng dịch vụ tổng hợp.
- Đối với mỗi khoá, các giá trị tổng hợp từ các báo cáo tổng hợp sẽ được cộng lại.
- Tiếng ồn được thêm vào giá trị tóm tắt.
Kết quả là một báo cáo tóm tắt chứa một tập hợp các cặp {khoá tổng hợp, giá trị tóm tắt}.
Báo cáo tóm tắt chứa một tập hợp các cặp khoá-giá trị kiểu từ điển JSON. Mỗi cặp chứa:
bucket
: khoá tổng hợp, được mã hoá dưới dạng chuỗi byte.value
: giá trị tóm tắt bằng số thập phân cho một mục tiêu đo lường đã cho, được tổng hợp từ tất cả các báo cáo tổng hợp hiện có, kèm theo mức độ nhiễu khác.
Ví dụ:
[
{"bucket": "111001001", "value": "2558500"},
{"bucket": "111101001", "value": "3256211"},
{...}
]
Trong thực tế, báo cáo tóm tắt được mã hoá theo cách khiến các nhóm và giá trị trông khác với những gì được nêu trong ví dụ (nghĩa là nhóm có thể trông giống như \u0000\u0000\x80\u0000
). Bộ chứa và giá trị đều là chuỗi byte.
Khoá tổng hợp trong thực tế
Khoá tổng hợp (bộ chứa) được một công ty công nghệ quảng cáo xác định, thường theo hai bước: khi người dùng nhấp vào quảng cáo hoặc xem quảng cáo và khi người dùng chuyển đổi.
Cấu trúc chính
Chúng tôi sẽ sử dụng thuật ngữ cấu trúc khoá để chỉ định tập hợp các thứ nguyên được mã hoá thành khoá.
Ví dụ: Mã chiến dịch × GeoID × Danh mục sản phẩm là một cấu trúc chính.
Loại khoá
Các giá trị tổng hợp được tính tổng cho một khoá đã cho trên nhiều người dùng/trình duyệt. Tuy nhiên, chúng ta đã thấy rằng các giá trị tổng hợp có thể theo dõi nhiều mục tiêu đo lường, chẳng hạn như giá trị giao dịch mua hàng hoặc số lượng giao dịch mua. Bạn muốn đảm bảo rằng dịch vụ tổng hợp sẽ tính tổng các giá trị tổng hợp thuộc cùng một loại.
Để làm như vậy, trong mỗi khoá, hãy mã hoá một phần dữ liệu để bạn biết giá trị tóm tắt đại diện cho điều gì (mục tiêu đo lường mà khoá này đang đề cập đến). Một cách để làm việc đó là tạo phương diện bổ sung cho khoá đại diện cho loại mục tiêu đo lường.
Trong ví dụ trước đó, loại mục tiêu đo lường này sẽ có thể có hai giá trị khác nhau:
- Số lượt mua hàng là loại mục tiêu đo lường đầu tiên.
- Giá trị giao dịch mua là loại mục tiêu đo lường thứ hai.
Nếu bạn có n mục tiêu đo lường, thì loại mục tiêu đo lường sẽ có n loại giá trị khác nhau.
Bạn có thể coi phương diện của khoá là một chỉ số. Ví dụ: "số lượt mua của một sản phẩm nhất định trên mỗi chiến dịch theo khu vực địa lý".
Kích thước khoá, kích thước phương diện
Kích thước khoá tối đa được xác định bằng số bit – số 0 và số trong hệ nhị phân để tạo khoá đầy đủ. API này cho phép độ dài khoá là 128 bit.
Kích thước này cho phép các khoá rất chi tiết, nhưng các khoá chi tiết hơn có nhiều khả năng dẫn đến các giá trị nhiễu hơn. Bạn có thể đọc thêm về tiếng ồn trong bài viết Tìm hiểu về tiếng ồn.
Như đã giới thiệu trước đó, kích thước được mã hoá thành khoá tổng hợp. Mỗi phương diện có một số lượng giá trị riêng biệt nhất định, tức là số lượng giá trị riêng biệt mà phương diện có thể nhận được. Tuỳ thuộc vào số lượng giá trị riêng biệt, mỗi phương diện cần được biểu diễn bằng một số lượng bit nhất định. Với n bit, có thể biểu thị 2n các tuỳ chọn riêng biệt.
Ví dụ: một phương diện Quốc gia có thể có số lượng giá trị riêng biệt là 200, vì có khoảng 200 quốc gia trên thế giới. Cần bao nhiêu bit để mã hoá phương diện này?
7 bit sẽ chỉ lưu trữ 27 = 128 tùy chọn riêng biệt, ít hơn 200 tùy chọn cần thiết.
8 bit sẽ lưu trữ 28 = 256 lựa chọn riêng biệt, nhiều hơn mức 200 cần thiết, vì vậy, bạn có thể sử dụng n=8 bit để mã hoá chiều này.
Mã hoá khoá
Khi bạn đặt các khoá trong trình duyệt, các khoá này phải được mã hoá theo hệ thập lục phân. Trong báo cáo tóm tắt, các khoá sẽ xuất hiện dưới dạng nhị phân (và được đặt tên là nhóm).
Thiết lập hai phần khoá cho một khoá đầy đủ
Giả sử bạn sử dụng một khoá để theo dõi các phương diện sau:
- Mã chiến dịch
- ID khu vực địa lý
- Danh mục sản phẩm
Mặc dù phương diện Mã chiến dịch và Mã địa lý được xác định khi quảng cáo được phân phát (thời gian phân phát quảng cáo), nhưng hệ thống sẽ xác định danh mục sản phẩm từ sự kiện kích hoạt khi người dùng hoàn tất một lượt chuyển đổi (thời gian chuyển đổi).
Trong thực tế, điều này có nghĩa là bạn sẽ đặt khoá theo hai bước:
- Bạn sẽ đặt một phần của khóa—ID chiến dịch × ID địa lý—tại thời gian nhấp hoặc xem.
- Bạn sẽ đặt phần thứ hai của khoá là Danh mục sản phẩm tại thời điểm chuyển đổi.
Những phần này của khoá được gọi là phần khoá.
Một khoá được tính bằng cách lấy XOR (^
) của các phần khoá.
Ví dụ:
- Phần khoá phía nguồn =
0x159
- Phần khoá phía điều kiện kích hoạt =
0x400
- Khoá =
0x159 ^ 0x400 = 0x559
Căn chỉnh các thành phần quan trọng
Với hai phần khoá 64 bit được mở rộng lên 128 bit bằng cách sử dụng các bộ đệm/bù trừ 64 bit được đặt cẩn thận (mười sáu số 0), các phần khoá XOR-ing tương đương với việc nối chúng, dễ hiểu hơn và xác minh:
- Phần khoá phía nguồn =
0xa7e297e7c8c8d0540000000000000000
- Phần khoá phía điều kiện kích hoạt =
0x0000000000000000674fbe308a597271
- Khoá =
0xa7e297e7c8c8d0540000000000000000 ^ 0x0000000000000000674fbe308a597271 = 0xa7e297e7c8c8d054674fbe308a597271
Nhiều khoá cho mỗi lượt nhấp hoặc lượt xem quảng cáo
Trên thực tế, bạn có thể đặt nhiều khoá cho mỗi sự kiện nguồn phân bổ (lượt xem hoặc lượt nhấp vào quảng cáo). Ví dụ: bạn có thể đặt:
- Khoá theo dõi Mã địa lý × Mã chiến dịch.
- Một khoá khác theo dõi Loại mẫu quảng cáo × Mã chiến dịch.
Hãy xem Chiến lược B trong một ví dụ khác.
Mã hoá các phương diện thành khoá
Khi yêu cầu báo cáo tóm tắt, bạn cần cho dịch vụ tổng hợp biết bạn muốn truy cập các chỉ số nào, bằng cách yêu cầu báo cáo tóm tắt cho một tập hợp khoá tổng hợp nhất định.
Báo cáo tóm tắt chứa các cặp {khoá, giá trị tóm tắt} thô và không có thông tin bổ sung về khoá. Điều này có nghĩa là:
- Khi đặt khoá khi người dùng xem hoặc nhấp vào quảng cáo rồi chuyển đổi, bạn cần đặt khoá một cách đáng tin cậy dựa trên giá trị của phương diện mà khoá đại diện.
- Khi xác định các khoá mà bạn muốn yêu cầu báo cáo tóm tắt, bạn cần tạo hoặc truy cập nhanh chóng các khoá giống như các khoá được đặt khi người dùng xem hoặc nhấp vào quảng cáo và được chuyển đổi, dựa trên giá trị của phương diện bạn muốn xem dữ liệu tổng hợp.
Mã hoá phương diện bằng bản đồ cấu trúc khoá
Để mã hoá các phương diện thành khoá, bạn có thể tạo và duy trì sơ đồ cấu trúc chính trước, sau khi xác định khoá (trước thời điểm phân phát quảng cáo).
Sơ đồ cấu trúc chính thể hiện từng phương diện và vị trí của chúng trong khoá.
Trong thực tế, việc tạo và duy trì bản đồ cấu trúc khoá có nghĩa là bạn phải triển khai và duy trì logic bộ giải mã. Nếu đang tìm một phương thức không yêu cầu bạn phải làm việc đó, hãy cân nhắc sử dụng phương pháp dựa trên hàm băm.
Ví dụ:
Giả sử bạn có kế hoạch theo dõi cả các lượt mua hàng và giá trị mua hàng cho những chiến dịch, khu vực địa lý và sản phẩm cụ thể.
Danh mục sản phẩm, mã khu vực địa lý và mã chiến dịch cần phải là phương diện trong khóa của bạn. Ngoài ra, vì muốn theo dõi hai mục tiêu đo lường khác nhau (số lượt mua hàng và giá trị giao dịch mua), nên bạn cần thêm một phương diện trong khoá để theo dõi loại khoá. Việc này sẽ cho phép bạn xác định giá trị tổng hợp thực sự đại diện cho giá trị tổng hợp nào khi nhận được các cặp {key, tổng hợp giá trị} trong báo cáo tóm tắt.
Với những mục tiêu đo lường này, khoá của bạn sẽ có các phương diện sau:
- Danh mục sản phẩm
- Loại mục tiêu đo lường
- ID khu vực địa lý
- Mã chiến dịch
Bây giờ, khi xem xét mỗi phương diện, giả sử bạn cần theo dõi các yếu tố sau trong trường hợp sử dụng của mình:
- 29 danh mục sản phẩm khác nhau.
- 8 khu vực địa lý: Bắc Mỹ, Trung Mỹ, Nam Mỹ, Châu Âu, Châu Phi, Châu Á, Caribbean và Châu Đại Dương.
- 16 chiến dịch.
Dưới đây là số bit bạn cần để mã hoá từng chiều trong khoá của mình:
- Danh mục sản phẩm: 5 bit (25 = 32 > 29).
- Loại mục tiêu đo lường: 1 bit. Mục tiêu đo lường là số lượt mua hàng hoặc giá trị giao dịch mua, có nghĩa là hai khả năng riêng biệt; do đó, chỉ cần một chút dung lượng là đủ để lưu trữ mã này.
Mã địa lý: 3 bit (23 = 8). Bạn cũng sẽ xác định bản đồ thứ nguyên cho Mã vị trí địa lý để biết mỗi giá trị nhị phân đại diện cho khu vực địa lý nào. Bản đồ phương diện cho phương diện Mã địa lý của bạn có thể giống như sau:
Giá trị nhị phân trong khoá Khu vực địa lý 000 Bắc Mỹ 001 Trung Mỹ 010 Nam Mỹ 011 Châu Âu 100 Châu Phi 101 Châu Á 110 Caribbean 111 Châu Đại dương Mã chiến dịch: 4 bit (24 = 16)
Các khoá theo cấu trúc này sẽ có độ dài 13 bit (5 + 1 + 3 + 4).
Trong ví dụ này, sơ đồ cấu trúc khoá cho các khoá này sẽ có dạng như sau:
Thứ tự của các phương diện trong khoá này là tuỳ thuộc vào bạn.
Để minh hoạ cách thứ nguyên tạo nên một cấu trúc chính, chúng ta sẽ sử dụng cách biểu diễn nhị phân, đó là lý do tại sao ID chiến dịch (bit đầu tiên) là phần ở ngoài cùng bên phải và danh mục sản phẩm (bit cuối cùng) là phần ngoài cùng bên trái.
Trong mỗi chiều, bit quan trọng nhất (dữ liệu mang giá trị số lớn nhất) là bit ngoài cùng bên trái. Bit có trọng số ít nhất (số mang giá trị số nhỏ nhất) là bit xa nhất bên phải.
Hãy xem cách sử dụng bản đồ cấu trúc khoá để giải mã khoá.
Hãy lấy 0b1100100111100 làm khoá ví dụ tuỳ ý và giả sử bạn có một cách để biết rằng khoá này tuân theo bản đồ cấu trúc chính trong hình minh hoạ trước.
Theo sơ đồ cấu trúc khoá, khoá này sẽ giải mã thành 11001 0 011 1100
.
Vì vậy, khoá 0b1100100111100 thể hiện số lượt mua hàng thuộc danh mục Sản phẩm 25 cho Mã chiến dịch 12 được ra mắt ở Châu Âu.
Mã hoá phương diện bằng hàm băm
Thay vì sử dụng bản đồ cấu trúc khoá, bạn có thể dùng hàm băm để tự động tạo khoá theo cách nhất quán và đáng tin cậy.
Phương thức này hoạt động như sau:
- Chọn một thuật toán băm.
- Tại thời điểm phân phát quảng cáo, hãy tạo một chuỗi bao gồm tất cả các phương diện bạn muốn theo dõi và giá trị của các phương diện đó. Để tạo phần khoá phía nguồn,
băm chuỗi này và cân nhắc thêm hậu tố 64 bit của các số 0 để căn chỉnh
nó bằng phần khoá phía điều kiện kích hoạt và giúp việc giải thích về XOR dễ dàng hơn.
- Phần khoá phía nguồn
=<64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
- Hãy lưu ý rằng
COUNT
mã hoá giống nhưmeasurementGoalType=0
trong phương pháp ánh xạ cấu trúc khoá.COUNT
hơi gọn gàng và rõ ràng hơn.
- Phần khoá phía nguồn
- Tại thời điểm chuyển đổi, hãy tạo một chuỗi bao gồm tất cả các phương diện mà bạn muốn theo dõi, và
giá trị của họ. Để tạo một phần khoá phía điều kiện kích hoạt, hãy băm chuỗi này và thêm một tiền tố 64 bit chứa số 0:
- Phần khoá phía điều kiện kích hoạt
=
<64-bit 00000000…><64-bit hex hash("productCategory=25")>
- Phần khoá phía điều kiện kích hoạt
=
- Trình duyệt XOR các phần khoá này để tạo khoá.
- Khoá tổng hợp 128 bit
=<64-bit hex source-side key piece hash><64-bit hex source-side key piece hash>
- Khoá tổng hợp 128 bit
- Sau này, khi bạn đã sẵn sàng yêu cầu báo cáo tóm tắt cho khoá này, hãy tạo nhanh khoá:
- Dựa trên các phương diện bạn quan tâm, hãy tạo một phần khoá phía nguồn và phía điều kiện kích hoạt như bạn đã làm trước đó.
- Phần khoá phía nguồn
=<64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
- Phần khoá phía điều kiện kích hoạt
=<64-bit 00000000…><64-bit hex hash("productCategory=25")>
- phần khoá phía điều kiện kích hoạt =
toHex(hash("productCategory=25"))
- Phần khoá phía nguồn
- Giống như trình duyệt, XOR các phần khoá này để tạo cùng một khoá mà trình duyệt đã tạo trước đó.
- Khoá tổng hợp 128 bit
=<64-bit source-side key piece hash><64-bit source-side key piece hash>
- Khoá tổng hợp 128 bit
- Dựa trên các phương diện bạn quan tâm, hãy tạo một phần khoá phía nguồn và phía điều kiện kích hoạt như bạn đã làm trước đó.
Một vài mẹo thiết thực nếu bạn đang sử dụng phương pháp dựa trên hàm băm này:
- Luôn sử dụng cùng một thứ tự của các phương diện. Điều này đảm bảo rằng hàm băm của bạn có thể được tạo lại một cách đáng tin cậy. (
"COUNT, CampaignID=12, GeoID=7"
sẽ không tạo ra cùng một hàm băm như"COUNT, GeoID=7, CampaignID=12"
). Một cách đơn giản để thực hiện việc này là sắp xếp các phương diện theo chữ và số. Đây là những gì chúng ta sẽ làm trong ví dụ, ngoại trừ việc chúng ta sẽ luôn đặtCOUNT
hoặcVALUE
làm mục đầu tiên trong thứ nguyên — đây là một lựa chọn để dễ đọc, vìCOUNT
hoặcVALUE
mã hoá thông tin hơi khác về mặt khái niệm so với tất cả các thứ nguyên khác. - Theo dõi tập hợp phương diện bạn đang sử dụng trong khoá. Bạn muốn tránh tạo khoá dựa trên một nhóm phương diện mà bạn chưa bao giờ sử dụng.
- Rất hiếm khi xảy ra xung đột hàm băm nếu bạn sử dụng một hàm băm phù hợp. Tuy nhiên, việc kiểm tra dựa trên các hàm băm đã sử dụng trước đó (cần lưu trữ để diễn giải kết quả từ dịch vụ tổng hợp) có thể tránh được việc tạo khoá mới xung đột với các khoá cũ.
Xem cách sử dụng khoá dựa trên hàm băm trong thực tế trong ví dụ về một lượt chuyển đổi cho mỗi lượt nhấp hoặc chế độ xem.
Các giá trị tổng hợp trong thực tế
Công ty công nghệ quảng cáo đặt các giá trị tổng hợp khi người dùng chuyển đổi.
Để bảo vệ quyền riêng tư của người dùng, mức đóng góp của mỗi người dùng đều có giới hạn trên. Trên tất cả các giá trị tổng hợp được liên kết với một nguồn duy nhất (lượt nhấp vào quảng cáo hoặc lượt xem), không có giá trị nào có thể cao hơn một giới hạn đóng góp nhất định.
Giới hạn này được gọi là CONTRIBUTION_BUDGET
. Trong phần giải thích, hạn mức này được gọi là ngân sách L1, nhưng giống như CONTRIBUTION_BUDGET
.
Để thảo luận chuyên sâu về ngân sách khoản đóng góp, hãy tham khảo bài viết Ngân sách khoản đóng góp trong báo cáo tóm tắt.
Ví dụ: một lượt chuyển đổi trên mỗi lượt nhấp hoặc lượt xem
Đối với ví dụ này, giả sử bạn đang muốn trả lời các câu hỏi sau:
- Danh mục sản phẩm nào có giá trị nhất ở mỗi khu vực?
- Những chiến lược chiến dịch nào có hiệu quả nhất ở mỗi khu vực?
Cũng giả sử rằng đối với trường hợp sử dụng của bạn, bạn cần thông tin chi tiết hằng tuần.
Bạn cũng cần theo dõi những thông tin sau:
- 16 chiến dịch.
- 8 khu vực địa lý: Bắc Mỹ, Trung Mỹ, Nam Mỹ, Châu Âu, Châu Phi, Châu Á, Caribbean và Châu Đại Dương.
- 29 danh mục sản phẩm khác nhau.
Nội dung đánh giá
Mặc dù nhiều công ty về công nghệ quảng cáo khuyến khích nhà quảng cáo định cấu hình nhiều loại chuyển đổi, nhưng việc tập trung vào các lượt chuyển đổi quan trọng nhất như lượt mua hàng là cách hiệu quả để đảm bảo rằng kết quả tổng hợp chi tiết và chính xác cho những sự kiện chuyển đổi quan trọng này. Trên thực tế, bạn đo lường càng nhiều chỉ số, ngân sách đóng góp cho mỗi chỉ số càng nhỏ và do đó, mỗi giá trị có thể càng nhiễu động hơn. Do đó, bạn cần phải lựa chọn cẩn thận những yếu tố cần đo lường.
Trong ví dụ này, chúng ta sẽ tập trung vào những cách thiết lập chiến dịch chỉ đo lường một lượt chuyển đổi cho mỗi lượt nhấp hoặc lượt xem: một lượt mua hàng.
Bạn vẫn sẽ đo lường cả số lượt mua hàng và giá trị giao dịch mua, đồng thời có thể truy cập vào nhiều số liệu thống kê tổng hợp quan trọng, chẳng hạn như tổng giá trị giao dịch mua và thông tin phân tích chi tiết theo địa lý. Việc này giúp giảm độ nhiễu hợp lý và đảm bảo phương pháp mở rộng đơn giản cho ngân sách đóng góp của bạn.
Còn đơn vị tiền tệ thì sao?
Khi chạy chiến dịch ở nhiều khu vực, bạn cần phải tính đến đơn vị tiền tệ. Bạn có thể:
- Đặt đơn vị tiền tệ làm phương diện riêng trong khoá tổng hợp.
- Hoặc dự đoán đơn vị tiền tệ từ ID chiến dịch và chuyển đổi tất cả các đơn vị tiền tệ sang đơn vị tiền tệ tham chiếu.
Trong ví dụ này, chúng tôi sẽ giả định rằng bạn có thể dự đoán đơn vị tiền tệ từ ID chiến dịch. Nhờ đó, bạn có thể quy đổi mọi giá trị giao dịch mua cụ thể từ nội tệ của người dùng sang đơn vị tiền tệ tham chiếu mà bạn chọn. Bạn cũng có thể thực hiện chuyển đổi đó một cách nhanh chóng, khi người dùng mua hàng.
Với kỹ thuật này, tất cả giá trị tổng hợp đều có cùng đơn vị tiền tệ tham chiếu nên có thể được tính tổng để tạo ra tổng giá trị giao dịch mua tổng hợp — một giá trị tóm tắt giao dịch mua.
Chuyển đổi mục tiêu thành chìa khoá
Với các mục tiêu và chỉ số đo lường của mình, bạn có nhiều lựa chọn để chính. Hãy tập trung vào hai trong số những chiến lược này:
- Chiến lược A: một cấu trúc chính chi tiết.
- Chiến lược B: hai cấu trúc chính tương đối.
Chiến lược A: một cây sâu (một cấu trúc chính chi tiết)
Trong chiến lược A, bạn sử dụng một cấu trúc khoá chi tiết, bao gồm tất cả thứ nguyên bạn cần:
Tất cả khoá của bạn đều sử dụng cấu trúc này.
Bạn chia cấu trúc chính này thành hai kiểu chính để hỗ trợ hai hoạt động đo lường mục tiêu.
- Loại khoá 0: loại mục tiêu đo lường = 0 mà bạn quyết định xác định là số lượt mua.
- Loại khoá 1: loại mục tiêu đo lường = 1 mà bạn quyết định xác định là giá trị giao dịch mua.
Báo cáo tóm tắt sẽ có dạng như sau:
Bạn có thể xem chiến lược A là "một cây sâu" chiến lược:
- Mỗi giá trị tóm tắt trong báo cáo tóm tắt được liên kết với tất cả bạn đang theo dõi.
- Bạn có thể tổng hợp các giá trị tóm tắt này bên cạnh từng phương diện trong số này, để các dữ liệu tổng hợp này có thể chi tiết hơn đến số lượng phương diện bạn có.
Với chiến lược A, bạn sẽ trả lời các câu hỏi của mình như sau:
Câu hỏi | Trả lời |
---|---|
Danh mục sản phẩm nào có giá trị nhất ở mỗi khu vực? | Tổng số giao dịch mua và giá trị có trong bản tóm tắt
báo cáo, trên tất cả các chiến dịch. Cột này cho bạn biết số lượt mua hàng và giá trị theo Mã địa lý × Sản phẩm danh mục. Đối với từng khu vực, hãy so sánh giá trị mua và số lượng của danh mục sản phẩm. |
Những chiến lược chiến dịch nào có hiệu quả nhất ở mỗi khu vực? | Tổng số giao dịch mua và giá trị có trong bản tóm tắt
trên tất cả các danh mục sản phẩm. Cột này cho bạn biết số lượt mua hàng và giá trị giao dịch mua theo Mã chiến dịch × Mã địa lý. Đối với từng khu vực, hãy so sánh giá trị giao dịch mua và số lượt mua theo . |
Với chiến lược A, bạn cũng có thể trả lời trực tiếp câu hỏi thứ ba sau:
"Mỗi chiến dịch của tôi mang lại bao nhiêu doanh thu cho mỗi sản phẩm ở mỗi khu vực địa lý tạo khu vực?"
Mặc dù các giá trị tóm tắt sẽ gây nhiễu, nhưng bạn có thể xác định thời điểm sự khác biệt về giá trị đo lường được giữa mỗi chiến dịch không phải do yếu tố ảnh hưởng một mình. Tìm hiểu cách thực hiện việc này trong bài viết Tìm hiểu về tiếng ồn.
Chiến lược B: hai cây nông (2 cấu trúc chính tương đối)
Trong chiến lược B, bạn sử dụng hai cấu trúc khoá thô, mỗi cấu trúc bao gồm một tập con các tham số bạn cần:
Bạn chia mỗi cấu trúc chính này thành 2 kiểu chính để hỗ trợ 2 mục tiêu đo lường.
- Loại mục tiêu đo lường = 0 mà bạn quyết định xác định là lượt mua hàng số lượng.
- Loại mục tiêu đo lường = 1 mà bạn quyết định xác định là lượt mua hàng giá trị.
Bạn sẽ có 4 loại khoá:
- Loại khoá I-0: Cấu trúc khoá I, số lượng giao dịch mua.
- Loại khoá I-1: Cấu trúc khoá I, giá trị mua hàng.
- Loại khoá II-0: Cấu trúc khoá II, số lượng mua.
- Loại khoá II-1: Cấu trúc khoá II, giá trị mua hàng.
Báo cáo tóm tắt sẽ có dạng như sau:
Bạn có thể xem chiến lược B là "hai cây nông" chiến lược:
- Các giá trị tóm tắt trong báo cáo tóm tắt liên kết với một trong hai tập hợp nhỏ thứ nguyên.
- Bạn có thể tổng hợp các giá trị tóm tắt này bên cạnh từng phương diện trong các tập hợp này—điều này có nghĩa là các kết quả tổng hợp này không sâu như trong tùy chọn A, vì có ít phương diện để tổng hợp.
Với chiến lược B, bạn sẽ trả lời các câu hỏi của mình như sau:
Câu hỏi | Trả lời |
---|---|
Danh mục sản phẩm nào có giá trị nhất ở mỗi khu vực? | Truy cập trực tiếp vào bảng tóm tắt số lượng giao dịch mua và các giá trị có trong báo cáo tóm tắt. |
Những chiến lược chiến dịch nào có hiệu quả nhất ở mỗi khu vực? | Truy cập trực tiếp vào bảng tóm tắt số lượng giao dịch mua và các giá trị có trong báo cáo tóm tắt. |
Quyết định: Chiến lược A
Chiến lược A đơn giản hơn; tất cả dữ liệu đều tuân theo cùng một cấu trúc chính, nghĩa là bạn chỉ cần duy trì một cấu trúc chính.
Tuy nhiên, với chiến lược A, bạn cần tính tổng các giá trị tóm tắt nhận được trong các báo cáo tóm tắt để trả lời một số câu hỏi của bạn. Từng giá trị tóm tắt này ồn ào. Bằng cách tổng hợp dữ liệu đó, bạn cũng tổng hợp tiếng ồn.
Điều này không đúng với chiến lược B, trong đó giá trị tóm tắt được hiển thị trong phần tóm tắt báo cáo đã cung cấp cho bạn thông tin cần thiết. Điều này có nghĩa là chiến lược B nhiều khả năng sẽ gây ảnh hưởng ít hơn từ chiến lược nhiễu so với chiến lược A.
Làm thế nào để xác định xem nên sử dụng chiến lược nào? Đối với nhà quảng cáo hiện tại hoặc của chiến dịch, bạn có thể dựa vào dữ liệu trong quá khứ để xác định xem lượt chuyển đổi phù hợp hơn với chiến lược A hoặc chiến lược B. Tuy nhiên, đối với nhà quảng cáo hoặc chiến dịch, bạn có thể quyết định:
- Thu thập dữ liệu trong một tháng bằng các khoá chi tiết (Chiến lược A). Vì bạn đang kéo dài thời gian thu thập dữ liệu, nên giá trị tóm tắt sẽ cao hơn và độ nhiễu sẽ tương đối thấp hơn.
- Đánh giá số lượt chuyển đổi hằng tuần với độ chính xác hợp lý và giá trị giao dịch mua.
Trong ví dụ này, hãy giả định rằng số lượt mua hằng tuần và giá trị giao dịch mua đủ cao để chiến lược A dẫn đến tỷ lệ phần trăm nhiễu mà bạn cho là chấp nhận được cho trường hợp sử dụng của bạn.
Bởi vì chiến lược A đơn giản hơn và dẫn đến tác động nhiễu không ảnh hưởng đến khả năng đưa ra quyết định, bạn quyết định chọn chiến lược A.
Chọn một thuật toán băm
Bạn quyết định sử dụng phương pháp dựa trên hàm băm để tạo khoá. Để làm như vậy, bạn cần chọn thuật toán băm để hỗ trợ phương pháp đó.
Giả sử bạn đã chọn SHA-256. Bạn cũng có thể sử dụng một thuật toán bảo mật, chẳng hạn như MD5.
Trong trình duyệt: đặt khoá và giá trị
Sau khi quyết định về cấu trúc khoá và thuật toán băm, có thể đăng ký các khoá và giá trị khi người dùng nhấp vào hoặc xem quảng cáo và sau đó chuyển đổi.
Tiếp theo là tổng quan về các tiêu đề mà bạn sẽ đặt để đăng ký khoá và giá trị trình duyệt:
Đặt phần khoá phía nguồn
Khi người dùng nhấp hoặc xem một quảng cáo, hãy đặt các khoá tổng hợp trong
Tiêu đề Attribution-Reporting-Register-Aggregatable-Source
.
Ở giai đoạn này, đối với mỗi khoá, bạn chỉ có thể đặt một phần của khoá, hoặc
phần quan trọng, được gọi tại thời điểm phân phát quảng cáo.
Hãy tạo các phần khoá:
Phần khoá phía nguồn cho mã nhận dạng khoá... | Chuỗi chứa các giá trị phương diện mà bạn muốn đặt | Hàm băm của chuỗi này dưới dạng hex, được cắt thành 64 bit đầu tiên (64/4 = 16 ký tự1) | Hàm băm hex có các số 0 được nối thêm vào để đơn giản hoá Kết thúc. Đây là phần khoá phía nguồn. |
---|---|---|---|
key_purchaseCount |
COUNT, CampaignID=12, GeoID=7 |
0x3cf867903fbb73ec | 0x3cf867903fbb73ec0000000000000000 |
key_purchaseValue |
VALUE, CampaignID=12, GeoID=7 |
0x245265f432f16e73 | 0x245265f432f16e730000000000000000 |
Bây giờ, hãy đặt các phần quan trọng:
// Upon receiving the request from the publisher site
res.set(
"Attribution-Reporting-Register-Aggregatable-Source",
JSON.stringify([
{
"id": "key_purchaseCount",
"key_piece": "0x3cf867903fbb73ec0000000000000000"
},
{
"id": "key_purchaseValue",
"key_piece": "0x245265f432f16e730000000000000000"
}
])
);
Xin lưu ý rằng mã khoá sẽ không xuất hiện trong báo cáo cuối cùng. Chúng chỉ được sử dụng khi đặt khoá trong trình duyệt, để khoá phía nguồn và phía điều kiện kích hoạt các phần có thể được ánh xạ với nhau và được kết hợp thành một khoá đầy đủ.
Không bắt buộc: báo cáo ở cấp sự kiện
Nếu bạn cần sử dụng báo cáo cấp sự kiện cùng với báo cáo tổng hợp, hãy đảm bảo rằng đối với một nguồn nhất định, dữ liệu cấp sự kiện (mã sự kiện nguồn và dữ liệu điều kiện kích hoạt) và khoá tổng hợp có thể được so khớp.
Ví dụ: bạn có thể sử dụng cả hai báo cáo nếu dự định sử dụng báo cáo cấp sự kiện để chạy các mô hình về những loại quảng cáo có xu hướng dẫn đến nhiều lượt mua hàng nhất.
Một người dùng chuyển đổi
Khi người dùng chuyển đổi, yêu cầu pixel thường được gửi đến máy chủ công nghệ quảng cáo. Sau khi nhận được yêu cầu này:
- Đặt các phần khoá phía chuyển đổi (phía điều kiện kích hoạt) để hoàn tất khoá.
Bạn sẽ đặt các phần chính này thông qua tiêu đề
Attribution-Reporting-Register-Aggregatable-Trigger-Data
. - Đặt giá trị tổng hợp cho lượt chuyển đổi đó, thông qua tiêu đề
Attribution-Reporting-Register-Aggregatable-Values
.
Đặt các phần khoá phía điều kiện kích hoạt để hoàn tất khoá
Hãy tạo các phần khoá:
Phần khoá phía điều kiện kích hoạt cho mã nhận dạng khoá... | Chuỗi chứa các giá trị phương diện mà bạn muốn đặt | Hàm băm của chuỗi này dưới dạng hex, được cắt thành 64 bit đầu tiên (64/4 = 16 ký tự1) | Hàm băm hex có các số 0 được nối thêm vào để đơn giản hoá cách hiệu chỉnh XOR. Đây là phần khoá phía nguồn. |
---|---|---|---|
key_purchaseCount |
ProductCategory=25 |
0x1c7ce88c4904bbe2 | 0x0000000000000000f9e491fe37e55a0c |
key_purchaseValue |
(giống nhau) | (giống nhau) | (giống nhau) |
Bây giờ, hãy đặt các phần quan trọng:
// Upon receiving the pixel request from the advertiser site
res.set(
"Attribution-Reporting-Register-Aggregatable-Trigger-Data",
JSON.stringify([
// Each dictionary independently adds pieces to multiple source keys
{
"key_piece": "0x0000000000000000f9e491fe37e55a0c",
"source_keys": ["key_purchaseCount", "key_purchaseValue"]
},
])
);
Lưu ý cách bạn thêm cùng một khoá vào một số khoá bằng cách liệt kê một vài khoá
mã khoá trong source_keys
– đoạn khoá sẽ được thêm vào cả hai khoá.
Đặt các giá trị tổng hợp
Trước khi thiết lập các giá trị tổng hợp, bạn cần tăng tỷ lệ để giảm tiếng ồn.
Giả sử bạn đã thực hiện một giao dịch mua hàng đối với loại sản phẩm 25 với giá 52 USD.
Bạn sẽ không đặt trực tiếp những giá trị này dưới dạng giá trị tổng hợp:
key_purchaseCount
: 1 lượt chuyển đổikey_purchaseValue
: 52 USD
Thay vào đó, trước khi đăng ký các giá trị tổng hợp này, bạn cần scale để giảm thiểu độ nhiễu.
Bạn có hai mục tiêu để chi tiêu ngân sách đóng góp, vì vậy, bạn có thể quyết định chia đôi ngân sách đóng góp.
Trong trường hợp này, mỗi mục tiêu được phân bổ tối đa là CONTRIBUTION_BUDGET/2
(=65.536/2=32.768).
Giả sử giá trị giao dịch mua tối đa cho một người dùng, dựa trên giao dịch mua của tất cả người dùng trên trang web là $1.500. Có thể có các ngoại lệ, cho ví dụ: rất ít người dùng đã chi tiêu trên số tiền đó, nhưng bạn có thể quyết định bỏ qua những điểm ngoại lai này.
Hệ số tỷ lệ cho giá trị giao dịch mua phải là:
((CONTRIBUTION_BUDGET
/2) / 1.500) = 32.768/1.500 = 21,8 ≈ 22
Hệ số tỷ lệ cho số lượt mua hàng của bạn là 32.768/1 = 32.768, vì bạn quyết định theo dõi nhiều nhất một lượt mua hàng trên mỗi lượt nhấp hoặc lượt xem quảng cáo (sự kiện nguồn).
Bây giờ, bạn có thể đặt các giá trị sau:
key_purchaseCount
: 1 × 32.768 = 32.768key_purchaseValue
: 52 × 22 = 1.144
Trong thực tế, bạn sẽ đặt chúng như sau, sử dụng tiêu đề riêng
Attribution-Reporting-Register-Aggregatable-Values
:
// Instruct the browser to schedule-send a report
res.set(
"Attribution-Reporting-Register-Aggregatable-Values",
JSON.stringify({
"key_purchaseCount": 32768,
"key_purchaseValue": 1144,
})
);
Đã tạo báo cáo tổng hợp
Trình duyệt so khớp lượt chuyển đổi với một lượt xem hoặc lượt nhấp trước đó và tạo một báo cáo tổng hợp, bao gồm tải trọng đã mã hoá bên cạnh báo cáo siêu dữ liệu.
Sau đây là ví dụ về dữ liệu có thể được tìm thấy trong tải trọng của một báo cáo tổng hợp, nếu báo cáo đó có thể đọc được ở dạng văn bản thô:
[
{
key: 0x3cf867903fbb73ecf9e491fe37e55a0c, // = source-side key piece XOR conversion-side key piece for the key key_purchaseCount
value: 32768 // the scaled value for 1 conversion, in the context of [CONTRIBUTION_BUDGET/2]
},
{
key: 0x245265f432f16e73f9e491fe37e55a0c, // source-side key piece XOR conversion-side key piece for the key key_purchaseValue
value: 1144 // the scaled value for $52, in the context of [CONTRIBUTION_BUDGET/2]
},
]
Tại đây, bạn có thể thấy hai khoản đóng góp riêng biệt trong một tổng hợp duy nhất báo cáo.
Yêu cầu báo cáo tóm tắt
- Các báo cáo tổng hợp theo lô. Hãy làm theo lời khuyên trong Gộp nhóm các mẫu chuyển động.
- Tạo các khoá mà bạn muốn xem dữ liệu. Ví dụ: để xem thông tin tóm tắt
dữ liệu của
COUNT
(tổng số giao dịch mua) vàVALUE
(tổng giá trị giao dịch mua) cho ID chiến dịch 12 × ID Địa lý 7 × Danh mục sản phẩm 25:- Tạo phần khoá phía nguồn, như bạn đã làm khi đặt khoá trong trình duyệt.
- Tạo phần khoá phía điều kiện kích hoạt, như bạn đã làm khi đặt khoá trong trình duyệt.
Chỉ số bạn muốn yêu cầu1 | Phần khoá phía nguồn | Phần khoá phía điều kiện kích hoạt | Khoá để yêu cầu dịch vụ tổng hợp2 |
---|---|---|---|
Tổng số giao dịch mua (COUNT ) |
0x3cf867903fbb73ec 0000000000000000 |
0x00000000000000 00f9e491fe37e55a0c |
0x3cf867903fbb73 ecf9e491fe37e55a0c |
Tổng giá trị giao dịch mua (VALUE ) |
0x245265f432f16e73 0000000000000000 |
0x0000000000000000 f9e491fe37e55a0c |
0x245265f432f16e73 f9e491fe37e55a0c |
- Yêu cầu dữ liệu tóm tắt đến dịch vụ tổng hợp cho các khoá này.
Xử lý báo cáo tóm tắt
Cuối cùng, bạn sẽ nhận được báo cáo tóm tắt có thể có dạng như sau:
[
{"bucket": "00111100111110000110011110010000001111111011101101110011111011001111100111100100100100011111111000110111111001010101101000001100",
"value": "2558500"},
{"bucket": "00100100010100100110010111110100001100101111000101101110011100111111100111100100100100011111111000110111111001010101101000001100",
"value": "687060"},
…
]
Bộ chứa đầu tiên là khoá COUNT
ở dạng nhị phân. Bộ chứa thứ hai là khoá VALUE
ở dạng tệp nhị phân.
Xin lưu ý rằng mặc dù các khoá không đồng nhất (COUNT
so với VALUE
) nhưng có chứa các khoá này
trong cùng một báo cáo.
Giảm số lượng giá trị
- 2.558.500 tức là số lượt mua khoá này, tăng theo hệ số tỷ lệ được tính toán trước đó. Hệ số tỷ lệ cho tổng số lượt mua hàng là 32.768 lượt. Chia 2.558.500 cho mức đóng góp của mục tiêu ngân sách: 2.558.500/32.768 = 156,15 lần mua hàng.
- 687.060 → 687.060/22 = 31.230 USD tổng giá trị mua hàng.
Do đó, báo cáo tóm tắt cung cấp cho bạn những thông tin chi tiết sau:
- Trong khoảng thời gian báo cáo, chiến dịch số 12 hoạt động chạy ở Châu Âu đã thúc đẩy khoảng 156 lượt mua hàng (± độ nhiễu) cho danh mục sản phẩm số 25.
- Trong khoảng thời gian báo cáo, chiến dịch số 12 hoạt động chạy ở Châu Âu mang lại 31.230 đô la Mỹ cho giao dịch mua (± độ nhiễu) cho danh mục sản phẩm số 25.