【UE5】広告をつけてAndroidアプリ配信

使用UE:Ver5.0.3

UnrealEngineでメトロノームを作成してGooglePlayで配信してみました。
それまでの流れを細かくまとめました。

Metronome - Apps on Google Play
A simple metronome.

スマホの実機プレイ

Android Studio

インストール

Verの確認

開発要件
互換性のあるハードウェア、ソフトウェア、SDK の情報を含む Android の開発要件です。

Android Studio 4.0で問題なかった。
他の方のブログを見るとVerを落としてインストールする必要があったようだが、修正されたのかもしれない。
👇ここからインストール

Android Studio アーカイブ

UEでの設定

Project Settings>Platforms>Android SDKより、SDK、NDK、JAVAのLocationを設定する。
Defaultのままであれば、下の画像のパスで大丈夫だと思われる。(赤い塗りつぶしはユーザー名。)

SDK:Software Development Kit
NDK:Native Development Kit
jre : Java Runtime Environment

実機プレイ

Androidスマホの設定

開発者向けオプション有効化
設定>デバイス情報
(機種によって項目は異なるが、ビルド番号はあるはず。)
ビルド番号を7回タップ。
USBデバッグON
設定>開発者向けオプション
USBデバッグをONにする。

UEでやること

Project Settings>Packaging
Build ConfigurationをDevelopmentにする。
AndroidスマホをUSBにつなぎ、QUICK LAUNCHからスマホの機種名を選択。
しばらくするとスマホでプレイできる。

赤い塗りつぶしは機種名。
エラー対応

下の表示でてアプリの起動ができない現象がおきた。
おそらくProject SettingsのBuild ConfigurationがShippingだから。
Developmentに修正したら正常にアプリを起動できた。
だがDevelopmentにしていても、この表示がでることもあった。
そのときは、プロジェクトをRestartするだけで表示はでなくなった。
原因は分からない。

ちなみに、PlatformsからBINARY CONFIGURATIONをDevelopmentにしても、上の現象は直らなかった。偶然かもしれないが。

追記2022/11/28

5.1でC++のプロジェクトを作ろうとしたら、下記の表示がでた。

下のサイト(上記表示に書いてあるURL)に行くと、自動的にexeファイルがダウンロードされるので実行。

Download .NET 6.0 Runtime (v6.0.11) - Windows x64 Installer

6.0.11が追加された。この状態ならばC++プロジェクトを作ることができた。

https://wa3.i-3-i.info/word12258.html

起きたエラー
UEのVerを5.1にしてC++を使用した場合下記のエラーがでてAndroidで実機プレイできなかった。
(C++を使わない場合は実機プレイできた。)

LogPlayLevel: Error: UAT: ld.lld: error: undefined symbol: __aarch64_swp8_acq_rel

解決方法

NDKのVerが古いのが原因。
Android Studio4.0をDefaultでインストールした状態から、NDKのVerを書き換える方法を下に示す。
Android StudioのVerが4.0でない人はこちらからinstall。

まず、任意のプロジェクトをAndroid Studioで開く。
上のメニューバーからTools>SDK Managerを選択する。

出てきたウィンドウの中で、SDKToolsのタブをクリック。

その後、Show Packge Detailsのチェックボックスにチェックを入れる。

25.1.8937393のVerにチェック。
以前のVerのチェックを外すことでuninstallできる。(任意)

OKをクリック。

Finishをクリック。

Project Settingsで忘れずに設定。

赤い伏字はユーザー名

参考

Error: UAT: ld.lld: error: undefined symbol: __aarch64_swp8_acq_rel UE5.1
Hello, 🙂 I have a problem when I build a package android project for Quest2 in UE5.1. My config worked in UE5.0. Maybe anyone has the same problem ^^? ####...

Android
Android デバイス向けプロジェクトのビルド方法を学習します。

Android Studio download archives  |  Android Developers
This page provides a download archive of Android Studio releases.

NDK と CMake のインストールと設定  |  Android Studio  |  Android Developers

