使用Java在openRTB中创建protobuf扩展

时间:2016-05-10 15:51:11

标签: java protocol-buffers

我正在尝试在openRTB protobuf请求中创建扩展,但我不知道如何。 正如他们在他们的文档中所说的那样(https://github.com/google/openrtb/wiki)我应该做那样的事情:

BidRequest request = BidRequest.newBuilder()
    // ... add Imp, etc.
    .addDevice(Device.newBuilder()
        .setModel("Nexus 85")
        // ... other standard Device fields
        .setGeo(Geo.newBuilder()
            .setCountry("USA")
            .setCity("Newer York")
            .zetZip("102879")
            .setExtension(SpaceAdsExt.planet, "Mars")))
    .build();

在此示例中,他们设置了名为SpaceAdsExt.planet的自定义扩展。我如何实现这样的扩展?

1 个答案:

答案 0 :(得分:1)

BidRequest proto具有为扩展保留的特定标记号范围。根据其定义here,标签200至999和2000至9999保留用于交换和项目的扩展。您需要通过为其中一个标记号定义扩展名来创建扩展.proto的{​​{1}}文件。这看起来像这样:

BidRequest

有关更多详细信息,请参阅协议缓冲区文档here。需要注意的一点是,您必须为扩展程序选择唯一的标记号 - 如果其他人定义了您选择的标记号相同的扩展名,则可能会导致数据损坏。我建议与OpenRTB开发人员核实,看看他们是否有确保扩展号码唯一性的约定。