A/B Testing

Introduction

Fyber has released a new A/B Testing mechanism for our DSP partners. The goal is to track and measure the impact of every new SDK version and ensure we drive better performance for our buyers on every release. Better performance means higher CTR, conversion rates, and ROAS for our bidders. 

Requirements

Demand partner must have an OpenRTB integration with Fyber.
Server-to-server and programmatic mediation integrations are unable to use this feature.

Specification

A/B Testing is executed using a custom extension on the bid request under the Impression Object.

The custom extension is used by Fyber to tell the DSP that this request is part of an A/B test, and specify to which test(s) and group(s) the session corresponds.

Bid Request
imp.ext.abgroup: "TestName1,A;TestName2,B"

Notes

  • Fyber supports running more than one A/B test at a time. Each test is separated by a semicolon (;)
  • Fyber only omits “abgroup” when no test is relevant to the session

Reporting

Fyber encourages our demand partners to ingest the A/B test string value, so they are able to report on performance KPIs that Fyber does not otherwise have access to like conversion rate or ROAS.

Our goal is to understand, for example, if Group A yields higher or lower conversion rate than the control group, so we can measure the impact of key new feature developments on our SDK and ensure we are providing incremental value on every new release.

Sample Bid Request

Below is a sample bid request of the Impression Object with the "abgroup"

Text
{
       "id": "780000xxxxxx9202912",
       "imp": [{
              "id": "1",
              "secure": 0,
              "tagid": "679721",
              "banner": {
                     "id": "1",
                     "w": 320,
                     "h": 50,
                     "wmin": 300,
                     "hmin": 50,
                     "pos": 4,
                     "battr": [3, 6, 7, 9, 10, 14, 17],
                     "topframe": 1,
                     "btype": [4],
                     "api": [5],
                     "ext": {}
              },
              "displaymanager": "Fyber",
              "displaymanagerver": "7.4.1",
              "clickbrowser": 0,
              "instl": 0,
              "bidfloor": 5.00,
              "bidfloorcur": "USD",
              "ext": {
                     "brsrclk": 1,
                     "ctamethod": [1, 2],
                     "ctatext": 1,
                     "abgroup": "CTAMethod,A;VideoPlayer,B"
              }
              }],
              "app": {
                     "id": "67xx21",
                     "name": "App_Name",
                     "cat": ["IAB9-30"],
                     "ver": "1.6.2",
                     "bundle": "com.bundle",
                     "privacypolicy": 1,
                     "paid": 0,
                     "publisher": {
                           "id": "555555",
                           "name": "App_Name",
                           "ext": {}
                     },
                     "storeurl": "https:\/\/play.google.com\/store\/apps\/details?id=com.bundle",
                     "ext": {}
            },
            "device": {
                   "dnt": 0,
                   "ua": "Mozilla\/5.0 (Linux; Android 9; SM-A205U1 Build\/PPR1.180610.011; wv) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/80.0.3987.149 Mobile Safari\/537.36",
                   "ip": "99.203.90.47",
                   "lmt": 0,
                   "geo": {
                          "lat": 29.772,
                          "lon": -95.3644,
                          "country": "USA",
                          "ipservice": 3,
                          "region": "TX",
                          "metro": "618",
                          "city": "Houston",
                          "zip": "77002",
                          "type": 2,
                          "ext": {}
                   },
                   "carrier": "120",
                   "language": "en",
                   "make": "Samsung",
                   "model": "SM-A205U1",
                   "os": "Android",
                   "osv": "9.0",
                   "hwv": "Galaxy A20",
                   "w": 411,
                   "h": 813,
                   "js": 1,
                   "connectiontype": 6,
                   "devicetype": 4,
                   "ifa": "999999999999999",
                   "ext": {
                          "inputLanguage": ["en"]
                   }
            },
            "user": {
                   "gender": "",
                   "ext": {
                          "consent": ""
                   }
            },
            "source": {
                    "fd": 0,
                    "tid": "7800004201389202912",
                    "ext": {
                           "schain": {
                                 "ver": "1.0",
                                 "complete": 1,
                                 "nodes": [{
                                        "asi": "fyber.com",
                                        "sid": "555555",
                                        "hp": 1,
                                        "rid": "78000xxxxx389202912"
                                 }]
                           }
                     }
            },
            "regs": {
                  "coppa": 0,
                  "ext": {
                        "gdpr": 0,
                        "us_privacy": ""
                  }
            },
            "at": 2,
            "cur": ["USD"],
            "tmax": 350,
            "bcat": ["IAB7-39", "IAB14-1", "IAB14-3", "IAB25-1", "IAB25-6", "IAB8-5", "IAB8-18", "IAB12-2", "IAB12-3", "IAB11-4", "IAB12-1", "IAB7-28", "IAB7-42", "IAB17-18", "IAB25-1", "IAB25-2", "IAB25-3", "IAB25-4", "IAB25-5", "IAB26", "IAB26-1", "IAB26-2", "IAB26-3", "IAB26-4", "IAB9-9"],
            "badv": ["advertiser.com"],
            "ext": {}
}