画像設定

アイコン、起動画面などの画像を設定する。

Project Settings>Platforms>Android
アイコン
48×48,36×36,48×48,72×72,96×96

縦長長方形
大:Dawnload Background
小:Launch(アプリ起動時に表示)
720×1280
360×640
横長長方形
1280×720
640×360

アダプティブアイコンをつかうことで、アイコンの背景を指定できる。

四角いアイコン
丸いアイコン

アダプティブアイコンを使用しないと、アイコンの形によっては背景が白くなる。

丸いアイコン

👇基本的には公式ドキュメントに沿って進めるが、記述の間違いが多いので注意。

UE4 による Android のためのプロジェクトにアダプティブ アイコンを追加する方法
アダプティブ アイコン作成のための手順をご紹介します。さまざまな機種で使われている多様なアイコンの図形を表示できるようになります。  

間違い
・コードのタグのはじめに不要な!がついているので修正する。
・アイコンの名前はicon_round.pngではなく、icon_round_bg.pngにする。

やること

・icon_bg.pngとicon_round_bg.pngを作成。

・作成したアイコンをBuild/Android/res/drawableのフォルダに入れる。
・icon.xml、icon_round.xml、AddRoundIcon_UPL.xmlのファイルを作成。
・Build/Android/resにdrawable-anydpi-v26という名前のフォルダを作成。
・icon.xmlとicon_round.xmlをdrawable-anydpi-v26のフォルダに入れる。
・AddRoundIcon_UPL.xmlをSource/モジュール名のフォルダに入れる。

・モジュール名.Build.csにコードを追記する。

アイコン画像(名前修正済み)

icon_bg.png:108×108の画像。内側72×72に重要なものを配置。
icon_round_bg:108×108の画像。表示範囲は中心から半径72pxの円の中だと思われる。
コード(修正したもの)

icon.xml

<!--?xml version="1.0" encoding="utf-8"?-->
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/icon_bg">
</background></adaptive-icon>

icon_round.xml

<!--?xml version="1.0" encoding="utf-8"?-->
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/icon_round_bg">
</background></adaptive-icon>

AddRoundIcon_UPL.xml

<!--?xml version="1.0" encoding="utf-8"?-->
<root xmlns:android="http://schemas.android.com/apk/res/android">
	<!-- init section is always evaluated once per architecture -->
	<init>
	</init>

	<androidmanifestupdates>
		<!-- add roundIcon attribute to application -->
		<addattribute name="”android:roundIcon”" tag="”application”" value="”@drawable/icon_round”/">
	</addattribute></androidmanifestupdates>
</root>

👇if文が追加されたコード。
モジュール名.Build.cs

// Fill out your copyright notice in the Description page of Project Settings.

using UnrealBuildTool;

public class モジュール名 : ModuleRules
{
	public モジュール名(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
	
		PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });

		PrivateDependencyModuleNames.AddRange(new string[] {  });

        // Uncomment if you are using Slate UI
        // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });

        // Uncomment if you are using online features
        // PrivateDependencyModuleNames.Add("OnlineSubsystem");

        // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true

        if (Target.Platform == UnrealTargetPlatform.Android)
        {
            // Add UPL to add configrules.txt to our APK
            string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath);
            AdditionalPropertiesForReceipt.Add("AndroidPlugin", System.IO.Path.Combine(PluginPath, "AddRoundIcon_UPL.xml"));
        }
    }
}

クリスタで画像作る場合、こんな感じのグリッドを入れておくと、内側の72pxが分かりやすいはず。

パッケージ化設定

Project Settings

確認箇所
検索Boxの使用しようして設定していくと良い。

