Een jaar geleden introduceerden we videostatistieken op mave.io. Sindsdien hebben we miljoenen weergaven verwerkt. We maakten de software open source om onze belofte over de privacy van je klanten aantoonbaar waar te maken. Het systeem draait op het Elixir-framework Phoenix en PostgreSQL met TimescaleDB: een uitstekende combinatie voor een eenvoudig pakket waarmee je weergaven en geaggregeerde gebruiksgegevens van video’s meet. Elixir en Phoenix verwerken grote aantallen gelijktijdige verbindingen bijzonder goed. Met gemultiplexte websockets kunnen we gegevens van meerdere video’s op je site verwerken, terwijl PostgreSQL met TimescaleDB ideaal is voor tijdreeksdata. Maar het was tijd voor een update.
TimescaleDB beheerde niet alle gegevens in ons product voor videostatistieken. Voor veel gegevens die geen tijdreeks vormden, gebruikten we PostgreSQL. In het begin werkte dat prima, maar naarmate we groeiden ontstonden prestatieproblemen. Ook sloegen we veel ongebruikte data op die de prestaties onnodig belastte. Om query’s sneller te maken, moesten we de gegevens beter structureren en comprimeren en onze database verkleinen.
Daarnaast hadden we geen efficiënte manier om op te vragen welke seconden mensen van een video bekeken. Inzicht in betrokkenheid onderscheidt videostatistieken van andere meetinstrumenten. We moesten deze gegevens dus beter opslaan en opvragen.
Ook merkten we dat sommige klanten de statistieken volledig wilden uitschakelen. Zij hechten nog sterker aan de privacy van hun klanten en willen werkelijk niets meten. Omdat wij die privacy willen waarborgen, geven we je graag de mogelijkheid om nog een stap verder te gaan. We hadden dus een manier nodig om statistieken helemaal uit te zetten.
Het is technisch en behoorlijk veel, dus in deze lijst zetten we overzichtelijk uiteen wat we tot nu toe hebben gedaan:
Durations. Dit vertegenwoordigt hoe lang iemand naar een video keek, inclusief het bereik aan bekeken seconden. Best mooi! PostgreSQL kan dit eenvoudig opslaan als type int4range.Op mave.io tonen we geaggregeerde gegevens per space en uiteraard ook per video. Die eenvoudige weergave van alle gebeurtenissen geeft je beter inzicht in de manier waarop mensen je video bekijken. Daarnaast tonen we browsers, apparaten en de URL’s waarop je de video hebt ingesloten.
Maar kun je ook een eigen metrics-server draaien, zelf aggregaties bouwen en die met mave.io combineren? Jazeker. In onze componentenbibliotheek kun je nu videostatistieken en andere algemene instellingen configureren:
<script crossorigin type="module">
import {
Player,
setConfig,
} from "//cdn.video-dns.com/npm/@maveio/components/+esm";
setConfig({
metrics: { enabled: true, socket: "wss://your_own_metrics_instance" },
});
</script>Zoals je ziet, kun je videostatistieken ook voor alle mave-elementen op je site volledig uitschakelen. De gegevens komen dan niet op mave.io terecht, zodat de statistieken daar leeg blijven. Je kunt wel een eigen server starten en precies opvragen wat je wilt zien. Voor het gebruik van metrics heb je mave.io zelfs helemaal niet nodig:
We brachten de server en client bovendien samen in één monorepo. Zo is meteen duidelijk wat je nodig hebt als je het geheel zelf wilt draaien. Heb je vragen of wil je een eigen metrics-server gebruiken? Neem dan contact op met onze support of praat mee op onze Discord.
1
2
3
4
5
<script type="module">
import { Player } from "https://cdn.video-dns.com/npm/@maveio/components/+esm";
</script>
<mave-player embed="ubg50Cq5Ilpnar1"></mave-player>
<script type="module">
import { Player } from "https://cdn.video-dns.com/npm/@maveio/components/dist/react.js";
</script>
<Player embed="ubg50Cq5Ilpnar1"></Player>
<script type="module">
import { Player } from "https://cdn.video-dns.com/npm/@maveio/components/+esm";
</script>
<mave-player embed="ubg50Cq5Ilpnar1"></mave-player>