Android:使用 Admob 的 Consent SDK 获取用户的位置

标签 android admob google-admob cookieconsent

我对 AdMob 的新 'Consent SDK' 有疑问; integration guide说要将以下内容放入 onCreate...

public class MainActivity extends Activity {
    ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        ConsentInformation consentInformation = ConsentInformation.getInstance(context);
        String[] publisherIds = {"pub-xxxxxxxxxxxxxxxx"};
        consentInformation.requestConsentInfoUpdate(publisherIds, new ConsentInfoUpdateListener() {
            @Override
            public void onConsentInfoUpdated(ConsentStatus consentStatus) {
                 // User's consent status successfully updated.
            }

            @Override
            public void onFailedToUpdateConsentInfo(String errorDescription) {
                 // User's consent status failed to update.
            }
        });
        ...
    }
    ...
}

然后调用:

ConsentInformation.getInstance(context).isRequestLocationInEeaOrUnknown()

我遇到的问题是当应用程序第一次安装/启动时,isRequestLocationInEeaOrUnknown()总是返回“false”(我 顺便说一句,在欧洲经济区。

如果我随后退出应用程序并重新启动它,它会返回“true”——这是正确的。如果我随后进入我的设备设置并在我的应用程序上执行“清除数据”并重新启动它,它会再次返回“false”。

显然这令人担忧,因为我向 EEA/瑞士用户展示了我自己的自定义同意对话框,而不是我是 ROW。这需要在首次启动时发生。

有趣的是,我尝试将对 isRequestLocationInEeaOrUnknown() 的调用放在我的 AsyncTask 的 doInBackground 方法中(我在 onCreate 中启动此 ASync),然后它执行 在首次启动时返回“true”,就像在 ASync 的“onPostExecute”方法中调用它一样。只是在 onCreate 中对它的调用不会(在异步开始之前或之后)。

我知道现在还处于早期阶段,但有没有人偶然发现类似的问题?

最佳答案

您必须在调用 onConsentInfoUpdated 回调后调用 isRequestLocationInEeaOrUnknown()

此值由 requestConsentInfoUpdate() 异步检索,因此在第一次启动时不正确,但随后会被缓存,因此在第二次启动时您有正确的值。

关于Android:使用 Admob 的 Consent SDK 获取用户的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50487171/

相关文章:

android - "Timed out waiting for ad response",尝试将 admob 添加到我的应用程序时

android - android中的Admob如何设置阈值

android - Google Admob Ads 最近停止展示

java - onTouchEvent 不能@Override

android - 弹出窗口打开android后背景变暗

android - 操作栏中的空白标题

android - 获取图像的 ACTION_GET_CONTENT 返回空 URI

ios - admob ios7 错误音频框架

ios - 安装 Google-Mobile-Ads-SDK 时出错

admob - 如何限制奖励视频广告的长度 (admob)?