Use Pak File : true (Default)
Use Io Store : false
Create compressed cooked packages : true (Default)
Include Crash Reporter : false
Exclude editor content when cooking : true (参考動画注意箇所。不具合があればfalseに)
Build Configuration : Shipping (スマホでの実機プレイのときはDevelopment)
Full Rebuild : true
For Distribution : true( IOSはfalseの方がいいらしい。)
Include Debug Files in Shipping Builds : false (Default)
Include prerequisites installer : true (Default)
Max Movable Spot Lights / Point Lights : 0(Movableを使っていないのならば)
Android Package Name : com.団体名.プロジェクト名。日本語NG。
Application Display Name : 任意の名前。日本語でもOK。
Target SDK Version : 31
Package game data inside .apk? : false (Default)(No OBBのErrorが出たらtrueに)
Disable verify OBB on first start/update. : true
Generate bundle (AAB) : true
Support arm64 : true (Default)
Distribution Signing : 少し複雑なので後で説明
【参考動画】

[UE4]Google Play Storeに公開するためのパッケージ設定を解説!

VersionCode
Project Settings>Platforms>Androidで設定。
初回の場合は、
Store Version : 1
Store Version offset (arm64) : 1
で良いと思う。
先ほどTarget SDK Versionを31と推奨した。すぐに変化すると思われるので数字を覚えておき、エラーがでたら変更できるようにしておく。
👇VersionCodeについて、こちらのブログに詳しく書いてある。

赤を緑に
Configure Nowで赤い部分を緑に。2か所ある。
また、これを押すことでProjectにBuildフォルダが作られる。
後ほどキーを生成して、このBuildフォルダに入れる。

Option
Framerateの設定
CookOnlyMapなど使用するMapの設定
👇Windowsのパッケージ化についてだが共通する部分は多い。まずはこの動画を見るべき。

【2022年】UE4 パッケージ化設定のポイントを押さえる!【初心者向け】

Plugin

アプリサイズを小さくするためにOFFにする。
OFFにしたPlugin
下記のプラグインOFFにすることで、内部テスト時のアプリサイズは42MB減少していた。
(OpenImageDenoiseの影響を除く)
参考として載せておきますが、プロジェクトによっては必要なものも多いと思うので自己責任でお願いします。OFFにする前にバックアップはしておいた方が良いと思います。

Actor Layer Utilities
Actor Sequence(Experimental)
AISupport
Alembic Importer
Animation Modifier Library
Animation Sharing
Apple Image Utils
Apple Movie Player
Asset Manager Editor
ArchVis Character
Asset Tags
Audio Capture
Audio Synesthesia
Automation Utilities
AVF Media Player
BackChannel
Blendspace Motion Analysis
Bridge
Cable Component
Camera Shake Previewer
Chaos Cloth
Chaos Niagara
Chaos Solver
Character AI
Chunk Downloader
CLion Integration
CodeLite Integration
Control Rig
CryptoKeys
Curve Editor Tools
Custom Mesh Component
Data Validation
Datasmith Content
Editor Scripting Utilities
Example Device Profile Selector
Facial Animation Bulk Importer
FastBuild Controller
Gameplay Cameras
GameplayTagsEdigtor
Geometry Cache
Geometry Processing
GeometryMode
Git
Image Sequence Media Player
IOS Device Profile Selector
Level Sequence Editor
Mac Graphic Switching
Media Player Editor
Movie Player for WebM files
Niagara
Online Subsystem iOS
OpenImageDenoise
Paper2D
Perforce
Plastic SCM
Procedual Mesh Component
Runtime PhysX Cooking
Skeltal Mesh Simplifier
SoundFields
SpeedTree Importer
Subversion
Trace Data Filtering
Variant Manager Content
Windows Device Profile Selector
Windows Movie Player
WMF Media Player
World Partition HLOD Utilities
XCode Integration
OFFにするのをやめたもの
👇コンテンツブラウザの表示がおかしくなる。
Content Browser – Asset Data Source
Content Browser – Class Data Source
👇たぶんOFFにすると実機プレイできない。OutputLogに警告がでた。
Online Subsystem NULL
不要なアセット

プラグインとは関係ないが、どのレベルでも使われていないものも消しておく。
使われていないものを探すフィルタ操作

Google Play Consoleにおける下記のエラーに対応するため、Android Play BillingのPluginを追加した。

