1

Тема: Монетизація ігор

Привіт всім. Зацікавився такою темою як монетизація ігор. В планах є створення простої ігрульки на андроїд з допомогою html, js, а потім конвертувати з допомогою того ж PhoneGap Build. Питання наступне:
хтось стикався з монетизацією таких ігор? Чи можливо взагалі їх монетизувати? Наприклад в AdMob можна монетезувати ігри які написані на джаві чи шарпі, там потрібно підключати бібліотеки і викликати їх. Чи є можливість таке робити на вебі? Дякую.

Подякували: 221VOLT, Monolith, ostap34PHP3

2

Re: Монетизація ігор

http://phonegap.com/blog/2016/08/09/appfeel-guest-post/

тут спілкуються українці (серед них є програмісти)
https://discord.gg/Zk29v4P
Подякували: Kasper, ostap34PHP2

3

Re: Монетизація ігор

дякую. Знайшов в ютюбі відосики про монетизацію адмоб, але всеодно щось в мене не виходить)
На гіті найшов тест адмоб реклами, але в мене реклама щось не висвічується на телефоні. 

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="msapplication-tap-highlight" content="no" />
<meta name="format-detection" content="telephone=no" />

<!-- to avoid the warning of content security policy -->
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>

<title>Hello World</title>
<script>
  // fix wp8 view port issue, see:
  // https://github.com/floatinghotpot/cordova-admob-pro/issues/109
  // https://coderwall.com/p/zk_2la/responsive-design-in-ie-10-on-windows-phone-8
  // http://stackoverflow.com/questions/24007577/windows-phone-8-viewport-issue
(function() {
  if ("-ms-user-select" in document.documentElement.style && navigator.userAgent.match(/IEMobile\/10\.0/)) {
    var msViewportStyle = document.createElement("style");
    msViewportStyle.appendChild(
      document.createTextNode("@-ms-viewport{width:auto!important}")
    );
    document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
  }
})();
</script>

<!-- optional -->
<script type="text/javascript" src="jquery-1.9.js"></script>

<!-- must-have, which will be created by cordova prepare/build -->
<script type="text/javascript" src="cordova.js"></script>

<style type="text/css">
body {
width: 100%;
height: 100%;
margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: gray;
  color: white;
}

div#fullpage {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0px solid red;
  text-align: center;
  vertical-align: middle;
}

select, textarea {
  width: calc(100% - 20px);
  padding: 0px;
  margin: 5px;
}

button {
  width: calc(50% - 40px);
  padding: 10px;
  margin: 5px;
}

</style>
</head>

