Wenn eine Impression erfolgt, liefert Google Mobile Ads Unity Plugin Daten zu den Werbeeinnahmen , die mit dieser Impression verbunden sind. Sie können die Daten verwenden, um den Lifetime-Wert eines Nutzers zu berechnen, oder sie an andere relevante Systeme weiterleiten.
In dieser Anleitung erfahren Sie, wie Sie die Erfassung von Werbeeinnahmen auf Impressionsebene in Ihrem Unity-Projekt implementieren.
Vorbereitung
- Aktivieren Sie die Funktion für Werbeeinnahmen auf Impressionsebene in der AdMob-Benutzeroberfläche.
- Unity-Plug-in 5.0.0 oder höher.
- Führen Sie die Schritte unter Erste Schritte aus. Das Google Mobile Ads Unity-Plug-in sollte bereits in Ihre Unity-App importiert worden sein.
Bevor Sie Daten zu Werbeeinnahmen auf Impressionsebene erhalten können, müssen Sie mindestens ein Anzeigenformat implementieren:
Handler für kostenpflichtige Ereignisse implementieren
Jedes Anzeigenformat hat ein OnAdPaid-Ereignis. Während des Lebenszyklus eines Anzeigenereignisses
Google Mobile Ads Unity Plugin überwacht Impressionen und ruft den Handler
mit einem AdValue auf, der den erzielten Wert darstellt.
Im folgenden Beispiel werden kostenpflichtige Ereignisse für eine Anzeige mit Prämie verarbeitet:
private void LoadRewardedAd()
{
// Send the request to load the ad.
AdRequest adRequest = new AdRequest();
RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd rewardedAd, LoadAdError error) =>
{
// If the operation failed with a reason.
if (error != null)
{
Debug.LogError("Rewarded ad failed to load an ad with error : " + error);
return;
}
rewardedAd.OnAdPaid += this.HandleAdPaidEvent;
});
}
public void HandleAdPaidEvent(AdValue adValue)
{
// TODO: Send the impression-level ad revenue information to your
// preferred analytics server directly within this callback.
long valueMicros = adValue.Value;
string currencyCode = adValue.CurrencyCode;
PrecisionType precision = adValue.Precision;
ResponseInfo responseInfo = rewardedAd.GetResponseInfo();
string responseId = responseInfo.GetResponseId();
AdapterResponseInfo loadedAdapterResponseInfo = responseInfo.GetLoadedAdapterResponseInfo();
string adSourceId = loadedAdapterResponseInfo.AdSourceId;
string adSourceInstanceId = loadedAdapterResponseInfo.AdSourceInstanceId;
string adSourceInstanceName = loadedAdapterResponseInfo.AdSourceInstanceName;
string adSourceName = loadedAdapterResponseInfo.AdSourceName;
string adapterClassName = loadedAdapterResponseInfo.AdapterClassName;
long latencyMillis = loadedAdapterResponseInfo.LatencyMillis;
Dictionary<string, string> credentials = loadedAdapterResponseInfo.AdUnitMapping;
Dictionary<string, string> extras = responseInfo.GetResponseExtras();
string mediationGroupName = extras["mediation_group_name"];
string mediationABTestName = extras["mediation_ab_test_name"];
string mediationABTestVariant = extras["mediation_ab_test_variant"];
}
Namen für die Anzeigenquelle eines benutzerdefinierten Ereignisses festlegen
Bei Anzeigenquellen für benutzerdefinierte Ereignisse gibt die Property AdSourceName den Namen der Anzeigenquelle Custom Event an. Wenn Sie mehrere benutzerdefinierte Ereignisse verwenden, ist der Name der Anzeigenquelle nicht detailliert genug, um zwischen mehreren benutzerdefinierten Ereignissen zu unterscheiden. So finden Sie ein bestimmtes benutzerdefiniertes Ereignis:
- Rufen Sie die Property
AdapterClassNameab. - Legen Sie einen eindeutigen Namen für die Anzeigenquelle fest.
Im folgenden Beispiel wird ein eindeutiger Name für die Anzeigenquelle eines benutzerdefinierten Ereignisses festgelegt:
private string GetAdSourceName(AdapterResponseInfo loadedAdapterResponseInfo)
{
if (loadedAdapterResponseInfo == null)
{
return string.Empty;
}
string adSourceName = loadedAdapterResponseInfo.AdSourceName;
if (adSourceName == "Custom Event")
{
#if UNITY_ANDROID
if (loadedAdapterResponseInfo.AdapterClassName ==
"com.google.ads.mediation.sample.customevent.SampleCustomEvent")
{
adSourceName = "Sample Ad Network (Custom Event)";
}
#elif UNITY_IPHONE
if (loadedAdapterResponseInfo.AdapterClassName == "SampleCustomEvent")
{
adSourceName = "Sample Ad Network (Custom Event)";
}
#endif
}
return adSourceName;
}Weitere Informationen zur gewinnenden Anzeigenquelle finden Sie unter Informationen zur Anzeigenantwort abrufen.
Mit App Attribution Partnern (AAP) verknüpfen
Ausführliche Informationen zum Weiterleiten von Werbeeinnahmen an Analyseplattformen finden Sie in der Anleitung des Partners:
| Partner-SDK |
|---|
| Adjust |
| AppsFlyer |
| Singular |
| Tenjin |
Best Practices zur Implementierung
- Legen Sie das
OnPaidEvent-Ereignis sofort fest, nachdem Sie das Anzeigenobjekt erstellt oder darauf zugegriffen haben, und auf jeden Fall vor dem Ausliefern der Anzeige. So verpassen Sie keine Callbacks. - Senden Sie die Informationen zu Werbeeinnahmen auf Impressionsebene sofort in Ihrem
OnPaidEvent-Handler an den gewünschten Analyseserver. So vermeiden Sie, dass Callbacks versehentlich verloren gehen, und verhindern Datenabweichungen.
AdValue
AdValue ist eine Klasse, die den monetären Wert darstellt, der mit einer Anzeige erzielt wurde. Dazu gehören der Währungscode des Werts und der Genauigkeitstyp, der wie folgt codiert ist.
AdValue.PrecisionType |
Beschreibung |
|---|---|
Unknown |
Ein unbekannter Anzeigenwert. Dieser Wert wird zurückgegeben, wenn LTV-Pingback aktiviert ist, aber nicht genügend Daten verfügbar sind. |
Estimated |
Ein Anzeigenwert, der anhand von aggregierten Daten geschätzt wird. |
PublisherProvided |
Ein vom Publisher angegebener Anzeigenwert, z. B. manuelle CPMs in einer Vermittlungsgruppe. |
Precise |
Der genaue Wert dieser Anzeige. |
Bei der Vermittlung versucht AdMob, einen EstimatedWert für Anzeigenquellen
anzugeben, die optimiert sind. Bei nicht optimierten Anzeigenquellen oder wenn nicht genügend aggregierte Daten vorhanden sind, um eine aussagekräftige Schätzung zu liefern, wird der Wert PublisherProvided zurückgegeben.
Impressionen von Bidding-Anzeigenquellen testen
Nachdem ein Ereignis zu Werbeeinnahmen auf Impressionsebene für eine Bidding-Anzeigenquelle über eine Testanfrage erfolgt ist, erhalten Sie nur die folgenden Werte:
Unknowngibt den Genauigkeitstyp an.
0gibt den Anzeigenwert an.
Bisher wurde der Genauigkeitstyp möglicherweise als anderer Wert als
Unknown
und ein Anzeigenwert über 0 angezeigt.
Weitere Informationen zum Senden einer Testanzeigenanfrage finden Sie unter Testgeräte aktivieren.