👇Market Placeにおいて無料で購入できる。

Android Play Billing in Code Plugins - UE Marketplace
Android Play Billing plugin for Unreal Engine provides billing methods for buying consumable, non-consumable products and subscriptions.

購入したら、LauncherでInstall。

プラグインを適用する。

関連
Google Play Billing Library:定義が良く分からなかったので、最初のリリースノートを載せておく。

キーの設定

キー(keystoreファイル)を作成して、その設定をしていく。
公式ドキュメントの通りに進める。
途中の注意する点などを簡単にまとめる。
👇公式ドキュメント

プロジェクト リリースの承認方法
プロジェクトを Google Play Store へリリースする準備

基本的な流れ

キーの生成➡キーの配置➡Distribution Signingの設定

キーの生成が少し大変だが、他はすぐ終わる。

キーの生成

コマンドプロンプトを使用。
自分はPowerShellを使用した。

PowerShellを使う場合、ExecutionPolicyを変更しておかないとキーを生成できない。

PowerShellのアプリを検索して、管理者として実行をクリック。

下のコードを入力してEnterキーを押せば変更できる。

Set-ExecutionPolicy RemoteSigned

AndroidStudioがkeytool.exeをインストールしたディレクトリに移動する。
僕の場合は、PC>ローカルディスク(C:)>Program Files>Android>Android Studio>jre>binのフォルダにkeytool.exeが入っていたので、そこに移動した。

PowerShellにおけるディレクトリの移動方法。
下の階層への移動

cd ディレクトリ名

たまにしか触らないからすぐ忘れる。

上の階層への移動

cd ..

ディレクトリ名にスペースが入っているときは、” ”で囲む。

C:\> cd "Program Files"

移動先のフォルダで以下のコマンドをコピペしてEnter。

keytool -genkey -v -keystore ExampleKey.keystore -alias MyKey -keyalg RSA -keysize 2048 -validity 10000

あとは尋ねられたことに答えていく。

国コード:日本の場合は+81 。今回は81を入力すれば良い。

組織単位:任意。僕はKishiroLaboratoryにした。

組織名:任意。僕はKishiroGameにした。

パスワード:任意。

下記のWarningが出たが、キーは生成されていたので無視した。ちなみに僕の環境はAndroid Studio 4.0

キーの配置

生成したキー(ExampleKey.keystore)を、UEのプロジェクトフォルダの中のBuild/Androidのフォルダに入れる。

Distribution Signingの設定

キーを生成する際に使ったパスワードなどを、Project SettingsのDistribution Signingの中に記入する。

パッケージ化

Project SettingsのBuild ConfigurationがShippingになっていることを確認してから、Package Project。
任意のフォルダを選択すると、その中にパッケージ化されたプロジェクトのフォルダが作成される。

FLAVOR SELECTION 圧縮形式の種類

Unreal Engine 4のAndroidパッケージ DXT、ETC2、ASTC の違い
Unreal Engine 4のAndroidパッケージの種類 DXT、ETC2、ASTC の違いについてまとめました。Unreal Engine 4のAndroidパッケージUnreal Engine 4.6.2でプロジェクトのパッケージ

作成したフォルダの中にaabファイルがある。
今後これを使用していく。

binファイル

バイナリ形式のファイル。テキスト形式の対義語?

PCには読みやすく、人間には読みにくい。

.bin【拡張子】とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
「.bin【拡張子】」の意味を何となく説明しています。

Google Play Console

👇リンクの説明通りに進めれば大丈夫

Play Console Help
Official Google Play Console Help Center where you can find tips and tutorials on using Google Play Console and other answers to frequently asked questions.

電話番号は国コード+81をつけて入力。
09011112222の場合、+819011112222になる。
登録料は25米ドル。

テスト

エラーなどを通して製品公開前に足りないところを教えてくれる。

内部テスト➡クローズテスト➡オープンテスト
の順に進める。
また各テストは、
リリースのレビュー➡エラー修正➡公開
の順に進める。

