Endpoint
post /v2/scanZip
Parameters
data string, required |
The binary Zip file in base64-encoded format. |
targeting array |
An array with targeting settings that will be applied before loading the creative. It can contain these key/values:
device either desktop or mobile
language the HTTP accept-header, like en-US
|
Response200 400 401 429
3pas string |
The name of the third-party ad server, if detected successfully. Remains blank otherwise.
|
blocked_by_adblock boolean |
Whether or not the tag will likely be blocked by ad blockers.
|
click_tag_found boolean |
Whether or not a click tag was found in the index.html file.
|
console array |
All errors and warnings generated while loading the creative.
|
cookies array |
All cookies that were dropped by the creative, either set via JavaScript or via an HTTP header.
|
cpu_usage int |
The CPU usage, in milliseconds.
|
creative_rendered boolean |
Equals true in case something was painted on the screen, false otherwise.
|
dialogs array |
Any dialog message the creative shows as a pop-up. Generally created by alert() and confirm().
|
dimensions array |
The detected width and height of the creative.
|
dom_content_loaded int |
The time it took for the DOMContentLoaded event to fire, in milliseconds.
|
file_structure array |
Contains the file structure of the Zip, including the name, type and file size.
|
has_border boolean |
Whether or not the creative has a contrasting border.
|
has_external_assets boolean |
Whether or not the creative loads assets from outside the Zip. Keep this at a minimum to reduce additional DNS lookups, connections, etc.
|
has_video boolean |
Whether or not the creative plays video content.
|
iframes int |
The number of iframes added to the DOM. This should be kept at a minimum to reduce memory usage.
|
local_storage array |
All key/value pairs stored in window.localStorage.
|
memory_usage int |
The amount of RAM memory used, in bytes.
|
meta array |
Meta-data about the scan, like the CPU used, the time it took to complete the scan, the server location, etc.
|
meta_ad_size boolean |
Whether or not the index file has a <meta name="ad.size" content="width=X,height=X"> line, as per IAB standards.
|
minified boolean |
Whether or not all CSS and JavaScript files were minified. Returns false if at least one file was found where more than 5% savings were possible, true otherwise.
|
mobile_friendly boolean |
Whether or not the creative will display fine on a mobile device. Equals true if the creative is either responsive or less than 300 pixels wide.
|
network array |
All network requests and their responses, including a full echo of the HTTP headers. Provides SSL certificate information too.
|
job_id string |
A unique ID assigned to the scan. Store this ID on your own backend to re-fetch result data at a later moment.
|
screenshot array |
A screenshot of the creative. The url points to a PNG image.
The background_color is in hex-format. It generally goes well with the main colors of the screenshot.
|
ssl boolean |
Whether or not the creative is SSL-compliant. If the creative tries to load assets over http, it will equal false .
|
uses_document_write boolean |
Whether or not the creative uses the JS document.write() function. Synchronous code should be avoided.
|
visual_artifacts boolean |
If visual artifacts have been detected. For example, a 300x250 creative that is actualy 301x251 in size.
|
|
cURL
curl "https://{your_name}.api.advalify.io/v2/scanZip"
-H "X-ApiKey: {api_key}"
-X POST
-d '{ "data": "QmFzZTY0IG9mIHppcCBmaWxlIGhlcmU=...", "targeting": { "device": "desktop", "language": "en-US" } }'
Example Response
{
"blocked_by_adblock": false,
"click_tag_found": true,
"console": {
"errors": ["Error: ReferenceError: somefunction is not defined"],
"warnings": [] },
"cookies": [{
"domain": ".advalify.io",
"expires": 1646483649,
"httpOnly": false,
"name": "__gads",
"path": "/",
"priority": "Medium",
"secure": false,
"session": false,
"size": 92,
"value": "ID=1a98edadd0995906-22cd64eb62ba0089:T=1612787649:S=ALNI_MYy4JVsyP7DbDydn73L6WR0-fHnKA" },
{
"domain": ".doubleclick.net",
"expires": 1646483650.085365,
"httpOnly": true,
"name": "IDE",
"path": "/",
"priority": "Medium",
"sameSite": "None",
"secure": true,
"session": false,
"size": 70,
"value": "AHWqTUlqh0OPFbGUeGXQqkXebE_Tf9xEs0i7fspXWBfoQHL0p3ooP5Iv-vx7JYmWKsA" }],
"cpu_usage": 66,
"creative_rendered": true,
"dialogs": [],
"dimensions": {
"height": 90,
"width": 728,
"text": "90x728" },
"dom_content_loaded": 162,
"file_structure": [{
"bytes": 3922,
"name": "front_city.png",
"type": "image" },
{
"bytes": 11860,
"name": "index.html",
"type": "html" },
{
"bytes": 6510,
"name": "google_logo.png",
"type": "image" }],
"has_border": false,
"has_external_assets": false,
"has_video": false,
"html5_library": "GreenSock",
"iframes": 1,
"local_storage": [],
"memory_usage": 2400256,
"meta": {
"api_version": "v2",
"cpu": "AMD 16-Core EPYC 7302P",
"creative_type": "zip",
"device": "Desktop",
"language": "en-US",
"ram": "128GB",
"scan_duration": "1.871964",
"server_location": "ams",
"timestamp": 1612789956,
"ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" },
"meta_ad_size": false,
"minified": true,
"missing_assets": [],
"mobile_friendly": false,
"network": {
"load_size": {
"host_initiated_subload": 0,
"initial_load": 35690,
"total": 35690 },
"measurement_pixels": 0,
"responses": [{
"bytes": 11860,
"headers": {
"content-encoding": "br",
"content-type": "text/html",
"date": "Mon, 08 Feb 2021 13:12:34 GMT",
"last-modified": "Sat, 18 Apr 2020 18:08:16 GMT" },
"is_pixel": false,
"method": "GET",
"resource_type": "document",
"server_ip": "127.0.0.1",
"ssl": true,
"ssl_info": {
"protocol": "TLS 1.3",
"validFrom": 1607455037,
"validTo": 1922815037 },
"status": 200,
"status_text": "",
"timing": 169,
"url": "https://www.advalify.io/tmp/7febf-e5693-1b71c-78616.zip/index.html" },
{
"bytes": 6510,
"headers": {
"accept-ranges": "bytes",
"content-length": "6510",
"content-type": "image/png",
"date": "Mon, 08 Feb 2021 13:12:34 GMT",
"last-modified": "Sat, 18 Apr 2020 18:08:16 GMT" },
"is_pixel": false,
"method": "GET",
"resource_type": "image",
"server_ip": "127.0.0.1",
"ssl": true,
"ssl_info": {
"protocol": "TLS 1.3",
"validFrom": 1607455037,
"validTo": 1922815037 },
"status": 200,
"status_text": "",
"timing": 201,
"url": "https://www.advalify.io/tmp/7febf-e5693-1b71c-78616.zip/google_logo.png" }, {
"..." }] },
"job_id": "7febf-e5693-1b71c-78616",
"screenshot": {
"highres": {
"bytes": 132,
"color": "#d8ecfe",
"mime_type": "image/png",
"url": "https://try.cdn.advalify.io/img/qa-report-983243-29cbfuzn4mhk.png" },
"thumbnail": {
"bytes": 538,
"color": "#d8ecfe",
"mime_type": "image/jpg",
"url": "https://try.cdn.advalify.io/img/qa-report-983243-xz5rs8mc3yuk.jpg" } },
"ssl": {
"compliant": true,
"insecure_urls": [] },
"uses_document_write": false,
"visual_artifacts": false, }
|