AppKit API
This api provides you a json representation of the AppKit layout you built in the AppKit Editor.
Manual integration
First of all make sure you have a valid LAYOUT_ID
, the LAYOUT_ID
can be found in the last step of the AppKit Editor or by clicking on "get code" for the desired layout.
URI:
http://wallkit.instal.com/serve/json/
or with ssl
https://wallkit.instal.com/serve/json/
Description:
Return a JSON representation of the current layout
Parameters:
Required | Name | Type | Description |
---|---|---|---|
required | layout_id | int | the id of the layout |
optional | idfa | string | the IDFA of the iOS device if present |
optional | gaid | string | the GAID of the Android device if present |
optional | android_id | string | the ANDROID ID of the Android device if present |
optional | android_imei | string | the IMEI of the Android device if present |
These parameters are useful for excluding already installed apps from appearing in the API response.
You must use the User profiling enrichment API to obtain this optimization.
Example final url:
http://wallkit.instal.com/serve/json/?layout_id=42&gaid=caa23999-74d1-4635-bba0-164b44a3be3a
Important Notes
Request Headers
You must include the correct http headers for User-Agent and Accept-Language to have the correct content inside the page:
Example user agent:
User-Agent: Mozilla/5.0 (Linux; Android 4.4.4; en-us; Nexus 5 Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2307.2 Mobile Safari/537.36
Example language:
Accept-Language:"it,en-AU;q=0.7,en;q=0.3"
Curl Example
curl --request GET \
--url 'http://wallkit.instal.com/serve/json/?layout_id=2561&gaid=caa23999-74d1-4635-bba0-164b44a3be3a' \
--header 'accept-language: Accept-Language:\"it,en-AU;q=0.7,en;q=0.3\"' \
--header 'user-agent: Mozilla/5.0 (Linux; Android 4.4.4; en-us; Nexus 5 Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2307.2 Mobile Safari/537.36'
Httpie Example
http GET 'http://wallkit.instal.com/serve/json/' \
layout_id==2561 \
gaid=='caa23999-74d1-4635-bba0-164b44a3be3a' \
accept-language:'it,en-AU;q=0.7,en;q=0.3' \
user-agent:'Mozilla/5.0 (Linux; Android 4.4.4; en-us; Nexus 5 Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2307.2 Mobile Safari/537.36'
Response
The json object has the following top level structure:
{
"adtype": "WALLKIT",
"impressionurl": "https://ads.instal.com/api/trkpv/?data_s=....",
"results": 10,
"contents": [...]
}
Attribute | Type | Description |
---|---|---|
adtype |
string | the type of the ad, is always WALLKIT |
impressionurl |
string | the url you must call to count the page view |
results |
int | the number of apps the response contains |
contents |
array | the array containing the apps to be displayed |
When all the contents are displayed correctly you must send an http request to the impressionurl
endpoint to count the page view of the adunit.
App Object Serialization
Every object in the contents
array is in the following form:
{
"app_id": "com.musixmatch.android.lyrify",
"category": "Music & Audio",
"ctatext": "Install",
"destinationurl": "https://ads.instal.com/api/v1/servead/app_store_redirect/?adw=1&id=2581&app_store_id=com.musixmatch.android.lyrify",
"extra": {
...
},
"iconimage": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/icon/14/10/21/f0d83686b79599647cb32abb2eec6531",
"mainimage": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/cover/12/12/21/sQgbA715qrYw90jysl_ss5UuxnNRzTjqlHLro79IeOtVhAdwDZ5-cxtM3w-G9lvTfhkw705",
"rating": "4.4660",
"screenshots": [
{
"url": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/screenshots/16/03/09/2cfa593dd273aa9a574d0edeb2950f8b"
},
{
"url": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/screenshots/16/03/09/30ecaab5841704a9ab3a7af732ccbd47"
},
{
"url": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/screenshots/16/06/09/2f80026b2747713ee844064c4fba4a49"
},
{
"url": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/screenshots/16/06/09/43af03ebb80fddad556fffb6ac5842e6"
},
{
"url": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/screenshots/16/06/09/e723f1fdadc2f36b1c637f3a9ba15f9d"
}
],
"text": "You won't believe just how many lyrics...",
"title": "Musixmatch - Lyrics & Music"
}
Attribute | Type | Description |
---|---|---|
app_id |
string | the application id |
category |
string | the category taken from the app store |
ctatext |
string | the text to be used in a call to action button |
destinationurl |
string | the url to use when redirecting the user to the store |
iconimage |
string | the url of the icon |
mainimage |
string | the url of the image to be used as cover. Can be null on some rare case |
rating |
string | the average user rating on the app . Can be null on some rare case. |
screenshots |
array | an array containing the urls of all the screenshots. every screenshots is represented by an object like {"url": "http://...."} |
text |
string | the description for the current app, can contain simple html tags to provide basic formatting, like <p> for paragraphs or <strong> for bold text |
title |
string | the title of the app |
extra |
object | this object provide extra information for the current app. Every informations inside this object can change without further comunications. |