リリース
UEのパッケージ化で作成したApp Bundle(.aabファイル)をアップロードすること。
レビュー
アップロードしたファイルを調べること。
その結果を元にエラーを修正。エラーがなくなると公開できる。

内部テスト

リリースのレビュー

内部テスト>リリースを編集
から、App Bundleをアップロード。

無事にアップロードが完了したら、保存を押してリリースのレビュー。

アップロード時のエラーと解決方法をいくつかまとめておく。

下記のエラーがでたら、Project SettingsのTarget SDK Versionを修正する。
下のエラーの場合は31に修正すれば大丈夫だった。

下のエラーがでたらUEのエディタに戻り、
Project Settings>Platforms>Android
から、Store Versionを変更する。

上の例の場合バージョンコード1が使用済みとのことなので、Store Versionを2などに設定すれば大丈夫。

エラー修正

エラーを修正しないと内部テストとしての公開に進めない。
リリースの破棄をしてから、エラーを修正したApp Bundleをアップロードしなおす。

リリースしたApp Bundle(.app)は、App Bundle エクスプローラから削除できる。レビューしただけなら削除できる。

しかし内部テストではあっても、一度公開すると削除できないので注意。
使用済みのVersionCodeが増えることに怖がることはない。充分な量が用意されている。
削除しようと頑張って、時間を不毛に使わないように注意。

一度内部テスターとして公開しているので、削除できない。

👇これはプラグインで解決。詳しくはパッケージ化設定のところで説明済。

👇VersionCodeを以前よりも小さくするとだめらしい。

このエラーがでたときVersionCode1のBundleを使おうとしていた。
既にVersionCode4のBundleを使用していたので、それよりも小さいVersionCodeだったためにエラーが出たのだと思う。

GooglePlayConsoleでアップグレードできないAPKの対応方法 |
ある日、アプリをバージョンアップしてGooglePlayConsoleにアップロードするときに、エラーが発生しました。『エラー このリリースの公開を開始する前に、こちらのエラーをご確認ください。このページに記載されているエラーに対応して、既存のユーザーがアプリの最新バージョンにアップグレードできるようにしてください。 ...

公開

エラーがなくなると、内部テストとして公開できるようになる。

内部テスト>テスター数

のところからリンクをコピーできる。スマホからリンク先に移動すると、内部テストとして公開しているApp Bundleのアプリをインストールできる。
ただし以前別のBundleを内部テストとして公開していた場合、切り替わるのに少し時間がかかる。
自分でテストする場合、自分のGmailアドレスをMailingListに載せておく。

MailingListには自分のgmailアドレスを入れておく。

リンク先からインストールしたアプリを試す。

アプリ起動時に下記のメッセージが出た場合、
UEのエディタのProject Settingsより
Package game data inside .apk?をtrueにする。

ただし、サイズは大きくなるので別の解決策があると助かる。
僕はこれをtrueにしないと起動できなかった。
trueにした状態で、.aabファイルをAndroid Studioで開いたらOBBが入っていた。
サイズもtrueにしたことによる増加分と同じくらい。

クローズドテスト

はじめは内部テストのときと同じ操作。
まず、クローズテストにおいてリリースを編集を選択。

App Bundleをリリースしてからレビュー。
ダッシュボードに従いながら、エラーと警告を解決していく。
指示に従いながら、ひたすら回答していくのがほとんど。
プライバシーポリシーとメインストアの記載情報が少し大変なのでまとめておく。

プライバシーポリシーを書いたURLを用意する必要がある。
自分のブログが無かったら、まず無料ブログで良いので作成する。
その後、プライバシーポリシーを書いたページを作る。
英語の方が良さそうだったので下のサイトを使い作成した。

▷ Privacy Policy Template Generator || FREE & Easy || Try NOW!
Use our Privacy Policy Template Generator: ✅ No Registration Needed ✅ Free ✅ Done in a Few Minutes ✅ Personalized for your business or industry ⇒ Try it yoursel...

記載するものをまとめておく。