<body>
<script>
  // place our admob ad unit id here
  var admobid = {};
  if( /(android)/i.test(navigator.userAgent) ) {
    admobid = { // for Android
      banner: 'ca-app-pub-6869992474017983/9375997553',
      interstitial: 'ca-app-pub-6869992474017983/1657046752'
    };
  } else if(/(ipod|iphone|ipad)/i.test(navigator.userAgent)) {
    admobid = { // for iOS
      banner: 'ca-app-pub-6869992474017983/4806197152',
      interstitial: 'ca-app-pub-6869992474017983/7563979554'
    };
  } else {
    admobid = { // for Windows Phone
      banner: 'ca-app-pub-6869992474017983/8878394753',
      interstitial: 'ca-app-pub-6869992474017983/1355127956'
    };
  }

  function createSelectedBanner(){
    if(AdMob) AdMob.createBanner({
      adId: admobid.banner,
      overlap: $('#overlap').is(':checked'),
      offsetTopBar: $('#offsetTopBar').is(':checked'),
      adSize: $('#adSize').val(),
      position: $('#adPosition').val(),
    });
  }

  function showBannerAtPosition(){
    if(AdMob) AdMob.showBanner( $('#adPosition').val() );
  }

  function onDeviceReady() {
    if (! AdMob) { alert( 'admob plugin not ready' ); return; }

    initAd();

    // display a banner at startup
    createSelectedBanner();
  }

  function initAd(){
    AdMob.getAdSettings(function(info){
      console.log('adId: ' + info.adId + '\n' + 'adTrackingEnabled: ' + info.adTrackingEnabled);
    }, function(){
      console.log('failed to get user ad settings');
    });

    AdMob.setOptions({
      // adSize: 'SMART_BANNER',
      position: AdMob.AD_POSITION.BOTTOM_CENTER,
      isTesting: true, // set to true, to receiving test ad for testing purpose
      bgColor: 'black', // color name, or '#RRGGBB'
      // autoShow: true // auto show interstitial ad when loaded, set to false if prepare/show
      // offsetTopBar: false, // avoid overlapped by status bar, for iOS7+
    });

    // new events, with variable to differentiate: adNetwork, adType, adEvent
    $(document).on('onAdFailLoad', function(e){
      // when jquery used, it will hijack the event, so we have to get data from original event
      if(typeof e.originalEvent !== 'undefined') e = e.originalEvent;
      var data = e.detail || e.data || e;

      alert('error: ' + data.error +
          ', reason: ' + data.reason +
          ', adNetwork:' + data.adNetwork +
          ', adType:' + data.adType +
          ', adEvent:' + data.adEvent); // adType: 'banner', 'interstitial', etc.
    });
    $(document).on('onAdLoaded', function(e){
    });
    $(document).on('onAdPresent', function(e){
    });
    $(document).on('onAdLeaveApp', function(e){
    });
    $(document).on('onAdDismiss', function(e){
    });

    $('#btn_create').click(createSelectedBanner);
    $('#btn_remove').click(function(){
      AdMob.removeBanner();
    });

    $('#btn_show').click(showBannerAtPosition);
    $('#btn_hide').click(function(){
      AdMob.hideBanner();
    });

    // test interstitial ad
    $('#btn_prepare').click(function(){
      AdMob.prepareInterstitial({
        adId:admobid.interstitial,
        autoShow: $('#autoshow').is(':checked'),
      });
    });

    $('#btn_showfull').click(function(){
      AdMob.showInterstitial();
    });

    // test case for #256, https://github.com/floatinghotpot/cordova-admob-pro/issues/256
    $(document).on('backbutton', function(){
      if(window.confirm('Are you sure to quit?')) navigator.app.exitApp();
    });

    // test case #283, https://github.com/floatinghotpot/cordova-admob-pro/issues/283
    $(document).on('resume', function(){
      AdMob.showInterstitial();
    });
  }

  // test the webview resized properly
  $(window).resize(function(){
    $('#textinfo').html('web view: ' + $(window).width() + " x " + $(window).height());
  });

  $(document).ready(function(){
    // on mobile device, we must wait the 'deviceready' event fired by cordova
    if(/(ipad|iphone|ipod|android|windows phone)/i.test(navigator.userAgent)) {
      document.addEventListener('deviceready', onDeviceReady, false);
    } else {
      onDeviceReady();
    }
  });

</script>
  <div id="fullpage">
    <p>Demo for AdMob Plugin</p>
    <h3>Banner</h3>
    <input type='checkbox' id='overlap' />overlap
    <input type='checkbox' id='offsetTopBar' />offsetTopBar
    <br/>
    <select id="adSize">
      <option value='SMART_BANNER'>SMART_BANNER</option>
      <option value='BANNER'>BANNER</option>
      <option value='MEDIUM_RECTANGLE'>MEDIUM_RECTANGLE</option>
      <option value='FULL_BANNER'>FULL_BANNER</option>
      <option value='LEADERBOARD'>LEADERBOARD</option>
      <option value='SKYSCRAPER'>SKYSCRAPER</option>
    </select><br/>
    <select id="adPosition">
      <option value='1'>Top Left</option>
      <option value='2'>Top Center</option>
      <option value='3'>Top Right</option>
      <option value='4'>Left</option>
      <option value='5'>Center</option>
      <option value='6'>Right</option>
      <option value='7'>Bottom Left</option>
      <option value='8' selected>Bottom Center</option>
      <option value='9'>Bottom Right</option>
    </select><br/>
    <button id='btn_create'>createBanner</button>
    <button id='btn_remove'>removeBanner</button>
    <button id='btn_show'>showBanner</button>
    <button id='btn_hide'>hideBanner</button>
    <hr />

    <h3>Interstitial</h3>
    <input type='checkbox' id='autoshow' checked />auto show when ready<br />
    <button id='btn_prepare'>prepareInterstitial</button>
    <button id='btn_showfull'>showInterstitial</button>

    <p><textarea rows=4 cols=30 id='textinfo'></textarea></p>

  </div>
</body>
</html>

Ось силка на гіт:
https://github.com/floatinghotpot/cordova-admob-pro
Хто готовий допомогти неуку?) Готовий за допомогу скинути на пивас)

Подякували: ostap34PHP1

4

Re: Монетизація ігор

можливо не працює через те що ці дані потрібно замінити на свої:

      banner: 'ca-app-pub-6869992474017983/9375997553',
      interstitial: 'ca-app-pub-6869992474017983/1657046752'

а може я ще десь шось провтикав. Шукаю добрих людей хто може трохи мені розшарити)

5

Re: Монетизація ігор

вдалося вивести рекламу:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width" />
<title>Тест банер</title>
<!-- optional -->
<script type="text/javascript" src="jquery-3.1.1.min.js"></script>
<!-- must-have, which will be created by cordova prepare/build -->
<script type="text/javascript" src="cordova.js"></script>


<script>
   function initAds() {
      if (admob) {
        var adPublisherIds = {
          ios : {
            banner: 'ca-app-pub-6869992474017983/4806197152',
            interstitial: 'ca-app-pub-6869992474017983/7563979554'
          },
          android : {
            banner : "ca-app-pub-6869992474017983/9375997553",
            interstitial : "ca-app-pub-6869992474017983/1657046752"
          }
        };

        var admobid = (/(android)/i.test(navigator.userAgent)) ? adPublisherIds.android : adPublisherIds.ios;

        admob.setOptions({
          publisherId:      admobid.banner,
          interstitialAdId: admobid.interstitial,
        //  tappxIdiOS:       "/XXXXXXXXX/Pub-XXXX-iOS-IIII",
        //  tappxIdAndroid:   "/XXXXXXXXX/Pub-XXXX-Android-AAAA",
          tappxShare:       0.5
        });

        registerAdEvents();

      } else {
        alert('AdMobAds plugin not ready');
      }
    }

    function onAdLoaded(e) {
      if (e.adType === admob.AD_TYPE.INTERSTITIAL) {
        admob.showInterstitialAd();
        showNextInterstitial = setTimeout(function() {
          admob.requestInterstitialAd();
        }, 2 * 60 * 1000); // 2 minutes
      }
    }

    // optional, in case respond to events
    function registerAdEvents() {
      document.addEventListener(admob.events.onAdLoaded, onAdLoaded);
      document.addEventListener(admob.events.onAdFailedToLoad, function (e) {});
      document.addEventListener(admob.events.onAdOpened, function (e) {});
      document.addEventListener(admob.events.onAdClosed, function (e) {});
      document.addEventListener(admob.events.onAdLeftApplication, function (e) {});
      document.addEventListener(admob.events.onInAppPurchaseRequested, function (e) {});
    }

    function onDeviceReady() {
      document.removeEventListener('deviceready', onDeviceReady, false);
      initAds();

      // display a banner at startup
      admob.createBannerView();

      // request an interstitial
      admob.requestInterstitialAd();
    }

    document.addEventListener("deviceready", onDeviceReady, false);
</script>
</head>
<body bgcolor='silver'>

</body>
</html>

виводить два банера, один внизу сторінке (не працює, чорний блок виводить), а інший вспливаючий на весь екран.
хто знає що це за дані?

    banner: 'ca-app-pub-6869992474017983/9375997553',
      interstitial: 'ca-app-pub-6869992474017983/1657046752'

ну один індекатор реклабного блоку, а інший індикатор чого?

6

Re: Монетизація ігор

interstitial - то коли реклама на весь екран вилазить і показується якась відюшка, наприклад, котру мона закрити через декілька секунд

