Показ рекламы из сервера OpenX в приложениях под Android

This post is also available in: Английский

Рынок мобильной рекламы набирает обороты, и многих разработчиков приложений под платформу Android интересует тема монетизации через показ рекламы. Большинство из них пользуются услугами крупнейшего провайдера мобильной рекламы AdMob. Но это — не единственная альтернатива. Открытый и бесплатный рекламный сервер OpenX, предназначенный для показа рекламы на веб-страницах, так же может быть использован для показа рекламы в мобильных приложениях. В этой статье мы покажем кому это может быть нужно и как это сделать.

Четыре причины, по которым вы можете выбрать открытое решение вместо популярного:

  1. Вы — энтузиаст интернет-рекламы и вам интересно разбираться в том, как все работает, и делать все самому.
  2. Вы не можете воспользоваться услугами AdMob или других сервисов, так как не проходите по требованиям, которые они предъявляют к приложениям или к рекламным материалам.
  3. Вы хотите разместить рекламный сервер на собственной инфраструктуре. Например, если приложение будет работать внутри закрытой сети, не имеющей доступа в Интернет, или вы просто не доверяете Google.
  4. Вам необходимо сильно модифицированное решение, которое должно удовлетворять нестандартным требованиям к таргетингу, отчетности и т.д.

Для того, чтобы упростить встраивание рекламы из OpenX в ваше Android приложение, мы написали виджет, который можно встроить в любое приложение, используя стандартные средства, предоставляемые платформой. Вы можете загрузить архив, включающий исходные коды виджета, документацию и примеры использования, здесь или на labs.denivip.ru.

Компонент был успешно протестирован совместно с сервером OpenX версии Community Edition 2.8.8-rc6 (самая последняя на данный момент), но должен так же работать и с более ранними версиями. По сути он представляет собой компонент WebView, к которому добавлен удобный программный интерфейс для загрузки рекламы из OpenX. Чтобы использовать его, достаточно добавить описание виджета в XML-файл layout-а для вашего activity. Например, так:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:ox="http://denivip.ru/schemas/android/openx/0.1"
            android:orientation="vertical"
            android:layout_width="match_parent"

            android:layout_height="match_parent">
  <ru.denivip.android.widgets.OpenxAdView
            android:id="@+id/adview"
            android:layout_width="88px"
            android:layout_height="31px" 
            ox:delivery_url="@string/openxDeliveryUrl"

            ox:zone_id="3" />
  <ListView android:layout_width="match_parent"
            android:id="@+id/contactList"
            android:layout_height="wrap_content"

            android:layout_weight="1"/>
</LinearLayout>

Кроме всех стандартных параметров компонента View, так же в описании layout-а для компонента OpenXAd можно указать следующие параметры, влияющие на доставку баннеров:

  • delivery_url Путь к серверу OpenX и директории на сервере, в которой хранятся скрипты доставки рекламы. Например: openx.example.com/delivery.
  • js_tag_url Имя скрипта OpenX, отвечающего за доставку рекламного кода с использование стандартного JavaScript тэга. В большинстве случаев этот параметр не нужно менять, его значение по-умолчанию ajs.php совпадает со именем скрипта из стандартной установки OpenX.
  • zone_id Идентификатор зоны OpenX, из которой будет производиться выбор рекламных материалов. Этот параметр является обязательным, если только вы не используете метод загрузки рекламы load(int), в котором он указывается непосредственно.
  • has_https Если взаимодействие с сервером OpenX происходит по протоколу HTTPS, то значение этого параметра необходимо установить в true. По-умолчанию: false.
  • source Этот параметр не обязательно указывать. Его можно использовать для таргетинга рекламы.

Все эти параметры, так же как и добавление самого компонента OpenXAd, можно задать не только через файл layout-а, но и непосредственно в коде приложения.

В результате на экране activity вашего приложения появится область заданного размера, содержащая баннер, загруженный из сервера OpenX (см. скриншот вначале статьи). Так же как и при внедрении на веб-страницу, на этот баннер можно кликнуть и перейти на сайт рекламодателя.

Ждем ваших отзывов о виджете OpenXAd в комментариях.

android-widget.tar.gz