Publishers
Integrations
S2S

S2S

The LoopMe S2S API end point supports direct integrations with 3rd party servers. The LoopMe ad server supports the following ad formats:

  • Fullscreen video ads
  • Fullscreen rich redia ads
  • 728x90 tablet leaderboard ads
  • 300x250 MPU/MRectangle ads
  • 320x50 banner ads

Ad Request

The LoopMe Ad Request API uses a simple GET request. Example:

 https://loopme.me/api/s2s/ads?appId=d18c430ad2&uid=00000000-0000-0000-0000-000000000000&ip=109.154.5.180&ua=Mozilla%2f5.0+(iPhone%3b+CPU+iPhone+OS+10_0+like+Mac+OS+X)+AppleWebKit%2f536.26+(KHTML%2c+like+Gecko)+Mobile%2f10A5376e&clientid=testclient&dnt=0&bundleid=air.dj.brothersandring.mobile.android.BrothersAndRingGoogle&appname=Brother_and_Ring&sdk=2.3.0&exchange=mopub

Mandatory Parameters

The following parameters should always be included in the ad request URL:

appId - Unique application id/key provided by LoopMe

ua - Device user agent of the device making the ad request

uid - Unique user identifier. E.g. the device identifier (IDFA for IOS or Google Advertiser ID for Android) or any other unique user identifier (e.g web cookie ID)

ip - IP address of the device making the ad request

clientid - Name of the client server. Adding this parameter simplifies account debugging on LoopMe side. (e.g. "fyber")

dnt - "Do not track" setting for user. Set to "1" to disable tracking.

bundleid - App bundle ID on iTunes or Google Playstore. E.g. air.dj.brothersandring.mobile.android.BrothersAndRingGoogle

appname - Name of the app

sdk - Sdk version number used to deliver the ad. Example 2.3.0

exchange - Name of the exchange that is used to display the ad. In case you are only supporting direct traffic, please enter the name of your network. E.g. "admarvel"

Optional Parameters

The following parameters may be included in the ad request URL to improve ad optimization:

app_version - Version of the app, the ad is displayed in. E.g. "3.2.0"

pubname - Name of the publisher of the app

lon - Longitude of the requester. Example: "32.0472364"

lat - Latitude of the requester. Example: "-121.435938"

reward - Denotes if ad spot is a rewarded ad spot. In case of a rewarded ad spot, please set reward to "1"

storeurl - App store URL: https://play.google.com/store/apps/details?id=air.dj.brothersandring.mobile.android.BrothersAndRingGoogle (opens in a new tab)

lng - User's handset language. 2 letter ISO language code.

Ad Response

Successful Response with Ad

In case ads are available, the API will respond with a HTTP 200 response and an JSON body that contains the ad HTML in the "script" element.

    {
        "status": "ok",
        "ads": {
            "type": "MRAIDv1",
            "script": "<div id=\"LOOPME_widget\"> <\/div><script data-send-inbox=\"true\" data-cookie=\"test\" data-app-key=\"7f500ed0b3\" data-device-id=\"test\" data-impurl=\"https%3A%2F%2Fn.com\" src=\"https://m.loopme.me/mobile/lm.single.js?_=1422958578\"><\/script><script>lmCampaigns = {\"ads\":[{\"data\":{\"ad_hides\":{\"enabled\":true,\"value\":0},\"click_url\":\"https://looptrk.com/sj/go/r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8\",\"type\":\"HTML\",\"image_url\":\"https://i.loopme.me/6ec59bfa2999a4d4.jpg\",\"share_url\":\"https://looptrk.com/sj/go/r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8\",\"html_src\":\"<div class=\\\"wave\\\"> <\\/div><div class=\\\"LM_html_container\\\">    <div class=\\\"LM_bg\\\">        <div class=\\\"cloud\\\"> <\\/div>        <div class=\\\"cloud\\\"> <\\/div>        <div class=\\\"wave1\\\"> <\\/div>        <div class=\\\"boat\\\"> <\\/div>        <div class=\\\"wave2\\\"> <\\/div>        <div class=\\\"rain\\\">            <div class=\\\"el\\\"> <\\/div>        <\\/div>        <div class=\\\"flood_wrapper\\\">          <div class=\\\"wave_flood\\\"> <\\/div>          <div class=\\\"flood\\\"> <\\/div>        <\\/div>        <div class=\\\"logo\\\"> <\\/div>        <div class=\\\"download\\\"> <\\/div>    <\\/div><\\/div> <div class=\\\"LM_replayAnimation\\\">↻<\\/div><div class=\\\"LM_v3_close\\\"> <\\/div><a href=\\\"https://looptrk.com/sj/go/r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8\\\" target=\\\"_blank\\\" class=\\\"clickable_area\\\"> <\\/a> <a href=\\\"https://looptrk.com/sj/go/r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8\\\" target=\\\"_blank\\\" class=\\\"failClose\\\"> <\\/a><script src=\\\"https://i.loopme.me/html/soda-test/html_loader.js\\\" class=\\\"LM_loader\\\" data-download-button=\\\"PLAY\\\"><\\/script><link rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"https://i.loopme.me/html/soda-test/candy_soda_tablet.min.css\\\">\",\"ad_shares\":{\"enabled\":true,\"value\":0},\"ad_likes\":{\"enabled\":true,\"value\":0},\"id\":\"r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8\",\"download_btn_color\":\"#00AF33\",\"delay\":3000},\"beacons\":{\"ad_show\":\"httsp://loopme.me/api/v2/events?et=AD_SHOW&id=r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8\",\"ad_like\":\"https://loopme.me/api/v2/events?et=AD_LIKE&id=r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8\",\"ad_hide\":\"https://loopme.me/api/v2/events?et=AD_HIDE&id=r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8\",\"ad_share\":\"https://loopme.me/api/v2/events?et=AD_SHARE&id=r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8\",\"video_start\":\"https://loopme.me/api/v2/events?et=VIDEO_STARTS&id=r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8\",\"video_time\":\"https://loopme.me/api/v2/events?et=VIDEO_TIMES&id=r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8\",\"video_complete\":\"https://loopme.me/api/v2/events?et=VIDEO_COMPLETES&id=r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8\"}}],\"version\":\"v0.2.366\",\"session\":{\"si\":\"8plhd55j\",\"beacons\":{\"inbox_open\":\"https://loopme.me/api/v2/events?et=INBOX_OPEN&rid=8plhd55j&id=r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8\",\"ad_close\":\"https://loopme.me/api/v2/events?et=AD_CLOSE&rid=8plhd55j\"}}}<\/script>",
            "beacons": [
                {
                    "type": "impression",
                    "url": "https://loopme.me/api/v2/events?et=INBOX_OPEN&rid=8plhd55j&id=r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8"
                },
                {
                    "type": "impression",
                    "url": "https://loopme.me/api/v2/events?et=AD_SHOW&id=r864cdDiVIZ3aRzNbdESSX0FqhqSg5hTKpO90q5i9q8"
                }
            ]
        }
    }

No-Ad Response

When no ad is available, the no-ad response will be returned.

The no-ad response is a HTTP 200 response with the JSON body below.

    {
        "status": "ok",
        "ads": [ ],
        "version": "x.x.xxxx"
    }

Error Responses

In case of API errors, like:

  • Missing IP address in ad request
  • Missing device user agent in ad request
  • Missing device identifier in ad request

the API will respond with a HTTP 404 Not Found response, which includes a JSON body with the error message.

    {
        "status": "error",
        "errorMessage": "<error message>"
    }