Skip to content

New Adapter: Harion#4671

Merged
bsardo merged 12 commits intoprebid:masterfrom
markappmedia:master
Apr 4, 2026
Merged

New Adapter: Harion#4671
bsardo merged 12 commits intoprebid:masterfrom
markappmedia:master

Conversation

@markappmedia
Copy link
Copy Markdown
Contributor

Type of change

  • Bugfix
  • Feature
  • New bidder adapter
  • Updated bidder adapter
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Does this change affect user-facing APIs or examples documented on http://prebid.org?
  • Other

Description of change

Other information

doc MR: prebid/prebid.github.io#6413

@bsardo bsardo added the adapter label Feb 3, 2026
@bsardo
Copy link
Copy Markdown
Collaborator

bsardo commented Feb 3, 2026

Hi @markappmedia, I am moving this to draft mode for now as this PR is incomplete. Please follow the Prebid Server - New Bid Adapter (Go) docs to build your adapter. If this is a white-label solution or meant to be an alias of another adapter, please add the aliasOf annotation to your YAML file.

@bsardo bsardo marked this pull request as draft February 3, 2026 20:16
@markappmedia markappmedia marked this pull request as ready for review February 5, 2026 15:41
@markappmedia
Copy link
Copy Markdown
Contributor Author

Hi, @bsardo!

Please check my changes based on your review

@@ -0,0 +1,17 @@
aliasOf: "teqblaze"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any relation of harion with teqblaze?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@karwaankit32 TeqBlaze is a technology provider and white-labeling solution. You'll see that static/bidder-info/teqblaze.yaml has the whiteLabelOnly annotation which indicates that TeqBlaze does not bid but can be aliased.

@@ -0,0 +1,17 @@
aliasOf: "teqblaze"
endpoint: "https://east-api.harion-ma.com/pserver"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

curl -s -X POST "https://east-api.harion-ma.com/pserver" -H "Content-Type: application/json" -d '{"id":"1234","imp":[{"id":"imp1234"}]}' -w "\n\nHTTP_STATUS=%{http_code}\n"

HTTP_STATUS=204

Was able to successfully hit the endpoint

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was also able to start-up the server and hit a dummy auction request

Request -
{ "id": "some-request-id", "test": 1, "site": { "publisher": { }, "page": "prebid.org" }, "imp": [ { "id": "some-impression-id", "banner": { "format": [ { "w": 600, "h": 500 }, { "w": 300, "h": 600 } ] }, "ext": { "harion": { "placementId": "123" } } } ], "device": { "ip": "1.1.1.1" }, "regs": { "ext": { "gdpr": 0 } }, "user": { "id": "my-user-id", "buyeruid": "my-buyer-uid" }, "tmax": 500 }

Response :
{ "id": "some-request-id", "ext": { "debug": { "httpcalls": { "harion": [ { "uri": "https://east-api.harion-ma.com/pserver", "requestbody": "{\"id\":\"some-request-id\",\"imp\":[{\"id\":\"some-impression-id\",\"banner\":{\"format\":[{\"w\":600,\"h\":500},{\"w\":300,\"h\":600}]},\"secure\":1,\"ext\":{\"bidder\":{\"type\":\"publisher\",\"placementId\":\"123\"}}}],\"site\":{\"page\":\"prebid.org\",\"publisher\":{},\"ext\":{\"amp\":0}},\"device\":{\"ua\":\"bruno-runtime/2.15.1\",\"ip\":\"1.1.1.1\"},\"user\":{\"id\":\"my-user-id\",\"buyeruid\":\"my-buyer-uid\"},\"test\":1,\"at\":1,\"tmax\":500,\"source\":{\"tid\":\"cb6fc951-772b-4444-94ff-2293773c7efe\"},\"regs\":{\"ext\":{\"gdpr\":0}},\"ext\":{\"prebid\":{\"server\":{\"externalurl\":\"http://localhost:8000\",\"gvlid\":0,\"datacenter\":\"\"}}}}", "requestheaders": { "Accept": [ "application/json" ], "Content-Type": [ "application/json;charset=utf-8" ], "X-Prebid": [ "pbs-go/unknown" ] }, "responsebody": "", "status": 204 } ] }, "resolvedrequest": { "id": "some-request-id", "imp": [ { "id": "some-impression-id", "banner": { "format": [ { "w": 600, "h": 500 }, { "w": 300, "h": 600 } ] }, "secure": 1, "ext": { "prebid": { "bidder": { "harion": { "placementId": "123" } } }, "tid": "5eec224e-727c-40dd-bf4b-e567e57a1edb" } } ], "site": { "page": "prebid.org", "publisher": {}, "ext": { "amp": 0 } }, "device": { "ua": "bruno-runtime/2.15.1", "ip": "1.1.1.1" }, "user": { "id": "my-user-id", "buyeruid": "my-buyer-uid" }, "test": 1, "at": 1, "tmax": 500, "source": { "tid": "cb6fc951-772b-4444-94ff-2293773c7efe" }, "regs": { "gdpr": 0 }, "ext": { "prebid": { "server": { "externalurl": "http://localhost:8000", "gvlid": 0, "datacenter": "" } } } } }, "responsetimemillis": { "harion": 261 }, "tmaxrequest": 500, "prebid": { "auctiontimestamp": 1771219165429 } } }

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this endpoint still live? I sent a sample request and received an error in the response:

       "errors": {
			"harion": [
				{
					"code": 999,
					"message": "Post \"https://east-api.harion-ma.com/pserver\": dial tcp: lookup east-api.harion-ma.com: no such host"
				}
			]
		},

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @bsardo. Please check url now