アプリ名
簡単な説明:80字まで
詳しい説明:4000字まで
(文字数は全角半角区別しない。)
アプリのアイコン:PNGかJPEG。1 MB以下、512 x 512 ピクセル
フィーチャーグラフィック:PNGかJPEG。15 MB 以下、1,024 x 500 ピクセル
Youtube動画URL:年齢制限なし、横向き
スクリーンショット
携帯電話版(たぶんスマホのこと)
2~8 枚アップロード。
PNGかJPEG。
8 MB 以下。
アスペクト比 16:9 または 9:16 。
縦横がそれぞれ 320~3,840 ピクセル。
プロモーションの対象:縦横がそれぞれ 1,080 ピクセル以上で4 枚以上アップロード。
タブレット

最大 8 枚アップロード。
他は携帯版と同じ。
10インチタブレット

縦横がそれぞれ 1,080~7,680 ピクセル。
他はタブレットと同じ。
クロームブック

4~8 枚アップロード。
縦横がそれぞれ 1,080~7,680 ピクセル。
他は10インチタブレットと同じ。

全ての端末で同じ画像を使用するのならば、

1920×1080が最小

2880×1620が中間

3840×2160が最大

(横向きの場合)

エラーを修正したら、公開を開始する。

審査中になった。

少しの設定で、オープンテスト版も公開開始できる。けど今回はオープンテストはしない。

製品版も公開できる。

公開を開始すると審査中になる。

審査中になってから68時間くらいで公開された。

広告

左側のメニューから選択し、設定できる。

指示に従い記入していく。

広告のテスト表示

まずはテスト用のAdMob AppIDとAd Unit IDを使って、スマホの実機プレイで広告を表示させてみる。
テストの後、本番用のIDに設定しなおす。
ここでは有料のプラグインを使用する。

AdMob AppID
広告をだすのに必要になる、アプリに対するID。
Ad Unit ID
各アプリに対して広告の種類ごとに作られる、広告に対するID。
バナー用のIDやインタースティシャル用のIDなどがある。

広告の種類

まずはプラグイン(AdMob Goodies)を購入する。セールではなかったので¥11569だった。

購入しようとすると、AdMob GoodiesはあなたのOSとの互換性がないと警告される。

プラグインに関する質問欄を見てみると、このことについての質問と解答が載っていた。
解答によると、Windows10でも大丈夫とのこと。
互換性がないというのは、広告はモバイルに対するものでWindowsには載せられないという意味らしい。
モバイルに広告を載せるために買うので問題ない。

エンジンにインストールした後、Pluginを有効にする。

Project SettingsのAdmob Goodiesにおいて、テスト用のAdMob AppIDを入れておく。
テスト用AdMob AppID(Android)

ca-app-pub-3940256099942544~3347511713

テスト用AdMob AppID(IOS)

ca-app-pub-3940256099942544~1458002511

また、Delay app measurementをtrueにしておく。

実装内容
起動時に広告がLoadされ、Loadが終わり次第表示される。
起動から5秒後に右下にボタンが現れ、押すと広告は消える。
アプリをBackgroundにするとき広告は消えて、
Foregroundに戻ってきたときに再び表示される。
広告自体に消すボタンはついているので、消すためのボタンは不要だったかと少し後悔。
ただ、自分で使うとき広告を消しやすいので残しておく。

MyGameInstance
ただのGameInstance。
Project SettingsのMap & Modesにおいて忘れずに設定する。
Make Banner Adの部分にAd Unit IDを入力する。
Positionによって位置の調整ができる。

テスト用Ad Unit ID(Androidのバナー広告)

ca-app-pub-3940256099942544/6300978111

テスト用Ad Unit ID(IOSのバナー広告)

ca-app-pub-3940256099942544/2934735716

WB_MainUI

起動後5秒したら、バナー広告を消すボタンが現れるようにした。

BP_MyPawn

EventBeginPlayでバナーを表示。

アプリを閉じたときにバナーを消し、アプリを再起動したときに再び表示するようにした。
ここの設定だけはC++が必要。

