2021年09月26日

[iOS] AdMobのテスト用IDFAを登録したら、収益が激減した話

アプリの更新作業で、AdMob管理画面からテスト端末を登録できる事を知りました。
方法は、

AdMob管理画面 > 設定 > テストデバイス > テストデバイスを追加

を選び、iPhoneのIDFAを登録します。
IDFAの取得方法は、プログラム(Objective-C)に以下を記載します。

----------------------------------------
// 広告IDを確認(AdMobの管理画面でテスト広告の設定に使用)【AdSupport.framework必須】
ASIdentifierManager *identifierManager = [ASIdentifierManager sharedManager];
NSString *idfa = identifierManager.advertisingIdentifier.UUIDString;
NSLog(@"[IDFA] %@", idfa);
----------------------------------------

これでAdMob管理画面から「テストデバイスを追加」で、上記で取得したIDFAを登録します。
すると、広告の中に「Test mode」という表示が出るので、テスト広告が表示されているとすぐにわかります。

blog20210926_2.png

がしかし、上記のプログラムで「00000000-0000-0000-0000-000000000000」が出たので
それをAdMob管理画面に登録してしまった場合、他のiPhoneでもテストモードになることがわかりました!
これはiOS14以上のiPhoneのトラッキングの追跡設定(設定 > プライバシー > トラッキング)が影響していると
思われます。

blog20210926_3.PNG

やけに広告収益が落ちたと思ったら、これが原因っぽかったです。
2日気づかなかったのは痛い!

みなさんもご注意ください。
posted by be-style at 21:41| Comment(0) | iOS

[iOS] 100マス計算にミニゲーム「飛び石」が追加されました

iOS版の100マス計算をアップデートしました。
今回の更新の目玉は、ミニゲーム「飛び石」の追加です。

blog20210926.png

飛び石の上を落ちないように進むというゲームです。
シンプルだけど、妙に癖になります。
よろしかったら、遊んでみてくださいー。

App Store:
https://apps.apple.com/jp/app/id534131439
posted by be-style at 12:58| Comment(0) | iOS

2021年09月15日

[任天堂Switch Lite] ドラクエ3の自動レベル上げ/たね集め

記事にはネタバレを含むので、ご注意ください。

====================================

作業の合間に任天堂Switch Liteでドラクエ3をプレイしているのですが、クリアした後にレベル99に上げたりステータスをオール99にしたいという願望が出てきました。
これまでコツコツ続けてきたのですが、とてつもなく時間がかかりそうなので「お金の力で解決しようっ!」という事で、自動レベル上げの方法を探しました。

見つけた方法が、以下の方法です。

@Aボタンを連打するだけで良い状態にする(自動レベル上げ/たね集め)
A自動で連打する方法を見つける

@については、ゲーム終盤で訪れる下の世界(アレルガルド)の「ガライの家」の地下室の宝箱の隣の床に落ちている「ぎんのたてごと」を入手します。
次に、パーティの先頭に「ぎんのたてごと」を持たせる(装備品の下に並べる)。
あとは、戦いたい敵のいる場所に行き、Aボタンを連打するだけです。
すると、

どうぐ > パーティの先頭キャラ > ぎんのたてごと > つかう > 戦闘開始 > 戦闘終了 > 経験値獲得/たね入手

がループします。
※作戦では、全員を「じゅもんつかうな」や「いのちだいじに」にします。
※「けんじゃのいし」をパーティーの誰かに持たせると危なくなると回復してくれるのでおすすめです。
※パーティの中に「とうぞく」の数が多い(レベルが高いほど良い)ほど、盗める確率が上がります

Aについては、「連射ホールド機能」がついたコントローラーを使います。
※連射ホールド機能は、コントローラーから手を離しても連射を続けてくれる便利な機能です

私が使っているのは、ホリパッド(有線:USB Type-A)です。



本体のバッテリー切れの心配があるので、本体を充電しつつコントローラーも接続できるUSBハブスタンドを使います。



機器の接続状況は以下の通り。

USBハブスタンド(スタンド部分)
- USB Type-Cポート = Switch Lite本体

USBハブスタンド(2ポート)
- USB Type-Cポート = Switch Liteのアダプター
- USB Type-Aポート = 連射ホールド機能付きのコントローラー(USB Type-A オス)

これで充電しながら自動レベル上げ/たね集めができるようになりました。
目指せレベル99!
posted by be-style at 21:32| Comment(0) | Other

2021年08月10日

[Unity - iOS/Android] 1球パターゴルフR をリリースしました。

「1球パターゴルフR」をリリースしました。
久しぶりの新アプリは、激ムズのパターゴルフゲームです。
以前も同じアプリをリリースしていたのですが、アップデートするよりも1から作り直そうということで、ステージもUIも一新させました。

Google Play Game Serviceや、AdMobの新SDKや、メインの機能以外で苦労しましたが、なんとかリリースに辿り着けました……。

よかったら、遊んでみてくださいm(_ _)m
ちゃんと実機でプレイして、クリアできることは確認済みです。

feature_jp.jpg

App Store(iOS):
https://apps.apple.com/jp/app/id1577544150

Play Store(Android):
https://play.google.com/store/apps/details?id=com.jpn.bestyle.oneshot.r
posted by be-style at 11:05| Comment(0) | Release

