Een lege grafiek en een grafiek vol nullen betekenen twee verschillende dingen, en maar één van de twee kan kloppen. Boomplay rapporteert streams en streams per land. Saves rapporteert Boomplay niet. Een grafiek met saves voor Boomplay hoort dus te melden dat de store dit niet rapporteert, in plaats van een vlakke lijn op nul te trekken waardoor je denkt dat niemand de release heeft opgeslagen.
Dat onderscheid loopt als een rode draad door de analytics-update die we in juli hebben uitgebracht. LabelGrid-analytics dekt nu elke store die ons een analytics-feed aanlevert: Spotify, Apple Music, Deezer, Audiomack, Boomplay, AWA en de drie Tencent-diensten Kugou, Kuwo en QQ Music. Daarnaast zie je social- en UGC-activiteit rond je catalogus, van SoundCloud tot Snapchat en de Meta-apps. De streamingdata kun je nu ook programmatisch opvragen, via de publieke API en de open-source MCP-server.
De stores die rapporteren, en wat ze elk rapporteren
Onze distributie gaat verder dan deze lijst. Dit zijn de stores waarvan we de analytics-feeds inlezen, en dat verschil is goed om te weten: de activiteit van een store komt in je royaltyafrekeningen terecht, ook als die store geen analytics-feed publiceert, omdat afrekeningen en analytics via aparte pipelines lopen.
| Store | Frequentie | Wat de store rapporteert |
|---|---|---|
| Spotify | Dagelijks | De meest uitgebreide set: streams, luisteraars, saves, skips, shares, engagementpercentages, streambronnen, apparaten, demografie |
| Apple Music | Dagelijks | Streams, luisteraars, toevoegingen aan de bibliotheek, toevoegingen aan editorial playlists, Shazams, plus uitsplitsingen per stad en storefront |
| Deezer | Dagelijks | Streams, geografie, apparaten, demografie van luisteraars, gemiddelde luistertijd, playlistplaatsingen |
| Audiomack | Dagelijks | Streams, luisteraars, saves, geografie |
| Boomplay | Dagelijks | Streams, streams per land |
| AWA | Dagelijks | Streams |
| Kugou, Kuwo, QQ Music | Wekelijks | Streams |
Die tabel zegt eigenlijk alles. Skips, shares, streambronnen, uur van de dag en audioformaat komen alleen van Spotify. Shazams, toevoegingen aan de bibliotheek en toevoegingen aan editorial playlists komen alleen van Apple Music, want Shazam is een Apple-signaal zonder tegenhanger elders. Demografie van luisteraars, waarbij mensen worden geteld in plaats van plays, komt van Spotify en Deezer. Streams per land dekken Spotify, Apple Music, Deezer, Boomplay en Audiomack, maar niet AWA: die feed bevat Japanse regiocodes onder landsniveau in plaats van ISO-landen. Dat hoef je niet allemaal te onthouden: het dashboard laat zien wat elke store ondersteunt, en de API stelt dezelfde matrix als data beschikbaar.
Playlistplaatsingen werken op dezelfde manier. Bij Spotify staan de naam en de eigenaar van de playlist bij het aantal streams. Bij Apple Music staan editorial playlists met naam en de hoogste positie die de track heeft bereikt, en sommige van die rijen hebben helemaal geen afspeelcijfer; dat wordt weergegeven als niet gerapporteerd. Deezer-rijen linken door naar de openbare playlist als de id te herleiden is.
Combineer de stores, vergelijk ze, of bekijk ze één voor één
Drie weergaven dekken het meeste wat mensen met deze data doen. Gecombineerd telt alle stores op tot één getal. Vergelijken zet ze naast elkaar, en vergelijk-alles pikt nieuwe stores vanzelf op, zodat je een nieuwe store nooit handmatig aan een bestaande vergelijking hoeft toe te voegen. In de enkelvoudige weergave zie je het volledige detail van één store. Grafieken kun je per dag, week of maand bekijken, of op automatisch zetten. Topprestaties staan in tabbladen per metric, en bij plaatsingen kun je per store filteren.
Eén datapunt per week van de Tencent-stores
Kugou, Kuwo en QQ Music rapporteren wekelijks. Elke week levert één datapunt per track op, gedateerd op de dag waarop het rapport betrekking heeft en met de cijfers van die hele week. We verdelen een weektotaal nooit over verzonnen dagwaarden, dus in een daggrafiek zie je bij deze drie één gevulde datum per week, met gaten ertussen.
Die gaten kloppen: er ontbreekt niets. Totalen over een periode tellen nog steeds op, en de frequentie staat in het dashboard en in de API-respons, zodat een integratie een wekelijkse store kan onderscheiden van een store waar het stil is.
Wanneer een metric op “niet beschikbaar” staat
In het dashboard wordt per platform aangegeven welke metric een store niet rapporteert; in de API geeft de beschikbaarheidsmatrix de cel terug als not_available_for_platform in plaats van een reeks nullen. Het scherpste voorbeeld zit in de plaatsingsweergave, waar een editorial-rij van Apple Music de playlist en de bereikte positie kan noemen zonder afspeelcijfer erbij. Dat betekent: niet gerapporteerd. Maak er een nul van en je verandert wat het getal zegt, en je legt een kunstmatige bodem onder elk gemiddelde dat ermee wordt berekend.
Privacydrempels volgen dezelfde logica, maar van de andere kant. Uitsplitsingen naar demografie en geografie zijn k-geanonimiseerd: cellen onder een minimumdrempel voor het aantal luisteraars vallen helemaal weg, zonder restcategorie en zonder gepubliceerd totaal waaruit het onderdrukte cijfer te herleiden valt. Bij een kleinere catalogus merk je dat meestal het eerst bij de uitsplitsingen per stad van Apple en bij Shazams per stad: gezonde streams, een lege stadsgrafiek. Dat is zo bedoeld en er is geen manier om het te omzeilen, want het alternatief is dat we iets publiceren over een handvol identificeerbare luisteraars.
Hoe actueel de cijfers zijn, en waarom ze verschuiven
Stores rapporteren met vertraging en elke feed volgt zijn eigen schema, dus op een willekeurige dag kan de ene metric actueel zijn tot een latere datum dan de andere. Daarom heeft elke metric twee datums: de datum tot en met wanneer er is gerapporteerd, de laatste datum waarvoor data beschikbaar is, en de datum tot en met wanneer de cijfers compleet zijn, de laatste datum die als definitief mag gelden. Alles daartussen wordt nog aangevuld, en het dashboard markeert die periodes als gedeeltelijk, zodat een half gerapporteerde dag niet als een instorting overkomt. Reken erop dat de rechterrand van een grafiek omhooggaat als je later terugkijkt. Loopt een grafiek af op de laatste gerapporteerde datum, dan heeft de store nog geen latere datums gerapporteerd.
Ook de lengte van de historie verschilt per feed. Bij Spotify en Apple Music gaat die jaren terug. De stores die met deze update zijn toegevoegd, Deezer, Boomplay, AWA, Audiomack en de drie Tencent-diensten, hebben historie vanaf ongeveer eind januari 2026, toen hun feeds begonnen binnen te komen.
Social- en UGC-activiteit rond je catalogus
De socialkanalen laten zien wat mensen buiten de DSP’s met je muziek doen, en elk platform rapporteert zijn eigen stukje:
- SoundCloud-plays, plus reposts en favorieten, met de bijbehorende territoria
- Snapchat-creaties, oftewel het gebruik van je muziek, plus weergaven en bereik per territorium
- Instagram- en Facebook-creaties en -weergaven per territorium, plus groei van volgers en engagement op het artiestenaccount
- WhatsApp- en Messenger-creaties en -weergaven per territorium, zonder onderliggende accountfeed
- Van Threads alleen weergaven en bereik, omdat die feed consumptie rapporteert en geen creaties
Dit is een aparte familie naast streaming, met eigen feeds en een eigen platform-as, en dat blijft zo: een UGC-weergave of -creatie komt nooit terecht in het streamtotaal van een DSP. Ze zijn alleen in het dashboard beschikbaar en bewust niet via de publieke API te benaderen, dus een integratie die /analytics/* uitleest, vindt daar nooit SoundCloud- of Meta-cijfers.
Zie wat je catalogus doet, store voor store
Streaming-analytics van elke store die rapporteert, in het dashboard en via de API. Social- en UGC-data in het dashboard.
Bekijk analytics37 sectiesleutels, en één endpoint dat ze in kaart brengt
De streamingdata staat op de publieke API, beperkt tot je eigen labels en gekoppeld aan ISRC in het identifier-veld. GET /analytics/summary is het samengestelde endpoint: met de verplichte parameter metrics[] kies je tussen één en twaalf van de 37 sectiesleutels. Laat je die parameter weg, dan volgt er een 422, en dat is opzet; een selectie van meer dan twaalf wordt geweigerd, dus splits die over meerdere requests, die elk apart in de cache komen. Vijftien losse endpoints dekken de afzonderlijke reeksen, van streams en luisteraars tot saves, skips, voltooiingspercentage, apparaatverdeling en bronverdeling, plus de demografische en geografische uitsplitsingen. Ranglijsten geven top-N-rankings gefilterd op label, artiest, release of track, en plaatsingen zijn te filteren op platform.
GET /api/public/analytics/summary
?metrics[]=streams
&metrics[]=listeners
&metrics[]=streams-by-country
&filter[platform]=SPOTIFY
&filter[start_date]=2026-01-01
&filter[end_date]=2026-07-01
filter[platform] accepteert SPOTIFY, APPLE_MUSIC, DEEZER, BOOMPLAY, AWA, AUDIOMACK, KUGOU, KUWO en QQMUSIC. Laat je de parameter weg, dan krijg je elk platform terug waarvoor je account data heeft. Elke summary-respons bevat de frequentie van het platform in meta.platform_cadence en per sectie de twee actualiteitsdatums als meta.sections_as_of en meta.sections_complete_through. Een client kan datums die nog worden aangevuld zo als voorlopig weergeven en buiten de periodetotalen houden.
Bij summary en de vijftien reeks-endpoints kun je periodes tot 400 dagen opvragen: een vol jaar plus een vergelijkingsperiode in één call. Ranglijsten en plaatsingen blijven op 180 dagen, omdat een ranglijst over een langere periode niet eerlijk uit kortere vensters valt samen te stellen. Requests van meer dan 90 dagen tellen mee in een tweede, strengere ratebucket bovenop de standaard analyticslimiet; requests van 90 dagen of minder merken daar niets van.
Voordat je een van de bovenstaande details per store hardcodeert, roep je GET /analytics/availability aan. Dit endpoint heeft geen parameters, is statisch en cachebaar, en geeft in één respons de complete matrix van sectie per platform plus de frequentietabel terug. Bouw je daarop, dan is een nieuwe store in de feed een datawijziging in plaats van een codewijziging.
Of vraag het je assistent
De LabelGrid MCP-server is een dunne, getypeerde laag over diezelfde publieke API. Elke Model Context Protocol-client, zoals Claude Desktop, Claude Code of Cursor, kan de prestaties van je catalogus dus direct uitlezen. “Welke van mijn tracks groeiden vorige maand in Duitsland, en op welke store” wordt een vraag die je stelt in plaats van vier exports die je naast elkaar moet leggen. De MCP-server neemt alles hierboven over, inclusief de beschikbaarheidsregels, de wekelijkse frequentie en de actualiteitsdatums, en ook wat er ontbreekt: de socialcijfers staan niet op de API, dus staan ze daar ook niet. De aankondiging van de MCP-server behandelt de installatie en het rechtenmodel.
Alles staat nu live in het dashboard. Analytics, inclusief de uitgebreide set, zit bij elk standaardabonnement; toegang tot de API en MCP loopt via de API-abonnementen van LabelGrid. Op de analyticspagina vind je de details per store en op de prijspagina het overzicht van de abonnementen.
Veelgestelde vragen
Van welke stores toont LabelGrid streaming-analytics?
Spotify, Apple Music, Deezer, Audiomack, Boomplay en AWA rapporteren dagelijks, en de drie Tencent-diensten Kugou, Kuwo en QQ Music rapporteren wekelijks. Dat zijn de stores waarvan LabelGrid de analytics-feeds inleest. Onze distributie gaat verder dan dat lijstje, en de activiteit bij de overige stores zie je nog steeds terug in je royaltyafrekeningen, omdat afrekeningen en analytics via aparte pipelines lopen.
Waarom toont de ene store een metric terwijl een andere zegt dat die niet beschikbaar is?
Omdat stores niet allemaal hetzelfde rapporteren. Spotify rapporteert skips en shares, plus streambronnen; Apple Music rapporteert Shazams, toevoegingen aan de bibliotheek en toevoegingen aan editorial playlists; Deezer en Spotify rapporteren demografie van luisteraars; Boomplay rapporteert streams en streams per land; AWA rapporteert streams. Rapporteert een store een metric niet, dan geeft LabelGrid aan dat die voor dat platform niet beschikbaar is, in plaats van er een nul neer te zetten. Uitsplitsingen naar demografie en geografie zijn bovendien k-geanonimiseerd, dus een kleine catalogus kan gezonde streams laten zien naast een lege demografie- of stadsgrafiek. Cellen onder de minimumdrempel voor het aantal luisteraars vallen helemaal weg, zonder restcategorie en zonder totaal waaruit het onderdrukte cijfer te herleiden valt.
Waarom tonen Kugou, Kuwo en QQ Music maar één datapunt per week?
Die drie rapporteren wekelijks. Elke week levert één datapunt per track op, gedateerd op de dag waarop het rapport betrekking heeft en met de cijfers van die hele week voor die track. LabelGrid verdeelt een weektotaal nooit over verzonnen dagwaarden, dus in een daggrafiek zie je één gevulde datum per week, met gaten ertussen. Die gaten kloppen, er ontbreekt niets, totalen over een periode tellen nog steeds op, en zowel het dashboard als de API-respons vermeldt de frequentie.
Waarom gingen de cijfers van vorige week omhoog nadat ik ze had bekeken?
Stores rapporteren met vertraging, en een feed kan een deel van een dag aanleveren voordat die dag compleet is. Elke metric heeft een eigen datum tot en met wanneer er is gerapporteerd, de laatste datum waarvoor data beschikbaar is, en een datum tot en met wanneer de cijfers compleet zijn, de laatste datum die als definitief mag gelden. Datums daartussen worden nog aangevuld en staan als gedeeltelijk gemarkeerd, dus reken erop dat de rechterrand van een grafiek bij een latere weergave omhooggaat. Loopt een grafiek af op de laatste gerapporteerde datum, dan heeft de store nog geen latere datums gerapporteerd. Het betekent niet dat de streams zijn gestopt.
Kan ik analytics ophalen via de API of een AI-assistent?
Ja, voor streaming. De publieke API biedt een samengesteld summary-endpoint met 37 sectiesleutels, 15 losse reeks-endpoints en nog twee voor ranglijsten en plaatsingen. Een apart beschikbaarheidsendpoint geeft in één call de complete matrix van sectie per platform en de frequentietabel terug. Summary en reeksen accepteren periodes tot 400 dagen; ranglijsten en plaatsingen houden op bij 180. De open-source MCP-server is een laag over dezelfde API, dus een assistent als Claude of Cursor leest precies wat de API aanbiedt. Social- en UGC-cijfers zijn alleen in het dashboard beschikbaar en staan bewust niet op de publieke API.