Google AdMob

Google AdMobと検索して、Gmailアドレスを使えば登録はすぐできる。

Google AdMobにおいて、
ホーム>アプリ>アプリを追加

下記のように選択して「次へ」をクリック。

自分のアプリを見つけて追加をクリック。

何も選択せずに「次へ」をクリック。

「アプリを追加」をクリック。

審査がはじまる。完了をクリック。

👇その日のうちに承認された。

ホーム>アプリ>すべてのアプリを表示

アプリIDの部分に書いてあるのがAdMob AppID。

アプリから、広告ユニットを追加したいアプリを選択する。
その後、左のメニューから「広告ユニット」をクリック。

「広告ユニットを追加」をクリック。

広告の種類を選択する。ここでは例としてバナーを選択する。

広告ユニット名を決めて、広告ユニットの作成をクリック。

広告ユニットのID(Ad Unit ID)が作成される。

メニューから、広告ユニットを選ぶことで、簡単に確認できる。
塗りつぶしてある部分がID。

Project Settings

UEにおいて、広告用の設定をしていく。
Enable Google Play Support : true(Default)
Include AdMob support for ads : true(Default)

要素を2つ追加する。
Playゲームサービスを使わないのなら必要ないかもしれない。

コピペ用

com.google.android.gms.games.APP_ID="@string/app_id"

com.google.android.gms.version="@integer/google_play_services_version"

ちなみに、記入事項は以下の公式の説明を参考にしてみた。
記入の仕方が正しいかは分からない。

👇関係あるかも。google_play_services_versionと上で入れたが、versionは具体的なものを入れるのかも。

Google Play 開発者サービスをセットアップする  |  Google Play services  |  Google for Developers

要素を2つ追加する。

コピペ用

com.android.vending.BILLING

android.permission.INTERNET

Playゲームサービスに書いている12桁の数字。
下記の画像のプロジェクトIDがGame App ID。
Playゲームサービスの設定を全て完了しなくてもIDを見ることは可能。
Playゲームサービスの機能が必要ないのなら、このID自体必要ないかもしれない。

記入し忘れたが、広告は付けられた。
Google AdMobで確認できる、Ad Unit IDのことだと思われる。
Games App IDと同じGoogle Play Servicesの欄にあるので、Playゲームサービスを使用しないのならば必要ないのかもしれない。

GooglePlay License Key:GooglePlay Consoleの収益化のセットアップに記載されているライセンスキー。MIIBIから始まる文字列。

これも記入を忘れたが、今のところ問題は出ていない。

最後に、テスト用として使っていたAdMob AppIDと、Ad Unit IDを本番用に設定しなおす。
確認となるが、
AdMob AppIDは、Project Settings>AdMob Goodiesで設定。
Ad Unit IDは、Project SettingsのAd Mob Ad Unit IDsと、Blueprintのノードに設定する場所がある。
両方とも、Google AdMobで本番用のIDを確認できる。

Playゲームサービス

ここの設定はしなくても、アプリをGooglePlayで配信することはできる。
ある程度設定を進めてみたが、メトロノームには必要ないと思う。
Project SettingsにおいてGames App IDを記入したいがために設定した。
そもそもGames App ID自体、Playゲームサービスを使わないなら必要ないのかも。

左側のメニューから設定できる。

下記のチェックリストに沿って進める。

Playゲームサービスの設定において、
アプリ名の下に書いているプロジェクトIDがGames App ID。

Games App IDとは、UEのProject Settingsで設定するもの。

OAuth同意画面を作成

120×120のアプリのロゴ画像が必要。

Get Started with Play Games Services for Android  |  Google for Developers

Google Play ゲームサービスをセットアップする  |  Android ゲーム開発  |  Android Developers

認証情報を作成

Playゲームサービスの設定において、下にスクロールして、「認証情報を追加」をクリック。

著作権侵害対策を有効にする。

初期状態ではOAuthクライアントの選択ができない。
「OAuthクライアントを作成」をクリックして作成する。

