1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/TJHello-ADEasy

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 22 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 12:00 4b81b1d

ADEasy — автоматическое интегрирование

QQ группа для общения (425219113)

Перед использованием программы внимательно прочитайте: «Заявление об отказе от ответственности и лицензионное соглашение».


ADEasy — это набор инструментов для автоматического интегрирования рекламных SDK на всех платформах.

Описание:

  • автоматизация процесса интеграции, позволяющая легко включать рекламу;
  • более понятный, лаконичный и эффективный внешний интерфейс;
  • динамическое распределение рекламных мест в зависимости от веса для повышения эффективности (возможно);
  • глобально управляемая очередь загрузки рекламы для улучшения производительности и контроля количества загружаемой рекламы;
  • возможность точного управления рекламой по версии, модели устройства, стране, системе и каналу;
  • выбор режима ведения журнала для точной локализации проблем и контроля процесса.

Поддерживаемые рекламные платформы:

AdMob (баннер, межстраничное объявление, видео, межстраничное видеообъявление) Unity (баннер, межстраничное объявление, видео, межстраничное видеообъявление) Mi (баннер, межстраничное объявление, видео) GDT (Tencent优量汇 2.0) (баннер, межстраничное видеообъявление, видео, заставка, нативное) Facebook (баннер, межстраничное объявление, видео) ByteDance (穿山甲) (баннер, межстраничное объявление, видео, полноэкранное видеообъявление, заставка, нативное) Vungle (баннер, межстраничное объявление, видео, межстраничное видеообъявление) Baidu (баннер, межстраничное объявление, видео, межстраничное видеообъявление, заставка) Oppo (баннер, межстраничное объявление, видео, межстраничное видеообъявление, заставка) Vivo (баннер, межстраничное объявление, видео, заставка) Mintegral (баннер, межстраничное объявление, видео, межстраничное видеообъявление, заставка) Mintegral-GP (баннер, межстраничное объявление, видео, межстраничное видеообъявление, заставка) OneWay (межстраничное объявление, видео, межстраничное видеообъявление, заставка, нативное).

Платформы, которые планируется поддерживать в будущем: IronSource.

Среда использования

  • Android Studio 3.3.1 или выше (требуется версия плагина автоматизации не ниже 6);
  • AndroidX (обязательно, некоторые рекламные платформы требуют этого);
  • Java/Kotlin (рекомендуется Kotlin, специально разработан для Kotlin, также оптимизирован для сценариев Java);
  • JAVA 1.8 (рекомендуется пользователям Java).

Шаги использования

  1. Шаг 1. Подключите плагин автоматизации к файлу build.gradle (project).
buildscript {
    repositories {
        maven { url 'https://tjhello.gitee.io/publiclib/'}
    }
    dependencies {
        classpath "com.TJHello.plugins:ADEasy:8.3.2102-t42"//8.x версия плагина поддерживает только gradle4.2.x, 4.1.x и ниже, необходимо использовать версию 7.3.2102-t41
    }
}
  1. Шаг 2. Запустите плагин и настройте параметры в файле build.gradle(app).
apply plugin: 'ad-easy'

ADEasyExt{
    adSwitch = true  //Общий переключатель рекламы
    inChina = true //Обязательно - внутри страны true - за границей false
    debug = true //Этот переключатель связан с переключателем отладки рекламы, версия release автоматически установит значение false
    //Следующие параметры настраиваются по мере необходимости, по умолчанию false
    //adMobId = "ca-app-pub-xxxxx" //Идентификатор admob, обязательный для подключения admob, и его необходимо изменить на правильный идентификатор, иначе admob выйдет из строя.
    //adMob = true //Переключатель admob
    adUnity = true //Переключатель Unity
    adMi = true //Переключатель Mi
    adGdt = true //Переключатель Tencent优量汇
    adFacebook = true//Переключатель Facebook
    adByteDance = false//Переключатель ByteDance
    adVungle = false//Переключатель Vungle
    adOppo = false//Переключатель Oppo
    adVivo = false//Переключатель Vivo
    adMintegral = false//Переключатель Mintegral - Китай
    adMintegralGp = false//Переключатель Mintegral - за рубежом
    adOneWay = false//Переключатель OneWay
    //umeng = ['key'] //Разрешить ли ADEasy управлять Umeng, ['key','deviceType(необязательно, по умолчанию 1)','pushSecret(необязательно, по умолчанию null)']
    //abTest = true //ABTest переключатель https://github.com/TJHello/ABTest
    //exclude = ['xxxx'] //Исключить пакет
}

