Gdy nastąpi wyświetlenie, pakiet SDK do reklam mobilnych Google wywołuje procedurę obsługi zdarzenia płatnego z powiązanymi z nim danymi o przychodach. Dzięki wdrożeniu tego modułu obsługi możesz używać danych do obliczania wartości użytkownika od początku śledzenia lub przekazywać je do innych odpowiednich systemów.
Ten przewodnik pomoże Ci wdrożyć rejestrowanie danych o wartości od początku śledzenia w aplikacji na iOS.
Wymagania wstępne
- Upewnij się, że w interfejsie AdMob masz włączoną funkcję przychodów z reklam na poziomie wyświetleń.
- Zaimportuj pakiet SDK do reklam mobilnych Google w wersji 9.10.0 lub nowszej.
- Zapoznaj się z przewodnikiem dla początkujących.
Zanim zaczniesz otrzymywać przychody z reklam na poziomie wyświetleń, musisz wdrożyć co najmniej 1 format reklamy:
Implementowanie modułu obsługi płatnych zdarzeń
Każdy format reklamy ma paidEventHandler
właściwość typu
GADPaidEventHandler
.
Podczas cyklu życia zdarzenia związanego z reklamą pakiet SDK do reklam mobilnych Google monitoruje zdarzenia wyświetlenia i wywołuje procedurę obsługi z wartością zarobioną.
Swift
class ViewController: UIViewController, FullScreenContentDelegate {
var rewardedAd: RewardedAd?
func requestRewardedAd() {
RewardedAd.load(
with: "AD_UNIT_ID", request: Request()
) { (ad, error) in
if let error = error {
print("Rewarded ad failed to load with error: \(error.localizedDescription)")
return
}
if let ad = ad {
self.rewardedAd = ad
self.rewardedAd?.paidEventHandler = { adValue in
// TODO: Send the impression-level ad revenue information to your preferred analytics
// server directly within this callback.
// Extract the impression-level ad revenue data.
let value = adValue.value
let precision = adValue.precision
let currencyCode = adValue.currencyCode
// Get the ad unit ID.
let adUnitId = ad.adUnitID
let responseInfo = ad.responseInfo
let loadedAdNetworkResponseInfo = responseInfo?.loadedAdNetworkResponseInfo
let adSourceId = loadedAdNetworkResponseInfo?.adSourceID
let adSourceInstanceId = loadedAdNetworkResponseInfo?.adSourceInstanceID
let adSourceInstanceName = loadedAdNetworkResponseInfo?.adSourceInstanceName
let adSourceName = loadedAdNetworkResponseInfo?.adSourceName
let mediationGroupName = responseInfo?.extras["mediation_group_name"]
let mediationABTestName = responseInfo?.extras["mediation_ab_test_name"]
let mediationABTestVariant = responseInfo?.extras["mediation_ab_test_variant"]
}
}
}
}
}
Objective-C
@import GoogleMobileAds;
@import UIKit;
@interface ViewController ()
@property(nonatomic, strong) GADRewardedAd *rewardedAd;
@end
@implementation ViewController
- (void)requestRewardedAd {
__weak ViewController *weakSelf = self;
GADRequest *request = [GADRequest request];
[GADRewardedAd
loadWithAdUnitID:@"AD_UNIT_ID"
request:request
completionHandler:^(GADRewardedAd *ad, NSError *error) {
if (error) {
NSLog(@"Rewarded ad failed to load with error: %@", [error localizedDescription]);
return;
}
self.rewardedAd = ad;
self.rewardedAd.paidEventHandler = ^void(GADAdValue *_Nonnull value){
ViewController *strongSelf = weakSelf;
// TODO: Send the impression-level ad revenue information to your preferred analytics
// server directly within this callback.
// Extract the impression-level ad revenue data.
NSDecimalNumber *value; = value.value;
NSString *currencyCode = value.currencyCode;
GADAdValuePrecision precision = value.precision;
// Get the ad unit ID.
NSString *adUnitId = strongSelf.rewardedAd.adUnitID;
GADAdNetworkResponseInfo *loadedAdNetworkResponseInfo =
strongSelf.rewardedAd.responseInfo.loadedAdNetworkResponseInfo;
NSString *adSourceName = loadedAdNetworkResponseInfo.adSourceName;
NSString *adSourceID = loadedAdNetworkResponseInfo.adSourceID;
NSString *adSourceInstanceName = loadedAdNetworkResponseInfo.adSourceInstanceName;
NSString *adSourceInstanceID = loadedAdNetworkResponseInfo.adSourceInstanceID;
NSDictionary<NSString *, id> *extras = strongSelf.rewardedAd.responseInfo.extrasDictionary;
NSString *mediationGroupName = extras["mediation_group_name"];
NSString *mediationABTestName = extras["mediation_ab_test_name"];
NSString *mediationABTestVariant = extras["mediation_ab_test_variant"];
};
]};
}
Identyfikowanie nazwy źródła reklamy zdarzenia niestandardowego
W przypadku źródeł reklam zdarzeń niestandardowych właściwość adSourceName
zwraca nazwę źródła reklam Custom event
. Jeśli używasz wielu zdarzeń niestandardowych, nazwa źródła reklamy nie jest wystarczająco szczegółowa, aby odróżnić od siebie poszczególne zdarzenia niestandardowe. Aby znaleźć konkretne zdarzenie niestandardowe, wykonaj te czynności:
- Pobierz właściwość
adNetworkClassName
. - Ustaw niepowtarzalną nazwę źródła reklam.
W tym przykładzie ustawiamy niepowtarzalną nazwę źródła reklam dla zdarzenia niestandardowego:
Swift
func uniqueAdSourceName(for loadedAdNetworkResponseInfo: AdNetworkResponseInfo) -> String {
var adSourceName: String = loadedAdNetworkResponseInfo.adSourceName ?? ""
if adSourceName == "Custom Event" {
if loadedAdNetworkResponseInfo.adNetworkClassName
== "MediationExample.SampleCustomEventSwift"
{
adSourceName = "Sample Ad Network (Custom Event)"
}
}
return adSourceName
}
Objective-C
- (NSString *)uniqueAdSourceNameForAdNetworkResponseInfo:
(AdNetworkResponseInfo *)loadedAdNetworkResponseInfo {
NSString *adSourceName = loadedAdNetworkResponseInfo.adSourceName;
if ([adSourceName isEqualToString:@"Custom Event"]) {
if ([loadedAdNetworkResponseInfo.adNetworkClassName isEqualToString:@"SampleCustomEvent"]) {
adSourceName = @"Sample Ad Network (Custom Event)";
}
}
return adSourceName;
}
Więcej informacji o źródle wygrywającej reklamy znajdziesz w artykule Pobieranie informacji o odpowiedzi reklamy.
Integracja z firmami uczestniczącymi w programie App Attribution Partner (AAP)
Szczegółowe informacje o przekazywaniu danych o przychodach z reklam na platformy analityczne znajdziesz w przewodniku partnera:
Pakiet SDK partnera |
---|
Adjust |
AppsFlyer |
Singular |
Tenjin |
Sprawdzone metody wdrażania
- Ustaw moduł obsługi natychmiast po utworzeniu obiektu reklamy lub uzyskaniu do niego dostępu i zdecydowanie przed wyświetleniem reklamy. Dzięki temu nie przegapisz żadnych wywołań zwrotnych dotyczących płatnych wydarzeń.
- Wysyłaj informacje o płatnym zdarzeniu na wybrany serwer analityczny natychmiast po wywołaniu metody
paidEventHandler
. Dzięki temu nie utracisz żadnych wywołań zwrotnych i unikniesz rozbieżności w danych.
GADAdValue
GADAdValue
to klasa reprezentująca wartość pieniężną zarobioną na reklamie, w tym kod waluty i typ precyzji zakodowane w ten sposób:
GADAdValuePrecision | Opis |
---|---|
GADAdValuePrecisionUnknown
|
Nieznana wartość reklamy. Ten kod jest zwracany, gdy pingback LTV jest włączony, ale nie ma wystarczającej ilości danych. |
GADAdValuePrecisionEstimated
|
Wartość reklamy została oszacowana na podstawie danych zbiorczych. |
GADAdValuePrecisionPublisherProvided
|
Wartość reklamy podana przez wydawcę, np. CPM ustawiony ręcznie w grupie zapośredniczenia. |
GADAdValuePrecisionPrecise
|
Dokładna kwota zapłacona za tę reklamę. |
Testowanie wyświetleń ze źródeł reklam z ustalaniem stawek
Gdy w przypadku źródła reklam korzystającego z licytowania na poziomie wyświetleń nastąpi zdarzenie przychodów z reklam na poziomie wyświetleń w ramach żądania testowego, otrzymasz tylko te wartości:
GADAdValuePrecisionUnknown
: wskazuje typ precyzji.
0
: wskazuje wartość reklamy.
Wcześniej typ precyzji mógł mieć wartość inną niż GADAdValuePrecisionUnknown
, a wartość reklamy mogła być większa niż 0
.
Szczegółowe informacje o wysyłaniu żądania reklamy testowej znajdziesz w artykule Włączanie urządzeń testowych.