Wenn eine Impression erzielt wird, stellt das Google Mobile Ads SDK die mit dieser Impression verbundenen Daten zu den Werbeeinnahmen bereit. Sie können die Daten verwenden, um den Lifetime-Wert eines Nutzers zu berechnen, oder die Daten an andere relevante Systeme weiterleiten.
In diesem Leitfaden erfahren Sie, wie Sie die Erfassung von Daten zu den Werbeeinnahmen auf Impressionsebene in Ihrem Unity-Projekt implementieren.
Vorbereitung
- Achten Sie darauf, dass Sie die Funktion für Werbeeinnahmen auf Impressionsebene in der AdMob-Benutzeroberfläche aktiviert haben.
- Unity-Plug-in 5.0.0 oder höher
- Führen Sie die Schritte unter Jetzt starten aus. In Ihrer Unity-App sollte das Unity-Plug-in für Google Mobile Ads bereits importiert sein.
Bevor Sie Daten zu Werbeeinnahmen auf Impressionsebene erhalten können, müssen Sie mindestens ein Anzeigenformat implementieren:
Handler für kostenpflichtige Ereignisse implementieren
Für jedes Anzeigenformat gibt es ein OnAdPaid
-Ereignis. Während des Lebenszyklus eines Anzeigenereignisses überwacht das Google Mobile Ads SDK 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"];
}
Name der Anzeigenquelle für benutzerdefiniertes Ereignis ermitteln
Bei Anzeigenquellen für benutzerdefinierte Ereignisse wird mit der Property AdSourceName
der Name der Anzeigenquelle Custom Event
zurückgegeben. Wenn Sie mehrere benutzerdefinierte Ereignisse verwenden, ist der Name der Anzeigenquelle nicht detailliert genug, um zwischen den einzelnen benutzerdefinierten Ereignissen zu unterscheiden. So finden Sie ein bestimmtes benutzerdefiniertes Ereignis:
- Rufen Sie das Attribut
AdapterClassName
ab. - Legen Sie einen eindeutigen Namen für die Anzeigenquelle fest.
Im folgenden Beispiel wird ein eindeutiger Anzeigenquellenname für ein benutzerdefiniertes Ereignis 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 Anzeigenquelle, die die Auktion gewonnen hat, finden Sie unter Informationen zur Anzeigenantwort abrufen.
Mit App Attribution Partnern (AAPs) zusammenarbeiten
Ausführliche Informationen zum Weiterleiten von Werbeeinnahmedaten an Analyseplattformen finden Sie im Leitfaden des jeweiligen Partners:
Partner SDK |
---|
Anpassen |
AppsFlyer |
Singular |
Tenjin |
Best Practices für die Implementierung
- Legen Sie das
OnPaidEvent
-Ereignis sofort fest, nachdem Sie das Anzeigenobjekt erstellt oder darauf zugegriffen haben, und auf jeden Fall vor der Auslieferung der Anzeige. So verpassen Sie keine Rückrufe. - Senden Sie die Informationen zu Werbeeinnahmen auf Impressionsebene sofort in Ihrem
OnPaidEvent
-Handler an den von Ihnen bevorzugten Analysenserver. So wird sichergestellt, dass Sie keine Callbacks versehentlich verwerfen, und Datenabweichungen werden vermieden.
AdValue
AdValue
ist eine Klasse, die den mit einer Anzeige erzielten Geldwert darstellt, einschließlich des Währungscodes des Werts und des codierten Genauigkeitstyps.
AdValue.PrecisionType |
Beschreibung |
---|---|
Unknown |
Ein unbekannter Anzeigenwert. Dieser Wert wird zurückgegeben, wenn LTV-Pingbacks aktiviert sind, 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 Estimated
-Wert für Anzeigenquellen bereitzustellen, die optimiert sind. Bei nicht optimierten Anzeigenquellen oder in Fällen, in denen nicht genügend aggregierte Daten für eine aussagekräftige Schätzung vorhanden sind, wird der Wert PublisherProvided
zurückgegeben.
Impressionen aus Bidding-Anzeigenquellen testen
Nachdem ein Ereignis für Werbeeinnahmen auf Impressionsebene für eine Bidding-Anzeigenquelle über eine Testanfrage erfolgt ist, erhalten Sie nur die folgenden Werte:
Unknown
: Gibt den Typ der Genauigkeit an.
0
: Gibt den Anzeigenwert an.
Bisher wurde der Präzisionstyp möglicherweise als anderer Wert als Unknown
und der Anzeigenwert als mehr als 0
angezeigt.
Weitere Informationen zum Senden einer Testanzeigenanfrage finden Sie unter Testgeräte aktivieren.