fakedsp

module
v0.0.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 26, 2022 License: Apache-2.0

README

Fake OpenRTB DSP Server

GitHub Workflow Status Docker Image Version (latest by date) Docker Image Size (tag) GitHub license GitHub top language GitHub go.mod Go version Scrutinizer Code Quality

OpenRTB 2.6 & OpenRTB Native Ads Specification 1.2

Фейковая DSP(Demand Side Platform) для валидации OpenRTB BidRequest запросов форматов Native, Banner, Video, Audio с отдачей валидных OpenRTB BidResponse ответов.
Основные особенности и возможности.
  • Валидируются только объекты и значения BidRequest указаные как required в спецификации.

  • Полная поддержка спецификации OpenRTB 2.6 & OpenRTB Native Ads Specification 1.2, включая множетственные объекты Imp в одном BidRequest запросе, а так же соместный запрос Native, Banner, Video, Audio объектов в одном объекте Imp ( п. 3.2.4 Спецификации OpenRTB 2.6 ).

  • На каждый объект Native, Banner, Video, Audio объектов в одном объекте Imp фейковая DSP отвечает BidResponse объектом с необхдимым количеством Bid объектов с указанием impid & mtype в соответствии с спецификацией.

  • В ответе BidResponse поддерживается множество SeatBid объектов с множеством Bid объектов, в соответствии с спецификацией.

Запуск в docker контейнере
docker run --name fakedsp -p 8080:8080 -v /path/to/local/ads.json:/ads.json -e ADS_DATABASE_PATH='./ads.json' rapidcodelab/fakedsp
Пример запроса

Запросы прнинимаютя на эндпоинте POST http://127.0.0.1:8080/openrtb

В одном BidRequest запросе два объекта Imp. Первый Imp содержит Native и Banner объекты. Второй Imp содержит Video объект.

OpenRTB BidRequest ()
{
  "id": "1",
  "imp": [
    {
      "id":"1",
      "native":{
        "request":"{\"ver\":\"1.2\",\"layout\":1,\"adunit\":2,\"plcmtcnt\":4,\"plcmttype\":4,\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":75}},{\"id\":2,\"required\":1,\"img\":{\"wmin\":492,\"hmin\":328,\"type\":3,\"mimes\":[\"image/jpeg\",\"image/jpg\",\"image/png\",\"image/gif\"]}},{\"id\":4,\"required\":0,\"data\":{\"type\":6}},{\"id\":5,\"required\":0,\"data\":{\"type\":7}},{\"id\":6,\"required\":0,\"data\":{\"type\":1,\"len\":20}}]}"
      },
      "banner":{}
    },{
      "id": "2",
      "video": {
        "mimes": [
          "video/mp4"
        ],
        "minduration": 5,
        "maxduration": 30,
        "protocols": [
          2,
          3
        ]
      },
      "bidfloor": 0.5,
      "bidfloorcur": "USD",
      "ext":{}
    }
  ]
}
OpenRTB BidResponse ()
{
  "id": "1",
  "seatbid": [
    {
      "bid": [
        {
          "id": "e93d416d-d401-4fbf-a750-e4ee23718a1a",
          "impid": "1",
          "price": 1.1046602879796197,
          "adm": "<a href=\"https://yandex.ru\"><img srec=\"https://banners.rapidcodelab.repl.co/banners/1.jpg\"/></a>",
          "mtype": 1
        },
        {
          "id": "5c2181d1-0fac-45ae-97df-32020febde19",
          "impid": "1",
          "price": 1.4405090880450124,
          "adm": "{\"ver\":\"1.2\",\"assets\":[{\"title\":{\"text\":\"Wordpress Hosting\"}},{\"img\":{\"type\":3,\"url\":\"https://banners.rapidcodelab.repl.co/banners/1.jpg\"}},{\"data\":{\"type\":2,\"value\":\"Cheap wordpress hosting at turhost.com\"}}],\"link\":{\"url\":\"https://yandex.ru\"}}",
          "mtype": 4
        },
        {
          "id": "6be4d251-2ab0-4c56-b57f-e4da3c4b902c",
          "impid": "2",
          "price": 1.1645600532184903,
          "adm": "<VAST version=\"3.0\"><Ad id=\"123\"><InLine><AdSystem><![CDATA[DSP]]></AdSystem><AdTitle><![CDATA[adTitle]]></AdTitle><Creatives><Creative><Linear><TrackingEvents></TrackingEvents><MediaFiles><MediaFile delivery=\"progressive\" type=\"video/mp4\" width=\"0\" height=\"0\"><![CDATA[https://banners.rapidcodelab.repl.co/media/002.mp4]]></MediaFile></MediaFiles><VideoClicks><ClickThrough id=\"1\"><![CDATA[https://yandex.ru]]></ClickThrough></VideoClicks></Linear></Creative></Creatives></InLine></Ad></VAST>",
          "mtype": 2
        }
      ],
      "seat": "creatives.com"
    }
  ]
}

Directories

Path Synopsis
cmd
server command
internal
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL