More thoughts on HOW to track
There seems to be a few possible ways to do the tracking and I think it broadly falls into two categories:
- use JavaScript to send a request
- request a resource (image, CSS) using an HTML tag or a CSS property
I talked before about the fact that requesting a resource wouldn’t send the details of the referring page. So I may have both as options with the resource request being easier to add in some cases, and the JS offering more functionality.
But some more questions have come up when thinking about this.
Do I need to send back valid response content?
I want the request and response to be as small as possible. So can I send back an empty response?
A quick bit of research seems to show that I at least need to set the content type (Aside: I wonder how web servers determine this?). And I’ll need to send an HTTP status code back. But if I set that, can the response content itself actually be empty?
How do I prevent caching of responses?
Browsers are pretty good a caching resources these days. So what do I need to do to ensure that a resource response is not cached.
How do I prevent blocking page load?
In what circumstances does loading a resource block a page loading? I don’t want to do this. My request should be asynchronous if possible. So how do I achieve that in all cases?
Requesting CSS doesn’t look like a great idea.
Copying an image-generating bit of PHP looks like a good idea though.
I’m suddenly starting to see that this maybe isn’t as easy as it first seems. Maybe this is why people don’t build their own analytics platforms.