「OAuthクライアントIDの作成」をクリック

フィンガープリントを以前作成したキーストア(ExampleKey.keystore)から調べる。

👇公式の説明

以前Distribution Signingの設定をする際に使用したkeytool.exeを使用した。
プロダクションのキーストアの場合、以前生成したキーストアへのパスを使用した。
パスワードも以前設定したもの。(Distribution Signingのところ)

SHA1の部分をコピー。(SHA1:は含めない)

無効になった。
SHA1の場所に書いてある文字列の桁数が求められているものより長い。
16進数で64桁あった。
これは既にSHA1ではなく、SHA256なのでは。
MD5のところにあるのが、40桁なのでSHA1ぽい。

なのでMD5の場所のものを使用した。
作成はできた。今のところエラーはない。

SHA-1(シャーワン)とは Secure Hash Algorithm 1の略で、入力データを一定の手順で計算を行い、入力値のデータの長さに関わらず決まった長さの文字列を出力するハッシュ関数の一つです。SHA-1は、160ビット(16進数では40桁)のハッシュ値を生成します。
(下記の記事より抜粋)

SHA-1とは
SHA-1(Secure Hash Algorithm 1) SHA-1とは SHA-1(シャーワン)とは Secure Hash Algorithm 1の略で、入力データを一定の手順で計算を行い、入

👇MD5、SHA256について

【エバンジェリスト・ボイス】暗号学的ハッシュ関数とブロックチェーン技術

👇分かりやすい。ただしデバッグキーストアの場合について。

Androidアプリのデバッグ用証明書のSHA1を取得する - Android プログラミング

OAuthクライアントの更新をクリックすると、OAuthクライアントを選択できるようになっているので選択。

APIを使用できるようにする

UEのProject Settingsにおいて、Extra Tags for <manifest> nodeに要素を追加したものを製品版として公開することで、APIが使用できるようになるのだと思う。

製品版を公開後確認したら、チェックが入っていた。

プロジェクトを公開

公開はしない。
メトロノームには必要ないから。
別のアプリをつくるときに、ここから先の機能も設定してみたい。

設定以外の項目

Playゲームサービスにおける設定以外の項目について軽く調べてみた。
今回は使用しないので、とりあえず見るだけ。

とりあえず、作成してアプリの名前だけ記入しておいた。

これも名前だけ。

名前だけ。

…。

参考

[UE4]Android端末で広告出したい人向けの広告設定!

APK (ファイル形式) - Wikipedia

Android Studioでアイコンを設定する
アプリ用にサイズ毎の画像を用意しなくても、Android Studioの機能を使えば簡単に画像の加工ができました。あと、アイコンエディタ的なものもあるので頑張ればAndroid Studioだけでアイコン作成できそうです。

[Android 2021年度版]Google Play でアプリを公開(4/5) クローズドテスト | Unity Indies

Android でのアプリ内広告の使用方法
Android で Ad Mob を使用する

[UE4]Memreportを活用しよう!|株式会社ヒストリア
執筆バージョン: Unreal Engine 4.27 こんにちは! 開発をしているとこんな場合がありませんか? 「メモリがカツカツでうまく動かないけど原因がわからない」 「メモリリークしてないか調べたい」 そんな開発者のために、今回はMemreportについて紹介します! Memreportとは? Memreport...

JKSキーストアは独自の形式を使用しています。とは
Google Playでアプリを公開するために、「いざAndroid Studioでアプリを作成しよう!」と思ったわけだけど どうやらアプリを作成するためには「キーストア」なるものを作成しないといけないらしい。 ふむふむ。 よくわからんがと

【Unity】AdMob テストアプリID - Qiita
公式ページに見当たらなかったのでメモ両OSとも Google Mobile Ads Unity Plugin v8.5.1で使用したところ実機ビルドにてアプリが起動しませんでした。そのため、こち…

Twitterしてます

ブログの更新をお知らせ

コメント

タイトルとURLをコピーしました