Skip to content

SSP Integration Telegram Interstitial Video

Request Telegram integration is implemented with a POST request containing a JSON object in its body.

http
POST http://{ssp_id}.xml.adx1.com/telegram-bid

The Simplest Request Body Sample

json
{
 "ip": "192.112.192.11",
 "user_agent":"Mozilla/5.0 (Linux, Android 14; K) AppleWebKit/537.36 (KHTML, lke Gecko) Chrome/129.0.6668.81 Mobile Safari/537.36 Telegram-Android/11.2.0 (Google Pixel 6; Android 14; SDK 34; HIGH)",
 "publisher_id":"792361"
}

Full Request Body Sample

json
{
 "ip": "192.112.192.11",
 "user_agent":"Mozilla/5.0 (Linux, Android 14; K) AppleWebKit/537.36 (KHTML, lke Gecko) Chrome/129.0.6668.81 Mobile Safari/537.36 Telegram-Android/11.2.0 (Google Pixel 6; Android 14; SDK 34; HIGH)",
 "publisher_id":"792361",
 "widget_id":"351352",
 "bid_floor":0.0001,
 "premium": true,
 "motivated": true,
 "language_code":"en",
 "telegram_id": "515279737",
 "blocked_categories": [18, 30],
 "number_of_bids": 1,
 "production": true
}

Request JSON Attributes

API Request Specification

Core Parameters

ParameterTypeRequiredDescription
ipStringYesUser's IP address (supports both IPv4 and IPv6 formats)
user_agentStringYesFull HTTP user agent string from the client's device/browser
publisher_idStringYesUnique identifier for the publisher account

Optional Parameters

ParameterTypeDefaultDescription
language_codeString-ISO 639-1 2-letter language code
widget_idString-Identifier for the Mini App integration
telegram_idString-User's unique Telegram identifier
bid_floorDouble-Minimum acceptable bid (value in either CPC or CPM based on SSP settings)
number_of_bidsInteger1Desired number of bid responses (1-5 supported)
blocked_categoriesInteger[]-List of advertiser category IDs to exclude
premiumBooleanfalseIndicates premium user status
motivatedBoolean-Flags if the user action was intentional
productionBooleantrueSet to false for test mode (returns sample responses)

Default Behavior

  • Testing: When production=false, the system:

    • Returns test creatives with "TEST" watermark
    • Ignores bid_floor parameter
    • Doesn't record impressions for billing
  • Empty Values: Unspecified parameters will:

    • Use documented default values
    • Be treated as no restrictions (for array/object parameters)

Example Requests

Minimal Request

json
{
  "ip": "203.0.113.45",
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
  "publisher_id": "pub_12345"
}

Response Sample

json
[
    {
        "title": "test",
        "message": "test",
        "video": "https://cdn.amnew.net/files/creative-test/67c96be1dcb77_2025_03_06_09_33_21_video.mp4",
        "icon": "https://eu.skated.co/nty/metrics/save.img?event=impressions&bid-id=v2-1741608132064-14-14802-1428709-044f1744-6b2f-a571-de58-5b3678d4cfd0&img=https%3A%2F%2Fcdn.amnew.net%2Ffiles%2F671968511ff7f_2024_10_23_09_19_13_image.webp",
        "notification_url": "https://eu.skated.co/nty/metrics/save?event=impressions&bid-id=v2-1741608132064-14-14802-1428709-044f1744-6b2f-a571-de58-5b3678d4cfd0",
        "link": "https://eu.skated.co/nty/postback/click?key=v2-1741608132064-14-14802-1428709-044f1744-6b2f-a571-de58-5b3678d4cfd0",
        "button": "test",
        "bid_price": 0.31
    }
]

Response JSON Attributes

Creative Response Parameters

ParameterTypeDescription
titleStringMain headline/text displayed to the user
messageStringSupporting description text
buttonStringAction button text (e.g., "Learn More", "Sign Up")
videoStringURL to video creative (MP4/HLS recommended)
iconStringURL to square icon/image (JPG/PNG, min 300×300)
linkStringDestination URL when user interacts
notification_urlStringImpression tracking pixel URL
bid_priceDoubleWinning bid value (CPC/CPM based on auction)

Implementation Guidelines

  1. Media Requirements:

    • Videos: Max 30s duration, 16:9 aspect ratio preferred
    • Icons: Square format (1:1), transparent background supported
  2. Tracking Rules:

    javascript
    // Use EITHER icon OR notification_url for impressions
    if (response.icon) {
      // Load icon image to track impression
      new Image().src = response.icon;
    } else if (response.notification_url) {
      // Call notification URL
      fetch(response.notification_url);
    }