{"id":1018,"date":"2018-12-28T12:02:15","date_gmt":"2018-12-28T12:02:15","guid":{"rendered":"http:\/\/www.netexl.com\/blog\/?p=1018"},"modified":"2026-04-02T09:41:55","modified_gmt":"2026-04-02T09:41:55","slug":"display-cpmstar-ads-at-the-start-of-html5-game","status":"publish","type":"post","link":"https:\/\/www.netexl.com\/blog\/display-cpmstar-ads-at-the-start-of-html5-game\/","title":{"rendered":"Display CPMStar ads at the start of HTML5 game"},"content":{"rendered":"<p>Create a css file\u00a0as following<\/p>\n<pre class=\"lang:default decode:true \">* {\r\n\tpadding: 0;\r\n\tmargin: 0;\r\n}\r\nbody{\r\n\tpadding:0px;\r\n\tmargin:0px;\r\n\toverflow-x: hidden;\r\n}\r\ncanvas {\r\n\ttouch-action-delay: none;\r\n\ttouch-action: none;\r\n\t-ms-touch-action: none;\r\n}\r\n#topContainer{\r\n\tposition: relative; overflow: hidden;\r\n}\r\n#adContainer{\r\n     position:absolute;\r\n     top:0px;\r\n     left:0px;\r\n     width:100%;\r\n     height:100%;\r\n     text-align:center;\r\n     background-color:rgba(0,0,0,0.9);\r\n     z-index:1000;\r\n}\r\n#closeBtn{\r\n     cursor:pointer;\r\n     background-color:#2196F3;\r\n     width:250px;\r\n     margin:20px auto;\r\n     padding:10px;\r\n     font:bold 14px Arial;\r\n     color:#FFF;\r\n     text-transform:uppercase;     \r\n}<\/pre>\n<p>Create game\u00a0HTML\u00a0as following<\/p>\n<pre class=\"lang:default decode:true \">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n    &lt;title&gt;HTML5 Game&lt;\/title&gt;\r\n    &lt;meta name=\"author\" content=\"Netexl\" \/&gt;\r\n    &lt;meta name=\"description\" content=\"HTML5 Game.\" \/&gt;\r\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\" \/&gt;\r\n\t&lt;link rel=\"stylesheet\" href=\"app.css\"&gt;\r\n    &lt;script src=\"phaser.min.js\"&gt;&lt;\/script&gt;\r\n    &lt;script src=\"game.js\"&gt;&lt;\/script&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n    &lt;div id=\"topContainer\" style=\"width:500px;\"&gt;\r\n\t\t&lt;div id=\"mygame\"&gt;&lt;\/div&gt;\r\n\t\t&lt;div id=\"adContainer\"&gt;\r\n\t\t\t  &lt;div style=\"margin-top:20px\"&gt;\r\n\t\t\t\t   &lt;script language=\"Javascript\"&gt;\r\n\t\t\t\t\t\tvar cpmstar_rnd=Math.round(Math.random()*999999);\r\n\t\t\t\t\t\tvar cpmstar_pid=xxxxx;\r\n\t\t\t\t\t\tdocument.writeln(\"&lt;SCR\"+\"IPT language='Javascript' src='\/\/server.cpmstar.com\/view.aspx?poolid=\"+cpmstar_pid+\"&amp;script=1&amp;rnd=\"+cpmstar_rnd+\"'&gt;&lt;\/SCR\"+\"IPT&gt;\");\r\n\t\t\t\t   &lt;\/script&gt;\r\n\t\t\t  &lt;\/div&gt;\r\n\t\t\t  &lt;div id=\"closeBtn\" onclick=\"closeAd()\"&gt;&lt;\/div&gt;\r\n\t\t &lt;\/div&gt;\r\n\t&lt;\/div&gt;\r\n    &lt;script src=\"ads.js\"&gt;&lt;\/script&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p>Replace <strong>cpmstar_pid<\/strong> with your pid<\/p>\n<p>The ad is initialized and loaded\u00a0as soon as HTML is loaded. The ad is positioned on top of HTML5 game area.<\/p>\n<p>We will initialized a timer which will enable closeAd button after\u00a0a predefined interval (normally 5 or 10 secs)<\/p>\n<pre class=\"lang:default decode:true \">var counter = 0;\r\nvar counterId = setInterval(adCounter, 1000);\r\nvar canClose = false;\r\nfunction closeAd(){\r\n     if(canClose){\r\n\t\tdocument.getElementById(\"topContainer\").removeChild(document.getElementById(\"adContainer\"));\t\t\t\t\t\r\n     }\r\n}\r\nfunction adCounter() {\r\n     if (counter &gt; 9) {\r\n          clearInterval(counterId);\r\n          document.getElementById(\"closeBtn\").innerHTML = \"Close and play game\";\r\n          canClose = true;\r\n          return;\r\n     }\r\n     counter++;\r\n     document.getElementById(\"closeBtn\").innerHTML = \"You can close ad in \" + (10 - counter).toString() + \" seconds\";\r\n}<\/pre>\n<p>Below is the skeleton game code.<\/p>\n<pre class=\"lang:default decode:true\">\/\/ ---------------boot---------------------\r\nBoot = {\r\n    init: function () {\r\n    },\r\n    preload: function () {\r\n\t\tmygame.stage.backgroundColor = '#52bad2';\r\n        mygame.load.spritesheet(\"background\", \"background.png\", 250, 250);\r\n        mygame.load.image(\"loading\", \"loading.png\");\t\t\r\n\t},\r\n    create: function () {\r\n        mygame.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;\r\n        mygame.stage.scale.pageAlignHorizontally = true;\r\n        mygame.stage.scale.pageAlignVeritcally = true;\r\n\t    mygame.state.start(\"Loading\");\t\r\n\t}\r\n};\r\n\/\/ ---------------loading---------------------\r\nLoading = {\r\n    init: function () {\r\n    },\r\n    preload: function () {\r\n\t\tmygame.stage.backgroundColor = '#52bad2';\r\n        var loadingBar = mygame.add.sprite(this.world.centerX, this.world.centerY, \"loading\");\r\n        loadingBar.anchor.setTo(0.5);\r\n        mygame.load.setPreloadSprite(loadingBar);\r\n    },\r\n    create: function () {\r\n        mygame.state.start(\"MainMenu\");\r\n    }\r\n};\r\n\r\nvar MainMenu = {\r\n    init: function () {\r\n    },\r\n    preload: function () {\r\n    },\r\n    create: function () {\r\n\t\tmygame.stage.backgroundColor = '#52bad2';\r\n\t\tvar text = mygame.add.text(mygame.world.centerX, mygame.world.centerY, 'Game Area', { font: '24px Arial', fill: '#fff' });\r\n\t\ttext.anchor.setTo(0.5);\r\n    }\r\n};\r\n\r\nwindow.onload = function () {\r\n    mygame = new Phaser.Game(500, 500, Phaser.AUTO, \"mygame\");\r\n    mygame.state.add(\"Boot\", Boot);\r\n    mygame.state.add(\"Loading\", Loading);\r\n    mygame.state.add(\"MainMenu\", MainMenu);\r\n    mygame.state.start(\"Boot\");\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Create a css file\u00a0as following * { padding: 0; margin: 0; } body{ padding:0px; margin:0px; overflow-x: hidden; } canvas { touch-action-delay: none; touch-action: none; -ms-touch-action: none; } #topContainer{ position: relative; overflow: hidden; } #adContainer{ position:absolute; top:0px; left:0px; width:100%; height:100%; text-align:center; background-color:rgba(0,0,0,0.9); z-index:1000; } #closeBtn{ cursor:pointer; background-color:#2196F3; width:250px; margin:20px auto; padding:10px; font:bold 14px Arial; color:#FFF; text-transform:uppercase; } Create game\u00a0HTML\u00a0as following &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;HTML5 Game&lt;\/title&gt; &lt;meta name=&#8221;author&#8221; content=&#8221;Netexl&#8221; \/&gt; &lt;meta name=&#8221;description&#8221; content=&#8221;HTML5 Game.&#8221; \/&gt; &lt;meta name=&#8221;viewport&#8221; content=&#8221;width=device-width, initial-scale=1, maximum-scale=1&#8243; \/&gt; &lt;link rel=&#8221;stylesheet&#8221; href=&#8221;app.css&#8221;&gt; &lt;script src=&#8221;phaser.min.js&#8221;&gt;&lt;\/script&gt; &lt;script src=&#8221;game.js&#8221;&gt;&lt;\/script&gt; &lt;\/head&gt; &lt;body&gt; &lt;div id=&#8221;topContainer&#8221; style=&#8221;width:500px;&#8221;&gt; &lt;div id=&#8221;mygame&#8221;&gt;&lt;\/div&gt; &lt;div id=&#8221;adContainer&#8221;&gt; &lt;div style=&#8221;margin-top:20px&#8221;&gt; &lt;script language=&#8221;Javascript&#8221;&gt; var cpmstar_rnd=Math.round(Math.random()*999999); var cpmstar_pid=xxxxx; document.writeln(&#8220;&lt;SCR&#8221;+&#8221;IPT language=&#8217;Javascript&#8217; src=&#8217;\/\/server.cpmstar.com\/view.aspx?poolid=&#8221;+cpmstar_pid+&#8221;&amp;script=1&amp;rnd=&#8221;+cpmstar_rnd+&#8221;&#8216;&gt;&lt;\/SCR&#8221;+&#8221;IPT&gt;&#8221;); &lt;\/script&gt; &lt;\/div&gt; &lt;div id=&#8221;closeBtn&#8221; onclick=&#8221;closeAd()&#8221;&gt;&lt;\/div&gt; &lt;\/div&gt; &lt;\/div&gt; &lt;script src=&#8221;ads.js&#8221;&gt;&lt;\/script&gt; &lt;\/body&gt; &lt;\/html&gt; Replace cpmstar_pid with your pid The ad is initialized and loaded\u00a0as soon as HTML is loaded. The ad is positioned on top of HTML5 game area. We will initialized a timer which[&#8230;]<\/p>\n","protected":false},"author":5,"featured_media":1539,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,24,22],"tags":[],"class_list":["post-1018","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-html5","category-javascript","category-quick-tip"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/posts\/1018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/comments?post=1018"}],"version-history":[{"count":4,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/posts\/1018\/revisions"}],"predecessor-version":[{"id":1027,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/posts\/1018\/revisions\/1027"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/media\/1539"}],"wp:attachment":[{"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/media?parent=1018"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/categories?post=1018"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/tags?post=1018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}