android {
    defaultConfig {
        //Когда количество методов превышает лимит
        multiDexEnabled true
    }
    
    //Поддержка java8, можно использовать некоторые удобные грамматические функции
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    //Количество методов превысило лимит
    implementation 'com.android.support:multidex:1.0.3'
}
  1. Шаг 3. Настройте приложение (TJApplication.kt) (TJApplication.java). ADEasyLog.TYPE_ADEASY_DETAILED_STEPS, ADEasyLog.TYPE_TOOLS_UMENG)

ADEasy.init(this, this) }

// Создание рекламного конфигуратора (обязательно, используется при сбое получения онлайн-конфигурации или в офлайн-режиме) override fun createAdPlatformConfig(group: String): PlatformConfig? { when (group) { ADInfo.GROUP_ADMOB -> { return AdConfig.createAdmob() .addParameter("ca-app-pub-3940256099942544/6300978111", ADInfo.TYPE_BANNER) // тестовый id .addParameter( "ca-app-pub-3940256099942544/1033173712", ADInfo.TYPE_INTERSTITIAL ) .addParameter( "ca-app-pub-3940256099942544/5224354917", ADInfo.TYPE_VIDEO, 10 ) // разрешено добавлять несколько параметров одного типа, но разных кодов (Banner пока не поддерживает эту функцию) // .addParameter("ca-app-pub-394025609994***/**354917",ADInfo.TYPE_VIDEO,10) .initWeight(10) } } return null }

// После завершения инициализации ADEasy можно вызывать методы, которые будут работать override fun onInitAfter() {

}

override fun attachBaseContext(base: Context) { super.attachBaseContext(base) // Решение проблемы с превышением лимита методов MultiDex.install(base) }


**Step4. Конфигурация AppActivity (AppActivity.kt, AppActivity.java)**

```kotlin
abstract class AppActivity : AppCompatActivity(), ADEasyActivityImp {
    protected val adEasy by lazy { ADEasy.getInstance(this, this) }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        adEasy.isAutoShowInterstitial(true)
        onInitValue(savedInstanceState)
        onInitView()
        adEasy.onCreate()
        onLoadData()
    }

    override fun onPause() {
        super.onPause()
        adEasy.onPause()
    }

    override fun onResume() {
        super.onResume()
        adEasy.onResume()
    }

    override fun onDestroy() {
        super.onDestroy()
        adEasy.onDestroy()
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        adEasy.onActivityResult(requestCode,resultCode,data)
    }

    override fun onRequestPermissionsResult(
        requestCode: Int,
        permissions: Array<String>,
        grantResults: IntArray
    ) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        adEasy.onRequestPermissionsResult(requestCode,permissions,grantResults)
    }

    protected abstract fun onInitValue(savedInstanceState: Bundle?)

    protected abstract fun onInitView()

    protected abstract fun onLoadData()

    override fun isActivityFinish(): Boolean {
        return isFinishing
    }
}

Пример (TestActivity.kt, TestActivity.java)

class TestActivity : AppActivity() {

    override fun onInitValue(savedInstanceState: Bundle?) {
        adEasy.isAutoShowBanner(true)
    }

    override fun onInitView() {
        setContentView(R.layout.test_activity_layout)
        btShowVideo.setOnClickListener {
            adEasy.showVideo{adInfo, isReward ->
               Toast.makeText(this,"Close Video :$isReward", Toast.LENGTH_LONG).show()
            }
        }
        btShowInterstitialVideo.setOnClickListener {
            adEasy.showInterstitialVideo {
                Toast.makeText(this,"Close InterstitialVideo",Toast.LENGTH_LONG).show()
            }
        }
        btShowInterstitial.setOnClickListener {
            adEasy.showInterstitial {
                Toast.makeText(this,"Close Interstitial",Toast.LENGTH_LONG).show()
            }
        }

        btShowBanner.setOnClickListener {
            adEasy.showBanner()
        }

        btHideBanner.setOnClickListener {

``` **adEasy.hideBanner()**

    }
}

    override fun onLoadData() {

    }

    override fun onCreateBanner(): ViewGroup? {
        return bannerLayout
    }

    //退出应用时请调用 ADEasy.exitApp(context)

}

