プログラミングと音楽とアニメとiPhoneとiPadとMacとAndroidとLogicとギターとテニスと車

アプリ開発系の勉強メモやTipsなどを中心に他いろいろと書いていきます。

【更新】【続】AdMobのGDPR(EUの一般データ保護規則)に対応する

前回 の続きで、AdMobがオープンソースで公開したconsent SDKの実装を具体的に見ていく。

consent SDKのドキュメントに出てくる用語について簡単にメモ。

  • Personalized ads
    要は従来の広告と同類のもので、ターゲティングされている広告。

  • NonPersonalized ads
    ターゲティングされていない広告。ターゲティングの目的ではCookie広告識別子は使用しないが、フリークエンシーキャップ、レポート集計、不正に対応するためにはターゲティングの目的ではCookieまたは広告識別子を使用する。

参照
Personalized and non-personalized ads - AdMob Help

続きは、更新途中。
ざっくりだが、consent SDKを使ってやることは以下のような感じになる様子。

  • Personalizedのステータスが取得できた場合は、従来通りの広告リクエスト。

  • NonPersonalizedのステータスが取得できた場合は、@{@"npa": @"1"}のようなパラメータをセットして広告リクエスト。

  • Unknownのステータスが取得できた場合は、同意ダイアログを出してユーザーの同意を取得する処理。

続き

とりあえず、iOSのconsent SDKの内容からは、 アプリのユーザーから同意を取得する方法としては下記の2つが紹介されている。

  • Googleが用意している同意フォーム用クラスPACConsentFormを利用する
  • Publisher-managed consent collectionの方法を利用して、独自の同意フォームを用意する

PACConsentFormの同意フォームはあくまでもGoogleを利用して収益化するのに適したメッセージ内容となっているため、 Consent SDKに含まれているconsentform.htmlファイルを編集して、自分のアプリに適した同意メッセージに変更するようにとドキュメントに書かれていた。

Publisher-managed consent collectionの方法は、AdMob管理画面のEUユーザーの同意>広告技術プロバイダの選択>広告技術プロバイダのカスタム グループ12社を超えて指定している場合は、この方法を使うようにと書かれている。 また、ドキュメントの最下部の注釈(Note: )で、メディエーションでもこれと同じ方法で同意を得る必要があると書かれている。

いずれの方法にしても、ちゃんと対応しようとするとconsentform.htmlを参考にするなどして、自分のアプリに適したプライバシーポリシーも用意する必要そうだ。

そこで、EEAでのアプリや広告の配信を制限して、一時的な対応とする場合に必要になりそうな情報とか。(何もしないよりはましな気がする)

  • iTunesConnect、Google Play ConsoleでアプリのEEA対象国での配信を停止しておく
  • AdMob管理画面 > メディエーショングループ > ターゲット地域でEEA対象国を除外しておく
  • あと、ついでにGoogle Analyticsとか利用していれば、そっちも規約更新とか確認しておく

欧州経済領域(EEA)

欧州連合加盟国の参照元

https://ja.wikipedia.org/wiki/欧州連合加盟国

GDPRについての参考資料

http://www.meti.go.jp/policy/it_policy/privacy/downloadfiles/18datewg08.pdf

AdMobのGDPR(EUの一般データ保護規則)に対応する

今日5/22になってGDPRに対応したアプリ向けSDKとか設定の案内メールが届いたので、早速設定してみる。

AdMob利用している人はたぶんメールが届いてるはずなので、メール内の「ADMOBにログイン」というリンクを開いて設定を進める。
以下、一応手順。

  1. https://apps.admob.com からAdMob アカウントにログイン
  2. [ブロックの管理] > [EU ユーザーの同意]の順にクリック
  3. 表示される「EU ユーザーの同意」ページで、必要に応じて以下の設定

※ 2 の[ブロックの管理]は画面左側のメニュー内にあったが、もしAdMob管理画面のバージョンをV2にアップデートしていなければ、場所が異なるかもしれない。

「EU ユーザーの同意」

ここでは、以下の広告技術プロバイダの選択でどちらかを選択するとなっているが、デフォルトでは一般によく使用される広告技術プロバイダのグループが選択された状態になっている。広告技術プロバイダを選択する理由が特になければ、デフォルトのままで良さそう。

