Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Зарегистрируйтесь как разработчик.
    В личном кабинете: 
    1. Узнайте свой DeveloperID и скачайте SDK
    2. Зарегистрируйте свое приложение (требует проверки техподдержкой)
       

      Tip

      Функции SDK: подробная документация

      Info

      FAQ: Какие пермиссии требует SDK?

      Info
      titleПоддержка версий Android

      Функциональность SDK обеспечивается в версиях Android c 4.0.3 по 5.0.2.

      SDK НЕ препятствует работе родительского приложения при интеграции в более широкий диапазон версий, то есть может быть интегрирован в приложения, поддерживающие версию Android 6.+ или ниже 4.0.3.

      Info
      titleСовместимость с другими рекламными SDK
      Appodeal
      Во избежание возможных конфликтов зависимостей размещайте зависимости Appodeal в файле build.gradle раньше, чем зависимость 402 targeting.
      Info

      FAQ: Есть ли код с примером интеграции SDK?

     

  2. Выполните следующие шаги по интеграции

    1. Вариант #1:

      Добавьте в gradle file новый репозиторий:

      Code Block
      languagegroovy
      allprojects {
          repositories {
              jcenter()
              maven {
                  url  "http://maven.402targeting.com/public/production"
              }
          }
      }


      Добавьте следующую зависимость в gradle file:

      Code Block
      languagegroovy
      compile ('com.targeting402:sdk:SDK_VERSION@aar') {
          transitive = true
      }

      где SDK_VERSION - версия SDK, которую интегрируете.


      Добавьте следующие зависимости в gradle file для обоих вариантов:

      Code Block
      languagegroovy
      compile 'com.google.android.gms:play-services-location:+'
      compile 'com.google.android.gms:play-services-maps:+'
      
      Note

      Если вы используете Proguard в приложении, то для обеспечения работоспособности SDK добавьте в список файлов с Proguard-правилами этот

      proguard-rules-targeting-402.pro.

      Code Block
      languagegroovy
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'proguard-rules-targeting-402.pro'

       

      Мы прикладываем файл с правилами к AAR библиотеке, но в отдельных случаях этого недостаточно.

      Tip

      Никаких модификаций манифеста вашего приложения не требуется.

    2. Вариант #2:

      В Android Studio перейдите File -> New Module -> Import .JAR/.AAR и импортируйте файл sdk-SDK_VERSION.aar.
      Скачать файл sdk-SDK_VERSION.aar можно по адресу репозитория
      http://maven.402targeting.com/public/production/com/targeting402/sdk.


  3. При запуске приложения необходимо вызвать функцию SDK Init со своим DeveloperID (если это первый вызов для конкретного экземпляра приложения, то произойдет его регистрация на сервере). Если к моменту вызова Init техподдержка не успела активировать Ваше приложение, сервер вернет ошибку 403. 

    Code Block
    languagejava
    titleИнициализация SDK
    Context context = YourActivity.this; // OR getApplicationContext()
    String developerId = "A394GH10-4836-488A-B7C2-78908A77BED2;
    Targeting_402.init(this, developerId);
  4. Определите способ уведомления пользователя о наличии рекламного предложения:

    Tip

    В отличие от других рекламных сетей мы не запрещаем разработчикам мотивировать пользователей на клики по нашей рекламе, а даже наоборот - приветствуем это

    1. SimpleDisplayMode (действует по умолчанию, требует только вызов Init). SDK самостоятельно отображает уведомление о наличии рекламного предложения и, при клике на него, сам экран рекламного предложения. Показ уведомления возможен в формате InApp HotButton или System HotButton (рекомендуется) или Notification (не рекомендуется). Также возможно отображение экрана рекламного предложения и без предварительного уведомления пользователя (не рекомендуется).

      1. Задайте рекомендуемые настройки:

        Code Block
        languagejava
        titleРекомендуемая настройка AndroidManifest.xml
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
        
        Code Block
        languagejava
        titleРекомендуемая настройка Java
        Targeting_402.setForbidDiscountNotification(true);
        Targeting_402.setShowHotOfferImmediate(false);
      2. Опционально. При помощи setHotButtonPosition установите местоположение HotButton на экране по умолчанию. Отдельный пользователь может выполнить Drug&Drop кнопки в удобное ему место экрана и это положение будет запомнено на все его последующие сеансы.

        Code Block
        languagejava
        titleПример
        Targeting_402.setHotButtonPosition(25, 73);
        Tip

        SimpleDisplayMode (SDK default mode) - подробное описание возможных режимов

    2. ProDisplayMode - позволяет разработчику определить собственные форматы и режимы показа рекламы на базе SDK. 
      Условия работы: дополнительно к вызову Init разработчик создает класс, реализующий интерфейс HotStateListener.

      Code Block
      titleРеализация интерфейса HotStateListener
      public abstract class BaseActivity
              extends AppCompatActivity
              implements Targeting_402.HotStateListener
      {
      	private ViewGroup mMainLayout;
      	private View mHotButton;
      	private View mHotButtonUrgent;
       
      	@Override
      	public void onHotNeedAppear(HotState hotState)
      	{
          	// Your HotButton replacement widget should appear as View instance	
      		mMainLayout.addView(mHotButton);			
      		hotState.hotButtonAppeared(mHotButton);
      	}
       
      	@Override
          public void onHotReminderNeedAppear(HotState hotState)
          {
          	// Your HotButton replacement widget should appear as View instance	
      		mMainLayout.addView(mHotReminder);			
      		hotState.hotReminderAppeared(mHotReminder);    
          }
      
      	@Override
      	public void onHotNeedDisappearSoon(HotState hotState)
      	{
      		// We are assuming when Hot need disappear soon 
      		// it should be some View effect or rather different widget
          	mMainLayout.addView(mHotButtonUrgent);
      		hotState.hotButtonUrgentAppeared(mHotButtonUrgent);
      	}
      
      	@Override
      	public void onHotNeedDisappear(HotState hotState)
      	{
          	// Remove all widgets concerning a Hot
      		mMainLayout.removeView(mHotButton); // OR remove mHotButtonUrgent
      	}
      }


      Далее разработчик передает SDK экземпляр данного класса через статический метод setHotStateListener

      Code Block
      languagejava
      titleПередача SDK экземпляра HotStateListener
      Targeting_402.setHotStateListener(this);


      По событию onHotNeedAppear или onHotNeedDisappearSoon разработчик размещает в UI собственную HotButton, HotBanner или иное.
      SDK по мере изменения ситуации генерирует следующие события:

      1. onHotNeedAppear - есть рекламное предложение, необходимо отобразить в UI HotButton.

        Code Block
        languagejava
        mMainLayout.addView(mHotButton);

         

      2. onHotReminderNeedAppear - настало время напомнить пользователю об имеющейся скидке.

        Code Block
        languagejava
        mMainLayout.addView(mHotReminder);	


      3. onHotNeedDisappearSoon - действие рекламного предложения заканчивается по определенным условиям (рекомендуется отразить это в оформлении HotButton путем затухания и/или мигания).

        Code Block
        languagejava
        mMainLayout.addView(mHotButtonUrgent);

         

      4. onHotNeedDisappear - рекламное предложение устарело, необходимо скрыть HotButton в UI.

        Code Block
        languagejava
        mMainLayout.removeView(mHotButton);
        Tip

        ProDisplayMode - подробное описание возможных режимов

  5. Настоятельно рекомендуется. Передайте SDK accessToken для того чтобы SDK мог получить базовый профиль пользователя из соцсетей или передайте эти данные самостоятельно при помощи функции REST API SocialNetworkDataPost (данный способ требует активации техподдержкой).

    Code Block
    languagejava
    titleПередача токена соцсети
    private class VkCallback
            implements VKCallback<VKAccessToken>
    
    {
        @Override
        public void onResult(VKAccessToken token)
        {
    		new SocialNetworkAccess()
    			.passTokenData(SocialNetwork.VK, token.accessToken, token.userId);        
        }
    
        @Override
        public void onError(VKError error)
        {
    		// handle auth error
        }
    }
    Info

    FAQ: У нас нет интеграции с соцсетями, насколько это будет проблемой?

    Info

    FAQ: Вы же собираете много персональных данных о пользователях. Насколько это законно?

  6. Произведите распространение приложения, отслеживайте данные в личном кабинете, при необходимости обратитесь в техподдержку для проверки корректности интеграции.

...