@ChrisHuie
Copy link
Copy Markdown
Contributor

ChrisHuie commented Feb 10, 2026

AGENT TESTING

PR #4671 Review: New Adapter: Harion

Author: markappmedia | Type: Alias-Only | CI: Clean (all checks passed)

Triage Manifest

Field Value
PR Type alias-only
Files 1 file: static/bidder-info/harion.yaml [added]
Bidder affected harion (alias of teqblaze)
Skills activated bidder-info-pr-review only
Cross-skill concerns None detected
Drift checks N/A (alias-only, no template macros)

Field-by-Field Verification Results

1. aliasOf: "teqblaze"

Check Result Evidence
Parent exists PASS static/bidder-info/teqblaze.yaml exists on master
No alias chain PASS teqblaze has whiteLabelOnly: true but no aliasOf — it's a standalone white-label adapter
White-label compliance PASS teqblaze is explicitly whiteLabelOnly: true, so aliasing is the correct and intended approach
Endpoint domain differs from parent PASS Parent has no endpoint field; harion defines its own (harion-ma.com)

2. endpoint: "https://east-api.harion-ma.com/pserver"

Check Result Evidence
URL format PASS Well-formed HTTPS URL
Reachability PASS HTTP 204 on POST, 0.29s response time
SSL/TLS PASS Valid Let's Encrypt cert (CN=east-api.harion-ma.com), expires Apr 15, 2026
No hardcoded credentials PASS Clean URL, no secrets
No template macros PASS No {{...}} present
Domain ownership PASS harion-ma.com — plausible domain for "Harion" adapter by MarkApp Media

3. gvlVendorID: 1406

Check Result Evidence
Value range PASS Positive integer (1406 > 0)
GVL lookup PASS Vendor 1406 = MARKAPP MEDIA LTD
Company name match PASS "MARKAPP MEDIA LTD" matches PR author markappmedia and email domain markappmedia.site
GVL privacy URL PASS https://markappmedia.site/privacy-policy/ — consistent branding
Alias GVL limitation INFO Aliases can now set their own GVL ID; parent teqblaze has no GVL ID, so no conflict

4. capabilities: site + app (banner, video, native)