### adEasy API

boolean hasBanner() //есть ли баннер boolean hasInterstitial() //есть ли межстраничное объявление boolean hasVideo() //есть ли поощрительное видео boolean showBanner() //показать баннер boolean showInterstitial() //показать межстраничное объявление boolean showInterstitialVideo() //показать поощрительное видео на межстраничном объявлении boolean showVideo() //показать поощрительное видео boolean hideBanner() //скрыть баннер void showSplash()//показать заставку void showNative(ViewGroup viewGroup,String tag,Int position){}//показать нативное объявление

void hangLifeUp() //приостановить жизненный цикл, используется для всплытия окна согласия на конфиденциальность и т. д., необходимо вызвать перед adEasy.onCreate void hangLifeDown() //возобновить приостановленный жизненный цикл, продолжить выполнение void notShowInterstitialOnce() //пропустить однократное отображение запроса на показ межстраничного объявления, используется при первом переходе на главную страницу, чтобы не показывать межстраничные объявления, необходимо вызвать перед adEasy.onCreate void isAutoShowBanner() //автоматически ли отображается страница баннера, необходимо вызвать перед adEasy.onCreate void isAutoShowInterstitial()//автоматически ли показывается межстраничное объявление, необходимо вызвать перед adEasy.onCreate void closeAD() //закрыть функцию объявлений текущей страницы, необходимо вызвать перед adEasy.onCreate

ADEasy.init() //инициализация интерфейса ADEasy.agreePrivacy() //согласиться с политикой конфиденциальности, обязательно вызвать ADEasy.setDebug() //связать отладочную версию объявления, одновременно открыть журнал, в режиме выпуска автоматически устанавливается значение false ADEasy.openLog() //открыть журнал ADEasy.toTestMode() //перейти в тестовый режим онлайн-конфигурации — только для онлайн-режима ADEasy.setInterstitialTime() //установить интервал автоматического показа межстраничных объявлений (в миллисекундах), необходимо вызвать после завершения инициализации ADEasy.getInstance() //получить новый экземпляр ADEasy ADEasy.changeWeight() //изменить вес определённой платформы ADEasy.isInit() //завершена ли инициализация ADEasy.getOLParameter() //получить параметры онлайн, требуется включить онлайн-функцию и настроить онлайн-параметры ADEasy.toOfflineMode() //перевести в автономный режим ADEasy.exitApp() //вызвать при выходе из приложения, связано с выходом из партнёрской сети ADEasy.setInitListener() //установить прослушиватель инициализации для всех объявлений платформы ADEasy.getConfigManager() //получить менеджер конфигурации объявлений, можно изменить значения параметров управления объявлениями. Необходимо вызвать после onInitAfter


### Прочее

Присоединяйтесь к группе QQ для консультаций (425219113)

### Версия ADEasy

Пример: 1.0.1001-a01

1: номер версии плагина автоматизации [0-99]

0: номер обновления версии SDK [0-999]

1001 -> номер основной версии

1: изменение структуры [0-9]

0: функциональное изменение [0-99]

01: небольшое изменение, исправление ошибок [0-99]

a01 -> тестовая версия

a: альфа-тест (прошёл проверку в реальной среде проекта)

b: бета-тест (прошёл клиентскую проверку в реальной среде)

t: внутренний тест


### Соответствие версий SDK
x.3.xxxx (постоянно обновляется)