広告技術プロバイダの選択
  • 一般によく使用される広告技術プロバイダのグループ
  • 広告技術プロバイダのカスタム グループ
同意取得の設定

ここに書いてあるように、アプリのユーザーから同意を取得するための機能を提供するSDKオープンソースで公開してくれたようなので、あとはドキュメントに沿ってアプリに実装していく。実装が終わったら、当然ながらアプリのバイナリをアップロードして、ストアに公開という作業が必要になる。

メディエーションの場合は独自のダイアログを利用してくださいと書かれており、ちょっと手間がかかりそう。

また実装の詳細がわかったら記事を更新します。

続き http://travitu.hatenablog.jp/entry/2018/05/23/002146

Kotlinのコルーチンの導入手順

Introduction to Kotlin Coroutines on the JVM - Kotlin Programming Language

Android用の設定、実装例
kotlinx.coroutines/coroutines-guide-ui.md at master · Kotlin/kotlinx.coroutines · GitHub

Androidエミュレータを起動したら Please install HAXM >= 6.2.1 というエラーが出る

Android Studio3.0でエミュレータを起動したらこんなエラーが出て、エミュレータの起動にめちゃくちゃ時間がかかるようになってしまった。

Emulator: WARNING: HAXM 6.0.3 is installed. Please install HAXM >= 6.2.1

このエラーメッセージの通り、HAXMのバージョンを更新すれば良いだろうとSDK Manager開いてSDK ToolsタブでIntel x86 Emulator Accelerator (HAXM installer)のバージョンを見たら、6.2.1がinstalledになっている。。。

原因がよくわからないので、とりあえずHAXMをインストールし直してみる。 そのままSDK ManagerIntel x86 Emulator Accelerator (HAXM installer)のチェックを外しOK。アンインストール完了したら、改めてチェック入れてOKして再インストール。

これでエラーが消えました。

Java9でjshellで使ってみる(Macへの導入編)

JDKJava Development Kit)インストール

http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html

  1. Accept License Agreement(利用規約に同意)にチェックして、jdk-9.0.4_osx-x64_bin.dmgをダウンロードする。
    f:id:travitu:20180210133854p:plain

  2. ダウンロードしたjdk-9.0.4_osx-x64_bin.dmgをダブルクリックしてインストール画面を開く。

  3. JDK 9.0.4.pkgをダブルクリック。
    f:id:travitu:20180210133940p:plain

  4. 画面の案内に添ってインストールする。
    f:id:travitu:20180210134002p:plain

JShellを使う

上記インストールまで完了すると、以下のディレクトリにjshellがインストールされている。
/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/jshell

1. ターミナルでjshellディレクトリまで移動する。

$ cd /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin

2. JShellを起動する。

$ jshell

f:id:travitu:20180210141015p:plain

3. これでJShellが使えるようになるので、後はJavaでコードを書いていろいろ試すことができる。
f:id:travitu:20180210141317p:plain

JDK 9 Oracle 公式ドキュメント

docs.oracle.com

【iOS】GoogleアナリティクスをiOSアプリに実装する

developers.google.com

このGoogleのドキュメント通りだが、FirebaseではなくGoogle Analyticsだけ使いたい場合にすぐこのページが出てこなかったのでメモを。

  1. CocoaPodsのPodfileに 'Google/Analytics'を追加
  2. 設定ファイル(GoogleService-Info.plist)を取得、プロジェクトに追加
  3. AppDelegate#import <Google/Analytics.h>を記述
  4. didFinishLaunchingWithOptionsに以下の初期設定的な実装を追加
// Configure tracker from GoogleService-Info.plist.
NSError *configureError;
[[GGLContext sharedInstance] configureWithError:&configureError];
NSAssert(!configureError, @"Error configuring Google services: %@", configureError);

// Optional: configure GAI options.
GAI *gai = [GAI sharedInstance];
gai.trackUncaughtExceptions = YES;  // report uncaught exceptions
gai.logger.logLevel = kGAILogLevelVerbose;  // remove before app release

あとは、必要に応じたトラッキングを実装する。