Что следует поместить в метод onConsentFormDismissed UMP SDK?
Я следил за официальной документацией Android для реализации UMP.
Это код, который у меня есть:
public class MainActivity extends AppCompatActivity {
private ConsentInformation consentInformation;
private ConsentForm consentForm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
consent();
}
public void consent() {
ConsentRequestParameters params = new ConsentRequestParameters
.Builder()
.setTagForUnderAgeOfConsent(false)
.build();
consentInformation = UserMessagingPlatform.getConsentInformation(this);
consentInformation.requestConsentInfoUpdate(this,
params,
new ConsentInformation.OnConsentInfoUpdateSuccessListener() {
@Override
public void onConsentInfoUpdateSuccess() {
// The consent information state was updated.
// You are now ready to check if a form is available.
if (consentInformation.isConsentFormAvailable()) {
loadForm();
}
}
},
new ConsentInformation.OnConsentInfoUpdateFailureListener() {
@Override
public void onConsentInfoUpdateFailure(FormError formError) {
// Handle the error.
}
});
}
public void loadForm() {
// Loads a consent form. Must be called on the main thread.
UserMessagingPlatform.loadConsentForm(
this,
new UserMessagingPlatform.OnConsentFormLoadSuccessListener() {
@Override
public void onConsentFormLoadSuccess(ConsentForm consentForm) {
MainActivity.this.consentForm = consentForm;
if (consentInformation.getConsentStatus() == ConsentInformation.ConsentStatus.REQUIRED) {
consentForm.show(
MainActivity.this,
new ConsentForm.OnConsentFormDismissedListener() {
@Override
public void onConsentFormDismissed(FormError formError) {
if (consentInformation.getConsentStatus() == ConsentInformation.ConsentStatus.OBTAINED) {
// App can start requesting ads.
//what should be here?
}
// Handle dismissal by reloading form.
loadForm();
}
});
}
}
},
new UserMessagingPlatform.OnConsentFormLoadFailureListener() {
@Override
public void onConsentFormLoadFailure(FormError formError) {
loadForm();
}
}
);
}
Хорошо, если я реализовал это правильно, мой вопрос в том, что мне следует поместить в следующий оператор if:
if (consentInformation.getConsentStatus() == ConsentInformation.ConsentStatus.OBTAINED) {
// App can start requesting ads.
//what should be here?
}
Может быть, инициализировать мобильную рекламу?:
MobileAds.initialize(this, initializationStatus -> {
});
Я не знаю, какой вариант будет лучшим. Потому что, возможно, если реклама загружается до того, как пользователь принял или отклонил форму, попытка загрузить рекламу без инициализации мобильных объявлений не будет хорошей практикой. Я ценю всю возможную помощь :)
1 ответ
Я настоятельно рекомендую загружать все объявления после того, как пользователь дал свое согласие. Согласно GDPR, вам необходимо получить согласие на сбор персонализированных пользовательских данных. AdMob и AdSense собирают эти личные данные пользователей.[Здесь][1] вы можете увидеть, чего от вас хочет Google. Также пользователь должен дать свое согласие, если вы хотите поделиться личными данными с третьими лицами, особенно когда вы отправляете эту информацию в страну, находящуюся за пределами действия GDPR.
Также вариант: вы ставитеpublic static boolean consentGiven = false;
где-то в вашем приложении. В операторе if вы устанавливаете для него значение true (конечно, после того, как пользователь нажал согласие). Тогда вы всегда можете проверить переменнуюconsentGiven
прежде чем собирать личную информацию каким-либо образом. Я знаю, что это может показаться трудным, но таковы законы.