Lorsqu'une impression se produit, le SDK Google Mobile Ads fournit des données sur les revenus publicitaires associés à cette impression. Vous pouvez utiliser ces données pour calculer la valeur vie d'un utilisateur ou pour transmettre les données en aval à d'autres systèmes pertinents.
L'objectif de ce guide est de vous aider à implémenter la capture de données sur les revenus publicitaires au niveau des impressions dans votre application Android.
Conditions préalables
- Assurez-vous d'avoir activé la fonctionnalité de revenus publicitaires au niveau des impressions dans l'UI AdMob.
- Importez la version 21.1.0 ou ultérieure du SDK Google Mobile Ads.
- Suivez le guide de démarrage.
Avant de pouvoir percevoir des revenus publicitaires au niveau des impressions, vous devez implémenter au moins un format d'annonce:
Gestionnaire d'événements payants
Chaque format d'annonce est associé à un OnPaidEventListener
. Pendant le cycle de vie d'un événement d'annonce, le SDK Google Mobile Ads surveille les événements d'impression et appelle le gestionnaire avec une valeur acquise.
Le code ci-dessous montre comment gérer les événements payants pour une annonce avec récompense:
Java
import com.google.android.gms.ads.rewarded.RewardedAd;
public class MainActivity extends Activity {
private RewardedAd rewardedAd;
private final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
AdRequest adRequest = new AdRequest.Builder().build();
RewardedAd.load(this, "AD_UNIT_ID",
adRequest, new RewardedAdLoadCallback(){
@Override
public void onAdLoaded(@NonNull RewardedAd ad) {
rewardedAd = ad;
// Set paid event listener
rewardedAd.setOnPaidEventListener(new OnPaidEventListener() {
@Override
public void onPaidEvent(AdValue adValue) {
// TODO: Send the impression-level ad revenue information to your
//preferred analytics server directly within this callback.
// Extract the impression-level ad revenue data.
long valueMicros = adValue.getValueMicros();
String currencyCode = adValue.getCurrencyCode();
int precision = adValue.getPrecisionType();
// Get the ad unit ID.
String adUnitId = rewardedAd.getAdUnitId();
AdapterResponseInfo loadedAdapterResponseInfo = rewardedAd.getResponseInfo().
getLoadedAdapterResponseInfo();
String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
String adSourceId = loadedAdapterResponseInfo.getAdSourceId();
String adSourceInstanceName = loadedAdapterResponseInfo.getAdSourceInstanceName();
String adSourceInstanceId = loadedAdapterResponseInfo.getAdSourceInstanceId();
Bundle extras = rewardedAd.getResponseInfo().getResponseExtras();
String mediationGroupName = extras.getString("mediation_group_name");
String mediationABTestName = extras.getString("mediation_ab_test_name");
String mediationABTestVariant = extras.getString("mediation_ab_test_variant");
}
});
}
});
}
}
Kotlin
import com.google.android.gms.ads.rewarded.RewardedAd
class MainActivity : AppCompatActivity() {
private var rewardedAd: RewardedAd? = null
private final var TAG = "MainActivity"
override fun onCreate(savedInstanceState: Bundle?) {
AdRequest adRequest = new AdRequest.Builder().build()
RewardedAd.load(this, "AD_UNIT_ID",
adRequest, object: RewardedAdLoadCallback() {
override fun onAdLoaded(ad: RewardedAd) {
rewardedAd = ad
// Set paid event listener
rewardedAd.onPaidEventListener = OnPaidEventListener { adValue ->
// TODO: Send the impression-level ad revenue information to your preferred
// analytics server directly within this callback.
// Extract the impression-level ad revenue data.
val valueMicros = adValue.valueMicros
val currencyCode = adValue.currencyCode
val precision = adValue.precisionType
// Get the ad unit ID.
val adUnitId = rewardedAd.adUnitId
val loadedAdapterResponseInfo = rewardedAd.responseInfo.loadedAdapterResponse
val adSourceName = loadedAdapterResponseInfo.adSourceName
val adSourceId = loadedAdapterResponseInfo.adSourceId
val adSourceInstanceName = loadedAdapterResponseInfo.adSourceInstanceName
val adSourceInstanceId = loadedAdapterResponseInfo.adSourceInstanceId
val extras = rewardedAd.responseInfo.responseExtras
val mediationGroupName = extras.getString("mediation_group_name")
val mediationABTestName = extras.getString("mediation_ab_test_name")
val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
}
}
})
}
}
Pour en savoir plus sur la source d'annonce gagnante, consultez Récupérer des informations sur la réponse d'annonce.
Intégration du programme App Attribution Partners (AAP)
Pour en savoir plus sur le transfert des données sur les revenus publicitaires vers les plates-formes d'analyse, consultez le guide du partenaire:
SDK partenaire |
---|
Adjust |
AppsFlyer |
Singular |
Tenjin |
Bonnes pratiques pour l'implémentation
- Définissez l'écouteur immédiatement après avoir créé l'objet d'annonce ou y accéder, et certainement avant de lui montrer l'annonce. Cela garantit que vous ne manquez aucun rappel d'événement payant.
- Envoyez immédiatement les informations sur les revenus publicitaires au niveau des impressions à votre serveur d'analyse préféré lorsque la méthode
onPaidEvent()
est appelée. Cela vous permet de ne pas supprimer accidentellement des rappels et d'éviter les écarts de données.
AdValue
AdValue
est une classe qui représente la valeur monétaire générée pour une annonce, y compris le code de devise de la valeur et son type de précision encodés comme ci-dessous.
PrecisionType | Description |
---|---|
UNKNOWN |
Valeur d'annonce inconnue. Cette valeur est renvoyée lorsque le pingback LTV est activé, mais que les données disponibles sont insuffisantes. |
ESTIMATED |
Valeur de l'annonce estimée à partir de données globales. |
PUBLISHER_PROVIDED |
Valeur d'annonce fournie par l'éditeur, telle que les CPM manuels dans un groupe de médiation. |
PRECISE |
Valeur exacte payée pour cette annonce. |
Dans le cas de la médiation, AdMob tente de fournir une valeur ESTIMATED
pour les sources d'annonces qui sontoptimisées.
Pour les sources d'annonces non optimisées, ou dans les cas où les données agrégées ne sont pas suffisantes pour générer une estimation significative, la valeur PUBLISHER_PROVIDED
est renvoyée.