UnityADSで他のUDNアカウントのIDで広告表示をする方法
エディターのServiceウインドウからADSを使用する際にアカウントにログインが求められます。
ですが、まれにこのアカウントとは別のアカウントで管理されているADSのIDを使用したい場合があります。
Unity5.3.5の頃は、エディターのServicesでGameIDを指定することが出来ました。
UnityADSのアカウントがUDNアカウントに統一された影響でしょうか。Unity5.6.3ではServiceウインドウではIDの設定がありません。
Start関数などの中でInitializeを実行し、IDを指定できるのですが
ServiceウインドウでログインしたUDNアカウントが有効になり、そのUDNアカウントにてADSのインプレッションが計測されてしまいました。
void Start()
if (Advertisement.isSupported) {
Advertisement.Initialize("ここにIDを指定");
}
エディタ上で指定したアカウントと別のアカウントのIDを使用する方法
github上のインテグレーションガイドに記載がありました。エディタースクリプトを使用して無効化する必要があります。
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.Advertisements;
public class UnityAdsBuildProcessor : Editor
{
[PostProcessScene]
public static void OnPostprocessScene ()
{
AdvertisementSettings.enabled = true;
AdvertisementSettings.initializeOnStartup = false;
}
}
ポイントは「initializeOnStartup =false」です。これにより、エディタ上で指定したアカウントでのオートイニシャライズが無効になります。手動でIDを指定する必要がありますので、どこかのStartやAwakeなどで「Advertisement.Initialize("ここにIDを指定")」を行えば今度こそそのIDが有効になります。
上記のスクリプトと組み合わせて下記の手動イニシャライズを使用することでIDが有効になります。
void Start()
if (Advertisement.isSupported) {
Advertisement.Initialize("ここにIDを指定");
}