Store and visualise key value pairs

Or am I going about this in the wrong way and need to restructure the data before sending it to Elastic? The other idea was to send each key as its own document with the key name and its value and somehow link them through an id or something; but this seemed like a bad solution

This is what I would suggest - ingest each key/value pair as a separate document, then you can aggregate them (something which is not possible for fields in the same document).

{ key: "en_GB", value: 60.9 }
{ key: "en_US", value: 28.96 }
{ key: "es_ES", value: 6.9 }
{ key: "fr_FR" value: 3.45 }

and so on.

For most aggregations it's probably not even necessary to link them up with an id.