我正在构建一个Unity Android应用程序,并查看一些广告。我们正在考虑的一项服务需要我的谷歌广告ID和限制广告状态,以便进行服务器到服务器的转化跟踪。
问题是我不确定如何在 Unity 中获取这些值中的任何一个。似乎我需要某种形式的插件?我已经在AdMob和Chartboost上实现并使用了Google广告服务,但是据我所知,这些插件都没有让我访问Java调用,我需要检索上述值。
所以我想我不确定如何访问我需要的数据。我对向游戏添加更多插件犹豫不决,因为它们变得难以管理。如果我理解正确,我认为应该有一种方法可以通过 Unity 的库访问 java,但我丝毫没有办法做到这一点。
我能够使用以下代码获取所需的数据:
string advertisingID = "";
bool limitAdvertising = false;
AndroidJavaClass up = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = up.GetStatic<AndroidJavaObject> ("currentActivity");
AndroidJavaClass client = new AndroidJavaClass ("com.google.android.gms.ads.identifier.AdvertisingIdClient");
AndroidJavaObject adInfo = client.CallStatic<AndroidJavaObject> ("getAdvertisingIdInfo",currentActivity);
advertisingID = adInfo.Call<string> ("getId").ToString();
limitTracking = (adInfo.Call<bool> ("isLimitAdTrackingEnabled"));