Madvertise · Authentication Profile

Madvertise Authentication

Authentication

Madvertise secures its APIs with placement-code, app-id, token, and oauth2 across 4 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the clientCredentials flow(s).

CompanyAdvertisingAdTechMobileMonetizationProgrammaticOpenRTBSDKPublishers
Methods: placement-code, app-id, token, oauth2 Schemes: 4 OAuth flows: clientCredentials API key in: header

Security Schemes

placement-code identifier
app-id identifier
reporting-token http
scheme: token
improvedigital-oauth2 oauth2
· flows: clientCredentials

Source

Authentication Profile

madvertise-authentication.yml Raw ↑
generated: '2026-08-12'
method: searched
source: >-
  https://developers.bluestack.app/adserving/ad-request-api-documentation,
  https://developers.bluestack.app/adserving/open-rtb-bid-request-api,
  https://developers.bluestack.app/reporting/seller-reporting-api,
  https://developers.bluestack.app/reporting/buyer-reporting-api,
  https://developers.bluestack.app/reporting/mediation-reporting-api,
  https://developers.bluestack.app/android/,
  https://github.com/azerion/improvedigital-publisher-mcp-server
note: >-
  No OpenAPI is published for any Madvertise-branded API, so this profile is captured
  from the developer docs rather than derived. Madvertise runs THREE distinct and
  unrelated identity models, which is the single most important thing for an agent to
  know about this provider: the ad-serving APIs are unauthenticated and identify
  inventory by placement code; the reporting APIs use a bearer-style opaque token minted
  by a dedicated /auth-reporting endpoint; and Azerion's sibling Improve Digital MCP
  server uses OAuth2 client credentials against a different host entirely.
summary:
  types: [placement-code, app-id, token, oauth2]
  api_key_in: [header]
  oauth2_flows: [clientCredentials]
schemes:
- name: placement-code
  type: identifier
  surface: ad-serving
  location: query-or-path
  detail: >-
    Ad requests carry the zone/publisher/placement ID in the `s` query parameter
    (mobile.mng-ads.com) or the URL path (/bidrequest/{placement_code}). This identifies
    inventory, not an authenticated principal — anyone who knows a placement code can
    issue a bid request against it. No key, token, signature or mTLS is documented.
  source: https://developers.bluestack.app/adserving/ad-request-api-documentation
- name: app-id
  type: identifier
  surface: mobile-sdk
  location: sdk-init
  detail: >-
    Mobile SDKs initialize with a publisher appID via MobileAds.sharedInstance() (iOS) /
    SDK init (Android) before loading ads.
  source: https://developers.bluestack.app/ios/
- name: reporting-token
  type: http
  scheme: token
  surface: reporting
  location: header
  parameter_name: Authorization
  token_endpoint: POST /auth-reporting
  detail: >-
    "Use the token returned by auth-reporting service when making calls to
    /seller-reporting, /buyer-reporting and /mediation-reporting." The token is an
    opaque 40-character hex string sent bare in the Authorization header — NOT prefixed
    with "Bearer", per the docs' own curl examples
    (`-H 'Authorization: fbe74e915898ee0d560643d0f3dd722eb17bade3'`). No expiry,
    refresh, rotation or revocation semantics are documented, and no scopes exist.
  gated: true
  gate_detail: >-
    The reporting host itself is withheld: "All API access is over HTTPS, and accessed
    via the https://xxx.com domain (ask to your Azerion contact)." The reference is
    public but the base URL is issued only to contracted partners.
  source: https://developers.bluestack.app/reporting/seller-reporting-api
- name: improvedigital-oauth2
  type: oauth2
  surface: sibling (Improve Digital 360Yield publisher inventory — NOT Madvertise ad serving)
  flows:
  - flow: clientCredentials
    tokenUrl: null
    scopes: {}
  detail: >-
    Azerion's Improve Digital publisher MCP server authenticates to api.360yield.com
    with OAuth2 client credentials (IMPROVE_DIGITAL_CLIENT_ID / _CLIENT_SECRET) and
    manages bearer-token expiry internally. Recorded for completeness because it is the
    only OAuth2 anywhere in this estate; it does not apply to the mng-ads.com APIs. No
    token URL or scope list is published, so no scopes/ artifact is emitted.
  source: https://github.com/azerion/improvedigital-publisher-mcp-server
gaps:
- No API key, token or signature on the OpenRTB bid-request endpoint — a placement code
  is the whole credential.
- No published scope model anywhere; the reporting token is all-or-nothing per account.
- No token lifetime, rotation or revocation documented for /auth-reporting.
- No /.well-known/oauth-authorization-server or openid-configuration on any host
  (see well-known/madvertise-well-known.yml).
cross_links:
  conventions: conventions/madvertise-conventions.yml
  mcp: mcp/madvertise-mcp.yml
  well_known: well-known/madvertise-well-known.yml