Check Result Evidence
Valid media types PASS All three (banner, video, native) are valid
At least one per platform PASS Both site and app have 3 media types each
Subset of parent PASS Identical to teqblaze capabilities (site + app, banner/video/native)
No DOOH PASS DOOH not declared (teqblaze doesn't support it either)

5. maintainer.email: "adtech@markappmedia.site"

Check Result Evidence
Email format PASS Valid format user@domain.tld
Domain consistency PASS markappmedia.site matches GVL privacy URL domain

6. PR-Level Checks

Check Result Evidence
Documentation PR PASS PR description links prebid/prebid.github.io#6413
Duplicate PR check PASS No other open PRs for "harion"
CI status PASS All checks passed

Minor Style Note

The YAML diff has a trailing whitespace on line 12 (empty line between site: and app: blocks). This is cosmetic and non-functional, but could be cleaned up.


Recommendation: APPROVE

This is a clean alias-only adapter PR. The "harion" adapter correctly aliases the teqblaze white-label-only adapter with its own endpoint, GVL vendor ID, and maintainer contact. All verification checks pass — endpoint is live, SSL is valid, GVL ID 1406 maps to the correct company ("MARKAPP MEDIA LTD"), capabilities are a valid subset, and the docs PR is linked.


Task Completion Summary

Task # Subject Status
1 PR Triage: Classify PR type, route files, check CI Completed
2 Verify harion: aliasOf field Completed
3 Verify harion: endpoint field Completed
4 Verify harion: gvlVendorID field Completed
5 Verify harion: capabilities field Completed
6 Verify harion: maintainer.email field Completed
7 PR-level: Documentation PR and duplicate check Completed
8 Produce final review summary Completed

Skills Called

Skill Outcome
pr-triage Executed manually inline following the SKILL.md workflow
bidder-info-pr-review Executed manually inline following the SKILL.md workflow (field-level verification tasks)

Code / Commands Executed

Command Purpose Result
curl -X POST https://east-api.harion-ma.com/pserver Endpoint reachability + SSL check HTTP 204, SSL valid, 0.29s
openssl s_client -connect east-api.harion-ma.com:443 SSL certificate details Let's Encrypt R12, valid until Apr 15 2026
curl vendor-list.consensu.org | python3 (parse vendor 1406) GVL vendor ID lookup "MARKAPP MEDIA LTD" confirmed

WebFetch API Calls

URL Purpose
api.github.com/.../pulls/4671 PR metadata (title, author, description)
api.github.com/.../pulls/4671/files File list + patches
api.github.com/.../pulls/4671/commits Head SHA for CI check
api.github.com/.../commits/{sha}/check-runs CI status (all passed)
raw.githubusercontent.com/.../teqblaze.yaml Parent adapter YAML for alias validation
api.github.com/search/issues?q=harion Duplicate PR check

@karwaankit32
Copy link
Copy Markdown
Contributor

Sent a verification mail to the mail box mentioned. Please acknowledge with "received" over the mailbox and we should be good with this PR.

Thanks!

@karwaankit32
Copy link
Copy Markdown
Contributor

Sent a verification mail to the mail box mentioned. Please acknowledge with "received" over the mailbox and we should be good with this PR.

Thanks!

Received acknowledgment. Approving

karwaankit32
karwaankit32 previously approved these changes Feb 18, 2026
@markappmedia
Copy link
Copy Markdown
Contributor Author

Good day, @bsardo . Please tell, If we need any changes to get your approve?

aliasOf: "teqblaze"
endpoint: "https://east-api.harion-ma.com/pserver"
maintainer:
email: "adtech@markappmedia.site"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sent mail to this address, waiting for response

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

confirmed
image

endpoint: "https://east-api.harion-ma.com/pserver"
maintainer:
email: "adtech@markappmedia.site"
gvlVendorID: 1406
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ verified, GVL ID belongs to Markapp LTD

curl https://vendor-list.consensu.org/v3/vendor-list.json | jq '.vendors."1406"'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  844k  100  844k    0     0  2071k      0 --:--:-- --:--:-- --:--:-- 2069k
{
  "id": 1406,
  "name": "MARKAPP MEDIA LTD",
  "purposes": [
    1,
    7,
    8,
    9,
    10
  ],
  "legIntPurposes": [],
  "flexiblePurposes": [],
  "specialPurposes": [
    3
  ],
  "features": [
    3
  ],
  "specialFeatures": [
    1
  ],
  "cookieMaxAgeSeconds": 31536000,
  "usesCookies": true,
  "cookieRefresh": true,
  "urls": [
    {
      "langId": "en",
      "privacy": "https://markappmedia.site/privacy-policy/",
      "legIntClaim": "https://markappmedia.site/privacy-policy/"
    }
  ],
  "usesNonCookieAccess": false,
  "dataRetention": {
    "stdRetention": 90,
    "purposes": {},
    "specialPurposes": {}
  },
  "dataDeclaration": [
    1,
    2,
    3
  ],
  "deviceStorageDisclosureUrl": "https://markappmedia.site/vendor.json"
}

@markappmedia
Copy link
Copy Markdown
Contributor Author

Hi, @bsardo. I fixed problems with PR. Please check

@bsardo
Copy link
Copy Markdown
Collaborator

bsardo commented Mar 20, 2026

@markappmedia see #4671 (comment)

@danylo-kazymyrov-teqblaze
Copy link
Copy Markdown

Build and test request verified

{
  "id": "some-request-id",
  "ext": {
    "debug": {
      "httpcalls": {
        "harion": [
          {
            "uri": "https://usads.harion-ma.com/pserver",
            "requestbody": "{\"id\":\"some-request-id\",\"imp\":[{\"id\":\"some-impression-id\",\"banner\":{\"format\":[{\"w\":600,\"h\":500},{\"w\":300,\"h\":600}]},\"secure\":1,\"ext\":{\"bidder\":{\"type\":\"publisher\",\"placementId\":\"1\"}}}],\"site\":{\"page\":\"prebid.org\",\"publisher\":{\"id\":\"280\"},\"ext\":{\"amp\":0}},\"device\":{\"ua\":\"curl/8.7.1\",\"ip\":\"1.1.1.1\"},\"user\":{\"id\":\"my-user-id\",\"buyeruid\":\"my-buyer-uid\",\"ext\":{\"eids\":[{\"source\":\"cool.example.com\",\"uids\":[{\"id\":\"A\"}]}]}},\"test\":1,\"at\":1,\"tmax\":1500,\"source\":{\"tid\":\"012c0add-0a16-4817-96df-d41f6b7c4099\"},\"regs\":{\"ext\":{\"gdpr\":0}},\"ext\":{\"prebid\":{\"server\":{\"externalurl\":\"http://localhost:8000\",\"gvlid\":0,\"datacenter\":\"\"}}}}",
            "requestheaders": {
              "Accept": [
                "application/json"
              ],
              "Content-Type": [
                "application/json;charset=utf-8"
              ],
              "X-Prebid": [
                "pbs-go/unknown"
              ]
            },
            "responsebody": "",
            "status": 204
          }
        ]
      },
      "resolvedrequest": {
        "id": "some-request-id",
        "imp": [
          {
            "id": "some-impression-id",
            "banner": {
              "format": [
                {
                  "w": 600,
                  "h": 500
                },
                {
                  "w": 300,
                  "h": 600
                }
              ]
            },
            "secure": 1,
            "ext": {
              "prebid": {
                "bidder": {
                  "harion": {
                    "placementId": "1"
                  }
                }
              },
              "tid": "6d45a450-656b-4cc2-9b3f-b7538002f51d"
            }
          }
        ],
        "site": {
          "page": "prebid.org",
          "publisher": {
            "id": "280"
          },
          "ext": {
            "amp": 0
          }
        },
        "device": {
          "ua": "curl/8.7.1",
          "ip": "1.1.1.1"
        },
        "user": {
          "id": "my-user-id",
          "buyeruid": "my-buyer-uid",
          "eids": [
            {
              "source": "cool.example.com",
              "uids": [
                {
                  "id": "A"
                }
              ]
            }
          ]
        },
        "test": 1,
        "at": 1,
        "tmax": 1500,
        "source": {
          "tid": "012c0add-0a16-4817-96df-d41f6b7c4099"
        },
        "regs": {
          "gdpr": 0
        },
        "ext": {
          "prebid": {
            "server": {
              "externalurl": "http://localhost:8000",
              "gvlid": 0,
              "datacenter": ""
            }
          }
        }
      }
    },
    "responsetimemillis": {
      "harion": 580
    },
    "tmaxrequest": 1500,
    "prebid": {
      "auctiontimestamp": 1775040384316
    }
  }
}

@@ -0,0 +1,17 @@
aliasOf: "teqblaze"
endpoint: "https://usads.harion-ma.com/pserver"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

verified

Image

@bsardo bsardo merged commit 8fdb72f into prebid:master Apr 4, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants