вторник, 29 января 2013 г.

Штурмуем google play, встраиваем рекламу от admob

Эту, а также статьи по теме, теперь можно найти здесь (zamechtoj.ru).
Не так давно я всё-таки одолел себя, сходил в банк и сделал себе международную валютную карточку VISA.  И с чистой совестью зарегистрировался в play market в качестве разработчика. Надо отметить, что помимо положенных 25$ с меня списали ещё 1$. Но я чувствовал, что не всё так просто и мои ожидания оправдались..   будучи в Беларуси я не могу продавать свои приложения (надеюсь, что ситуация измениться).  Таким образом единственным легальным вариантом монетизировать свои приложения является реклама. И вот как раз здесь я столкнулся с подводными камнями. Чтобы особо не мудрить, я решил сначала разобраться с одной из самых распространнёных рекламных систем admob.
С самим приложением, которое в качестве тестового я запихнул в маркет можете ознакомиться    по ссылке https://play.google.com/store/apps/details?id=com.brucemax.boxintervals (процесс его публикации трудностей не составил, там оказалось всё прозаично).
В процессе гугления попалась мне статья на хабре с подробной инструкцией. Выполнив всё в точности как в вышеприведённом документе я наткнулся на первый "камешек".  Коварная ошибка NullPointerExeption в элементе:
<com.google.ads.AdView
android:id="@+id/adView" android:layout_width="wrap_content" android:layout_height="wrap_content" ads:adSize="BANNER" ads:adUnitId="@string/admob_publisher_id" ads:loadAdOnCreate="true" />
Как говориться гугл в помощь. Выяснилось, что в этой версии библиотеки GoogleAdMobAdsSdk-6.2.1.jar проблемы при расположении элемента в файле разметки. Поэтому решением было вставлять вьюху программно в главном активити в методе onCreate():

      AdView adView = new AdView(this, AdSize.BANNER, <здесь строка с вашим ID от admob>));
        LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout);
        layout.addView(adView);
        adView.loadAd(new AdRequest());

Плюс надо отметить, что библиотеку я добавлял не тем способом, что описан в статье, а просто скопировал файл jar в корневую папку libs (об этом способе я прочёл, когда искал решение первой проблемы)
Ну вот собственно и всё. Реклама грузиться даже в симуляторе.
Кстати, чтобы избежать нерелевантных кликов при тестировании приложения на телефоне и в эмуляторе необходимо к объекту запроса применить следующие методы:

        AdRequest request = new AdRequest();
        request.addTestDevice(AdRequest.TEST_EMULATOR);
        request.addTestDevice("E83D20734F72FB3108F104ABC0FFC738");
В первом случаем указан эмулятор, а во втором 32char Device ID (реальное устройство для тестирование), который можно получить при тестировании admob в логах (logcat).
И ещё полезная строчка кода, с помощью которой можно узнать на чём запущено приложение (эмулятор или устройство):

        boolean isEmulator = "generic".equals(Build.BRAND.toLowerCase());

Update
Уже прошло около года после того старта, и я решил, что будет не лишним обновить статью.
Из наиболее существенного. С августа 2013 адмоб запустил вторую версию себя же =) и с той поры ненавязчиво предлагает не нее перейти. К счастью, я не поспешил и остался на старом адмобе. Почему к счастью? Это связано с тем фактом, что в новом адмобе для Беларуси и России отсутствует платёж банковским переводом. Есть только чеки. С ними отдельная история. Во первых их надо дождаться, а во вторых обналичить. Кроме того, если не ошибаюсь, еще надо подтвердить свой адрес. Вообщем та еще тягомотина) 
Еще в Google+ сообществе я наконец-таки нашел собратьев по несчастью,минское сообщество андроидов, которые тоже жаждют начать продавать приложения из нашей любимой Родины.  Там предлагается завести российский аккаунт разработчика и открыть счет в российском банке (Смоленск) . На мой вопрос не банит ли Гугл за обман с местоположением, мне ответили, что им не ведомы такие прецеденты.. Хотя я о таком слышал.. и не раз. Возможно, ради интереса раскошелюсь на еще один аккаунт и проверю эту версию. К слову, возможность  переташить приложения с одного аккаунта на другой имеется, сам видел)
Также слыхал, что недавно в список продавцов Гугл включил несколько стран Азии: Таиланд и ты. Ну ничего проедет и по нашей улице инкассатор =) 

4 комментария:

  1. Как вы легализировали работу с AdMob Google Inc? Т.е куда вы переводите монетизированные средства с Admob? И как избежать проблем с налоговой и т.д.

    ОтветитьУдалить
    Ответы
    1. Пока никак не легализовал. Так как я на старом адмобе, то перевожу банковским переводом. Само собой, так как у нас нет в государстве банковской тайны, данные идут в налоговую. И я даже не прочь платить эти 12%.. Но скорее всего скажут, что это коммерческая деятельность... а ИП пока при моих прибылях не резонно открывать, да и вести бухгалтерию надо уметь (слышал, что нужны отчёты о кликах и т.п.), плюс на одном из форумов сказали, даже если будет ИП, могут привязаться и найти нарушения в бухгалтерии и дать штраф.. Вообщем решил уходить с адмоба. Пойду только на днях схожу в налоговую, и заплачу за то, что успел получить.. и может узнаю чего нового.

      Удалить
  2. Совсем недавно обнаружил что в admob и google play наконец-то появилась в списке стран Беларусь, что несомненно радует. В новом admob(apps.admob.com) обнаружил возможность вывода средств чеком по почте. Не пробовали такой способ вывода заработка?

    ОтветитьУдалить
  3. Увы, Павел.. вероятно вы смотрели список стран, в которых можно всего лишь регистрировать аккаунт разработчика. А вот продавать приложения по прежнему нельзя у нас. https://support.google.com/googleplay/android-developer/table/3539140?hl=ru
    Чеки не пробовал, знаю лишь что это не так удобно и долго, но реализуемо.

    ОтветитьУдалить