Démarrer avec la version 5 du SDK Vungle Android ou Amazon

Utilisez cet article pour intégrer le SDK Vungle pour Android ou Amazon. Depuis la version 5.3.2 de notre SDK Android, Vungle prend en charge Amazon OS 5.4 et les versions ultérieures en tant que plateforme. Les étapes d'intégration du SDK Amazon sont identiques à celles d'Android.

Contenu

Configuration nécessaire

  • Android 4.0 (Ice Cream Sandwich - API version 14) ou version supérieure
  • Java 1.7 - Pour des raisons de compatibilité avec Android 5.+, JDK 7 est nécessaire
  • Java 1.8 - Pour des raisons de compatibilité avec Android 7.+, JDK 8 est nécessaire

Étape 1. Inclure le SDK Vungle dans votre projet

Le SDK Vungle est disponible de deux manières : sous forme d'AAR via Maven ou via le téléchargement manuel.

Option 1. Inclure le SDK Vungle sous forme d'AAR via Maven

Ouvrez le fichier build.gradle niveau du projet, et ajoutez l'URL Maven dans la section tous les projets.

allprojects { repositories { maven { url 'https://jitpack.io' } } }

Ouvrez le fichier app-level build.gradle au niveau de l'application, et ajoutez les dépendances compilées dans la section dépendances.

dependencies { … compile 'com.github.vungle:vungle-android-sdk:5.3.2'
compile 'com.google.android.gms:play-services-basement:11.0.4' //This library is optional, but if used, use version 11.0.1 and up only compile 'com.google.android.gms:play-services-location:11.0.4' //This library is optional, but if used, use version 11.0.1 and up only
… }

Si vous incluez le SDK Vungle via Maven, vous pouvez ignorer « Étape 2. Mettre à jour AndroidManifest.xml ».

Option 2. Télécharger le SDK Vungle SDK et l'inclure dans votre application

Téléchargez le SDK Vungle, décompressez-le, accédez au dossier de bibliothèque, copiez tous les fichiers JAR et ajoutez-le à votre bibliothèque de projets.

Screen_Shot_2017-10-05_at_2.51.15_PM.png

Ouvrez le fichier project-level build.gradle au niveau du projet, et mettez à jour la section dépôts.

allprojects { repositories { jcenter() } }

Ouvrez le fichier build.gradle au niveau de l'application, et ajoutez d'autres dépendances dans la section dépendances.

