Follow

Variables Format

Variable Format Example
DateTime format

YYYY-MM-DD HH:MM

2014-11-27 23:59
IDs integer 123
Float/prices Dot as delimiter, with 5 decimal points 10123.0003
Currency ISO 4217 USD
Country name ISO-3166-1 Alpha-3 UK
Language ISO 639-1 Alpha-2 EN, IT, RU
TimeZone One timezone UTC

Fundamentals and Resources

API General

API AAA provides for the same login and password as the UI access to the Fusion system. There is an extra configuration option available on the UI that allows/denies access through the API for a particular user: Allow API access under user configuration.

It is important to use different user names when accessing the API from a partner's system. This is necessary so that the campaign’s configuration change log accounting can track changes per user.

It is not recommended to use one API user for all the API integration. All authorization and accounting should be designed and handled by the partner rather than using the out-of-the-box AAA that is available in the Fusion system. Using one user is also a potential security risk and a place for human error.

A user should have access to all the campaigns created under the agencies to which the user belongs, as defined in the User configuration menu.

AAA

Authentication has 2 endpoints: login and logout.

if there is an authentication failure you will get a standard error response with 401 Unauthorized status. Using an expired authentication token will trigger the same error.

Login

Request body:
{
  "email": "<user_email@domain.com>",
  "password": "<password>"
}

Response body: { "Authorization": "<auth_token>" }

Logout

Logout operation is not mandatory. You can use it for additional security if needed.


Request body:
{
  "Authorization": "<auth_token>"
}
Documentation

API documentation is available at: https://doc.api.strikead.com/ (old link: http://strikeadcdn-sandbox.s3.amazonaws.com/fusion-api-doc/index.html).

User profile

Account related information could be retrieved from the profile resource.


{
   "agencies": [
      {
         "advertisers": [
            {
               "domains": [
                  "strikead.com"
               ],
               "name": "AdamFrench",
               "id": 42
            },
            {
               "domains": [
                  "strikead.com"
               ],
               "name": "BBC",
               "id": 242
            },
            {
               "domains": [
                  "strikead.com"
               ],
               "name": "Camelot",
               "id": 359
            },
            {
               "domains": [
                  "www.clarochile.cl"
               ],
               "name": "Claro Chile (87)",
               "id": 3763
            },
        ],
         "name": "ExtMedia",
         "id": 90
         }
     ]
}
 

