[当我尝试从Java发送事件时,我没有看到实时网页浏览事件。
[试图与匹配生成器建立链接。 - 工作正常。
将网址拖放到浏览器中-效果很好。
然后,我尝试从JAVA构建相同的文件。当我为路径使用调试前缀时,谷歌表示一切正常,“在请求中找到1个匹配项”。
public void purchaseEvent() {
try (CloseableHttpClient client = HttpClientBuilder.create().build())
{
final URIBuilder builder = new URIBuilder();
builder
.setScheme("https")
.setHost("www.google-analytics.com")
.setPath("/collect")
.addParameter("v", "1")
.addParameter("t", "pageview")
.addParameter("tid", "UA-145416899-1")
.addParameter("cid", "heelo")
.addParameter("dh", "hello.com")
.addParameter("dp", "/fromjavatest")
.addParameter("dt", "ReceiptPage")
.addParameter("ti", "TJAVA1")
.addParameter("ta", "Checkout")
.addParameter("tr", "281.22")
.addParameter("tt", "0.00")
.addParameter("ts", "39.00")
.addParameter("pa", "purchase")
.addParameter("pr1id", "PJAVA11111")
.addParameter("pr1nm", "Book12")
.addParameter("pr1pr", "189.00");
final URI uri = builder.build();
final HttpPost request = new HttpPost(uri);
final HttpResponse response = client.execute(request);
String json = EntityUtils.toString(response.getEntity(), "UTF-8");
LOG.info("response body - {}", json);
LOG.info("Execute request to google analytics measurement protocol {}", response.getStatusLine().getStatusCode());
}
catch (URISyntaxException | IOException e)
{
LOG.warn("Not able to push purchase event to google analytics", e);
}
}
找到了此问题的原因。需要指定用户代理。这是测量协议的可选字段。
此值可以正常工作。
Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14