2016-05-10 15 views
1

Ich versuche, eine Erweiterung in einer OpenRTB-Protobuf-Anfrage zu erstellen, aber ich weiß nicht wie. Als sie in ihre docs (https://github.com/google/openrtb/wiki) sagen sollte ich so etwas tun kann:Erstellen Sie eine Protobuf-Erweiterung in openRTB mit Java

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(); 

In diesem Beispiel setzen sie eine benutzerdefinierte Erweiterung namens SpaceAdsExt.planet. Wie kann ich eine Erweiterung wie diese implementieren?

Antwort

1

Das Protocol BidRequest hat bestimmte Bereiche von Tag-Nummern für Erweiterungen reserviert. Gemäß seiner Definition here sind die Tags 200 bis 999 und 2000 bis 9999 für die Erweiterung durch Austauschprogramme und Projekte reserviert. Sie müssen eine .proto-Datei erstellen, die BidRequest erweitert, indem Sie eine Erweiterung für eine dieser Tag-Nummern definieren. Das wäre in etwa so aussehen:

extend com.google.openrtb.BidRequest { 
    optional MyExtension my_extension = 2111; 
} 

Weitere Einzelheiten finden Sie in der Protokollpuffer Dokumentation here. Eine Sache, vor der Sie sich in Acht nehmen sollten, ist, dass Sie eine eindeutige Tag-Nummer für Ihre Erweiterung auswählen müssen. Wenn ein anderer Benutzer eine Erweiterung mit der von Ihnen ausgewählten Tag-Nummer definiert, kann dies zu Datenbeschädigung führen. Ich würde empfehlen, mit den OpenRTB-Entwicklern zu überprüfen, ob sie eine Konvention haben, um die Eindeutigkeit von Durchwahlnummern sicherzustellen.

Verwandte Themen