{
   "agencies": {
      "90": {
         "campaigns_count": "5 of 400"
      },
      "112": {
         "campaigns_count": "22 of 400"
      }
}
Errors

Clarify error message format and fields (http status, message, more info (link to doc)).

Code Const Description
1001 WRONG MESSAGE NULL value found, an object is required.
1002 UNAUTHORIZED User authentication is invalid, or authentication token is expired. We recommend using NTP on the client side to have proper token generation.
1003 MAINTENANCE Fusion API is under maintenance. System will be up in several minutes.
1200 ERROR_USER_WITHOUT_AGENCY  
1201 ERROR_CAMPAIGN_JSON_VALIDATION JSON format is invalid. Refer to the p.3 of the Campaign API documentation for more information.
1202 ERROR_CAMPAIGN_VALIDATION  
1203 ERROR_CAMPAIGN_SAVE_EXCEPTION  
1204 ERROR_CAMPAIGN_READ  
1220 ERROR_CREATIVE_IMAGE_3RD_PARTY  
1500 UNKNOWN  

 

 
Request URL://api.strikead.com/rest/v1.1/campaigns
Request Method:POST
Status Code:401 Unauthorized
Remote Address:127.0.0.1:80
{"errors":[{ "code":1002, "message":"You are not authorized to use this method" }] }

Dictionaries (GET, read-only)

The Fusion API provides  the following dictionary data lists. This is basic read-only data to be used within campaign configuration.

This information is dynamic and we recommend caching this dictionary with updates every 24 hours.

All dictionary API endpoints return simple lists in the format of id and name in JSON format.

Countries
 
Request headers:
   Content-Type: application/json
   X-Authorization: <token>
Mobile Carriers
 

Request headers:
   Content-Type: application/json
   X-Authorization: <token>
Publisher Categories

Request headers:
   Content-Type: application/json
   X-Authorization: <token>
Advertised Product Categories

Request headers:
   Content-Type: application/json
   X-Authorization: <token>
Restricted Categories

Request headers:
   Content-Type: application/json
   X-Authorization: <token>
Sensitive Categories

Sensitive categories are Google AdX-specific feature and are thus not used by other exchanges.


Request headers:
   Content-Type: application/json
   X-Authorization: <token>
Time Zones list

Request headers:
   Content-Type: application/json
   X-Authorization: <token>
DMA regions list

A Designated market area (DMA) region is a group of counties that form an exclusive geographic area in which the home market television stations hold a dominance of total hours viewed. There are 210 DMA regions, covering the entire continental United States, Hawaii, and parts of Alaska.


Request headers:
   Content-Type: application/json
   X-Authorization: <token>
Connection types list

List of supported connection types (such as Ethernet, Wifi, or cellular).


Request headers:
   Content-Type: application/json
   X-Authorization: <token>
Currencies list

List of supported currencies.


Request headers:
   Content-Type: application/json
   X-Authorization: <token>

 All dictionaries return data in following format:

[
{
  "id": <item_id>,
  "name": "<item_name>"
},
...
] 

For example, publisher categories are presented as follows:

[
{
  "id": "IAB1",
  "name": "Arts & Entertainment"
},
{
  "id": "IAB1-1",
  "name": "Books & Literature"
},
{
  "id": "IAB1-2",
  "name": "Celebrity Fan/Gossip"
},
...
]

Campaign Setup

Campaign

As campaign is a logical collection of advertisement media configuration, budgets, assets and time periods.

Create

Request headers:
    Content-Type: application/json
    X-Authorization: <token>
Request body:
{
    "name": "client_cmp20160314170938485114",
    "start_date": "2014-10-27 00:00",
    "end_date": "2014-11-27 23:59",
    "primary_contact": "client_email@gmail.com",
    "advertiser_name": "advertiser #1",
    "advertiser_domains": ["domain.com"],
    "agency_id": 90,
    "budget": 100.1,
    "pacing": "evenly",
    "active": false,
    "line_items": [{
        "name": "client_li20160314170938485114",
        "billable_mode": "CPM",
        "cpm_max_bid": 2.5,
        "product_categories": ["3-D Graphics"],
        "billable_unit_price": 1.17,
        "active": false,
        "targeting": {
            "country": ["GB"],
            "inventory_type": ["mobile_web"],
            "gps_enabled_flag": false
        },
        "coppa": false,
        "budget": null,
        "pacing": "evenly"
    }]
}

Response. All additional campaign configuration fields are automatically added by the platform


Response header: 
    Content-Type: application/json
    HTTP Code: 201 Created
Response body:
{
    "id": 8281,
    "name": "client_cmp20160314170938485114",
    "primary_contact": "client_email@gmail.com",
    "advertiser_name": "advertiser #1",
    "budget": 100.1,
    "start_date": "2014-10-27 00:00",
    "end_date": "2014-11-27 23:59",
    "utc_timezone_id": 1,
    "agency_id": 90,
    "pacing": "evenly",
    "active": false,
    "advertiser_domains": ["domain.com"],
    "line_items": [{
        "id": 75836,
        "name": "client_li20160314170938485114",
        "active": false,
        "start_date": "2014-10-27 00:00",
        "end_date": "2014-11-27 23:59",
        "utc_timezone_id": 1,
        "billable_mode": "CPM",
        "billable_unit_price": 1.17,
        "budget": null,
        "pacing": "evenly",
        "daily_cap": 0,
        "cpm_max_bid": 2.5,
        "targeting": {
            "country": ["GB"],
            "inventory_type": ["mobile_web"],
            "gps_enabled_flag": false
        },
        "coppa": false,
        "product_categories": ["3-D Graphics"]
    }]
}
Update

Request headers:
    Content-Type: application/json
    X-Authorization: <token>
Request body:
{
    "advertiser_name": "advertiser #1",
    "end_date": "2014-11-27 23:59",
    "primary_contact": "client_email@gmail.com",
    "active": true,
    "line_items": [{
        "billable_mode": "CPM",
        "creatives": [376837],
        "cpm_max_bid": 2.5,
        "product_categories": ["3-D Graphics"],
        "billable_unit_price": 1.17,
        "active": true,
        "targeting": {
            "country": ["GB"],
            "inventory_type": ["mobile_web"],
            "gps_enabled_flag": false
        },
        "name": "client_li20160314170938485114",
        "coppa": false,
        "budget": null,
        "pacing": "evenly"
    }],
    "name": "client_cmp20160314170938485114",
    "budget": 100.1,
    "pacing": "evenly",
    "start_date": "2014-10-27 00:00",
    "agency_id": 90,
    "advertiser_domains": ["domain.com"]
}

Response headers:
    Content-Type: application/json
    HTTP Code: 200OK
Response body:
{
    "id": 8281,
    "name": "client_cmp20160314170938485114",
    "primary_contact": "client_email@gmail.com",
    "advertiser_name": "advertiser #1",
    "agency_id": 90,
    "budget": 100.1,
    "start_date": "2014-10-27 00:00",
    "end_date": "2014-11-27 23:59",
    "utc_timezone_id": 1,
    "pacing": "evenly",
    "active": true,
    "advertiser_domains": ["domain.com"],
    "line_items": [{
        "id": 75836,
        "name": "client_li20160314170938485114",
        "active": true,
        "start_date": "2014-10-27 00:00",
        "end_date": "2014-11-27 23:59",
        "utc_timezone_id": 1,
        "billable_mode": "CPM",
        "billable_unit_price": 1.17,
        "budget": null,
        "pacing": "evenly",
        "daily_cap": 0,
        "cpm_max_bid": 2.5,
        "targeting": {
            "country": ["GB"],
            "inventory_type": ["mobile_web"],
            "gps_enabled_flag": false
        },
        "coppa": false,
        "product_categories": ["3-D Graphics"],
        "creatives": [376837]
    }]
}
Retrieve

Request headers:
    Content-Type: application/json
    X-Authorization: <token>

Response headers:
    Content-Type: application/json
    HTTP Code: 200OK
Response body:
{
    "id": 8281,
    "name": "client_cmp20160314170938485114",
    "primary_contact": "client_email@gmail.com",
    "advertiser_name": "advertiser #1",
    "budget": 100.1,
    "start_date": "2014-10-27 00:00",
    "end_date": "2014-11-27 23:59",
    "utc_timezone_id": 1,
    "pacing": "evenly",
    "active": true,
    "agency_id": 90,
    "advertiser_domains": ["domain.com"],
    "line_items": [{
        "id": 75836,
        "name": "client_li20160314170938485114",
        "active": true,
        "start_date": "2014-10-27 00:00",
        "end_date": "2014-11-27 23:59",
        "utc_timezone_id": 1,
        "billable_mode": "CPM",
        "billable_unit_price": 1.17,
        "budget": null,
        "pacing": "evenly",
        "daily_cap": 0,
        "cpm_max_bid": 2.5,
        "targeting": {
            "country": ["GB"],
            "inventory_type": ["mobile_web"],
            "gps_enabled_flag": false
        },
        "coppa": false,
        "product_categories": ["3-D Graphics"],
        "creatives": [376837]
    }]
}
List

The campaigns list function accepts filters as GET parameters: advertiser_id or status. Where:

  • advertiser_id: The ID of the advertiser for whom the campaign was configured
  • status: - is one of follow campaign statuses:
    • Offline
    • Stopped
    • Finished
    • Live

API returns campaigns that:

  • have at least 1 LI;
  • have NO AdServing buying type in LIs;
  • arenot deleted;
  • have an agency_id that is a list of the agency of the API user;
  • have an advertiser_id that is allowed for the API user.

[
  {
    "id": 8281,
    "name": "client_cmp20160314170938485114",
    "primary_contact": "client_email@gmail.com",
    "advertiser_name": "advertiser #1",
    "budget": 100.1,
    "start_date": "2014-10-27 00:00",
    "end_date": "2014-11-27 23:59",
    "agency_id": 90,
    "utc_timezone_id": 1,
    "pacing": "evenly",
    "active": true,
    "advertiser_domains": ["domain.com"],
    "line_items": [{
        "id": 75836,
        "name": "client_li20160314170938485114",
        "active": true,
        "start_date": "2014-10-27 00:00",
        "end_date": "2014-11-27 23:59",
        "utc_timezone_id": 1,
        "billable_mode": "CPM",
        "billable_unit_price": 1.17,
        "budget": null,
        "pacing": "evenly",
        "daily_cap": 0,
        "cpm_max_bid": 2.5,
        "targeting": {
            "country": ["GB"],
            "inventory_type": ["mobile_web"],
            "gps_enabled_flag": false
        },
        "coppa": false,
        "product_categories": ["3-D Graphics"],
        "creatives": [376837]
    }]
  }
]
Campaign/LI start/stop/change dates
 

Request headers:
    Content-Type: application/json
    X-Authorization: <token>
Request body:
{
    "id": 8281,
        "active": true,
        "start_date": "2014-10-26 00:00",
        "end_date": "2014-11-28 23:59",
        "line_items":
    [{
        "id": 75836,
            "active": true
            "start_date": "2014-10-26 00:00",
            "end_date": "2014-10-26 23:59"
        }]
}
 

Response body:
{
   "message": "Campaign was successfully updated."
}
Creatives

Creatives are a cumulative set of configuration assets and workflows. It is an informational unit that Fusion system sends to the exchange/end to the user's device. The following creative types are supported in the Fusion API:

  • Image
  • Script

Image creatives can have image files associated with them, while script creatives must be escaped with backslash “\”.

Create image creative
 

Request headers:
    Content-Type: application/json
    X-Authorization: <token>
 
Request body:
{
    "campaign_id": 8281,
    "name": "API_CREATIVE_1",
    "type": "image",
    "click_through_url": "https://example.click.url",
    "landing_page_url": "https://example.landing.url",
   "tracking_code": "https://example.tracking.com/pixel_id",     "size": {        "width": 320,        "height": 240     },     "file": {        "content": "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",        "type": "image"     } }
 

Response header:
    HTTP Code: 201 Created
    Content-Type: application/json
Response body:
{
    "campaign_id": 8281,
    "name": "API_CREATIVE_1",
    "type": "image",
    "click_through_url": "https://example.click.url",
    "landing_page_url": "https://example.landing.url",
    "tracking_code": "https://example.tracking.com/pixel_id",
    "size": {
       "width": 320,
       "height": 240
    },
    "file": {
        "id": 73215
    }
}
Create script creative

Request header:
    Content-Type: application/json
    X-Authorization: <token>
Request body:
{
    "campaign_id": 8281,
    "name": "API_test_1",
    "type": "rich_media",
    "click_through_url": "http://www.claro23ile.cl/",
    "landing_page_url": "http://www.claro23ile.cl/",
    "tracking_code": "<SCRIPT language='JavaScript1.1'SRC=\"https://ad.click.net/ddm/adj/N884.2126705MOBEXTCL/B9641805.130771953;sz=300x250;click=%CLICK_URL%;ord=@IMPRESSION_ID@;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=?\">
    </SCRIPT>
    <NOSCRIPT>
    <A HREF=\"%CLICK_URL%https%3A%2F%2Fad.doubleclick.net%2Fddm%2Fjump%2FN884.2126705EXTCL%2FB9641805.130771953%3Bsz%3D300x250%3Bord%3D@IMPRESSION_ID@%3F\">
    <IMG SRC=\"https://ad.click.net/ddm/ad/N884.2126705EXTCL/B9641805.130771953;sz=300x250;ord=@IMPRESSION_ID@;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=?\" BORDER=0 WIDTH=300 HEIGHT=250 ALT=\"Advertisement\"></A>
    </NOSCRIPT>",
    "size": {
       "width": 300,
       "height": 250
    },
    "api": null
}

Response header:
    HTTP Code: 201 Created
    Content-Type: application/json
Response body:{
    "campaign_id": 8281,
    "name": "API_test_1",
    "type": "rich_media",
    "click_through_url": "http://www.claro23ile.cl/",
    "landing_page_url": "http://www.claro23ile.cl/",
    "tracking_code": "<SCRIPT language='JavaScript1.1' SRC=\"https://ad.click.net/ddm/adj/N884.2126705MOBEXTCL/B9641805.130771953;sz=300x250;click=%CLICK_URL%;ord=@IMPRESSION_ID@;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=?\">
    </SCRIPT>
    <NOSCRIPT>
    <A HREF=\"%CLICK_URL%https%3A%2F%2Fad.doubleclick.net%2Fddm%2Fjump%2FN884.2126705EXTCL%2FB9641805.130771953%3Bsz%3D300x250%3Bord%3D@IMPRESSION_ID@%3F\">
    <IMG SRC=\"https://ad.click.net/ddm/ad/N884.2126705EXTCL/B9641805.130771953;sz=300x250;ord=@IMPRESSION_ID@;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=?\" BORDER=0 WIDTH=300 HEIGHT=250 ALT=\"Advertisement\"></A>
    </NOSCRIPT>",
    "size": {
       "width": 300,
       "height": 250
    },
    "api": null
}
Update

Request headers:
    Content-Type: application/json
    X-Authorization: <token>
 
Request body:
{
    "campaign_id": 8281,
    "name": "API_CREATIVE_1",
    "type": "image",
    "click_through_url": "https://example2.click.url",
    "landing_page_url": "https://example2.landing.url",
    "tracking_code": "http://lg.strad.com/adv-1.html",
    "size": {
       "width": 320,
       "height": 240
    },
    "file": {
        "id": 73215
    }
}

Response header:
    HTTP Code: 200 OK
    Content-Type: application/json
Response body:
{
    "campaign_id": 8281,
    "name": "API_CREATIVE_1",
    "type": "image",
    "click_through_url": "https://example2.click.url",
    "landing_page_url": "https://example2.landing.url",
    "tracking_code": "http://lg.strad.com/adv-1.html",
    "size": {
       "width": 320,
       "height": 240
    },
    "file": {
        "id": 73215
    }
}
Retrive

{
    "campaign_id": 8281,
    "name": "API_CREATIVE_1",
    "type": "image",
    "click_through_url": "https://example2.click.url",
    "landing_page_url": "https://example2.landing.url",
    "tracking_code": code,
    "size": {
       "width": 320,
       "height": 240
    },
    "file": {
        "id": 73215
    }
}
List

[
     {
         "campaign_id": 8281,
         "id": 12345,
          "name": "API_CREATIVE_1",
         "type": "image",
         "click_through_url": "https://example.click.url",
         "landing_page_url": "https://example.landing.url",
         "tracking_code": code,
         "size": {
             "width": 320,
             "height": 240
         },
         "file_id": 74029
     },
     {
         "campaign_id": 8281,
         "id": 12346,
         "name": "API_CREATIVE_2",
         "type": "image",
         "click_through_url": "https://example2.click.url",
         "landing_page_url": "https://example2.landing.url",
         "tracking_code": code,
         "size": {
             "width": 320,
             "height": 240
         },
         "file_id": 74030
     }
]
Actions

Action tracking tags track user activity for CPA campaigns or are targets for optimization algorithms and conversions. The action tracking tags for each advertiser are shared resources for all the campaigns for that advertiser.

Create
 

Request headers:
    Content-Type: application/json
    X-Authorization: <token>
Request body:
{
    "name": "ActionName",
    "campaign_id": 9224
}
 

{
  "id": 44251,
  "name": "ActionName",
  "campaign_id": 9224,
  "codes": {
    "js": "<!--The following code should be added to the HEAD element of the web page-->\n<HEAD>\n    <script type=\"text/javascript\">\n        function fireConversionPixel(targetId, pixelId) {\n            return function() {\n                window.document.body.innerHTML +='.'\"<img style='.\"'border: 0;visibility:hidden'\".\"width='1' height='1' src=\".\"'http://track.strikead.com/web/conv?target=\".'\"+targetId+\"'.\"&id=\".'\"+pixelId+\"'.\"&type=img'\".' />\";\n            }\n        }\n    </script>\n</HEAD>\n<!--The following code should be added  following code under the button element, make sure you replace \"button_name\" with the actual name of your element-->\n<script type=\"text/javascript\">\n    document.getElementById(\"button_name\").addEventListener(\"click\", fireConversionPixel(9224,44251));\n</script>",
    "image": "<img style=\"border: 0;visibility:hidden\" width=\"1\" height=\"1\" src=\"http://track.strikead.com/web/conv?type=img&target=9224&id=44251\" />"
  }
}
Update
 

Request headers:
    Content-Type: application/json
    X-Authorization: <token>
Request body:
{
  "id": 44251,
  "name": "ActionName UPDATED",
  "campaign_id": 9224,
  "codes": {
10 index9    "js": "<!--The following code should be added to the HEAD element of the web page-->\n<HEAD>\n    <script type=\"text/javascript\">\n        function fireConversionPixel(targetId, pixelId) {\n            return function() {\n                window.document.body.innerHTML +='.'\"<img style='.\"'border: 0;visibility:hidden'\".\"width='1' height='1' src=\".\"'http://track.strikead.com/web/conv?target=\".'\"+targetId+\"'.\"&id=\".'\"+pixelId+\"'.\"&type=img'\".' />\";\n            }\n        }\n    </script>\n</HEAD>\n<!--The following code should be added  following code under the button element, make sure you replace \"button_name\" with the actual name of your element-->\n<script type=\"text/javascript\">\n    document.getElementById(\"button_name\").addEventListener(\"click\", fireConversionPixel(9224,44251));\n</script>",
11 index10    "image": "<img style=\"border: 0;visibility:hidden\" width=\"1\" height=\"1\" src=\"http://track.strikead.com/web/conv?type=img&target=9224&id=44251\" />"
  }
}
Retrieve
 

{
  "id": 44251,
  "name": "ActionName UPDATED",
  "campaign_id": 9224
}
List

To get targeting use GET request with several filters:

GET /v1.1/actions?campaign_id={campaign_id}
GET /v1.1/actions?advertiser_id={advertiser_id}

 

[
  {
    "id": 44251,
    "name": "ActionName1",
    "campaign_id": 9224
  },
  {
    "id": 44252,
    "name": "ActionName2",
    "campaign_id": 9224
  }
]
Segments management

There are 2 types of segements in the Fusion platform:

  • 1st-party segments: For collecting audience information (such as, web site attendance, app start or other actions, impression, click and other user’s activity) that can be re-used as targeting criteria in future line item targeting configurations. 1st-party segments are shared resources for all the campaigns for the selected advertiser.
  • 3rd-party segments: Segments provided by 3rd party DMPs or agencies that are available for the line item's targeting in the Fusion platform.
1st-party create
 

Request headers:
    Content-Type: application/json
    X-Authorization: <token>
Request body:
{
    "name": "PixelName",
    "advertiser_id": 23
}
 

{
     "id": 123,
     "name": "PixelName",
     "advertiser_id": 23,
     "codes": {
            "web_page_pixel": "<img width="1" height="1" style="border:0;display:none" alt="" src="http://track.strikead.com/id/retarget?pid=123&type=img"/>",
            "click_through_url": "http://track.strikead.com/id/retarget?pid=43780&type=redirect&landing={ENC landing page}",
            "backend_event": "http://track.strikead.com/id/retarget?pid=43780&type=s2s&uids={PLATFORM-ID-SHA1}&uids={PLATFORM-ID-MD5}&uids={MOBILE-ID-SHA1}&uids={MOBILE-ID-MD5}&uids={MAC-ID-SHA1}&uids={MAC-ID-MD5}",
            "in_app_event": "http://track.strikead.com/id/retarget?pid=43780&type=sdk&uids={PLATFORM-ID-SHA1}&uids={PLATFORM-ID-MD5}&uids={MOBILE-ID-SHA1}&uids={MOBILE-ID-MD5}&uids={MAC-ID-SHA1}&uids={MAC-ID-MD5}&landing={INTENTION_SCHEME://app-handler/bind?}"
     }
}
1st-party update 
 

{
     "id": 123,
     "name": "PixelName_UPDATED",
     "advertiser_id": 123,
     "codes": {
                "web_page_pixel": "<img width="1" height="1" style="border:0;display:none" alt="" src="http://track.strikead.com/id/retarget?pid=123&type=img"/>",
                "click_through_url": "http://track.strikead.com/id/retarget?pid=43780&type=redirect&landing={ENC landing page}",
                "backend_event": "http://track.strikead.com/id/retarget?pid=43780&type=s2s&uids={PLATFORM-ID-SHA1}&uids={PLATFORM-ID-MD5}&uids={MOBILE-ID-SHA1}&uids={MOBILE-ID-MD5}&uids={MAC-ID-SHA1}&uids={MAC-ID-MD5}",
                "in_app_event": "http://track.strikead.com/id/retarget?pid=43780&type=sdk&uids={PLATFORM-ID-SHA1}&uids={PLATFORM-ID-MD5}&uids={MOBILE-ID-SHA1}&uids={MOBILE-ID-MD5}&uids={MAC-ID-SHA1}&uids={MAC-ID-MD5}&landing={INTENTION_SCHEME://app-handler/bind?}"
         }
}
 

{
        "id": 123,
        "name": "PixelName_UPDATED",
        "advertiser_id": 123,
        "codes": {
               "web_page_pixel": "<img width="1" height="1" style="border:0;display:none" alt="" src="http://track.strikead.com/id/retarget?pid=123&type=img"/>",
               "click_through_url": "http://track.strikead.com/id/retarget?pid=43780&type=redirect&landing={ENC landing page}",
               "backend_event": "http://track.strikead.com/id/retarget?pid=43780&type=s2s&uids={PLATFORM-ID-SHA1}&uids={PLATFORM-ID-MD5}&uids={MOBILE-ID-SHA1}&uids={MOBILE-ID-MD5}&uids={MAC-ID-SHA1}&uids={MAC-ID-MD5}",
               "in_app_event": "http://track.strikead.com/id/retarget?pid=43780&type=sdk&uids={PLATFORM-ID-SHA1}&uids={PLATFORM-ID-MD5}&uids={MOBILE-ID-SHA1}&uids={MOBILE-ID-MD5}&uids={MAC-ID-SHA1}&uids={MAC-ID-MD5}&landing={INTENTION_SCHEME://app-handler/bind?}"
        }
   }
1st-party list

To retrieve segments information use the GET request with several parameters:

GET /v1.1/segments/1st-party/{id}
GET /v1.1/segments/1st-party?campaign_id=1
GET /v1.1/segments/1st-party?advertiser_id=1 
GET /v1.1/segments/1st-party?campaign_id=\[campaign_id\]&advertiser_id=\[advertiser_id\]

 

Response body:
  {
         "id": 123,
         "name": "MyLuckyPixel",
         "advertiser_id": 123,
         "codes": {
                "web_page_pixel": "<img width="1" height="1" style="border:0;display:none" alt="" src="http://track.strikead.com/id/retarget?pid=123&type=img"/>",
                "click_through_url": "http://track.strikead.com/id/retarget?pid=43780&type=redirect&landing={ENC landing page}",
                "backend_event": "http://track.strikead.com/id/retarget?pid=43780&type=s2s&uids={PLATFORM-ID-SHA1}&uids={PLATFORM-ID-MD5}&uids={MOBILE-ID-SHA1}&uids={MOBILE-ID-MD5}&uids={MAC-ID-SHA1}&uids={MAC-ID-MD5}",
                "in_app_event": "http://track.strikead.com/id/retarget?pid=43780&type=sdk&uids={PLATFORM-ID-SHA1}&uids={PLATFORM-ID-MD5}&uids={MOBILE-ID-SHA1}&uids={MOBILE-ID-MD5}&uids={MAC-ID-SHA1}&uids={MAC-ID-MD5}&landing={INTENTION_SCHEME://app-handler/bind?}"
         }
      }
3rd-party list
 

Response body:
["bluekai","statiq","lotame","mobext","peer39"]
3rd-party segments
 

Response body:
{
   "filtered_count":2,
   "entries":[
      {
         "id":"e3cf7994-c15b-4fc9-9b93-fbd9e5c471bb",
         "full_name":"HMFRA_Hyundai_DE",
         "count":0,
         "price":0,
         "parent_id":0
      },
      {
         "id":"feeceb4f-f095-4055-987c-5a4c8e80d963",
         "full_name":"HMFRA_Hyundai_DE \/ HMFRA_Hyundai_DE-cli-cel-str-ade-81",
         "count":6307,
         "price":0,
         "parent_id":"e3cf7994-c15b-4fc9-9b93-fbd9e5c471bb"
      }
   ]
}

Reporting (GET, read-only)

Currently, the reporting API supports retrieving statistics per campaign or line item aggregated by days.

Parameters
  • campaign_id: Fusion campaign ID
  • line_item_id: Fusion line item ID
  • from: Start date, YYYY-MM-DD, UTC, inclusive
  • to: End date, YYYY-MM-DD, exclusive
  • metrics: Comma separated metrics list
Note: You can only specify either the campaign_id or the line_item_id.
Get avaliable metrics
 

Request headers:
	X-Authorization:  
Get statistics by campaign
 

Request headers:
	X-Authorization:  
Get statistics by line item
 

Request headers:
	X-Authorization:  

 

 

Response headers:
	Content-Type: application/json
	HTTP Code: 200 OK
Response body:
[
	{"impressions":713,"conversions":0,"clicks":1,"ad_id":1,"total_spend":1.42478423759111,"campaign_id":1,"days":"2016-09-25T00:00"},
	{"impressions":779,"conversions":0,"clicks":0,"ad_id":1,"total_spend":1.55553610398271,"campaign_id":1,"days":"2016-09-26T00:00"}
]

Reporting (file-based)

In the current version of the API implementation, StrikeAd by Sizmek's back-end system generates tsv/csv files with reports and publishes them periodically to the AWS S3 bucket for clients. You can retrieve reports for all campaigns for a particular agency or group of agencies.

Dimensions

 

Field Name Field Format Example Value Field Description
datetime datetime (YYYY-MM-DD HH:00:00.0) 2016-03-15 11:00:00 Time when the event was seen by the log aggregate.
advertiser_name string "Pitty Marshmallows" Fusion advertiser name.
advertiser_id string "2314" Fusion advertiser ID.
campaign_name string "Test Pitty Marshmallows" Fusion campaign name.
campaign_id string "7632" Fusion campaign ID.
external_id string "213-12" Campaign ID from the client's system
ad_name string "Marshmallow Groccery shoppers" Fusion line item name.
ad_id string "70000" Fusion line item ID.
creative_name string "GroceryShopperAudienceTargeting_320X50_E_pick.jpg" Fusion creative name.
creative_id string "70000_238721" Joined value of Fusion "ad_id" and "creative_id".
creative_size string "320x50" Creative size in the format "WidthxHeight".
impression_type string "banner" Type of creative (banner/video).
user_country string "FR" User's country name in "ISO 3166-1 alpha-2" format.
user_region string "ARIZONA" User's region name.
user_zip string "75186 CEDEX 04" User's postal code.
deal_type string "RTB" SSP deal type.
exchange string "mopub" SSP name.
site_name string "foobar.com" Site domain for web traffic, application name for in-app traffic.
site_or_app string "mobile_app" Type of traffic (mobile_app, mobile_web).

 

Metrics

 

Field Name Field Format Example Value Field Description
impressions integer 42 Aggregated count of impressions.
clicks integer 7 Aggregated count of clicks.
conversions integer 2 Aggregated count of conversions.
media_spent float 2.77781 Aggregated SSP payout (SUM(win_price) for served impressions).
data_fees float 0.12301 Aggregated 3rd party costs (SUM(3rd_party_cost_1 + 3rd_party_cost_2)).
commission_fees float 0.42001 Aggregated system margin (SUM(system_margin)).
total_ad_cost float 2.9001 SUM(media_spent + data_fees).
margin float 0.22301 Aggregated agency margin (SUM(agency_margin)).
total_spend float 3.21001 SUM(media_spent + data_fees + system_margin + agency_margin).

Versioning

https://api.strikead.com/v[version].[subversion]

  • [version]: For major changes in external communication protocol and JSON format.
  • [sub-version]: For minor releases and functional releases. Extra resources can be added with this sub-version changes. No need to change on client's side. Full backward compatibility.

Macros

Macro Name Exchange Description
%CLICK_URL% StrikeAd internal StrikeAd by Sizmek's click URL. To count clicks. Accept as a parameter redirect URL. Example of click_through: %CLICK_URL%landing_page_url
@IC@ all StrikeAd internal impression context.
@EUID@ all Unique consumer ID of this user on the exchange/ optional.
@PLATFORM-ID-MD5@ all MD5 hashed platform/optional; specific ID (for example, Android  ID or UDID for iOS).
Should be interpreted as case insensitive.
@PLATFORM-ID-SHA1@ all SHA1 hashed platform-specific ID (for example, Android ID or UDID for iOS). OpenRTB’s preferred method for device ID hash is SHA1.
@MOBILE-ID-MD5@ all MD5 hashed device ID; IMEI when available, else MEID or ESN. Should be interpreted as case insensitive.
@MOBILE-ID-SHA1@ all SHA1 hashed device ID; IMEI when available, else MEID or ESN.OpenRTB’s preferred method for device ID hashingis SHA1.
@LAT@ all Latitude from -90 to 90. South is negative. This should only be passed if known to be accurate (For example, not the centroid of a postal code).
@LONG@ all Longitude from -180 to 180. West is negative. This should only be passed if known to be accurate.
@IMPRESSION_ID@ all Unique ID for the bid object chosen by the bidder for tracking and debugging purposes. Useful when multiple bids are submitted for a single impression for a given seat.
@SITE_ID@ all Site ID on the exchange.
@SITE_DOMAIN@ all Domain of the site, used for advertiser side blocking. For example, “foo.com”.
@APP_ID@ all Application ID on the exchange.
@EXCHANGE@ all Exchange name.
@CITY@ all City using United Nations Code for Trade and Transport Locations (http://www.unece.org/cefact/locode/service/location.htm).
@COUNTRY@ all Country using ISO-3166-1 Alpha-3.
@REGION@ all Region using ISO 3166-2.
@SITE-PUBLISHER-ID@ all Publisher ID on the exchange.
@APP-PUBLISHER-ID@ all Publisher ID on the exchange.
@PUBLISHER_ID@ all Publisher ID on the exchange.
@IFA@ all ID sanctioned for advertiser use in the clear (meaning, not hashed). This macro cannot be used for gathering the retargeting pool.
@LANGUAGE@ all Browser language; use alpha-2/ISO 639-1  codes.
@MODEL@ all Device model (for example, iPhone).
@data@, @data1@ n/a

Custom macro (can take any name except one of the reserved names in this table), used in click through for click to conv creatives, replaced with values sent in the corresponding parameters on click. such as the tag issued for spot buy: http://rtb2.strikead.com/as/click/4519/68221/68221_362249?data=one&data1=two click-through: http://strikead.com?param1=@data@&param2=@data1@

The Note! macro name in the click-through corresponds with the parameters name from the tag. Click will result in calling the url: http://strikead.com?param1=one&param2=two.

@OPT-OUT@ all User's Opt-out status (1/0).
@APP_BUNDLE@ all

A bundle ID otherwise known as a package in Android is the unique identifier for all Android apps. It must be unique ID as, when you upload it to Goggle Play, Google Play identifies and publishes your app using the package name as the unique app identification.

This ID is the only means by which you can identify your app, and generally consists of the folloiwng parts:

com.example.testapp

Example
shivam.mentor.truefalse
com.enflick.android.TextNow
com.hi5.app
com.cleanmaster.mguard
com.lulo.scrabble.classicwords
com.psiphon3
com.cleanmaster.security
@APP_NAME@ all

Bid request application name. The following example is taken from the bid logs:

Example
True or False - Interstitial
TextNow Android
Tagged.com-Tagged -ANDROID
Clean Master Android application
Classic Words Solo
Psiphon
CM Security
@SITE_NAME@ all Bid request site name.
@TIMESTAMP@ all Time stamp for the event.
@CAMPAIGN_ID@ all Fusion campaign ID of an ad.
@LINE_ITEM_ID@ all Fusion line item ID of an ad.
@SZMKDCO_HYPERLOCAL@ all Name of matching hyperlocal point.
@CREATIVE_ID@ all Fusion's creative ID.

API quotas

Max API calls limit 20 QPS
Max number of live campaigns 400 pcs
Max number of live line-items per campaign 300 pcs
Max number of creatives in the campaign 400 pcs
Complete JSON size limit 9.99 Mb

F

Was this article helpful?
1 out of 1 found this helpful
Have more questions? Submit a request

Comments

Powered by Zendesk