Nutzen Sie diesen Leitfaden, um unser SDK einfach in Ihre Apps einzubinden und erste Werbeeinnahmen zu erzielen. Die Code-Beispiele in diesem Leitfaden sind in C#. Beispiel-App-Dateien in C#, C++, Visual Basic und DirectX+XAML finden Sie in unserem GitHub Repository.
Bevor Sie beginnen
Anforderungen
- Für die Integration ist ein Vungle-Konto erforderlich, also erstellen Sie ein Vungle-Konto, falls Sie dies noch nicht getan haben und erstellen Sie eine neue Windows Universal Windows-Anwendung in Ihrem Konto. Lesen Sie den Abschnitt Hinzufügen Ihrer Anwendungen und Platzierungen in unserem Artikel Verwenden des Publisher-Dashboards, um zu erfahren, wie Sie Platzierungen im Vungle-Dashboard einrichten.
- Wenn Sie für Windows 8.1 entwickeln, müssen Sie Visual Studio 2015 verwenden, da Microsoft Windows 8.1 für Visual Studio 2017 nicht mehr unterstützt.
- Die Zurück-Schaltfläche wird auf Mobilgeräten, nicht auf PCs (Tastatur) unterstützt. Dies kann bei UWP-Builds zu einem Unterschied hinsichtlich des Verhaltens und des Benutzererlebnisses führen.
- Schalten Sie im Dashboard Ihre Anwendung in den aktiven Modus, falls im Testmodus keine Werbung zurückgegeben wird.
SDK herunterladen
Wenn Sie sich für die Option der manuellen Integration entscheiden, können Sie das Vungle SDK für Windows hier herunterladen: https://publisher.vungle.com/sdk/sdks/windows.
Referenz: Beispiel-App
Unterstützende Hinweise für die Integration liefert Ihnen unsere Beispiel-App: https://github.com/Vungle/Windows-SDK/tree/master.
Schritt 1: Integrieren Sie das Vungle SDK in Ihr Projekt
Es gibt zwei Möglichkeiten, Vungle in Ihr Xcode-Projekt einzufügen: entweder über NuGet oder durch manuelle Integration.
Option 1. NuGet-Integration (empfohlen)
- Klicken Sie in Visual Studio im Projektmappen-Explorer mit der rechten Maustaste auf den Namen Ihres Projekts und wählen Sie Manage NuGet Packages (NuGet-Pakete verwalten).
- Klicken Sie auf Browse (Durchsuchen), geben Sie 'Vungle' ein und wählen Sie Vungle SDK.
- Klicken Sie auf Install (Installieren).
Option 2. Manuelle Integration
- Laden Sie das Vungle Windows SDK aus dem Vungle Dashboard herunter.
- Extrahieren Sie das Archiv.
- Erstellen Sie in Visual Studio ein neues Universal Windows-Projekt mit der passenden Vorlage für Ihre Anwendung und Programmiersprache.
- Fügen Sie der Vungle Windows SDK-Datei, die Sie heruntergeladen haben, eine Referenz für Ihr Projekt hinzu.
Vungle SDK enthält zweiVungleSDK.windmd
-Dateien: eine für Windows 10 und eine weitere für die Entwicklung von Windows 8.1. Verwenden Sie das richtige SDK aus dem extrahierten Verzeichnis,Win10
oderWin81
. - Vergewissern Sie sich, dass Ihr Projekt in der Datei
package.appxmanifest
über die FunktioninternetClient
verfügt. Die Internet (Client)-Funktion ist standardmäßig aktiviert, wenn Sie ein neues Projekt erstellen. Sie können dies in Visual Studio oder durch manuelle Bearbeitung überprüfen.- So überprüfen Sie die
internetClient
-Fähigkeit in Visual Studio:- Doppelklicken Sie in Visual Studio im Projektmappen-Explorer auf
appxmanifest
. - Wählen Sie Capabilities (Fähigkeiten) aus.
- Vergewissern Sie sich, dass die Option Internet (Client) markiert ist.
- Doppelklicken Sie in Visual Studio im Projektmappen-Explorer auf
- Um die
internetClient
-Fähigkeit durch manuelle Bearbeitung sicherzustellen, öffnen Sie die Dateipackage.appxmanifeset
und fügen SieinternetClient
zum AbschnittCapabilities
hinzu:<Capabilities>
...
<Capability Name="internetClient" />
...
</Capabilities>
- So überprüfen Sie die
Schritt 2: Importieren des Namespace VungleSDK
Importieren Sie den Namespace VungleSDK
wie folgt:
Mithilfe von VungleSDK
Schritt 3. Abrufen einer VungleAd
-Instanz
Beginnend mit Vungle SDK v6.3.0 nimmt die VungleAd
-Instanz nur einen Parameter an: Ihre Vungle-App-ID.
VungleAd sdkInstance;
string appID = “app_id”;
sdkInstance = AdFactory.GetInstance(appID);
Ersetzen Sie im obenstehenden Beispiel appId
durch Ihre Vungle-App-ID und die Platzierungs-ID, die in Ihrem Projekt verwendet werden sollen. Wir empfehlen Ihnen die Durchführung dieser Initialisierungsschritte sofort, nachdem wichtige Komponenten durch Ihre App geladen wurden, sodass das automatische Cachen früher aufgenommen werden kann.
Für Vungle SDK v6.2.0 und niedriger nimmt die Instanz VungleAd
zwei Parameter an: eine Zeichenfolge für Ihre Vungle-Anwendungs-ID und ein Array von Zeichenfolgen für Platzierungs-IDs. Sie können nur Platzierungs-IDs verwenden, die Sie bereits bei der Beschaffung der Instanz angegeben haben.
sdkInstance = AdFactory.GetInstance(appID, placementList);
Schritt 4: Hinzufügen von Programmcode
Erstellen und Registrieren von Ereignishandlern
Das Windows SDK löst mehrere Ereignisse aus, die Sie programmgesteuert verarbeiten können. Sie können diese Ereignishandler zur Steuerung von Funktionen Ihrer App wie dem Pausieren oder Fortfahren von Hintergrundmusik verwenden.
Hinweise zum UI-Thread
Die Event-Listener werden in einem Hintergrund-Thread ausgeführt. Jede Interaktion oder Aktualisierung der Benutzeroberfläche, die sich aus einem Event-Listener ergibt, muss vor der Ausführung an den Haupt-Thread der UI übergeben werden. Hier folgt eine Methode um dies umzusetzen:
await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
new DispatchedHandler(() =>
{ // This block will be executed in the UI thread
} );
Diagnostik
Dieser Ereignishandler wird aufgerufen, wenn das SDK Diagnose-Logs ausgeben will.
Beispielcode:
//Register event handler sdkInstance.Diagnostic += SdkInstance_Diagnostic; ... // Event handler called when SDK wants to print diagnostic logs private void SdkInstance_Diagnostic(object sender, DiagnosticLogEvent e) { System.Diagnostics.Debug.WriteLine("Diagnostic - "
+ e.Level + " "
+ e.Type + " "
+ e.Exception + " "
+ e.Message); }
// DEPRECATED - Use SdkInstance_OnAdEnd() instead
private void SdkInstance_OnVideoView(object sender, AdViewEventArgs e) { }
OnAdPlayableChanged
Erstellen Sie einen Ereignishandler für das Ereignis OnAdPlayableChanged
. Dieser Ereignishandler wird aufgerufen, wenn sich der Anzeigenverfügbarkeitsstatus ändert. Warten Sie, bis dieser Ereignishandler eine Aktion ausführt, wenn eine Anzeige nach dem Laden einer Anzeige zur Schaltung verfügbar wird. Sie können feststellen, welche Schaltung das Ereignis ausgelöst hat, indem Sie e.Placement
überprüfen.
// Event handler for OnAdPlayableChanged event private async void SdkInstance_OnAdPlayableChanged(object sender, AdPlayableEventArgs e) {
if (e.AdPlayable == true)
{ // e.Placement - placement ID in string // Run asynchronously on the UI thread await CoreApplication.MainView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler(() => methodToRun(e.Placement)));
} }
Registrieren Sie diesen Ereignishandler für das Ereignis OnAdPlayableChanged
.
sdkInstance.OnAdPlayableChanged += SdkInstance_OnAdPlayableChanged;
OnInitCompleted
Dieser Ereignishandler wird sofort nach abgeschlossener Initialisierung des SDKs aufgerufen. Sie können überprüfen, ob eine in einer vorherigen Sitzung heruntergeladene Werbung vorhanden ist, oder eine Werbung für Platzierungen herunterladen.
Beispielcode:
//Register event handler sdkInstance.OnInitCompleted += SdkInstance_OnInitCompleted; ... // OnInitCompleted // e.Initialized - true if initialization succeeded, false if failed // e.ErrorMessage - reason for failure when e.Initialized is false private async void SdkInstance_OnInitCompleted(object sender, ConfigEventArgs e) { var placementsInfo = "OnInitCompleted: " + e.Initialized; // Initilization was success if (e.Initialized == true) { // Print out list of placements for (var i = 0; i < e.Placements.Length; i++) { placementsInfo += "\n\tPlacement" + (i + 1) + ": " + e.Placements[i].ReferenceId; if (e.Placements[i].IsAutoCached == true) placementsInfo += " (Auto-Cached)"; } } // Initilization failed else { placementsInfo += "\n\t" + e.ErrorMessage; } System.Diagnostics.Debug.WriteLine(placementsInfo); await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler(() => NotifyInitialization(e.Initialized))); }
OnAdStart
Dieser Ereignishandler wird vor der Wiedergabe einer Werbung aufgerufen. Sie können Aktionen wie das Pausieren von Hintergrundmusik durchführen.
Beispielcode:
//Register event handler sdkInstance.OnAdStart += SdkInstance_OnAdStart; ... // OnAdStart // e.Id - Vungle app ID in string // e.Placement - placement ID in string private void SdkInstance_OnAdStart(object sender, AdEventArgs e) { System.Diagnostics.Debug.WriteLine("OnAdStart(" + e.Id + "): " + e.Placement); }
OnAdEnd
Dieser Ereignishandler wird aufgerufen, wenn der Nutzer die End-Karte schließt und die Steuerung zurück an Ihre Anwendung übergeben wird. Wenn entweder IsCompletedView
oder CallToActionClicked
„true“ ist, hat der Nutzer sich die Werbung angesehen oder die Download-Schaltfläche in der Werbung angeklickt. In diesem Fall und wenn es sich um eine Werbung mit Belohnungsanreiz handelt, sollte der Nutzer belohnt werden. Sie können Aktionen wie das Wiederaufnehmen von App-Funktionen durchführen.
Beispielcode:
//Register event handlers sdkInstance.OnAdEnd += SdkInstance_OnAdEnd; ... // OnAdEnd // e.Id - Vungle app ID in string // e.Placement - placement ID in string // e.IsCompletedView- true when 80% or more of the video was watched // e.CallToActionClicked - true when the user has clicked download button on end card // e.WatchedDuration - DEPRECATED private void SdkInstance_OnAdEnd(object sender, AdEndEventArgs e) { System.Diagnostics.Debug.WriteLine("OnVideoEnd(" + e.Id + "): " + "\n\tPlacement: " + e.Placement + "\n\tIsCompletedView: " + e.IsCompletedView + "\n\tCallToActionClicked: " + e.CallToActionClicked + "\n\tWatchedDuration: " + e.WatchedDuration); }
Anzeigenformate integrieren
Schließen Sie Ihre SDK-Integration für jedes Anzeigenformat ab, das Sie in Ihrer Anwendung anzeigen möchten. Beachten Sie unsere Anweisungen für jedes Anzeigenformat:
- Integrieren von zwischengeschalteten und belohnten Anzeigen
- Integrieren von Bannerwerbung
- Integrieren von MREC-Anzeigen
Anpassen Ihrer Anzeigen
Folgen Sie den Anweisungen in unserem Artikel Erweiterte Einstellungen , um die Integration Ihrer Anwendung mit zusätzlichen Konfigurationsoptionen, wie DSGVO, CCPA-Implementierung und vielen anderen Einstellungen, genauer abzustimmen.