android{ ... packagingOptions{ exclude 'META-INF/rxjava.properties' } ... } dependencies { … compile files('libs/adapter-rxjava-2.2.0.jar') compile files('libs/converter-gson-2.2.0.jar') compile files('libs/dagger-2.7.jar') compile files('libs/eventbus-2.2.1.jar') compile files('libs/gson-2.7.jar') compile files('libs/javax.inject-1.jar') compile files('libs/okhttp-3.6.0.jar') compile files('libs/okio-1.11.0.jar') compile files('libs/publisher-sdk-android-5.3.2.jar') compile files('libs/retrofit-2.2.0.jar') compile files('libs/rxjava-1.2.0.jar') compile 'com.google.android.gms:play-services-basement:11.0.4' //use version 11.0.1 and up only compile 'com.google.android.gms:play-services-location:11.0.4' //use version 11.0.1 and up only … } 

Si vous incluez manuellement le SDK Vungle, passez à « Étape 2. Mettre à jour AndroidManifest.xml ».

Étape 2. Mettre à jour AndroidManifest.xml

Ajoutez les lignes suivantes à votre AndroidManifest.xml, en attribuant le nom de l'élément de l'application au nom de la classe de votre application pour multidex :

<!-- Required permissions for caching and ad operations to work -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- Optional permissions to enable better geo-targeting of ads (recommended) -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
android:name=".(YourApplicationName)"
...
<activity android:name="com.vungle.publisher.VideoFullScreenAdActivity"
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>

<activity android:name="com.vungle.publisher.MraidFullScreenAdActivity"
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>

<activity android:name="com.vungle.publisher.FlexViewAdActivity"
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
>

Étape 3. Initialiser le SDK Vungle

Remarque : un placement par défaut est créé automatiquement pour chaque application. Vous devez fournir l'ID de référence de son placement lors de l'étape d'initialisation que vous envisagiez ou non de profiter de ses fonctions. Si vous créez plusieurs placements, fournissez tous les ID de référence.

Démarrage de l'application

Initialisez le SDK Publisher Vungle dans la première activité de votre application avec l'ID de référence du placement actif que vous souhaitez utiliser dans l'application. Le SDK sera initialisé de façon asynchrone et renverra une fonction de rappel au VungleInitListener fourni dans init.

Remarque : si vous appelez la méthode init avec un ID d'application incorrect, le SDK Vungle ne s'initialisera pas et nous ne renverrons pas de rappelonFailure. Si vous appelez la méthode init avec un ID de placement incorrect, le SDK Vungle s'initialisera, mais le placement ne sera pas en mesure de charger les publicités et renverra toujours la valeur false pour isAdPlayable. Encore une fois, nous ne renvoyons pas de rappel onFailure pour un ID de placement incorrect.

public class FirstActivity extends android.app.Activity { // get the VunglePub instance final VunglePub vunglePub = VunglePub.getInstance(); // get your App ID from the app's main page on the Vungle Dashboard after setting up your app @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // initialize Publisher SDK with app id, placement reference id list and init callback handler vunglePub.init(this, app_id, new String[] { placementID1, placementID2, placementID3 }, new VungleInitListener() { @Override public void onSuccess() { } @Override public void onFailure(Throwable e){ } }); } }

Chaque activité

En outre, il outrepasse les méthodes onPause et onResume dans chaque activité (y compris la première) pour assurer que le SDK Vungle Android et bien à jour quand votre application gagne ou perd du focus.

public class EachActivity extends android.app.Activity { // get the VunglePub instance final VunglePub vunglePub = VunglePub.getInstance(); ... @Override protected void onPause() { super.onPause(); vunglePub.onPause(); } @Override protected void onResume() { super.onResume(); vunglePub.onResume(); } }

Étape 4. Définir les écouteurs

Le SDK Vungle crée plusieurs événements que vous pouvez gérer par programmation en implémentant des classes VungleAdEventListener et en les enregistrant à l'aide de clearAndSetEventListeners. N'oubliez pas de supprimer l'eventListener lorsque vous n'en avez plus besoin, afin d'éviter les pertes de mémoire.

vunglePub.clearAndSetEventListeners(vungleDefaultListener, vungleSecondListener);

Étape 5. Charger et jouer une publicité

Lorsque le SDK Vungle est initialisé avec succès, vous pouvez charger votre placement et regarder la publicité lorsqu'elle est prête. Si vous définissez le VungleAdEventListener, ce dernier signalera via la fonction de rappel onAdAvailabilityUpdate(String placementReferenceId, boolean isAdAvailable) que la publicité sera prête à être lue.

public class GameActivity extends android.app.Activity { // get the VunglePub instance final VunglePub vunglePub = VunglePub.getInstance(); final String placementIdForLevel = "your placement reference id"; private void onLevelStart() {() { vunglePub.loadAd(placementIdForLevel); } private void onLevelComplete() { if (vunglePub.isAdPlayable(placementIdForLevel)) { vunglePub.playAd(placementIdForLevel, globalAdConfig); } } }

Notez que pour le placement mis en cache automatiquement, vous n'avez pas besoin d'appeler loadAd car le SDK charge automatiquement une publicité après l'initialisation. Nous vous recommandons de choisir les placements les plus consultés comme sélection mise en cache automatiquement.

Pour définir si un utilisateur peut fermer une publicité, utilisez les options d'affichage forcé dans le tableau de bord Vungle.

Paramètres avancés

Services Google Play (facultatif)

L'intégration des services Google Play dans votre projet permet à Vungle d'offrir une expérience personnalisée à l'utilisateur final, mais elle n'est pas obligatoire. Nous recommandons l'utilisation de la version 8.4.0 ou d'une version ultérieure.

Pour inclure les services Google Play, nous recommandons le guide d'installation Google. Dans votre application, assurez-vous que l'appareil dispose d'une version mise à jour des services Google Play. Le SDK Vungle utilise de manière facultative le placement et l'API des publicités provenant des services Google Play.

  • google.android.gms:play-services-location:11.0.1
  • google.android.gms:play-services-ads:11.0.1
  • Pour les services play jusqu'à 7.8.0 : conservez la bibliothèque de support
  • Pour les services play à partir de 8.4.0 : la bibliothèque de support n'est pas obligatoire

Nous avons compilé avec succès notre SDK autonome avec les versions suivantes des services Google Play : 7.8.0, 8.4.0, 9.8.0, 10.2.4, 11.0.1.

Limite de la méthode Dalvik 65K

Le fait d'ajouter un SDK Vungle Android 5.1.0 à votre projet ajoutera 6 557 méthodes, à l'exception des autres dépendances obligatoires. Nous envisageons de réduire le nombre de méthodes dans notre pipeline de projets, et il s'agit de la limite actuelle. Tenez compte des suggestions suivantes pour réduire le nombre total de méthodes ajoutées à votre projet.

  • Compilation Gradle sélective : le SDK des services Google Play Services (GPS) possède environ 20K méthodes. Si votre projet utilise des GPS, il existe une option pour compiler de manière sélective le SDK GPS obligatoire pour votre projet.
    • com.google.android.gms:play-services-location:11.0.1
    • com.google.android.gms:play-services-ads:11.0.1

  • Proguard : vous pouvez activer Proguard pour réduire le code de votre projet. Cela supprimera toute classe non utilisée au moment de la compilation pour réduire le nombre total de méthodes au minimum. Vous pouvez l'activer en spécifiant minifyEnabled true dans build.gradle pour le type de build adapté et en indiquant les règles de conservation des classes nécessaires pour votre projet.

  • Multidex : si vous avez toujours un nombre de méthodes supérieur à 65K, l'activation de multiDex peut être la seule solution fournie par Google. Vous devez configurer votre projet sur multiDex une seule fois, mais cela impactera l'heure de démarrage du build et de l'application.

Proguard

Si vous utilisez Proguard, ajoutez les règles suivantes à votre fichier de configuration Proguard :

# Vungle -dontwarn com.vungle.** -dontnote com.vungle.** -keep class com.vungle.** { *; } -keep class javax.inject.* # GreenRobot -dontwarn de.greenrobot.event.util.** # RxJava -dontwarn rx.internal.util.unsafe.** -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { long producerIndex; long consumerIndex; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { rx.internal.util.atomic.LinkedQueueNode producerNode; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef { rx.internal.util.atomic.LinkedQueueNode consumerNode; } -keep class rx.schedulers.Schedulers { public static <methods>; } -keep class rx.schedulers.ImmediateScheduler { public <methods>; } -keep class rx.schedulers.TestScheduler { public <methods>; } -keep class rx.schedulers.Schedulers { public static ** test(); }
# MOAT -dontwarn com.moat.** -keep class com.moat.** { public protected private *; }
# Retrofit -dontwarn okio.** -dontwarn retrofit2.Platform$Java8

L'interface EventListener

Les méthodes disponibles pour manipuler le VungleAdEventListener sont répertoriées ci-dessous :

Méthode

Description

clearAndSetEventListeners(VungleEventListener..)

Efface les EventListeners enregistrés et ajoute les eventListeners d'entrée.

clearEventListeners( )

Efface tous les EventListeners

removeEventListeners(VungleEventListener..)

Supprime les EventListeners d'entrée.

addEventListeners(VungleEventListener..)

Ajoute l'entrée eventListeners

API d'appel du délégué VungleAdEventListener :

public class FirstActivity extends android.app.Activity { private final VungleAdEventListener vungleListener = new VungleAdEventListener(){ @Override public void onAdEnd(String placementReferenceId, boolean wasSuccessfulView, boolean wasCallToActionClicked) { // Called when user exits the ad and control is returned to your application // if wasSuccessfulView is true, the user watched the ad and should be rewarded // (if this was a rewarded ad). // if wasCallToActionClicked is true, the user clicked the call to action // button in the ad. } @Override public void onAdStart(String placementReferenceId) { // Called before playing an ad } @Override public void onUnableToPlayAd(String placementReferenceId, String reason) { // Called after playAd(placementId, adConfig) is unable to play the ad } @Override public void onAdAvailabilityUpdate(String placementReferenceId, boolean isAdAvailable) { // Notifies ad availability for the indicated placement // There can be duplicate notifications } }; @Override public void onDestroy() { vunglePub.clearEventListeners(); super.onDestroy(); }; }

Remarque relative au fil IU

Les fonctions de rappel sont exécutées sur un fil en arrière-plan ; ainsi, toute interaction d'IU ou mise à jour résultant d'une fonction de rappel d'événement doit être transmise au fil d'IU principal avant son exécution. Voici deux méthodes courantes pour exécuter votre code sur le fil d'IU :

Options de configuration

Configuration de publicité globale

Après avoir appelé init, vous devez également configurer l'objet AdConfig global. Par défaut, vous pouvez utiliser cet objet AdConfig dans chaque appel playAd. Cet objet vous permet également de définir des options qui seront automatiquement appliquées à chaque publicité que vous lisez.

public class FirstActivity extends android.app.Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); vunglePub.init(this, app_id, placement_list, new VungleInitListener() { @Override public void onSuccess() { // get a reference to the global AdConfig object final AdConfig globalAdConfig = vunglePub.getGlobalAdConfig(); // For a full description of available options, see the 'Config Object'section. globalAdConfig.setSoundEnabled(true); } @Override public void onFailure(Throwable e) { } }); } } 

Configuration de publicité individuelle

Vous devez utiliser un objet AdConfig chaque fois que vous appelez playAd. Mais, vous pouvez personnaliser chaque publicité individuelle lue en fournissant un nouvel objet AdConfig à playAd. Si vous définissez des options dans la configuration de publicité globale, ces options globales seront remplacées par les options fournies dans AdConfig. Transmettez un remplacement AdConfig comme suit :

public class GameActivity extends android.app.Activity { … private void onLevelComplete() { // create a new AdConfig object final AdConfig overrideConfig = new AdConfig(); overrideConfig.setSoundEnabled(false); // the overrideConfig object will only affect this ad play. vunglePub.playAd(yourPlacementId, overrideConfig); } }

L'objet AdConfig

Le remplacement AdConfig possède une collection d'options pouvant être définies pour la lecture d'une publicité individuelle.

Remarque : Les publicités rémunérées sont parfois nommées publicités répondant au mécanisme d'incitation ; les deux termes font toujours référence au même type de publicité. Dans le code SDK et dans notre API de création, nous utilisons le terme « répondant au mécanisme d'incitation ».

Les options disponibles sont répertoriées ci-dessous :

Méthode

Valeur par défaut

Description

setOrientation

Orientation.matchVideo

Orientation.autoRotate indique que la publicité pivotera automatiquement avec l'orientation de l'appareil.

Orientation.matchVideo indique que la publicité sera diffusée dans la meilleure orientation de vidéo possible (généralement paysage).

setSoundEnabled

true

Définit l'état du son au début de la publicité. Si la valeur est true, l'audio respecte les paramètres de volume et de son de l'appareil. Si la valeur est false, la vidéo se lance en mode muet mais l'utilisateur peut activer le son.

setBackButtonImmediatelyEnabled

false

Si la valeur est true, cette option permet à l'utilisateur de quitter immédiatement une publicité grâce au bouton de retour. Si la valeur est false, l'utilisateur ne peut pas utiliser le bouton de retour pour quitter la publicité, jusqu'à ce que le bouton de fermeture à l'écran s'affiche.

setImmersiveMode

false

Active ou désactive le mode immersif sur les appareils KitKat+

setIncentivizedUserId

none

Définit l'ID utilisateur unique à transmettre à votre application pour vérifier que cet utilisateur doit être récompensé pour avoir regardé une publicité qui répond au mécanisme d'incitation. Non disponible si la publicité ne répond pas au mécanisme d'incitation.

 

setIncentivizedCancelDialogTitle

"Fermer la vidéo ?"

Définit le titre de la boîte de dialogue de confirmation lorsqu'une publicité qui répond au mécanisme d'incitation est ignorée. Non disponible si la publicité ne répond pas au mécanisme d'incitation.

setIncentivizedCancelDialogBodyText

"Le fait de fermer cette vidéo vous empêchera de recevoir votre récompense. Êtes-vous sûr(e) ?"

Définit le corps de la boîte de dialogue de confirmation lorsqu'une publicité qui répond au mécanisme d'incitation est ignorée. Non disponible si la publicité ne répond pas au mécanisme d'incitation.

setIncentivizedCancelDialogCloseButtonText

"Fermer la vidéo"

Définit le texte du « bouton d'annulation » lorsqu'une publicité qui répond au mécanisme d'incitation est ignorée. Non disponible si la publicité ne répond pas au mécanisme d'incitation.

setIncentivizedCancelDialogKeepWatchingButtonText

"Continuer à regarder"

Définit le texte du « bouton continuer à regarder » de la boîte de dialogue de confirmation lorsqu'une publicité qui répond au mécanisme d'incitation est ignorée. Non disponible si la publicité ne répond pas au mécanisme d'incitation.

setTransitionAnimationEnabled

false

Active ou désactive l'animation de transition de fragment standard

setOrdinalViewCount(int)

null

Si vous recevez des rapports de données ordinales de Vungle, utilisez ce champ pour transmettre les données ordinales de médiation. Il s'agit d'un nombre entier indiquant l'ordre dans lequel cette publicité était présentée dans la session de jeu (par exemple, si deux publicités ont déjà été affichées dans cette session et que cette publicité de Vungle était la troisième publicité affichée, indiquez "3"). Plus d'infos sur les données ordinales ici.

getOrdinalViewCount

none

Utilisez-le pour obtenir la valeur que vous avez transmise via setOrdinalViewCount.

setFlexViewCloseTimeInSec

none

Il s'agit de la durée en secondes pendant laquelle les vidéos Flex-View seront lues avant de se fermer automatiquement.

Publicités Flex View

Pour fermer une publicité Flex View par la programmation, utilisez l'objet vunglePub :

vunglePub.closeFlexViewAd(placementID2);

Remarques supplémentaires

Android Studios rencontre un problème connu susceptible d'engendrer la panne présentée ci-dessous. Si vous possédez la dernière version d'Android Studios Instant Run, désactivez-la pour résoudre le problème.

1-20 13:53:03.649 27642-27828/com.publisher.sample W/GooglePlayServicesUtil: Google Play services out of date. Requires 10240000 but found 9879438 
11-20 13:53:03.659 27642-27828/com.publisher.sample W/VungleDevice: Google Play Services not available: SERVICE_VERSION_UPDATE_REQUIRED
11-20 13:53:05.679 27642-27642/com.publisher.sample D/Event: No subscribers registered for event class com.vungle.publisher.lu
11-20 13:53:05.679 27642-27642/com.publisher.sample D/Event: No subscribers registered for event class de.greenrobot.event.NoSubscriberEvent
Vous avez d’autres questions ? Envoyer une demande

Commentaires