In the meantime this defines the format for keys and values:

https://support.google.com/dfp_premium/answer/177381?hl=en&ref_topic=1638397

(see the "Format key names and values" expandable section) but says nothing about separators :(

From what I get reading the docs on custom targeting it all depends if we're using legacy DART tags of GPT:

* legacy DART tags - https://support.google.com/dfp_premium/answer/177480?hl=en&ref_topic=1638397 (uses ; to separate key/val pairs)
* GPT - https://support.google.com/dfp_premium/answer/1697712

I think we used to use legacy and migrated to GPT recently but @nefretete and @gabrys should confirm.