今回はAndroid向けのスマホアプリ作成に挑戦します。もちろん広告も入れます。現在使っているGoogle/AdSenseのアカウントを使って収益化するにはどうすればよいでしょうか?

AdMobで収益化

この場合は AdMob で収益化するのがよい方法です。Google公式にも、既存のAdSenseアカウントに使っているGoogleアカウントでAdMobへ申し込むと、AdMobとAdSenseがリンクされると明記されています。

Web広告であればAdSense、スマホアプリであればAdMob。2種類の広告収益を、同じGoogleのパブリッシャー関連アカウントで管理できます。

1ユーザーにつき複数アカウントを作ることは認められていないので、Web広告用とスマホアプリ用に別々のAdSenseアカウントを作ってはなりません。

まずはここからアカウントを作ります。すでにGoogle/AdSenseのアカウントを持っているのであれば、同じアカウントを使います。

Google AdMob – モバイルアプリの収益化

アカウントが作成されたら「最初のアプリを追加する」を選択します。広告の種類を選択して確定させると

ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx
ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx

というふたつのIDが発行されます。前者がアプリID、後者が広告ユニットIDです。両者を混同しないようにしてください。

.NET MAUI Blazor Hybridでスマホアプリを作る

管理人は C# と JavaScript をよく使っているのでスマホアプリを作るときもできればこれらの言語を使いたいです。よい方法はあるのでしょうか? この場合は .NET MAUI Blazor Hybrid がよい選択です。

プロジェクトをつくるときは「サンプルページ」のチェックははずしてください。

AdMob の広告を入れたいので NuGet で Plugin.AdMob を入れます。.NET 10.0 であれば最新のものをインストールすればよいし、.NET 9.0 であれば Plugin.AdMob 3.02 をインストールすればよいです。

まず MauiProgram.cs を編集します。変更は 2 箇所です(コード内のコメントを参照)。

MauiProgram.cs

次に Platforms\Android\AndroidManifest.xml を以下のように変更します。追加するのはアプリIDです。広告IDではないので注意してください。

Platforms\Android\AndroidManifest.xml

次に MainPage.xaml を以下のように変更します。これで画面下部に広告が表示されます。広告の高さは 50ピクセルです。AdUnitId で指定するのは広告ユニットIDです。”ca-app-pub-3940256099942544/9214589741″ を指定していますが、テスト段階ではこれを指定します。するとテスト広告が表示されます。テストが終わって正式リリースするときに先ほど取得した広告ユニットIDと入れ替えます。

また “MauiApp1” という文字列がありますが、これはプロジェクトの名前です。

MainPage.xaml

収益化するのであれば作成したアプリは GooglePlay に登録しなければならないのですが、このとき Android 16(API レベル 36)以降でなければなりません。Visual Studio 2026 なら別に問題ないのですが、Visual Studio 2022 の場合は MauiApp1.csproj(プロジェクト名でファイル名は変わる)を以下のように変更します。

変更箇所は

の 2 行の追加と、数カ所存在する “net9.0-android” を “net9.0-android36.0” に置き換えている点です。

MauiApp1.csproj

アプリを作ってみる

実際になにか動くアプリを作ってみることにします。ここではとりあえず動いてくれればなんでもいいので、タップした位置に32×32ピクセルの画像が移動するだけのゲームの原型をつくります。

まず Components\Pages フォルダのなかにある Home.razor を以下のように変更します。

Components\Pages\Home.razor

次に wwwroot フォルダのなかに style.css と game.js という名前で新しいファイルを作成します。また同じフォルダ内にある index.html を以下のように変更します。

wwwroot\index.html

wwwroot\style.css

game.js を以下のように記述します。これで canvas に画像が描画され、タップするとその位置に画像が移動します。

wwwroot\game.js

Google Play に登録する

完成したら実機テストをおこない問題なければ Google Play に登録します。まず Google Play Console のアカウントを作成してログインします。そのとき登録料(1 回限り)が必要です。

アプリを発行し、署名します。

アプリを発行するときは プロジェクトのプロパティの「Android パッケージ形式」(Android ⇒ オプション ⇒ Android パッケージ形式)を「バンドル」にします。そしてメニューから「発行」を選択します。処理が完了したら「配布」を選択、配布チャンネルは「アドホック」を選択します。署名IDを作成または既存の署名IDを選択したら「名前をつけて保存」します。これを手動でアップロードします。

配布チャンネルを「Google Play」にすると署名からアップロードまで自動でおこなうことができるのですが、初回は手動でアップロードするしかないのとエラーが発生したときにわかりにくいので全部手動でアップロードしたほうがわかりやすいと思います。

あとは内部テスト ⇒ クローズドテスト ⇒ 公開となるのですが、問題はクローズドテストです。内部テストであれば自分ひとりでできるのですが、クローズドテストは12人以上のテスターを集めて14日以上の期間をかけて実施しなければなりません。これは知り合いに協力してもらうか、SNSなどで募集して協力者をあつめてやってもらうしかありません。

とりあえずこんな感じのテスター募集ページを作成してみました。

【クローズドテスト参加者募集】個人開発Androidゲーム「Weighted Tic-Tac-Toe」

あとは知名度と交渉力で勝負するしかありません。