{"_id":"58c7b0e29dba430f00500b08","version":{"_id":"574ff4bd3fa1870e00889ba9","project":"574ff4bd3fa1870e00889ba6","__v":21,"createdAt":"2016-06-02T08:56:29.492Z","releaseDate":"2016-06-02T08:56:29.492Z","categories":["574ff4bd3fa1870e00889baa","577278ecdceb570e003a9001","577279865617b117009e643f","577279985617b117009e6440","577279bc8c48e00e00503504","5774fe18605b770e0037be8a","577ce3ad87acf617003c4187","577f8476a77c700e006a6c52","57b486ae0d2b640e00e9d3f5","57b722133d3e620e004ec74b","57bd95f00fe3a00e003e2cc5","57c8349359cd4b0e00b888ef","57c8349b5754fa1700b12242","57cedb0bad483e0e00890239","57cedbe807d7ea0e00e438cc","57d82967156ef72b007ffcd8","58ee353ad1ee2f0f0034a13d","596623221738df00298622a5","59a51730192dba000fc9ca38","59a8129f1e7b26000fa0fb1a","5a0322bf044b6f001c236e36"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"3.0.0","version":"3.0"},"user":"5770dd042659e20e00c90a98","project":"574ff4bd3fa1870e00889ba6","category":{"_id":"57b486ae0d2b640e00e9d3f5","__v":0,"project":"574ff4bd3fa1870e00889ba6","version":"574ff4bd3fa1870e00889ba9","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-08-17T15:45:50.062Z","from_sync":false,"order":7,"slug":"native-ads-mediation-layer","title":"Android SDK"},"__v":0,"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-03-14T08:59:14.490Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"settings":"","results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":8,"body":"The small layout ad is a mediation of standard units that can be configured from the PubNative dashboard. The small layout ad view contains a predefined set of components such as, icon, banner, title, description, CTA and disclosure view. You can choose the specific ad type from the PubNative dashboard such (i.e. banner only, description-banner-icon or title-icon-description etc.).\n\nThe predefined size for the small layout ad view is 320 x 80.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/72167ad-small_layout.png\",\n        \"small layout.png\",\n        153,\n        327,\n        \"#dfdfe2\"\n      ],\n      \"caption\": \"Small Layout Example\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"Getting Started\"\n}\n[/block]\n* Before integrating small ad layouts in to your app, you’ll need to create an account on the PubNative Dashboard, and integrate the SDK into your project.\n* Add a small layout ad unit to your app in the PubNative Dashboard\n* Make sure you have added the ad network SDKs you wish to use to your app\n[block:api-header]\n{\n  \"title\": \"Integration\"\n}\n[/block]\n##1. Create Layout\nYou can create a predefined small layout ad request using PNSmallLayout\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"PNSmallLayout layout = new PNSmallLayout();\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n##2. Integrate Lifecycle Callbacks\nYou can track the load process, user interaction and ad behavior with callbacks using setLoadListener(<YOUR_LISTENER>) method. You need to set listener as\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"layout.setLoadListener(new PNSmallLayout.LoadListener() {\\n\\n    :::at:::Override\\n    public void onPNLayoutLoadFinish(PNLayout layout) {\\n       // layout returned\\n\\n    }\\n\\n    @Override\\n    public void onPNLayoutLoadFail(PNLayout layout, Exception exception) {\\n       // ad request failed\\n    }\\n});\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n##3. Load Ad\nTo load a small layout advertisement\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"layout.load(<CONTEXT>, \\\"<YOUR_APP_TOKEN_HERE>\\\", \\\"<YOUR_PLACEMENT_NAME_HERE>\\\");\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\nOnce an ad is loaded, You will get a fully created view that can be placed in any ViewGroup.\n\n##4. Use the ad\nOnce the load callback is over, this layout returns as a result an initialised view that can be used inside your own ad container. Impressions and clicks are tracked directly from the SDK, but you need to call startTracking method so the layout starts listening for clicks and checking the ad in the screen. You can extract the view using getView(Context) method.\n\nAny interaction with this methods without a previously loaded layout will do nothing.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"PNSmallLayoutView layoutView = layout.getView(<CONTEXT>);\\n// Inject the view into your viewContainer\\nlayout.startTrackingView();\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\nIt is highly recommended that if you have a scrolling view and you want to stop tracking the ad view (which is recommended when the ad disappears from the screen), you can use the stopTrackingView() method\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"layout.stopTrackingView();\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n##5. Configure your ad view\n\nAdditionally, you can change the look and feel of some items of the ad using the PNSmallLayoutView object returned from the getView(Context) method, this are some methods that you can use for that:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"layout.setTitleTextColor(int color) \\nlayout.setTitleTextSize(float size)\\nlayout.setTitleTextFont(Typeface font)\\nlayout.setDescriptionTextColor(int color) \\nlayout.setDescriptionTextSize(float size)\\nlayout.setDescriptionTextFont(Typeface font)\\nlayout.setIconPosition(IconPosition position)\\nlayout.setCallToActionBackgroundColor(int color)\\nlayout.setCallToActionTextColor(int color)\\nlayout.setCallToActionTextSize(float size)\\nlayout.setCallToActionTextFont(Typeface font)\\nlayout.setAdBackgroundColor(int color)\\nlayout.setContainerBackgroundColor(int color)\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]","excerpt":"","slug":"standard-ad-layouts","type":"basic","title":"Small Ad Layout"}
The small layout ad is a mediation of standard units that can be configured from the PubNative dashboard. The small layout ad view contains a predefined set of components such as, icon, banner, title, description, CTA and disclosure view. You can choose the specific ad type from the PubNative dashboard such (i.e. banner only, description-banner-icon or title-icon-description etc.). The predefined size for the small layout ad view is 320 x 80. [block:image] { "images": [ { "image": [ "https://files.readme.io/72167ad-small_layout.png", "small layout.png", 153, 327, "#dfdfe2" ], "caption": "Small Layout Example" } ] } [/block] [block:api-header] { "title": "Getting Started" } [/block] * Before integrating small ad layouts in to your app, you’ll need to create an account on the PubNative Dashboard, and integrate the SDK into your project. * Add a small layout ad unit to your app in the PubNative Dashboard * Make sure you have added the ad network SDKs you wish to use to your app [block:api-header] { "title": "Integration" } [/block] ##1. Create Layout You can create a predefined small layout ad request using PNSmallLayout [block:code] { "codes": [ { "code": "PNSmallLayout layout = new PNSmallLayout();", "language": "java" } ] } [/block] ##2. Integrate Lifecycle Callbacks You can track the load process, user interaction and ad behavior with callbacks using setLoadListener(<YOUR_LISTENER>) method. You need to set listener as [block:code] { "codes": [ { "code": "layout.setLoadListener(new PNSmallLayout.LoadListener() {\n\n @Override\n public void onPNLayoutLoadFinish(PNLayout layout) {\n // layout returned\n\n }\n\n @Override\n public void onPNLayoutLoadFail(PNLayout layout, Exception exception) {\n // ad request failed\n }\n});", "language": "java" } ] } [/block] ##3. Load Ad To load a small layout advertisement [block:code] { "codes": [ { "code": "layout.load(<CONTEXT>, \"<YOUR_APP_TOKEN_HERE>\", \"<YOUR_PLACEMENT_NAME_HERE>\");", "language": "java" } ] } [/block] Once an ad is loaded, You will get a fully created view that can be placed in any ViewGroup. ##4. Use the ad Once the load callback is over, this layout returns as a result an initialised view that can be used inside your own ad container. Impressions and clicks are tracked directly from the SDK, but you need to call startTracking method so the layout starts listening for clicks and checking the ad in the screen. You can extract the view using getView(Context) method. Any interaction with this methods without a previously loaded layout will do nothing. [block:code] { "codes": [ { "code": "PNSmallLayoutView layoutView = layout.getView(<CONTEXT>);\n// Inject the view into your viewContainer\nlayout.startTrackingView();", "language": "java" } ] } [/block] It is highly recommended that if you have a scrolling view and you want to stop tracking the ad view (which is recommended when the ad disappears from the screen), you can use the stopTrackingView() method [block:code] { "codes": [ { "code": "layout.stopTrackingView();", "language": "java" } ] } [/block] ##5. Configure your ad view Additionally, you can change the look and feel of some items of the ad using the PNSmallLayoutView object returned from the getView(Context) method, this are some methods that you can use for that: [block:code] { "codes": [ { "code": "layout.setTitleTextColor(int color) \nlayout.setTitleTextSize(float size)\nlayout.setTitleTextFont(Typeface font)\nlayout.setDescriptionTextColor(int color) \nlayout.setDescriptionTextSize(float size)\nlayout.setDescriptionTextFont(Typeface font)\nlayout.setIconPosition(IconPosition position)\nlayout.setCallToActionBackgroundColor(int color)\nlayout.setCallToActionTextColor(int color)\nlayout.setCallToActionTextSize(float size)\nlayout.setCallToActionTextFont(Typeface font)\nlayout.setAdBackgroundColor(int color)\nlayout.setContainerBackgroundColor(int color)", "language": "java" } ] } [/block]