问题:如何把不同站点的用户进行关联起来
A、B、C、D 多个站点可能是一级域名相同, 可能是完全两个不同的域名, 如何把多个站点儿的用户关联起来那?
实例:假设要计算A、B、C、D的独立用户数
1. 准备cookeicenter 服务
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import java.util.UUID;
import java.util.logging.Logger;
@RestController
public class CookieController {
private Logger logger = Logger.getLogger(CookieController.class.getName());
@GetMapping(value = "/cc/g")
public void cookieGenerate(HttpServletResponse response,
@CookieValue(value = "unionid",required = false) String unionid,
@RequestParam(value = "openid",required = false) String openid,
@RequestParam(name = "domainid", required = false) String domainid){
logger.info("unionid:" + unionid + " openid:" + openid + " domainid: " + domainid);
if(unionid != null){
logger.info("use old cookie");
}else {
String unionidNew = UUID.randomUUID().toString().replaceAll("-", "");
Cookie cookie = new Cookie("unionid", unionidNew);
cookie.setMaxAge(30*24*60*60); // 一个月
cookie.setPath("/");
response.addCookie(cookie);
logger.info("new cookie:" + unionidNew);
}
}
}
unionid是cookiecenter 服务的唯一标识
openid是各个不同站点的客户端标识, 例如cookiie
domain是各个不同站点的自定义标识
2. 各个站点的准备工作, 在页面添加如下代码:
<img src="http://cookiecenter.com/cc/g" width="0" height="0"></td>
3. 这样当我们访问不同站点的时候,cookiecenter 服务端就会进行日志打点工作,完成后续的统计就可以了。
如果要做用户的关联分析,需要携带每个站点不通的openid.
4. 其他: 改方法使用不同站点交换数据, unionid成为各个站点之间的唯一标识, 这样各个系统就可以根据unionid交换数据。cookiemaping, 单点登录,数字广告投放原理类似。