google/openrtb

Allow native fields as object

Closed this issue · 6 comments

Hi, *!

To allow communication between SSPs and DSPs with either native-as-string or alternatively native-as-object fields, I'd love to have support for these variants:

Bid request:

  • no root-native field, native as request field (String)
  • including root-native field, native as request field (String)
  • no root-native field, native as request_native field (Json-Object) NEW
  • including root-native field, native as request_native field (Json-Object) NEW

Bid response:

  • no root-native field, native as adm field (String)
  • including root-native field, native as adm field (String)
  • no root-native field, native as adm_native field (Json-Object) NEW
  • including root-native field, native as adm_native field (Json-Object) NEW

There are already some methods that can be used. Even the fields request_native and adm_native are currently there.
So: "How hard can it be?" ;-)

Hi, thanks for the suggestion. It's already come to our attention that some exchanges do the direct embedding even with the regular request field (but I don't know about adm), also version 2.4 of the spec makes this option more kosher so it makes sense to expand support for this. Did you already check out the just-released v1.0.4? That already supports all variants of using or not using the root native field, but that's mostly legacy support, everyone should really move to not have that root field anywhere and I hope some day we can remove this support. Looking forward, additional support for direct embedding is planned, it just won't be very fast because the plan is to include this in the next major version which will add full support for OpenRTB 2.4 & Native 1.1 so that can take a couple months.

Perhaps I can help make it happen a bit faster ;-)
#86

Sorry, had a conflict in my first pull request.
Closed the first one, opened a second one: #87

Hi, this looks amazing, thanks! It seems we can have an unplanned release sooner, just to deliver this improvement. :) Will still take some time to review because the pull request is so big (thanks for all new test code!), I also have to do integration testing with other stuff, but hopefully will give you feedback over the next few days.

With pleasure!
Feel free to contact me, if you have any questions.

Having merged #87 and #90 this issue is resolved from my point of view.
Thank you very much @opinali for your precious reviews!