Dieser Artikel hilft Ihnen bei der Integration von Vungle SDK für Android oder Amazon. Ab v.5.3.0 Ihres Android SDK unterstützt Vungle Amazon OS 5.4 und höher als Plattform. Die Schritte zur Integration von Amazon SDK sind dieselben wie bei Android. Achten Sie aber darauf, die Amazon App-ID zur Integration von Amazon zu verwenden.
In diesem Artikel:
- DSGVO: Empfohlene Implementierung
-
Bevor Sie anfangen
- Schritt 1. Das Vungle SDK in Ihr Projekt integrieren
- Schritt 2. Das Vungle SDK importieren
- Schritt 3. Das Vungle SDK initialisieren
- Schritt 4. Event Listener
- Schritt 5. Werbung laden
- Schritt 6. Verfügbarkeit der Werbung überprüfen
- Schritt 7. Werbung abspielen
- Native Flex-Werbung
- Erweiterte Einstellungen
- Weitere Hinweise
DSGVO: Empfohlene Implementierung
Seit dem 25. Mai gilt in der EU die Datenschutzgrundsatzverordnung (DSGVO). Zur Einhaltung der DSGVO haben Entwickler zwei Optionen.
-
Option 1 (empfohlen): Der Herausgeber steuert den Prozess zur Konformität mit der DSGVO auf Benutzerebene und leitet die Entscheidung des Benutzers an Vungle weiter. Entwickler können dazu die Zustimmung des Benutzers über eigene Mechanismen einholen und dann mit Vungle APIs den Zustimmungsstatus des Benutzers abfragen oder aktualisieren. Einzelheiten finden Sie im Abschnitt Anweisungen zur empfohlenen Implementierung der DSGVO.
- Option 2: Erlauben Sie Vungle, die Anforderungen zu verwalten. Vungle zeigt europäischen Benutzern vor dem Abspielen einer Werbung einen Zustimmungsdialog an und merkt sich die Zustimmung bzw. Ablehnung des Benutzers für die nachfolgende Werbung.
Bevor Sie anfangen
Highlights der Version
- Schnell: Initialisierung und Caching sind im Vergleich zu v5 fünfmal schneller
-
Leicht: reduzierte Methodenanzahl
- Kern-SDK: 750 Methoden
- Vollständige Integration einschließlich Drittanbieter-Bibliotheken: ca. 4000 Methoden
- DSGVO-Konformität: Vungle bietet zwei Optionen zum Einholen der Zustimmung des Benutzers: Entweder Vungle oder der Herausgeber können den Prozess steuern. Neue API-Aufrufe wurden hinzugefügt.
Anforderungen
- Android 4.0 (Ice Cream Sandwich – API-Version 14) oder höher
- Android Support-Bibliothek v26 oder höher
- Android targetSdkVersion 26 oder früher
Beispiel-App
Schritt 1. Das Vungle SDK in Ihr Projekt integrieren
Das Vungle SDK ist in zwei Formen verfügbar: als AAR über Maven und als JAR-Integration.
Option 1. AAR-Integration
Öffnen Sie die Projektebene build.gradle
und fügen Sie eine Maven-URL im Abschnitt „Projekte“ hinzu.
allprojects {
repositories {
maven {
url 'https://jitpack.io'
}
}
}
Öffnen Sie die build.gradle
-Datei für Ihre App und fügen Sie Abhängigkeiten für die Kompilierung dem Abschnitt Abhängigkeiten hinzu.
dependencies { … // Vungle SDK
compile 'com.github.vungle:vungle-android-sdk:6.2.5'
// Optional Google Play Services - Location and Basement
compile 'com.google.android.gms:play-services-basement:11.0.4'
compile 'com.google.android.gms:play-services-location:11.0.4' … }
Falls Sie das Vungle SDK über Maven integrieren, können Sie „Schritt 2. Das Vungle SDK importieren“ überspringen.
Option 2. JAR-Integration
-
Laden Sie das Vungle SDK v. 6 herunter, entpacken Sie es, gehen Sie zum
libs
-Ordner, kopieren Sie alle Jar-Dateien und fügen Sie sie Ihremlibs
-Ordner im Projekt hinzu. - Öffnen Sie die Projektebene
build.gradle
und aktualisieren Sie den Abschnitt Repositories:allprojects {
repositories {
jcenter()
}
} - Öffnen Sie auf Anwendungsebene die
build.gradle
-Datei für Ihre App und fügen Sie weitere Abhängigkeiten im Abschnitt „Abhängigkeiten“ hinzu.dependencies { … // Vungle SDK compile files('libs/vungle-android-sdk-6.2.5.jar') // Required Third-party Dependencies compile files('libs/android-job-1.2.0.jar') compile files('libs/cat-1.0.5.jar') compile files('libs/converter-gson-2.2.0.jar') compile files('libs/fetch-1.1.5.jar') compile files('libs/gson-2.7.jar') compile files('libs/logging-interceptor-3.7.0.jar') compile files('libs/okhttp-3.7.0.jar') compile files('libs/okio-1.12.0.jar') compile files('libs/retrofit-2.2.0.jar') compile files('libs/VNG-moat-mobile-app-kit-2.2.0.jar') // Google Play Services compile 'com.google.android.gms:play-services-gcm:11.0.4' // Required compile 'com.google.android.gms:play-services-basement:11.0.4' // Optional compile 'com.google.android.gms:play-services-location:11.0.4' // Optional // Support libraries compile 'com.android.support:support-v4:26.0.1' … }
- Falls Sie das Vungle SDK manuell integrieren, können Sie mit "Schritt 2. Das Vungle SDK importieren“ fortfahren.
- Aktualisieren Sie AndroidManifest.xml, indem Sie folgende Zeilen Ihrem
AndroidManifest.xml
hinzufügen, wobei Sie den Eintragsnamen der Anwendung dem Klassennamen der Anwendung für Multidex zuweisen:<!--Required Permissions-->
<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" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!--Optional Permissions-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:networkSecurityConfig="@xml/network_security_config" >
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Google Play Services -->
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<!-- Vungle -->
<activity
android:name="com.vungle.warren.ui.VungleActivity"
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- android-job -->
<service
android:name="com.evernote.android.job.v21.PlatformJobService"
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE" />
<service
android:name="com.evernote.android.job.v14.PlatformAlarmService"
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE" />
<service
android:name="com.evernote.android.job.v14.PlatformAlarmServiceExact"
android:exported="false" />
<receiver
android:name="com.evernote.android.job.v14.PlatformAlarmReceiver"
android:exported="false" >
<intent-filter>
<!-- Keep the filter for legacy intents -->
<action android:name="com.evernote.android.job.v14.RUN_JOB" />
<action android:name="net.vrallev.android.job.v14.RUN_JOB" />
</intent-filter>
</receiver>
<receiver
android:name="com.evernote.android.job.JobBootReceiver"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>
<service
android:name="com.evernote.android.job.gcm.PlatformGcmService"
android:enabled="true"
tools:replace="android:enabled"/>
<intent-filter>
<action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
</intent-filter>
</service>
<service
android:name="com.evernote.android.job.JobRescheduleService"
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE" />
</application>
Schritt 2. Das Vungle SDK importieren
import com.vungle.warren.Vungle; import com.vungle.warren.AdConfig; // Custom ad configurations import com.vungle.warren.InitCallback; // Initialization callback import com.vungle.warren.LoadAdCallback; // Load ad callback import com.vungle.warren.PlayAdCallback; // Play ad callback import com.vungle.warren.VungleNativeAd; // Flex-Feed ad
Schritt 3. Das Vungle SDK initialisieren
Die Initialisierungsmethode benötigt folgende Parameter:
- Liste der Strings für die zur Platzierung verwendeten Referenz-IDs
- Vungle-Anwendungs-ID
- Anwendungskontext
-
InitCallback
-
onSuccess
: meldet die erfolgreiche Initialisierung des SDK -
onError
: meldet eine fehlgeschlagene Initialisierung- gibt
IllegalArgumentException
aus, wennInitCallback
null ist - gibt
VungleException
aus, wenn erforderliche Argumente fehlen oder ungültig sind
- gibt
-
onAutoCacheAdAvailable
: meldet abspielbereite Werbung bei Auto-Cache-Platzierung
-
onAutoCacheAdAvailablecallback
ist als Teil des Initialisierungs-Callbacks verfügbar, da das SDK bei jeder nicht gecachten Werbung versucht, diese in die automatisch gecachte Platzierung zu übernehmen. Dies gilt auch für den erstmaligen Start des SDK oder für zuvor gecachte Werbung, die zur Platzierung abgespielt wurde. Dies bleibt so, bis der Prozess beendet wird oder die Vungle-Instanz als Datenmüll geclaimt wurde. Alle anderen Platzierungen, die nicht automatisch gecacht wurden, loadAd
müssen ausdrücklich gemäß der Beschreibung in „Schritt 5. Werbung laden“ erfolgen.
private final List placement_collection = Arrays.asList("PLACEMENT_1", "PLACEMENT_2", "PLACEMENT_3"); Vungle.init(placement_collection, app_id, this.getApplicationContext(), new InitCallback() { @Override public void onSuccess() { // Initialization has succeeded and SDK is ready to load an ad or play one if there // is one pre-cached already } @Override public void onError(Throwable throwable) { // Initialization error occurred - throwable.getLocalizedMessage() contains error message } @Override public void onAutoCacheAdAvailable(String placementId) { // Callback to notify when an ad becomes available for the auto-cached placement // // NOTE: This callback works only for the auto-cached placement. Otherwise, please use // LoadAdCallback with loadAd API for loading placements. } };
Sie können jederzeit überprüfen, ob Vungle SDK initialisiert wurde, indem Sie die isInitialized
-Methode aufrufen:
public static boolean isInitialized()
Schritt 4. Event Listener
Implementieren Sie LoadAdCallback
zum Laden und PlayAdCallback
zum Abspielen von Werbung, wenn Sie für alle Ereignisse einen generischen Callback verwenden möchten. Gehen Sie anderenfalls weiter zu „Schritt 5. Werbung laden“, um Inline-Callbacks zu implementieren.
// Implement LoadAdCallback
private final LoadAdCallback vungleLoadAdCallback = new LoadAdCallback() {
@Override
public void onAdLoad(String placementReferenceId) {
// Placement reference ID for the placement to load ad assets
}
@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Placement reference ID for the placement that failed to download ad assets
// Throwable contains error message
}
};
// Implement PlayAdCallback
private final PlayAdCallback vunglePlayAdCallback = new PlayAdCallback() {
@Override
public void onAdStart(String placementReferenceId) {
// Placement reference ID for the placement to be played
}
@Override
public void onAdEnd (String placementReferenceId, boolean completed, boolean isCTAClicked) {
// Placement reference ID for the placement that has completed ad experience
// completed has value of true or false to notify whether video was
// watched for 80% or more
// isCTAClkcked has value of true or false to indicate whether download button
// of an ad has been clicked by the user
}
@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Placement reference ID for the placement that failed to play an ad
// Throwable contains error message
}
};
Schritt 5. Werbung laden
In Vungle Android SDK v6 ist ein lastenabhängiges Callback erlaubt – anstelle des vom globalen VungleAdEventListener
abhängigen Callbacks in v5. Das LoadAdCallback
wird über den Lastenzustand des ihm zugewiesenen Aufrufs informiert. Das v6 SDK nimmt diesen Callback nur als Referenz und speichert ihn nicht. Die korrekte Verwaltung des Callbacks liegt in der Verantwortung des Aufrufenden.
public static void loadAd(@NonNull final String id, @Nullable LoadAdCallback callback)
Das SDK verwaltet den Download der Werbe-Assets für die automatisch gecachte Platzierung, sodass es nicht erforderlich ist, diese Methode zur automatisch gecachte Platzierung zu aktivieren. Bei allen anderen Platzierungen muss die loadAd
-Methode aktiviert und erfolgreich ausgeführt werden, bevor das SDK eine Werbung zur Platzierung abspielen kann. Das onAdLoad
-Callback wird ausgelöst, sobald dies erfolgt.
// Load Ad Implementation
if (Vungle.isInitialized()) {
Vungle.loadAd("PLACEMENT_ID", new LoadAdCallback() {
@Override
public void onAdLoad(String placementReferenceId) { }
@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Load ad error occurred - throwable.getLocalizedMessage() contains error message
}
};
}
Schritt 6. Verfügbarkeit der Werbung überprüfen
Verwenden Sie die statische Methode canPlayAdmethod
zur Prüfung, ob eine Werbung zum Abspielen zur Platzierung verfügbar ist, bevor Sie playAd()
ausführen. method
public static boolean canPlayAd(@NonNull String id)
Schritt 7. Werbung abspielen
Zum Abspielen einer Werbung aktivieren Sie die playAd
-Methode mit der Referenz-ID für die Platzierung. ID, optional AdConfig
(Null wenn nicht verwendet), und einen PlayAdCallback
-Event Listener, der über Erfolg oder Fehler beim Abspielen der Werbung benachrichtigt wird.
public static void playAd(@NonNull final String id, final AdConfig settings, @Nullable final PlayAdCallback listener)
Sie sollten die Verfügbarkeit von Werbung stets überprüfen, indem Sie die canPlayAd
-Methode vor Aktivieren der playAd
-Methode aufrufen. Sie müssen sich zudem vergewissern, dass playAd
nicht ausgegeben wird, bevor Sie einen onAdEnd
oder einen onError
-Callback aus dem ursprünglichen playAd
-Aufruf erhalten, weil die Werbung nicht korrekt gerendert wird, wenn playAd
wiederholt in schneller Folge aufgerufen wird.
if (Vungle.canPlayAd("PLACEMENT_ID")) {
Vungle.playAd("PLACEMENT_ID", new AdConfig, new PlayAdCallback() {
@Override
public void onAdStart(String placementReferenceId) { }
@Override
public void onAdEnd(String placementReferenceId, boolean completed, boolean isCTAClicked) { }
@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Play ad error occurred - throwable.getLocalizedMessage() contains error message
}
});
}
Erneute Initialisierung des SDK bei onError
In seltenen Fällen können die Ressourcen knapp werden, wodurch das System Teile des Vungle SDK oder vom SDK benötigter Drittanbieter-Ressourcen freigibt. In diesen Fällen senden LoadAdCallback
and
PlayAdCallback
einen onError()
-Callback mit einem Objekt zusammen mit dem Code ‘VungleException.VUNGLE_NOT_INTIALIZED’
. Dadurch wird angezeigt, dass das Vungle SDK nicht betriebsbereit ist und neu initialisiert werden muss.
@Override public void onError(String placementReferenceID, Throwable throwable) { try { VungleException ex = (VungleException) throwable; if (ex.getExceptionCode() == VungleException.VUNGLE_NOT_INTIALIZED) { initializeVungleSDK(); } } catch (ClassCastException cex) { Log.d(LOG_TAG, cex.getMessage()); } }
Native Flex-Werbung
Flex-View-Werbung
Flex-View-Werbung wird wie nomale Vollbildwerbung geladen und abgespielt. Rufen Sie einfach die Referenz-ID zur Platzierung auf dem Dashboard auf, die mit dem Platzierungstyp „Flex-View“ konfiguriert wurde.
Flex-View kann programmgesteuert geschlossen werden, indem Sie die closeFlexViewAd
-Methode mit der Referenz-ID zur Platzierung ausgeben, mit der aktuell die Flex-View-Werbung abgespielt wird.
public static boolean closeFlexViewAd(@NonNull final String placementReferenceId)
Es gibt eine weitere Option zum automatische Schließen von Flex-View-Werbung, nachdem diese eine bestimmte Zeit lang angezeigt wurde. Informationen dazu finden Sie im Abschnitt Optionen für Werbungskonfiguration.
Flex-Feed-Werbung
Das Flex-Feed-Werbeformat erfordert keinen Vollbildschirm. Stattdessen bestimmt der Herausgeber die exakten Abmessungen und die Positionierung des Werbung-Containers innerhalb der App. Diese Werbungs-Container können in Sammel- oder Tabellenansichten enthalten sein.
Eine Flex-Feed-Werbung laden
Der Herausgeber muss eine Werbung in den Flex-Feed-Container laden. Eine Flex Feed-Werbung wird auf dieselbe Weise wie eine Vollbildwerbung geladen; allerdings muss die Platzierung so eingestellt werden, dass sie Flex-Feed unterstützt. Wenden Sie sich an Ihren Vungle Account-Manager, um Flex-Feed für eine Platzierung zu aktivieren.
Eine Flex-Feed-Werbung anzeigen
Das Anzeigen von Flex Feed-Werbung unterscheidet sich von dem von Vollbildwerbung. Bei Flex Feed-Werbung müssen Sie zuerst einen Container für die Werbung erstellen. Dieser Container ist ein Layout. Sie können dieses RelativeLayout
an beliebiger Stelle auf dem Display platzieren. Die Anzeige lässt sich auf jede Größe des Containers skalieren. Beachten Sie aber, dass eine sehr niedrige Auflösung die Sichtbarkeit der Werbung verringert. Anschließend müssen Sie mit Vungle.getNativeAd
das Flex-Feed-Werbung-Objekt und die Funktion addView
aufrufen, um den Container einer Flex Feed-Werbung zuzuordnen.
private RelativeLayout flexfeed_container = findViewById(...); VungleNativeAd vungleNativeAd = Vungle.getNativeAd("FLEXFEED_ID", vunglePlayAdCallback); View nativeAdView = vungleNativeAd.renderNativeView(); flexfeed_container.addView(nativeAdView);
Eine Flex-Feed-Werbung schließen
Da die Ansicht für die Flex-Feed-Werbung zur Container-Ansicht hinzugefügt wurde, muss diese auch entfernt werden, falls die Werbungsansicht vom Bildschirm entfernt wird, die Aktivität oder das Fragment gelöscht werden oder der übergeordnete Ansicht-Container recycelt oder gelöscht wird. Wenn Sie die Werbung nicht vorher schließen, können derartige Ereignisse ein unerwartetes Verhalten Ihrer App verursachen.
private VungleNativeAd vungleNativeAd; // Calling finishDisplayingAd when you want to finish displaying Flex-Feed Ad will
löst onAdEnd aus und gibt eine Benachrichtigung aus, wenn Sie den untergeordneten FlexFeed-Ansicht.Container entfernen können
vungleNativeAd.finishDisplayingAd(); // And removing empty ad view from container @Override public void onAdEnd(String id, boolean completed) { … parentView.remove(nativeAdView); vungleNativeAd = null; … }
Zustand einer Flex-Feed-Werbung anfügen bzw. abtrennen
Wenn der Benutzer zu einer Stelle blättert, an der das Video nicht mehr auf dem Bildschirm sichtbar ist, dann muss der Herausgeber das Video anhalten und es fortsetzen, sobald es wieder sichtbar ist. Zur Steuerung von Pause und Fortsetzung rufen Sie setAdVisibility() aus der VungleNativeAd-Instanz auf und setzen dies auf „true“, wenn das Video sichtbar ist, und auf „false“, wenn sich das Video außerhalb des Bildschirmbereichs befindet. setAdVisibility darf nicht mit der Sichtbarkeit der Ansicht verwechselt werden: Diese Einstelloption informiert Vungle SDK darüber, ob die native Ansicht der Werbung sichtbar ist und lässt abhängig davon das Abspielen des Videos durch das SDK pausieren bzw. fortsetzen.
Eine Flex-Feed-Werbung pausieren:
vungleNativeAd.setAdVisibility(false);
Eine Flex-Feed-Werbung fortsetzen:
vungleNativeAd.setAdVisibility(true);
Erweiterte Einstellungen
Google Play Services (optional)
Wenn Sie Google Play-Dienste in Ihr Projekt integrieren, kann Vungle besser auf die Endbenutzer zugeschnittene Werbung bereitstellen. Google Cloud Messaging ist eine erforderliche API, während die APIs Google Location and Activity Recognition und Google Location and Basement optional sind. Wir empfehlen Version 11.0.1 oder höher.
Zur Integration der Google Play Services empfehlen wir Google's Setup Guide. Stellen Sie in Ihrer App sicher, dass die Version von Google Play Services auf dem Gerät hinreichend aktuell ist. Das Vungle SDK verwendet optional die APIs Location und Ads von Google Play Services.
- google.android.gms:play-services-gcm:11.0.1 // Required
- google.android.gms:play-services-basement:11.0.1 // Recommended
- google.android.gms:play-services-location:11.0.1 // Recommended
Reduzierung der Methodenanzahl
Mit dem Vungle Android SDK v6 werden Ihrem Projekt ca. 750 Vungle-Kernmethoden hinzugefügt, wobei die transitiven Abhängigkeiten nicht berücksichtigt sind. Bei einer vollen Integration werden einschließlich der Drittanbieter-Bibliotheken durchschnittlich 4000 Methoden hinzugefügt. Erwägen Sie folgende Vorschläge zur Reduzierung der Gesamtanzahl der Methoden in Ihrem Projekt.
-
ProGuard: Sie können ProGuard aktivieren, um Ihren Projektcode kompakter zu gestalten. Dabei werden alle während der Kompilierung nicht genutzten Klassen entfernt, um die Gesamtanzahl der Methoden möglichst gering zu halten. Sie erreichen dies durch Angabe von minifyEnabled true in build.gradle des entsprechenden Build-Typs und indem Sie die Regeln zur Verfügung stellen, um die Klassen, die in Ihrem Projekt erforderlich sind, beizubehalten.
- Multidex: Falls Sie sich noch immer bei einer Methodenanzahl jenseits von 65.000 befinden, könnte multiDex die einzige von Google bereitgestellte Methode sein. Sie müssen Ihr Projekt nur einmalig zu multiDex konfigurieren. Dies wird sich aber auf die Build- und Startzeit der App auswirken.
Proguard
Falls Sie Proguard verwenden, fügen Sie folgende Zeilen in Ihre ProGuard-Konfigurationsdatei ein:
# Vungle -keep class com.vungle.warren.** { *; } # Evernote -dontwarn com.evernote.android.job.gcm.** -dontwarn com.evernote.android.job.GcmAvailableHelper -dontwarn com.google.android.gms.ads.identifier.** -keep public class com.evernote.android.job.v21.PlatformJobService -keep public class com.evernote.android.job.v14.PlatformAlarmService -keep public class com.evernote.android.job.v14.PlatformAlarmReceiver -keep public class com.evernote.android.job.JobBootReceiver -keep public class com.evernote.android.job.JobRescheduleService -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -keep class com.google.android.gms.internal.** { *; } # Moat SDK -keep class com.moat.** { *; } -dontwarn com.moat.**
Hinweise zum UI-Thread
Die Callbacks werden in einem Hintergrund-Thread ausgeführt. Jede Interaktion oder Aktualisierung der Benutzeroberfläche, die sich aus einem Event-Callback ergibt, muss vor der Ausführung an den Haupt-Thread der UI übergeben werden. Die zwei gängigsten Methoden zum Ausführen Ihres Codes im UI-Thread sind:
Optionen zur Werbungskonfiguration
Werbungskonfiguration
Sie haben die Möglichkeit, Werbung durch Angabe eines neuen adConfig
-Objekts für playAd
individuell anzupassen. AdConfig
ist ein Objekt und kann Null sein, wodurch die Werbung mit der Standardkonfiguration abgespielt wird. Wenn es nicht Null ist, überschreibt es die AdConfig
-Einstellung. Es folgt ein Beispiel zur Anwendung von AdConfig
:
Vungle.playAd(placementReferenceID, null, vunglePlayAdCallback);
Oben wird Null als adConfig
-Objekt verwendet. Sie können dies tun, wenn Sie keine zusätzliche Konfiguration nutzen möchten. Verwenden Sie ein AdConfig
-Objekt wie hier dargestellt:
AdConfig adConfig = new AdConfig(); adConfig.setAutoRotate(true); adConfig.setMuted(true); Vungle.playAd(placementReferenceID, adConfig, vunglePlayAdCallback);
Die folgende Tabelle zeigt die verfügbaren AdConfig
-Optionen.
Option |
Beschreibung |
|
„true“, wenn die Schaltfläche „Zurück“ vor der Schaltfläche zum Schließen der Werbung aktiviert werden soll, anderenfalls „false“ |
|
nimmt einen Integerwert größer oder gleich 0, der die Zeit in Sekunden angibt, in der die Flex-View-Werbung automatisch geschlossen wird |
|
„true“, wenn der immersive Modus für KitKat+-Geräte aktiviert ist, anderenfalls „false“ |
|
„true“, wenn das Video automatisch gedreht werden soll, „false“, wenn das Video der Ausrichtung der Werbung folgen soll |
|
„true“, wenn das Video mit den Audioeinstellungen starten soll, die denen der Anwendung entsprechen, in die es eingebettet ist, „false“, wenn es beim Start stummgeschaltet sein soll |
|
Benötigt einen Integerwert als Nummerierung, um Anzahl der Werbeanzeigen zu erfassen, die in einer Sitzung abgespielt wurde |
|
„true“, wenn die Übergangsanimation des Videos aktiviert sein soll, „false“, wenn sie deaktiviert sein soll |
Sie können dasselbe AdConfig
-Objekt für mehrere Referenz-IDs zur Platzierung der abgespielten Werbung verwenden.
Konfiguration von Werbung mit zusätzlichen Anreizen
Sie können das Vungle-Objekt verwenden, um die Belohnungsanreize der Videos zu konfigurieren.
Option |
Beschreibung |
|
Wenn ein Benutzer versucht, ein solches Video zu schließen, dann wird ein Popup-Fenster zur Bestätigung der Benutzeraktion angezeigt. Dieses Fenster können Sie mit dieser Einstellung anpassen. Wählen Sie Null, falls Sie den Standardwert nicht ändern möchten, beispielsweise, wenn Sie nur die Benutzer-ID modifzieren wollen. |
So konfigurieren Sie eine Werbung mit Belohnungsanreizen:
Vungle.setIncentivizedFields("user1","title1","body1","keepwatching1","close1"); Vungle.playAd("YOUR_APP_ID", AdConfig, vunglePlayAdCallback);
Liste gültiger Platzierungen
Eine Hilfsmethode, die eine Sammlung von Strings zurückgibt, die alle gültigen Referenz-IDs zur Platzierung für die aktuelle Sitzung enthält.
public static Collection getValidPlacements()
Anweisungen zur empfohlenen DSGVO-Implementierung
Bei Verwendung von Vungle APIs zur Aktualisierung oder Abfrage der Benutzerreaktion (wie in Option 1 von DSGVO: Empfohlene Implementierung für Vungle empfohlen), werden folgende Funktionen genutzt:
// To set the user's consent status to opted in: Vungle.updateConsentStatus(Vungle.Consent.OPTED_IN); // To set the user's consent status to opted out: Vungle.updateConsentStatus(Vungle.Consent.OPTED_OUT); // To find out what the user's current consent status is: Vungle.Consent currentStatus = Vungle.getConsentStatus();
Hardwarebeschleunigung
Hardwarebeschleunigung wird standardmäßig aktiviert, wenn Ihre API auf Level 14 oder höher eingestellt ist. Diese Option muss aktiviert werden, damit das SDK dynamische Vorlagen und native Flex-Werbung korrekt anzeigt. Stellen Sie sicher, dass dies in Ihrem Projekt auf „true“ gesetzt ist:
<application android:hardwareAccelerated="true" ...>
Abrufen der SDK-Versionsnummer
Programmgesteuertes Abrufen der SDK-Versionsnummer zur Laufzeit (nützlich bei interner Kommunikation) wird in Vungle durch folgenden String ermöglicht:
com.vungle.warren.BuildConfig.VERSION_NAME
Weitere Hinweise
Android Studios hat bekannte Probleme, die zu einem Absturz führen. Wenn Sie die aktuelle Version von Android Studios Instant Run besitzen, deaktivieren Sie Android Studios Instant Run, um diese Abstürze zu vermeiden.
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