{"_id":"5813dbf8b2f6a10f00d08c7e","category":{"_id":"55e76b8196131b2f00bf4b72","pages":["55e8b2c13fef5017000dbd9a","55e8b365f0f1850d00d24a5b","55f88ebd5840d119004346bf","55f8ab55c449610d002daf87","5603759a8d58900d0051e9ee","560375cd90ee490d004403da","5633b5ebc49a7c19001fd091","567353ae47f7010d005bfdc9"],"project":"5429beef1163360800ed31fa","__v":8,"version":"5429beef1163360800ed31fd","sync":{"url":"","isSync":false},"reference":true,"createdAt":"2015-09-02T21:34:57.232Z","from_sync":false,"order":2,"slug":"apis","title":"Integrating with APIs"},"project":"5429beef1163360800ed31fa","user":"569d8ad30306a10d00ce9a1f","__v":0,"parentDoc":null,"version":{"_id":"5429beef1163360800ed31fd","__v":21,"project":"5429beef1163360800ed31fa","createdAt":"2014-09-29T20:19:59.904Z","releaseDate":"2014-09-29T20:19:59.904Z","categories":["5429beef1163360800ed31fe","55e74e1f5d36b32b002563fa","55e7500a73169617001f2e86","55e76b8196131b2f00bf4b72","55e89569cdbb8a350096df9c","55f8935eb089b71700a8364e","55f8a67d3bb4bb0d0022d093","55f9dbefc7ef770d00d9bf6d","5601c21a22ecf60d002b27b3","5601c21ff12aee0d001bb06e","5601c2256c7b610d00280db5","5601c22c22ecf60d002b27b4","5603738d0c78b00d0039af47","5626f70bfcbbc621004ebf52","566f7a1ae144ab0d00e9732f","566f85ca7820960d00c3b93d","56708ce43a32d20d00c45cbf","56708d436995210d003aad8e","5736471abe10a9200030732c","57a82c7aff9bd30e00a6f1c1","591b8500e3992319007190f4"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-10-28T23:15:04.520Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":true,"order":11,"body":"Polymorph uses server side stitching technology to serve ads as fast as content by integrating ads alongside content. Server side stitching is made possible using server-to-server API integration between your CMS and Polymorph ad server\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"What is an Ad Blocker ?\"\n}\n[/block]\nAd Blocker is piece of software that sits on the client side browser. It maintains a blacklist of domains and services which will be blocked from being requested from the user browser. This blacklist has almost all the ad related domains and services, hence ads will fail to load / blocked from being requested.\n\nMany prefer to see ad blocking as a wake-up call that requires a mindset change by publishers and advertisers. Others see yet another tech problem to solve. Enter server side ad insertion.\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"What is server side stitching (Ad Serving) ?\"\n}\n[/block]\nServer-side-stitching, also known as “dynamic ad insertion” or simply “ad stitching,” is the technology that allows companies to make an Ad call from server side and stitch their content and ads together on the CMS level rather than on the client side (browser or app). One of the biggest advantages of SSS is speed. Our globally distributed data-centers ensure that the latency is very low.  The second advantage of SSS is immunity to ad-blocking. \n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"How do we solve Ad Blocking using server side stitching ?\"\n}\n[/block]\nWe strongly believe that our customers deserve modern tools to monetize without compromising user-experience. We took technical decision very early on with this objective. One of the many decisions was to invest in very robust APIs. APIs that will allow our customers unparalleled ability to customize and integrate ads with content. Developers are familiar with Service-oriented-architectures and our goal is to provide the necessary [APIs for web](https://dev.getpolymorph.com/docs/ads-api-web) and [APIs for app](https://dev.getpolymorph.com/v1.0/docs/ads-api-native-apps) so revenue team can easily introduce ad products into their sites and apps.  \n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/adf29ee-Screen_Shot_2016-10-28_at_4.03.21_PM.png\",\n        \"Screen Shot 2016-10-28 at 4.03.21 PM.png\",\n        1036,\n        708,\n        \"#d6d8db\"\n      ]\n    }\n  ]\n}\n[/block]\nDevelopers make a RESTful API ad request from their CMS/server to Polymorph. Polymorph run several computations and finally take the [decision](https://dev.getpolymorph.com/v1.0/docs/ad-selection-and-optimization) on the final ad for that ad request. Polymorph returns all the necessary meta-data related to the selected ad in a JSON format. This is no different than requesting your content server for receiving a piece a content. The final JSON of the ad mainly consists [not limited to] of \n\n* Title (String)\n* Description (String) \n* Brand name (String)\n* Brand Logo (Image)\n* Image Creative (Image)\n* Click through tracker (URL)\n* Impression tracker (URL)\n\nAll these ad elements will be part of the Polymorph API response. Developers will be assemble these elements as part of the webpage or app along with the rest of the content. Once assembled, the entire content is returned to the client and will be rendered by the browser/app.\n\nPolymorph allows Images and URLs to be white labeled (using CNAME) so adblocker can never detect/block the impressions and clicks. You can find more details about [**Tracking & Asset URLs Whitelabeling** ](https://dev.getpolymorph.com/docs/white-labeling-features) in **section 2** of this doc.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Benefits of SSS ?\"\n}\n[/block]\n* Speed, ads load along with the content (0% latency compared to content load time).\n* Ad Blocker will be bypassed and ad will successfully load on client side \n* All impressions and clicks will be tracked without any issues\n* User experience will be seamless\n[block:api-header]\n{\n  \"title\": \"How do we solve Ad Blocking using client-side JavaScript Integration ?\"\n}\n[/block]\nAd blocker maintains a massive blacklisted domain list which usually blocks any ad-server Javascript library from loading on the publisher page, so no ad requests are sent out and no ads are loaded on the page. Hence Blocked completely. \n\n**Solution**\n* White labeling  [**Polymorph JavaScript library** ](https://dev.getpolymorph.com/v1.0/docs/renderjs-v2-api) so the file loads from one of your subdomains. Example : http://assets.yourdomain.com/.../render.v2.js\n\n* Whitelabeling Polymorph Ads API endpoint, Tracking pixel and asset URL's to be served from one of your sub-domains . See [**Tracking & Asset URLs Whitelabeling** ](https://dev.getpolymorph.com/docs/white-labeling-features) in **section 2** of this doc.\n\n* Since First party tracking pixels (impressions, clicks and viewability) are white labeled now, they will not be blocked by the Ad Blocker software on the client side. Hence you have solved the Ad serving with Ad Blocker challenge. \n\nSince third party advertiser pixels (impressions, clicks) are not white labeled, Ad Blocker will block those pixels if they are fired from client side due to their blacklisted domains. To solve this, we have built a unique technology which fires all the associated third party pixels of an Ad from server side and allowing your advertisers to still be able to track their metrics with this approach.","excerpt":"","slug":"server-side-ad-insertion-ssai","type":"basic","title":"Server Side Ad Serving & Tracking"}

Server Side Ad Serving & Tracking


Polymorph uses server side stitching technology to serve ads as fast as content by integrating ads alongside content. Server side stitching is made possible using server-to-server API integration between your CMS and Polymorph ad server [block:api-header] { "type": "basic", "title": "What is an Ad Blocker ?" } [/block] Ad Blocker is piece of software that sits on the client side browser. It maintains a blacklist of domains and services which will be blocked from being requested from the user browser. This blacklist has almost all the ad related domains and services, hence ads will fail to load / blocked from being requested. Many prefer to see ad blocking as a wake-up call that requires a mindset change by publishers and advertisers. Others see yet another tech problem to solve. Enter server side ad insertion. [block:api-header] { "type": "basic", "title": "What is server side stitching (Ad Serving) ?" } [/block] Server-side-stitching, also known as “dynamic ad insertion” or simply “ad stitching,” is the technology that allows companies to make an Ad call from server side and stitch their content and ads together on the CMS level rather than on the client side (browser or app). One of the biggest advantages of SSS is speed. Our globally distributed data-centers ensure that the latency is very low. The second advantage of SSS is immunity to ad-blocking. [block:api-header] { "type": "basic", "title": "How do we solve Ad Blocking using server side stitching ?" } [/block] We strongly believe that our customers deserve modern tools to monetize without compromising user-experience. We took technical decision very early on with this objective. One of the many decisions was to invest in very robust APIs. APIs that will allow our customers unparalleled ability to customize and integrate ads with content. Developers are familiar with Service-oriented-architectures and our goal is to provide the necessary [APIs for web](https://dev.getpolymorph.com/docs/ads-api-web) and [APIs for app](https://dev.getpolymorph.com/v1.0/docs/ads-api-native-apps) so revenue team can easily introduce ad products into their sites and apps. [block:image] { "images": [ { "image": [ "https://files.readme.io/adf29ee-Screen_Shot_2016-10-28_at_4.03.21_PM.png", "Screen Shot 2016-10-28 at 4.03.21 PM.png", 1036, 708, "#d6d8db" ] } ] } [/block] Developers make a RESTful API ad request from their CMS/server to Polymorph. Polymorph run several computations and finally take the [decision](https://dev.getpolymorph.com/v1.0/docs/ad-selection-and-optimization) on the final ad for that ad request. Polymorph returns all the necessary meta-data related to the selected ad in a JSON format. This is no different than requesting your content server for receiving a piece a content. The final JSON of the ad mainly consists [not limited to] of * Title (String) * Description (String) * Brand name (String) * Brand Logo (Image) * Image Creative (Image) * Click through tracker (URL) * Impression tracker (URL) All these ad elements will be part of the Polymorph API response. Developers will be assemble these elements as part of the webpage or app along with the rest of the content. Once assembled, the entire content is returned to the client and will be rendered by the browser/app. Polymorph allows Images and URLs to be white labeled (using CNAME) so adblocker can never detect/block the impressions and clicks. You can find more details about [**Tracking & Asset URLs Whitelabeling** ](https://dev.getpolymorph.com/docs/white-labeling-features) in **section 2** of this doc. [block:api-header] { "type": "basic", "title": "Benefits of SSS ?" } [/block] * Speed, ads load along with the content (0% latency compared to content load time). * Ad Blocker will be bypassed and ad will successfully load on client side * All impressions and clicks will be tracked without any issues * User experience will be seamless [block:api-header] { "title": "How do we solve Ad Blocking using client-side JavaScript Integration ?" } [/block] Ad blocker maintains a massive blacklisted domain list which usually blocks any ad-server Javascript library from loading on the publisher page, so no ad requests are sent out and no ads are loaded on the page. Hence Blocked completely. **Solution** * White labeling [**Polymorph JavaScript library** ](https://dev.getpolymorph.com/v1.0/docs/renderjs-v2-api) so the file loads from one of your subdomains. Example : http://assets.yourdomain.com/.../render.v2.js * Whitelabeling Polymorph Ads API endpoint, Tracking pixel and asset URL's to be served from one of your sub-domains . See [**Tracking & Asset URLs Whitelabeling** ](https://dev.getpolymorph.com/docs/white-labeling-features) in **section 2** of this doc. * Since First party tracking pixels (impressions, clicks and viewability) are white labeled now, they will not be blocked by the Ad Blocker software on the client side. Hence you have solved the Ad serving with Ad Blocker challenge. Since third party advertiser pixels (impressions, clicks) are not white labeled, Ad Blocker will block those pixels if they are fired from client side due to their blacklisted domains. To solve this, we have built a unique technology which fires all the associated third party pixels of an Ad from server side and allowing your advertisers to still be able to track their metrics with this approach.