тут спілкуються українці (серед них є програмісти)
https://discord.gg/Zk29v4P
Подякували: Kasper, ostap34PHP2

7 Востаннє редагувалося Kasper (09.01.2017 00:28:30)

Re: Монетизація ігор

FakiNyan написав:

interstitial - то коли реклама на весь екран вилазить і показується якась відюшка, наприклад, котру мона закрити через декілька секунд

ясно, тобто можна можна його не вписувати.  А що стосується індикатора видавця то його нігде не потрібно вписувати? Просто я не дуже розумію як там в коді все реалізовано. Можливо потрібно щось ще підключити чи замінити.

8

Re: Монетизація ігор

реклама відображається навіть коли строки пусті:

            banner : "",
            interstitial : ""

9 Востаннє редагувалося Kasper (09.01.2017 00:55:21)

Re: Монетизація ігор

щось тут не то...

          //  banner : "",
            interstitial : "ca-app-pub-9671870815611510/9952702187"

нижній банер мав би не відображатися, тільки рекламний блок на весь екран, але чомусь банер дальше відображається.

10

Re: Монетизація ігор

Kasper написав:
FakiNyan написав:

interstitial - то коли реклама на весь екран вилазить і показується якась відюшка, наприклад, котру мона закрити через декілька секунд

ясно, тобто можна можна його не вписувати.  А що стосується індикатора видавця то його нігде не потрібно вписувати? Просто я не дуже розумію як там в коді все реалізовано. Можливо потрібно щось ще підключити чи замінити.

та я хз, як воно в тому фонгапі, я в ньому нічо не робив

тут спілкуються українці (серед них є програмісти)
https://discord.gg/Zk29v4P

11 Востаннє редагувалося Kasper (09.01.2017 01:18:53)

Re: Монетизація ігор

FakiNyan написав:
Kasper написав:
FakiNyan написав:

interstitial - то коли реклама на весь екран вилазить і показується якась відюшка, наприклад, котру мона закрити через декілька секунд

ясно, тобто можна можна його не вписувати.  А що стосується індикатора видавця то його нігде не потрібно вписувати? Просто я не дуже розумію як там в коді все реалізовано. Можливо потрібно щось ще підключити чи замінити.

та я хз, як воно в тому фонгапі, я в ньому нічо не робив

фонгап лише конвертує html в apk, тобто робить браузер на джаві без всяких там викрутасів і відкриває мій html. походу все так і відбувається. Я питався про індикатор видавця що в adMob

12

Re: Монетизація ігор

не пам'ятаю, щоб юзав індикатор

тут спілкуються українці (серед них є програмісти)
https://discord.gg/Zk29v4P

13 Востаннє редагувалося Kasper (09.01.2017 02:35:04)

Re: Монетизація ігор

Kasper написав:

реклама відображається навіть коли строки пусті:

            banner : "",
            interstitial : ""

походу якщо пусто то вискакує реклама по замовчуванні.

Kasper написав:

щось тут не то...

          //  banner : "",
            interstitial : "ca-app-pub-9671870815611510/9952702187"

нижній банер мав би не відображатися, тільки рекламний блок на весь екран, але чомусь банер дальше відображається.

а тут я провтикав що забув закоментувати виклик admob.createBannerView(); що відповідає за виведення малого банера на екран.
кажись код робочий, вже собі 0.04$ наклацав нечайно, надіюся вони мене за це не забанять.

Подякували: 0xDADA11C7, ostap34PHP2

14

Re: Монетизація ігор

Хочу додати посилання на сайт топ 3 мобільних рекламодавців:
http://mobileinsider.net/top-3-mobilnyj … nyj-obzor/
Мене особливо привернуло третє оголошення, там де платять по $0.3 за клик. Не знаю чи це тільки в мене так, але адмоб мені заплатив за три кліка $0.09.

15

Re: Монетизація ігор

Любу гру можливо монетизувати. Краще статичну монетизацію для простих ігор. Рекламодавець робить одноразовий платіж з розрахунком на тираж.