Skip to content

Comments

New Adapter: Harion#4671

Open
markappmedia wants to merge 6 commits intoprebid:masterfrom
markappmedia:master
Open

New Adapter: Harion#4671
markappmedia wants to merge 6 commits intoprebid:masterfrom
markappmedia:master

Conversation

@markappmedia
Copy link

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
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
Author

Hi, @bsardo!

Please check my changes based on your review

@@ -0,0 +1,17 @@
aliasOf: "teqblaze"
Copy link
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
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
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
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 } } }

@ChrisHuie
Copy link
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
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
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

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.

4 participants