internal static UserConsentUI Request(ConsentRequestParameters parameters)
        {
            Audience savedAudience = Audience.Mixed;

            if (parameters.withAudienceDefinition && parameters.resetStatus < 2)
            {
                int selectedYear = GetYearOfBirth();
                savedAudience = GetAudience(selectedYear);
                if (savedAudience != Audience.Mixed)
                {
                    MobileAds.settings.taggedAudience = savedAudience;
                }

                if (selectedYear > 0)
                {
                    MobileAds.targetingOptions.age = DateTime.Now.Year - selectedYear;
                }
            }

            if (parameters.resetStatus == 0 || savedAudience == Audience.Children)
            {
                var savedStatus = GetStatus();
                if (savedStatus != ConsentStatus.Undefined)
                {
                    MobileAds.settings.userConsent = savedStatus;
                    SetMediationExtras();
                    if (parameters.OnConsent != null)
                    {
                        parameters.OnConsent();
                    }
                    return(null);
                }
            }

            if (!parameters.showInEditor && Application.isEditor)
            {
                if (parameters.OnConsent != null)
                {
                    parameters.OnConsent();
                }
                return(null);
            }

            if (!parameters.uiPrefab)
            {
                throw new NullReferenceException("Consent Request require UserConsentUI prefab!");
            }
            var instance = UnityEngine.Object.Instantiate(parameters.uiPrefab);

            instance.Init(parameters);
            return(instance);
        }
        private void OnConsentAccepted()
        {
            consentTextContainer.SetActive(false);

            PlayerPrefs.SetString(ConsentClient.consentStringPref, ConsentClient.consentAccepted);
            MobileAds.settings.userConsent = ConsentStatus.Accepted;
            PlayerPrefs.Save();
            Destroy(gameObject);
            if (parameters.OnConsent != null)
            {
                parameters.OnConsent();
            }
            onConsent.Invoke();
        }