質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

0回答

2161閲覧

androidアプリで、ファンディングチョイスとUMP(User Messaging Platform)SDK利用時に同意フォームが表示されない問題について。

noko123

総合スコア28

AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2021/01/29 05:23

編集2021/01/30 03:16

こんにちは。
UMP SDKとファンディングチョイスを利用して、androidアプリでgdprの同意を得ようとしています。公式ドキュメントを読みながら、

import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.google.android.ump.* import com.google.android.ump.ConsentInformation.OnConsentInfoUpdateFailureListener import com.google.android.ump.ConsentInformation.OnConsentInfoUpdateSuccessListener import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { private var consentInformation: ConsentInformation? = null private var consentForm: ConsentForm? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val debugSettings = ConsentDebugSettings.Builder(this) .setDebugGeography(ConsentDebugSettings.DebugGeography.DEBUG_GEOGRAPHY_EEA) // .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")←エミュレーターはデフォルトでテストが有効になっているため、コメントアウト。 .build() val params = ConsentRequestParameters.Builder().setConsentDebugSettings(debugSettings).build() // Set tag for under age of consent. Here false means users are not under age // params.setTagForUnderAgeOfConsent(false) consentInformation = UserMessagingPlatform.getConsentInformation(this) consentInformation?.reset() consentInformation?.requestConsentInfoUpdate( this, params, OnConsentInfoUpdateSuccessListener { // The consent information state was updated. // You are now ready to check if a form is available. loadForm() }, OnConsentInfoUpdateFailureListener { // Handle the error. textView.text="error" }) } fun loadForm() { UserMessagingPlatform.loadConsentForm( this, { consentForm -> this@MainActivity.consentForm = consentForm if (consentInformation!!.consentStatus == ConsentInformation.ConsentStatus.REQUIRED) { consentForm.show( this@MainActivity ) { // Handle dismissal by reloading form. loadForm() } } } ) { /// Handle Error. } } }

と実装しました。一番最初は同意画面が表示されて、同意ボタンを押したり、consentinformation.reset()して再び動作を確認するなどできました。しかし、その後他の箇所の実装を加えた後に起動すると、同意フォームが表示されなくなってしまいました。新しくアプリを作り直してadmobに追加し、APP IDを変更、ファンディングチョイスのメッセージも作成し直して仮想デバイスで起動してみたのですが、そちらも表示されません。ファンディングチョイスのメッセージは有効化済みです。

consentInformation?.requestConsentInfoUpdate(
this,
params,
OnConsentInfoUpdateSuccessListener { // The consent information state was updated.
// You are now ready to check if a form is available.
loadForm()
},
OnConsentInfoUpdateFailureListener {
// Handle the error.
textView.text="error"
})

この部分でtextViewに"error"が表示されるので、requestConsentInfoUpdate()が失敗していると思うのですが、原因と対処法が分かりません。

自分なりに調べてみての推測は、
・admobやファンディングチョイスの設定の問題。
・コードミスや不足、android studioまたはUMP SDKなどのバグ。(androi studioやsdkツールで気付ける範囲はアップデートしました)
・同意フレームワークの詳細(https://support.google.com/fundingchoices/answer/9187740)にある「同意を取り消すリンクをアプリまたはサイトに追加する」を行っていなかったため、アカウントに制限がかけられている?(admob通知や登録メールにそれらしいものは見つけられませんでした。起動は仮想デバイスのみです。)
・(関係ないかもしれませんが、params.setTagForUnderAgeOfConsent(false)の部分がkotlinではエラーになり、textViewで表示してみたらfalseになっていたため、必要ないかと思いコメントアウトした部分の影響。)

です。(初心者であるため見落としが多々あるかもしれません。)

また、補足としまして、一番最初同意フォームを表示できた前段階でも同じ現象が起きました。その時はファンディングチョイスのメッセージを有効にしていなかったので、それを有効にすることで表示されました。
textViewにtoString()で色々表示させてみた結果は、
consentInformation.consentStatus → 0(UNKNOWON)
consentInformation.consentType → 0(UNKNOWON)
consentInformation.isConsentFormAvailable → flse
UMP SDKのErrorCode→1(INTERNAL_ERROR)
でした。

追記:デバッグしてみると、W/libc: Unable to set property "qemu.gles" to "1": connection failed; errno=13 (Permission denied)とありました。

自分では問題が解決できず非常に困っています。知恵をお貸しいただければ幸いです。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問