今月のみてみて(2022年8月)

Firebase連携アプリ、みてみてエストーク伊勢125社巡り

このうち、みてみてにフォーカスを当て、Firebaseのアクセス動向やアプリの改善を考察する開発記事です。

Realtime Database+Storage構成の投稿アプリ

アプリのユーザー数の変動とともにFirebaseのアクセス動向を確認します。

2022年8月1日~8月31日のユーザー数の変動

(ユーザー数の変動)

1ヶ月の新規獲得ユーザー数

心配した通りインストール数が停滞してきました。。。

8/8にマップ画面に新機IFを追加したアプリのリリースを行ったのですが、アンインストールに歯止めをかけることはできていないようです。

というか、インストールの伸びが悪いので効果が判断しづらいところ。

(インストールの上位国)

まずは多言語化(英語、インドネシア語、ロシア語、日本語)について。

残念ながらインドネシアが伸びてこず、多言語化の効果は今のところないようです。

ロシアはGoogle Play Storeが止められているはずなので効果不明。(早く平和になってください。

今月の新たな変化としてはトルコで少し動きがありました。

過去にリリースしたチャットアプリ、エストークもリリース初期の頃、トルコで動きがあったので盛り上がりに期待したいところ。

8月31日直近のFirebaseの変動

(Firebaseの変動)

直近のfirebaseの動き
1ヶ月のfirebase使用量

投稿情報を整理した結果、使用量が減りました。

まだインパクトのある数値は出なさそうです。

2022年8月1日~8月31日のAdMob

今月は、AdMob広告収入:120円、 Firebase使用料:0円となりました。

これだけ低調だと何も言うことないです。

みてみての投稿を見てみて

(今月の投稿ピックアップ)

新機能追加の告知

投稿がないので。

今後の改善案

8月中に追加予定だった新機能が1つ未実装となっており、9月上旬にリリース予定。

ここでツールとして完成形になるので9月はコンテンツを考えたい。

あと余裕があれば、ベースアーキテクチャのリファクタリングもやっておきたいがいかに。

,

Android13対応ついでに最小APIレベルを確認する

2022年8月22日

開発環境
OS:Windows 10
SDK:Android Studio Chipmunk | 2021.2.1

概要

いよいよAndroid13がリリースされ、APIレベルも33に。
アプリのターゲットAPIレベルを33に上げていくなかで最小APIレベルをどうするか?
デバイスのインストール状況を確認して決めようかと思います。

APIレベルを33にする

Android13がリリースされたのに伴い、今後、アプリの改修を行う際にはAPIレベル33に適用させていこうと思っています。

android {
    compileSdkVersion 33
    defaultConfig {
        
        minSdkVersion 24
        targetSdkVersion 33
  
    }

}

そんななか、ターゲットAPIレベルを上げるからには合わせてサポート対象の最小APIレベルも上げておきたいところです。

そこでGoogle Play Consoleを使い、実際にインストールされているAndroidバージョンの割合を確認して最小APIレベルの底上げの判断をします。

APIレベルを確認する

アプリのバージョン別普及率を確認します。

まずはGoogle Play Consoleで対象アプリのダッシュボードを表示します。

メニューから「リーチとデバイス」の「概要」を選択します。

Google Play Console

ユーザーと問題の分布/Androidバージョンが表示されるので「探す」をクリック。

Google Play Console

インストール上位バージョンが表示されます。

インストールされているバージョンを全て確認するために「+Androidバージョン」をクリック。

Google Play Console

これで全てのインストールバージョンが表示されます。

こうして見てみるとアプリ「伊勢125社巡り」はいまだにAndroid7.0が1台いらっしゃるようです。

たぶんにアプリをインストールしたままでスマホを廃棄されたのでは、と思うのですが、念のため、アプリ内でサポート切れ告知をしたあと、最小レベルを28まで上げようかと思います。

(Android 8.0の1台は私物のデバッグ機、のはず。

APIレベルについてはこちらでも確認できます。

Android API Level

AndroidバージョンとAPIレベル一覧です。

2025年4月14日現在

NoバージョンAPIレベルバージョンコード備考
1Android 1636BAKLAVA
2Android 1535VANILLA_ICE_CREAM
3Android 1434UPSIDE_DOWN_CAKE
4Android 1333TIRAMISU
5Android 1232S_V2
631S
7Android 1130R
8Android 1029Q
9Android 928P
10Android 8.127O_MR1
11Android 8.026O
12Android 7.1.1
Android 7.1
25N_MR1
13Android 7.024N
14Android 6.023M
15Android 5.122LOLLIPOP_MR1
16Android 5.021LOLLIPOP
17Android 4.4W20KITKAT_WATCHウェアラブル向け
18Android 4.419KITKAT
19Android 4.318JELLY_BEAN_MR2
20Android 4.2.2
Android 4.2
17JELLY_BEAN_MR1
21Android 4.1.1
Android 4.1
16JELLY_BEAN
22Android 4.0.4
Android 4.0.3
15ICE_CREAM_SANDWITCH_MR1
23Android 4.0.2
Android 4.0.1
Android 4.0
14ICE_CREAM_SANDWITCH
24Android 3.213HONEYCOMB_MR2
25Android 3.1.x12HONEYCOMB_MR1
26Android 3.0.x11HONEYCOMB
27Android 2.3.4
Android 2.3.3
10GINGERBREAD_MR1
28Android 2.3.2
Android 2.3.1
Android 2.3
9GINGERBREAD
29Android 2.2.x8FROYO
30Android 2.1.x7ECLAIR_MR1
31Android 2.0.16ECLAIR_0_1
32Android 2.05ECLAIR
33Android 1.64DONUT
34Android 1.53CUPCAKE
35Android 1.12BASE_1_1
36Android 1.01BASE
Android api level

今月のみてみて(2022年7月)

Firebase連携アプリ、みてみてエストーク伊勢125社巡り

このうち、みてみてにフォーカスを当て、Firebaseのアクセス動向やアプリの改善を考察する開発記事です。

Realtime Database+Storage構成の投稿アプリ

アプリのユーザー数の変動とともにFirebaseのアクセス動向を確認します。

2022年7月1日~7月31日のユーザー数の変動

(ユーザー数の変動)

1ヶ月の新規獲得ユーザー数

今月もインストール数は伸びていますが、ユーザーの減少数の変動も相変わらずです。

そして、インストールとアンインストールの波もシンクロしたまま。

ということは、インストールしてすぐにアンインストールされている、ということで、

それはつまり、プレイストアで興味を持ってインストールしたもののリピートしたくなるほどの魅力がなかった、ということですね。。。

もう少し分かりやすい掴みが必要そうです。

(Google Play ConsoleのKPIが変更になりましたね!

(インストールの上位国)

今月もフィリピンを中心にインストールが伸びています。

今月は、アプリの多言語化対応(英語、インドネシア語、ロシア語、日本語)に合わせて、プレイストアも4か国語に対応(インドネシア語、ロシア語の追加)しました。

これよって他国のインストールの変動があるようならもう少し多言語化を進めたいと思っています。

7月31日直近のFirebaseの変動

(Firebaseの変動)

投稿情報を整理し、Storageで管理している画像を削除しました。

インストールの増加に伴い、Realtime Databaseで管理しているユーザー情報が増加した結果、ストレージに伸びがありますが、想定内です。

2022年7月1日~7月31日のAdMob

無料アプリなので、AdMob広告収入 > Firebase使用料 を目指しています。

今月は、AdMob広告収入:500円、 Firebase使用料:0円となりました。

今後、アクティブユーザー数の増加を目指す中で、

AdMob広告収入 > Firebase使用料を維持できるのか、このあたりも試行錯誤になります。

仮に1ヶ月のアクティブユーザーが5万人に達した場合、

AdMob広告収入:$766(現在レートで約10万円)

Firebase使用料:$0.2(現在レートで約30円(ストレージ無料枠内、ネットワーク下り30GiBと仮定))

となる計算なんですが、どうなんでしょうか。

みてみての投稿を見てみて

(今月の投稿ピックアップ)

ポーランドの風景。

summer timeって響きがいいですね。

志摩市観光農園を訪れた際の1枚

これは私の投稿です(^^;

今後の改善案

8月中に新機能2点を追加し、ツールとして完成形に持っていきたいと思っています。

目指すは世界一ゆるいコミュニケーションツールです。

また、前回からの改善目標、ベースアーキテクチャのリファクタリングと

リピートしてもらえるアイデアの追加、このあたりを検討したいと思います。

,

AdMobユーザー指標が0表示になっているので改善する

2022年7月31日

開発環境
OS:Windows 10
SDK:Android Studio Chipmunk | 2021.2.1

概要

Firebase連携アプリのAdMobユーザー指標が0表示になってしまったのでFirebase Analyticsに対応した、という話です。

AdMobのユーザー指標が0になっているのだが。。。

無料の投稿型コミュニケーションツール、みてみて

このアプリは投稿機能をFirebaseで実現し、収入源としてAdMobを組み込んでいます。

アプリリリース当初はAdMobのユーザー指標にアクティブな値が表示されていた、

と思っていたのですが、改めて確認すると0表示になっていました。

(AdMobアカウントとFirebaseアカウントを連携させたから?それとも記憶違い?

ユーザー指標が知りたい

今後、アプリの収益化を目指すにあたりユーザー指標が知りたい。

ということで0表示の改善を試みます。

AdMob設定の変更

まずはAdMobの設定を変更します。

Admobの「設定」の「リンクされたサービス」で当該アプリ(みてみて)のFirebaseをオンにします。

改めてユーザー指標を確認すると。

0表示のままですね。。。

Firebase Analyticsを組み込む

つぎにアプリの修正を行います。

ステップ1)Gradle(アプリ)にfirebase-analyticsを追加します。

dependencies {
  ・・・
    implementation platform('com.google.firebase:firebase-bom:28.4.1')
    implementation 'com.google.firebase:firebase-database-ktx'
    implementation 'com.google.firebase:firebase-storage-ktx'
    implementation 'com.google.firebase:firebase-analytics-ktx:21.1.0'
    implementation 'com.google.android.gms:play-services-ads:21.1.0'
  ・・・
}

kotlinの場合は、’com.google.firebase:firebase-analytics-ktx:21.1.0’です。

ステップ2)firebase-analyticsの初期化を行う。

import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.ktx.analytics

class MainActivity : AppCompatActivity() {
    private lateinit var firebaseAnalytics: FirebaseAnalytics

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        FirebaseApp.initializeApp(this)
        MobileAds.initialize(this){}
        firebaseAnalytics = Firebase.analytics

        ・・・
    }
}

変数 firebaseAnalytics を追加します。

そして、MainActivityで初期化(firebaseAnalytics = Firebase.analytics)すればOKです。

アプリ「みてみて」ではFirebase、AdMobの初期化と合わせて、firebaseAnalyticsの初期化を行いました。

初期化しますがfirebaseAnalyticsは使用しません。

(firebaseAnalyticsを使ってユニークなログ、データを出力することもできるようです。

あとはリリースするだけです。

修正アプリをリリースした結果

ユーザー指標が表示されるようになりました。

インストール済アプリがピックアップできないAndroid 12

2022年7月19日

開発環境
OS:Windows 10
SDK:Android Studio Chipmunk | 2021.2.1

概要

Android 12におけるセキュリティ強化。
それに伴い、権限なしにインストール済アプリをピックアップすることができなくなってました、という話です。

スマホの機種変更

androidアプリ開発をしている以上もちろんAndroid 12での動作検証も行います。

とは言っても検証はもっぱら仮想デバイスでした。

それが最近、スマホを買い替え、ようやくAndroid 12の実機が我が手元に。

生でAndroid 12に触れる機会ができたので早速、アプリを色々と動かしてみたのですが。。。

早々と想定通りに動作していない機能を発見、慌てて改修した次第です。

仮想デバイスでは検証しにくい機能なんです。。。

Android12のセキュリティ強化

想定通りに動作しなかった機能とは何か?

それは、インストール済アプリのピックアップ機能です。

コードで表すと Packagemanager の getInstalledPackages です。

Android 12のセキュリティ強化に伴い、権限、もしくは、<queries>定義なしに

インストール済アプリをピックアップできなくなった、とのこと。

この機能がダメになるとランチャー系のアプリは全滅です。

そこで2パターンの方法で改修を行いました。

パターン1)どうしてもインストール済アプリを全て知りたい

ランチャー系アプリの場合、インストール済アプリを全てピックアップしたいので権限追加で対応します。

AndroidManifest.xmlに以下のパーミションを追加します。

<uses-permission android:name=”android.permission.QUERY_ALL_PACKAGES”/>

対応は以上です。

あとはビルドしてリリースするだけなのですが、なにせ強力な権限です。

Google Play Consoleの「アプリのコンテンツ」において権限の用途を説明する必要があります。

Google Play Console「アプリのコンテンツ」

まずは目的の説明を記載し、そして、用途の選択を行います。

機密情報にかかわる権限とAPI(1)

ランチャーアプリの場合、

目的は「ランチャーアプリ。アプリリストを表示するため」、

用途は「アプリの機能」、と明確です。

そして、最後に求められるのが動画です。

機密情報にかかわる権限とAPI(2)

ざっくりと作ってYouTubeにアップしてみました。

まさか動画を求められるとは。。。

すると、まあ、なんということでしょう。

リリースしてから1時間もしないうちに審査が通り、インストールできるようになりました。

パターン2)必要なアプリだけインストールされていることを知りたい

アプリの連携のため、連携対象のアプリがインストールされているか知りたい。

そのような場合、

AndroidManifest.xmlに以下の定義を追加します。

(アプリ”com.sample.application”がインストールされているか知りたい場合)

<manifest ・・・>

    <queries>
        <package android:name="com.sample.application" />
    </queries>

    <application ・・・

    </application>

</manifest>

これで Packagemanager の getInstalledPackagesまわりは改修しなくても対象アプリをピックアップしてくれるようになります。

あとはビルドしてリリースするだけです。

こちらのパターンの場合、Google Play Consoleで「アプリのコンテンツ」を記載する必要もありません。

Android 12のセキュリティ強化に伴う対応は以上です。

今月のみてみて(2022年6月)

Firebase連携アプリ、みてみてエストーク伊勢125社巡り

このうち、みてみてにフォーカスを当て、Firebaseのアクセス動向やアプリの改善を考察する開発記事です。

Realtime Database+Storage構成の投稿アプリ

アプリの新規獲得ユーザー数の変動とともにFirebaseのアクセス動向を確認します。

2022年6月1日~6月30日の新規獲得ユーザー数

(ユーザー数の変動)

1ヶ月の新規獲得ユーザー数

今月もインストール数は伸びています。

先月と比べ、新規獲得ユーザー数は約1.5倍、先々月と比べると2倍です。

ユーザー減少数について述べるのは・・・止めておきます。

(インストールの上位国)

フィリピンのインストールが伸び率が圧倒的です。

フィリピンは英語とフィリピン語が公用語。

アプリとしては多言語化対応(英語、インドネシア語、ロシア語)しているのですが、

GooglePlayのストア表示は日本語、英語の2言語対応のみ。

このあたり、英語に馴染みがあるかどうかがインストール数に影響しているのかもしれないですね。

ストア表示にも対応してみようかと思います。

(Firebaseの変動)

まだ微々たるものですが、それでも先月と比べ、ダウンロード量が約3倍。

実際にアプリの起動が少し遅く感じるようになりました。

今のうちにアプリの起動シーケンスを見直してみようかと思います。

(今週の投稿ピックアップ)

フィリピンの公園(広場?)を投稿してもらいました。

木陰が恋しい時期になってきましたね。

(今後の改善案)

ようやく改修案件も落ち着いてきたので前からの課題、2件に着手したい。。。

①UIの改善。

②ベースアーキテクチャのデファクタリング。

それと今回新たに必要性を感じた2件。

③GoolePlayストアの多言語化対応。

④アプリ起動シーケンスの見直し。

計4件の消化が今月の目標です。

,

Android Studioを更新したら起動しなくなった話

2022年6月13日

開発環境
OS:Windows 10
SDK:Android Studio Bumblebee | 2021.1.1

概要

全ては日本語化パッチに通ずる。

Android Studioを更新する

さて、アプリの改修でも行おう。と、Android Studioを起動するとたまに出る右下のポップアップ。

kotlinのバージョンアップ通知、emulatorのバージョンアップ通知、などなど。

バージョンアップを促してくるわけですが、基本的には見かけたらすぐにバージョンアップしています。

ですが、ただ1つ、Android Studioのバージョンアップだけは慎重になります。

なぜならだいたいバージョンアップをすると問題が発生するからです。

なので、Android Studioのバージョンアップだけは時間的に余裕のあるときに実施するわけです。

そして、今日。

ハチからリスにバージョンアップした結果がこれです。

やはりハマってしまいました。

バージョンアップ時に発生する問題はたいてい日本語化対応による弊害。

対処法は2つ。

①日本語化パッチを当てなおす。

②再インストールする

①を実施、それでも駄目なら②を実施。

今までもこれで乗り切ってきたわけです。

それが今回、①、②、どちらを実行してもエラーが解除されない事態に。。。

そこで “Could not find main class com/intellij/idea/Main” で検索しみると。

stackoverflowなどでも検索結果がヒットするものの、解決策を見ると環境変数JAVA_HOMEの設定が~。

どうやら的外れ。

そこで基本に立ち戻り、日本語化を解除してみました。

C:\Users\~\AppData\Roaming\Google\AndroidStudio2021.2\studio64.exe.vmoptions

上記ファイルの最下段、”-Xverity”と”-javaagent:~plaiades.jar”をコメントアウト。

すると、あっさり起動しました。

日本語化パッチ、またやりおったか。

今月のみてみて(2022年5月)

Firebase連携アプリ、みてみてエストーク伊勢125社巡り

このうち、みてみてにフォーカスを当て、Firebaseのアクセス動向やアプリの改善を考察する開発記事です。

Realtime Database+Storage構成の投稿アプリ

アプリの新規獲得ユーザー数の変動とともにFirebaseのアクセス動向を確認します。

2022年5月5日~6月4日の新規獲得ユーザー数

(ユーザー数の変動)

1ヶ月の新規獲得ユーザー数

先月と比べ、新規獲得ユーザー数は約1.5倍となりました。

そして、それに比例して減少数も約1.5倍。。。

この1ヶ月、何も対策をしていないので致し方なし。

(インストールの上位国)

先月に引き続き、フィリピン、そして、インドネシアとランクイン。

なぜインストールしてくれるのか分からないが、ありがたい。

そして、ロシアが圏外となり、トルコ、アメリカが上位ランキングに初登場。

(と言ってもインストール数1人でしょうか。。。

今回も多言語化対応は特に考えておりません。

(Firebaseの変動)

新規インストール数が増えた割にはFirebaseのアクセスは伸びていません。

そう、投稿がほとんどないわけです。

まだ慌てる時じゃあないようです。

(今週の投稿ピックアップ)

韓国料理屋が近所にオープンするみたい。

(楽しみにしてます

海外ユーザーさんもたまに投稿してくれるのですが、なぜか床や壁の投稿。

なぜなんでしょう。。。

(今後の改善案)

先月から引き続き、下記2件の改善を検討。

①UIの改善。

②ベースアーキテクチャのデファクタリング。

ステップ分けしてでも今月中には1度リリースしたい。

,

ファミリーポリシー違反がやって来たヤァ!ヤァ!ヤァ!

概要

神経衰弱を題材にしたミニゲーム”サイキック・パワー”、
このアプリは対象年齢を0歳以上(全ユーザー対象)としており、ファミリーポリシーの遵守が必須です。

ですが、アプリに連携させているAdmobがファミリーポリシー違反をやらかしたそうで。。。

唐突にファミリーポリシー違反通知がメールに送られてきました。

内容としては、アプリがファミリーポリシーに違反しており、Google Playからアプリを削除したとのこと。

このアプリでのポリシー違反指摘は初めてです。

ですが、過去にも何度かファミリーポリシー違反となったことはあります。

その度にAdmobのイニシャル処理とリクエスト処理を改善したり、Admob設定を変更したりと対応してきました。

そして、ファミリーポリシーに則る必要のあるアプリ全てに水平展開もしてきたのですが。

(ファミリーポリシーを遵守するためのAdmobコーディングについてはこちらの記事。)

(ファミリーポリシーを遵守するためのAdmob設定についてはこちらの記事。)

それでは今回の理由は何なのか?

Admobの配信設定を見直す

ファミリーポリシー違反の理由がこちらでした。

審査結果通知

ファミリーポリシー違反の理由は2点。

1つ目は、広告のフォーマット違反。
広告表示から5秒後に広告を閉じることができなかった、とのこと。

2つ目は、広告のコンテンツ違反。
Admobから配信されている広告に子供にふさわしくないコンテンツが含まれていた、とのこと。

そこで配信設定の見直しを行います。

まず1つ目は5秒ルールの遵守。

アプリにはインタースティシャル広告、バナー広告を設置しているのですが、インタースティシャル広告と5秒ルールの相性が悪そうでした。

そこでインタースティシャル広告の配信から動画を削除しました。

そして、2つ目は広告のコンテンツ違反です。

メールに添付されていた違反広告の画像を見るとギャンブル系のゲーム広告のようです。

そこでブロックのコントロール設定を変更することにしました。

Google Admob コンソール

まずはGoogle Admobコンソールを表示して広告配信を制御したいアプリを選びます。
そして、メニューの「ブロックのコントロール」を選択。

Google Admob コンソール

次に一般カテゴリを選択し、ふさわしくないと思われる「レジャー/ギャンブル」の配信をブロックしました。

あとは、再審査を促すため、バージョンのみを変更したアプリを再リリース。

再審査の結果、合格となりました。

しばらくは様子見となりそうです。