Tôi làm việc tại Phân đoạn. Buộc ẩn danh hoạt động trên client và server-side cuộc gọi với Segment là khó khăn, vì một vài lý do: thư viện server-side
Segment của là hoàn toàn không quốc tịch và ngây thơ với bối cảnh yêu cầu, do đó, nó tùy thuộc vào bạn để lấy thông tin có liên quan và chuyển thông tin trong cuộc gọi đến Phân đoạn.
Hơn nữa, trên máy khách, các công cụ bên thứ ba đi kèm bạn đã tích hợp sẽ tự quản lý các số nhận dạng ẩn danh/phiên tương ứng của chúng.
Một số tích hợp phía máy chủ có trường đặc biệt context
cho mã định danh ẩn danh của chúng, (như GA), nhưng hầu hết không, vì vậy bạn cần phải viết trình bao bọc tóm tắt trong trường hợp ví dụ bên dưới (gửi nhiều cuộc gọi với anonymousId
s khác nhau trong khi quyết định sẽ được gửi đến dịch vụ nào).
Lưu ý: Cách tiếp cận customerId
sẽ làm việc nếu điều đó sẽ vẫn nhận biết duy nhất của họ ngay cả sau khi mua, do đó bạn có thể luôn sử dụng đó là userId
. Nhưng bạn nên nhớ rằng nếu bạn định sử dụng nó làm định danh ẩn danh giả trung gian, không phải tất cả các công cụ đều có khả năng bí danh nhiều ID, vì vậy bạn không thể giữ hồ sơ người dùng gắn kết trong tất cả các công cụ của mình nếu bạn sử dụng tiếp cận.
Nhưng thực hiện điều này một cách hiệu quả trong trường hợp khi bạn không có một de-facto userId
(mà tôi tưởng tượng sẽ là trường hợp cho folks khác, những người đến @ câu hỏi này) thực sự là một vấn đề mà các công cụ bạn' tái sử dụng; cho mỗi người trong số họ, bạn sẽ cần phải lấy số nhận dạng ẩn danh tương ứng của họ ra khỏi yêu cầu (chúng thường có sẵn trong cookie) và đính kèm nó vào trường tương ứng của nó trong cuộc gọi phía máy chủ để Phân đoạn.
Dưới đây là làm thế nào mà có thể xem xét nếu bạn đang sử dụng KISSmetrics, Mixpanel và Google Analytics:
str gaClientId, kmAnonId, mpAnonId;
HttpCookieCollection cookies = Request.Cookies;
//GA clientId is stored as part of the _ga cookie
if (cookies["_ga"] != null)
{
string gaCookie = Request.Cookies["_ga"];
string[] parts = gaCookie.Split('.')
gaClientId = Strint.Format("{0}.{1}", parts[2], parts[3])
}
// KM anonId
if (cookies["km_ai"] != null)
{
kmAnonId = Request.Cookies["km_ai"];
}
// for brevity, I'll omit retrieving mixpanel distinctId
// from their cookie. You will need to serialize the value of
// "mp_<acesstoken>_mixpanel" to JSON and take the `distinct_id` value
// see here: http://marcmezzacca.com/integrating-mixpanel-with-asp-net-mvc-server-side-and-javascript-client-side/
Analytics.Model.Options kmCallOptions = new Options()
.SetIntegration("all", false)
.SetIntegration("Kissmetrics", true)
.SetIntegration("Google Analytics", true)
.SetContext (new Context() {
{ "ip", GetUserIP() },
{ "Google Analytics", new Dict() {
{ "clientId", gaClientId }
}
},
{ "AnonymousId", kmAnonId }
}
});
Analytics.Model.Options mpCallOptions = new Options()
.SetIntegration("all", false)
.SetIntegration("Mixpanel", true)
.SetContext (new Context() {
{ "ip", GetUserIP() },
},
{ "AnonymousId", mpAnonId }
}
});
// Send to KM and GA
Analytics.Client.Track(null, "Added Product", new Properties() {
{ "sku", cartItem.Sku },
{ "quantity", quantity }
}, kmCallOptions);
// Send to Mixpanel
Analytics.Client.Track(null, "Added Product", new Properties() {
{ "sku", cartItem.Sku },
{ "quantity", quantity }
}, mpCallOptions);
Một lưu ý nhanh chóng: Segment chắc chắn có ý định mở hơn đau đầu này và làm cho cuộc sống dễ dàng hơn trong việc hoàn thành điều này, nhưng thay vì hơn là làm phức tạp API để chứa nhiều số nhận dạng ẩn danh cho mỗi công cụ mà chúng tôi dự định giải quyết vấn đề theo cách làm giảm hoàn toàn nhu cầu đó. Trong tạm thời, để tránh sự phức tạp, chúng tôi thực sự khuyên bạn nên giữ tất cả theo dõi ẩn danh của bạn ở một nơi, hoặc phía máy chủ (sử dụng sessionId hoặc tương tự cho anonymousId) hoặc (tốt nhất) phía máy khách. Nếu bạn muốn trộn và kết hợp, theo dõi phía máy chủ được dành riêng tốt nhất cho người dùng đã đăng nhập bằng userId.
Ngoài ra, đừng ngần ngại liên hệ trực tiếp với bộ phận hỗ trợ @ [email protected]!
Sau khi đọc nhiều tài liệu hơn, tôi nghĩ câu trả lời cho câu hỏi đầu tiên của tôi có thể là vượt qua CustomerId vào giao diện người dùng và tạo một bí danh gọi phía máy khách để liên kết người dùng phiên ẩn danh với CustomerId được sử dụng cho cuộc gọi phân đoạn phía máy chủ. – Donald