Yomob (удалено) MI:5.0.6 Unity:3.4.8 ByteDance:3.4.1.0 Admob:19.3.0 GDT:4.310.1180 Vungle:6.7.0 Facebook:5.9.1 Baidu:5.86 Vivo:4.2.0.0 Oppo:3.5.1 Mintegral:14.4.41 OneWay:2.4.5 Huawei:13.4.35.300



x.2.xxxx

Yomob:1.8.7 MI:5.0.0 Unity:3.4.6 ByteDance:3.1.0.0 Admob:19.2.0 GDTSDK:4.232.1102 Vungle:6.7.0 Facebook:5.9.1 Baidu:5.86

x.1.xxxx

Yomob:1.8.7 MI:3.0.0 Unity:3.3.0 ByteDance:2.9.5.0 Admob:19.0.1 GDTSDK:4.190.1060 Vungle:6.5.2 Facebook:5.8.0

x.0.xxxx

Yomob:1.8.5 MI:2.5.0 Unity:3.3.0 ByteDance:2.8.0 Admob:18.3.0 GDTSDK:4.110.980 Vungle:6.5.2 Facebook:5.6.0


### Журнал обновлений плагина автоматизации

v8

1、Поддержка Android Studio gradle 4.2.x


v7

1、поддержка режима AAB


v6

1、Поддержка Android Studio gradle 4.1.x


v5

1、Рефакторинг всего модуля, переход на чистую реализацию Kotlin. 2、Добавлены платформы Oppo, Vivo, Mintegral, OneWay, Huawei, Baidu. 3、Поддержка Android Studio 3.3.1–4.0.1

v4

1、Исправление некоторых проблем, когда при горячей модификации manifests удаление элементов не приводило к эффекту. 2、Исправление некоторых случаев, когда горячая модификация переключателя платформ не приводила к динамическому изменению в месте добавления manifests. 3、Новая поддержка автоматической интеграции рекламы ByteDance.

v3

1、Увеличение поддержки ABTest, inChina, exclude, appkey и appToken.


### Журнал обновления основной программы

8.3.2102-t42 (постоянно обновляется)

1、исправление ошибок, оптимизация использования API. 2、поддержка TopOn агрегатного SDK. 3、соответствие государственной политике, обязательное использование ADEasy.agreePrivacy().


6.3.2102-t09

1、рефакторинг кода, полное отделение логики рекламной платформы в отдельный модуль. Решение проблемы с обнаружением пакета совместной работы Ov. 2、новые платформы Oppo, Vivo, Mintegral, Huawei и Baidu, обновление нескольких платформ. 3、открытие локального управления рекламой, изменение API управления конфигурацией. Например: ADEasy.getConfigManager(). 4、исправление и оптимизация большого количества проблем, общее повышение стабильности системы.


4.2.1306-t05 обновлено 2020-07-31

1、поддержка GDT, ByteDance и Baidu для заставки. 2、возможность изменения параметров конфигурации управления рекламой в коде. 3、поддержка тестового режима онлайн-функциональности. 4、другие оптимизации.


4.2.1304-t03 обновлено 2020-06-29

1、обновление всех платформ SDK, добавлена поддержка рекламы Baidu. 2、исправление ошибки, которая могла привести к сбою при использовании онлайн-настройки. 3、упрощение и организация кода, оптимизация общей логики загрузки рекламы по весу. 4、исправление проблемы с обратным вызовом Yomob рекламы. 5、исправление неточности определения бренда телефона.


4.1.1303-t11 обновлено 2020-06-25

1、небольшие исправления ошибок и некоторые незначительные корректировки.


3.1.1303-t10 обновлено 2020-05-20 (День святого Валентина)

1、новая функция планирования потоков для загрузки рекламы. 2、новая онлайн-функция конфигурации. 3、новая функция классификации журналов по уровням. 4、новая функция автоматического управления партнёрской сетью Yum. 5、новая функция поддержки ABTest. 6、исправление нескольких ошибок, большая оптимизация.


Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/TJHello-ADEasy.git
git@api.gitlife.ru:oschina-mirror/TJHello-ADEasy.git
oschina-mirror
TJHello-ADEasy
TJHello-ADEasy
master