2021年08月09日

[Unity - Android] Google Play Game Serviceのリーダーボードを実装したときのメモ

UnityでGoogle Play Game Serviceのリーダーボードを利用したときにハマったのでメモ。
Google Play Consoleの管理画面が新しくなって、ややこしくなった。



■略語の説明:
・GPGS = Google Play Game Service(リーダーボード等、ゲームで使う機能がある)
・GPC = Google Play Console(Androidアプリを管理するサイト)
・GCP = Google Cloud Platform(GPGSを使う時に使うOAuth認証を管理するサイト)



■注意点
@Unityでの実装編
・PlatformがAndroidになっている
GPGSのSDKを使っている
・GPGSとAdMobのSDKでAndroid Resolverが重複したとき、バージョンの新しい方を採用する
・2021年8月1日から、申請できるアプリはAndroid11.0(API30)以上
・GPGSのUnityでの設定は、
 Unity > Window > Google Play Gams > Setup > Android setup...
 「Resources Definition」の欄に入力するのは、
 Google Play Console > Playゲームサービス > 設定と管理 > リーダーボード > 画面右上の「リソースを取得」 > Android(XML) の内容 ※GPCでリーダーボードを既に作っていること
 Client IDは、Androidアプリなので空欄でOK。
・Android実機のログ確認は、
 Unity > Window > Analytics > Android Log Cat

AGoogle Play Console(管理画面)編
・.apkまたは.aabファイルを内部テストに登録している
・クローズドテストをする場合は、ストア情報を全て埋める必要がある
・ポリシー > ポリシーのステータス で、プライバシーポリシー(Webサイト)を登録する
・ポリシー > アプリのコンテンツ で、アンケートにすべて答える
・テスト > 内部テスト > テスター数 で、テストユーザーを登録する
 招待URLは、テスター数 の下にある「テストへの参加方法」にある。
・Playゲームサービス > 設定と管理 > テスター数 で、テストユーザーを登録する

BGoogle Cloud Platform(管理画面)編
・GPC > Playゲームサービス > 設定と管理 > 設定 > OAuthクライアント
 から GCP に行ける。
・GCPでは、必須項目以外は記入しない(色々と申請が面倒そう)
・認証情報 > SHA-1証明書のフィンガープリントに記入するのは、実機のログ(後述)で出力された方を採用。
 ※「keytool -keystore...」を使って取得したSHA-1証明書は、なぜかエラーになった
 ※GPC > 設定 > アプリの完全性 > SHA-1 証明書のフィンガープリント でもないので注意
・OAuth同意画面 > 公開ステータス が「本番環境 or テスト環境」かをチェックする
 ※テスト環境の場合、テストユーザーが登録されていることを確認する



■エラーの内容
実機で実行すると下記のエラーが出てGPGSの認証に失敗した。
下記の(1)(2)(3)を設定できているかチェックする。

APP NOT CORRECTLY CONFIGURED TO USE GOOGLE PLAY GAME SERVICES
DEVELOPER_ERROR
This is usually caused by one of these reasons:
(1) Your package name and certificate fingerprint do not match
the client ID you registered in Developer Console.

(2) Your App ID was incorrectly entered.

(3) Your game settings have not been published and you are
trying to log in with an account that is not listed as
a test account.

(4) A server auth code was requested, but an incorrect client
id was provided. The client id for server auth codes should
be the client id for the game server (not the android app).

To help you debug, here is the information about this app
Package name : [アプリのパッケージ名]
Cert SHA1 fingerprint: [XX:XX:XX:XX:.... といった、SHA-1証明書のフィンガープリント]
App ID from manifest : [GPC > Playゲームサービス > 設定と管理 > 設定 > プロジェクトID と一致]

※GCP > 認証情報 > OAuth2.0クライアントID > 該当ID > SHA-1証明書のフィンガープリント
 には、上記のフィンガープリントを設定する必要がある

【2021.8.10追記】
オープンテストのためGPCにアップロードしてストアからインストールしたところ、また認証で失敗して上記エラーが出た。PCから直接インストールするのと、ストアからインストールするのとで、フィンガープリントが違っていた。なぜ!
ということで、ログに出力されたフィンガープリントを改めてGCPで設定しなおすと、オープンテストでインストールしたアプリで認証できた。仕組みがわからない!




■リンク
GPGS(Google Play Game Service) for Unityプラグイン:
https://github.com/playgameservices/play-games-plugin-for-unity
※2021年8月9日時点 = v10.12

GPC(Google Play Console):
https://play.google.com/console/u/0/developers/

GCP(Google Cloud Platform):
https://console.cloud.google.com/apis/credentials



■参考
GPGSの実装でハマりやすい点:
https://qiita.com/flying_water_pot/items/eb18ad1e8520eb068907

UnityからAndroidの署名あり/なしビルド:
https://light11.hatenadiary.com/entry/2019/07/07/211057

GCPでOAuth同意画面の公開ステータスが「本番環境 or テスト環境」かチェック:
https://tyatran.hatenablog.com/entry/2020/12/29/140700

Xcodeの不要ファイルが重くなった場合の削除シェル:
https://qiita.com/star__hoshi/items/0ce9cd1c3793e6a951fc
posted by be-style at 10:31| Comment(0) | Unity