Search Unity

Easy Mobile - Many-in-one package for mobile games

Discussion in 'Assets and Asset Store' started by pt5011, Jan 28, 2017.

  1. seidgaparov

    seidgaparov

    Joined:
    Jul 18, 2013
    Posts:
    18
    I'm using AdMob, on PC all ads are loading but on the android device, I couldn't load ads, getting this error:
    22682-22845/com.game.mygame I/Unity: Please initialize the AdMob client first.
    EasyMobile.AdClientImpl:CheckInitialize(Boolean)
    EasyMobile.AdClientImpl: DestroyBannerAd(AdPlacement)
    EasyMobile.Advertising: DestroyBannerAd(IAdClient, AdPlacement)
     
    Last edited: Jan 15, 2021
  2. seidgaparov

    seidgaparov

    Joined:
    Jul 18, 2013
    Posts:
    18
    For someone who searching this, solution was described in EASY MOBILE's USER_GUIDE:
    Initializing
    You must always initialize Easy Mobile before using its API.

    Since the initialization must be done before the Easy Mobile API can be used, it is advisable to do it as soon as your
    app launches. This will also allow automatic services such as ad loading to start soon and the ads will be more likely
    available when needed. Practically, this means attaching the initializing script to some game object in the first scene of
    your app.
    To initialize simply call the Init method of the RuntimeManager class. This method is a no-op if the initialization has
    been done so it's safe to be called multiple times. You can also check if Easy Mobile has been initialized using the
    IsInitialized method.

    Code (csharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. using EasyMobile; // include the Easy Mobile namespace to use its scripting API
    4. public class EasyMobileInitializer : MonoBehaviour
    5. {
    6. // Checks if EM has been initialized and initialize it if not.
    7. // This must be done once before other EM APIs can be used.
    8. void Awake()
    9. {
    10. if (!RuntimeManager.IsInitialized())
    11. RuntimeManager.Init();
    12. }
    13. }
     
  3. sabanmete

    sabanmete

    Joined:
    Mar 20, 2020
    Posts:
    19
    I just upgraded my project and getting this error, cant get any notifications from app now, how can i solve this ? :) i tried delete and resolve librarys but its same. Notifications.IsInitialized() gives True, in awake. Also it gives me "Module has been initilaized. Ignoring this call." Thank you :)

    -Mete
     

    Attached Files:

  4. SandboxStudios

    SandboxStudios

    Joined:
    Jun 18, 2014
    Posts:
    3
    Hi! I really can't make IAP and Ads working on iOS! I can't release my game because of this. When I test in Xcode it says that IAP is not initialized(it's added as capability). Everything is working in Unity(windows).
     
  5. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    Certain third party services such as Game Services can take some time to load. Typically, there's the Google Play Services popup that shows up on top of the game's interface but this is a process that's totally invisible to the game.
    Unfortunately EMP only tells users if the GS is initialized or not, not if it's in the process of initializing or if the initialization failed.
    I manually control the GS initialization and thus pause the game. I can put the checking of the initialized state in a loop and wait for the service to be initialized, but I have no way to know if the initialization failed, so I have to use an arbitrary measure such as waiting for n seconds, preferably a long but stupid amount of time and consider that beyond this time, the initialization failed.
    This could apply to any other service that is being initialized through EMP.

    Warnings about the app failing to link to Play Services are sent to the Unity console so these events can obviously be detected. Knowing if the service is initialized is one thing, and knowing if the initialization is running or has failed is another thing.

    It would be good to either have:
    - a method / action (I'm on Playmaker) that provides a verification on the status of the initialization itself (with an option for 'every frame'); or
    - an expanded initialization process (action) that provides an option so when ticked (boolean perhaps), the action will not exit immediately but will actually keep cycling until the initialization is a success or a failure. This way we can let EMP do the init and surveillance. Perhaps a supplementary bool such as 'abort' could also be added so that if it detects 'true', EMP aborts the initialization by force (if possible, I don't know if that's permitted). It would trigged a third type of event, "aborted", in which case a slightly different message would have to be sent to the console by saying that the the initialization was aborted.
     
    Polyfemos likes this.
  6. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    An alternative is to keep an eye on the app's behaviour at the OS level as it receives events. Not that you can talk to the OS directly, but the app is going to be informed of the OS put the app on pause and then refocusing on it as it leaves the standby mode.
    When the Pausing of the app happens, first note under which conditions this is happening (here, an attempt at connecting to the Game Services). Probably put a bool there during that short frame as a reminder but it's not an obligation.
    Then when the Pause event is fired a second time (the device "returns" to the app, leaves the standby), then check if the services are initialized. That's a safe method that allowed me to have to avoid waiting for some arbitrary amount of time, although one would probably want to keep that timer in too and set it at anything like 10 seconds, just in case for some random reason an event is lost in the process (it should not happen but...).
     
  7. zetaxbr

    zetaxbr

    Joined:
    May 17, 2016
    Posts:
    22
    Hello Support,

    First of all thank you very much for this awesome tool, because of it I be able to port my game using Playmaker to Android Plataform!

    I have a question, I'm using a asset that needs to access a http url(a timer world server to prevent cheat of player with dailies quests) but after Android 9, http protocol is disable by default.

    The developer of the other asset added a tutorial and I have to add a line of code on my AndroidManifest
    <?xml version="1.0" encoding="utf-8"?>
    <manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
    ...
    android:usesCleartextTraffic="true"
    ...>
    ...
    </application>
    </manifest>

    But since Easy Mobile Pro auto generate the AndroidManifest, where I can add this code to merge with Easy Mobile generated one? Sorry for dumb question but I'm more designer than programmer (thats why I use Playmaker).
     
  8. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    If I remember correctly, the building phase fuses all manifests it finds in your project, assuming they share the proper name. Someone more educated on this would correct me on this.
     
  9. zetaxbr

    zetaxbr

    Joined:
    May 17, 2016
    Posts:
    22
    Thanks for the reply, so I've just have to drop an AndroidManifest.xml file into /Assets/Plugins/Android to get it merged?
     
  10. GS796

    GS796

    Joined:
    Dec 16, 2016
    Posts:
    24
    To support ios 14 changes, I do not want to init Admob and Unity until after I have onboarded the user and then showed them the new idfa permissions. This way when I load ads, they will be personalized if the user has opted in. Currently it seems that EMPro is auto initing both Unity and Admob, is there a way for me to control the timing of the ad modules initialization?
     
  11. ellis_talley

    ellis_talley

    Joined:
    May 17, 2017
    Posts:
    3
    Speaking of the new IDFA permissions, will EMP be updated to use the new native OS dialog prompt when 14.5 comes out?
     
  12. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
  13. Mast3rVnzla

    Mast3rVnzla

    Joined:
    Jun 4, 2017
    Posts:
    1
    Hello, im having problems retrieving the auth code after authenticating the users with the google play services when i try to get their auth code with GameServices.GetServerAuthCode(), does someone knows why this happens? It authenticates the user correctly, i can get their email, nickname, and google user id, but when i try to get the authcode it returns "", an empty string.
     
    Last edited: Feb 19, 2021
  14. ZolnierGames

    ZolnierGames

    Joined:
    Feb 19, 2018
    Posts:
    88
    So, I'm trying to publish for IOS via Xcode 12. I'm using Admob and have Ad Default placement IDs set for Banner and Interstitial ads and am not using Rewarded ads so I have left that blank. My app compiles in Unity and I have successfully published on Google Play, but when I try to build for IOS via Xcode, it throws 11 errors about "cannot find protocol declaration for GADRewardedAdDelegate" and "No visible @interface for GADRewardedAd" etc. Do I have to set this in Easy Mobile even if I am not using Rewarded Ads? How can I address this? Help!!
     
    Last edited: Feb 24, 2021
  15. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    I noticed a bug I think in the Playmaker action Runtime Manager_Is Initialized.
    The boolean variable is reset to None as soon as the action starts. Events work properly.
     
  16. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    Also, a minor annoyance but I wish the console wouldn't send contradictory messages such as this:

    IAP_client_init_incoherent.png

    The ads do play properly as they become ready later on, when the app's main page appears.
    It seems EMP should be sending something more like "[ad placement #] not ready yet" and stop telling me the client is not ON when the first line reports it actually is.

    P.S.: this is in test mode btw.
     
  17. ZolnierGames

    ZolnierGames

    Joined:
    Feb 19, 2018
    Posts:
    88
    Now I'm getting GoogleMobileAds.h GADURewardedInterstitialAd not found issues! HELP!!
     
  18. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    Are these files at least present in your project in an iOS folder? Just save your (broken project) then reimport the plugin or even try a quick and dirty op and delete it in the most brutal way and then reinstall it.
    Or create a small project with the minimal requirements and see if at least you can get Unity to build it properly.
     
  19. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    It looks like the PM action IAP_Get Product Data doesn't grab the 'price string' nor the 'description'.
     
  20. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    Another issue: the module does not seem to use store-specific IDs when sending an order. I kinda expect this to happen since I didn't find any way to use these sub-IDs directly as clear "arguments".
    This forced me to use the main IDs (gotten from EMP's module).
    Doing Get_Product_Data returns the main/default ID for each IAP item, so I assumed the module would then check internally if sub-IDs were specified, in which case it would look what system the app is running on and use the appropriate store-respective ID, but that's not true.
    There's no way that I know of to set up a PM action so that it would use a store-specific ID when one exists for a given platform.

    Thus far, using the default IDs is not useful, so depending on the nomenclature used, I'd either have to use my own internal listing (for example extracted from a text or xml file) or assuming IDs are not too different, just swap the part that differs on the basis of which platform the app is running on.

    I wish there was an option (boolean) to say "use store-specific IDs" in the action, or that the module were dynamic enough to do it automatically.
     
    Last edited: Feb 26, 2021
  21. CyberAngel

    CyberAngel

    Joined:
    Oct 4, 2014
    Posts:
    128
    @pt5011

    Do you have an example of using Banner Ads that actually work?

    The free asset templates you have on the Asset store don't work with Banner Ads, and there is nothing in your documentation that works outside of loading Ads via a button. In other words, I can create a button, and show a banner ad. But if I follow the example assets and do this in the Start() method like your examples, Banner Ads do not work!

    Any help would be appreciated!
     
  22. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    IF you're using Playmaker, don't forget to import the Global variables. You can also see that the ad banner button simply asks the module to display the banner. This can be used elsewhere without relying on any button.
     
  23. CyberAngel

    CyberAngel

    Joined:
    Oct 4, 2014
    Posts:
    128
    Hi, not using playmaker at all. And it is using elsewhere that I am in need of help with, because his example on the asset store don't work.
     
  24. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    Regarding Game Services, what's the difference between GS_Init and GS_Managed_Init?
     
  25. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    Advertising.ShowBannerAd(...) doesn't work?
     
  26. CyberAngel

    CyberAngel

    Joined:
    Oct 4, 2014
    Posts:
    128
    NO

    And there is only 3 places you can use this, and one of them is not optimal.

    One is in the start menu, like the author does in his examples on the asset store and nothing shows, the reason nothing shows, is because the library/framework is not fully initialised as yet, then you have an update method and I am not going to stick something like this in an update.

    The last option would be via an event, and this has no events that can be hooked onto.

    The fact that you're even suggestion this means you haven't used the banner!
     
    Last edited: Feb 26, 2021
  27. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    First things first, I use Playmaker ok but the method is about the same as through normal code.
    So, with this in mind, I just added a quick Unity Ads banner, top position, "banner" placement (that's the default one created in the Unity dashboard for a project). I had to "undisable" it for this test.

    I check if the app is initializing. When it's done, I move on to the next test to see if the module is initialized.
    When all of this is checked, then I get the default banner ad network and store both the enum and the string version of that data and use it to display the banner in the next phase.

    In Unity EDITOR, the gray rectangle at the top of the screen is displayed and I'm told this is where the banner would appear.
    Do you at least have this appearing in your own project when you press Play?
    If not, it's certainly not going to work in your game at all.

    PS: While EMP suggests it's possible to use custom placements for banners, since I have no actions to call such custom placements and can only display default ones, I cannot test custom ones. Do your own test with a custom banner. I don't know what network you use but at least try with Unity Ads, it's relatively easy and quick to set up.
     
  28. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    @pt5011
    Advertising_Hide Banner Ad throws the following error:

    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. UnityEngine.Advertisements.Platform.Editor.EditorBanner.<Hide>b__12_0 () (at Library/PackageCache/com.unity.ads@3.5.2/Runtime/Advertisement/Platform/Editor/EditorBanner.cs:57)
    3. UnityEngine.Advertisements.Utilities.CoroutineExecutor.Update () (at Library/PackageCache/com.unity.ads@3.5.2/Runtime/Advertisement/Utilities/CoroutineExecutor.cs:17)
    4.  
    Destroying the banner generates no error though.
    I suppose destroying and recreating a new banner might load a new add, therefore launch a new download?
     
    Last edited: Feb 28, 2021
  29. CyberAngel

    CyberAngel

    Joined:
    Oct 4, 2014
    Posts:
    128
    No, thats the issue I am having.

    According to the developer of this asset, the correct place is in the Start(), he does nothing other than display the banner. Here is his code!!


    Code (CSharp):
    1.         void Start()
    2.         {
    3.             Advertising.ShowBannerAd(bannerAdPosition == BannerAdPos.Top ? BannerAdPosition.Top : BannerAdPosition.Bottom);
    4.         }
    5.  
    I have even written a coroutine, that just stays in a loop till the AdClient is ready, but the debug.log in the console is always stating that the AdMob is not initialised, even though moments beforehand it states that it is.

    Now, I am ad my wits end here, because clearly I can write code that says how many times the game has been run, and then just show the banner after the second run through and it actually works. But I don't want to do that, nor should I have to do that either. The ad should be there once the Ad is ready the very first time it is called.

    Or there should be an event, that says I am ready and init so here is the callback to display the box.

    And in the hierachy in the editor, if you use the 2nd game run or a button it displays a gameboject Labeled ADAPTIVEW(CLONE) TWICE, indicating that there is still an issue there!!! But, as stated he has freee assets on the store, are supposed to be Easy Mobile ready, and they are not. They simply do not work! And I made that extremely clear when I first wrote something here.

    Now I have pinged the developer by the support email, I just not have heard back from him in 3 days, he is obviously busy, and I can wait til hear back from him, but right now there is an issue and it simply doesn't work as advertised.
     
    M_G_L likes this.
  30. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    As you can see several posts earlier, I pointed out this problem too about this conflicting report in the console. It's unfortunate and can confuse the developer.
    But it does not prevent the Advertisement module from working several seconds later. I suppose it's considered all goods once the ads are fully downloaded and ready to be shown.

    One thing that could be done and wouldn't hurt would be to check the bool for EM_Settings.IsAdModuleEnable. At least you'd know if you properly initialized the module (maybe you left it on auto init but it's just a quick check to be done). Not that it would solve your issue much I'm afraid but it could at least show you how long it takes for it to be initialized in comparison to the rest of your app's entire starting phase.

    I have the equivalent of a coroutine too where I regularly autocheck ad availability, on top of also having a way to force a manual verification if I really need one.

    So the player... plays a game once, dies or quits (something), returns to the main page and then, and only then, the banner decides to show up? There's a huge delay.
    As I said, yes, there seems to be a delay at launch. Maybe your app is trying to download too many ads? I don't know, see the module setup and remove other ad types just to leave banners.

    Also try to reduce both Ad Checking Interval and Ad Loading Interval to very small values. It's not exactly recommended but at least you'll get a monitoring at a higher refreshing rate.

    Yes but in theory a banner is so lightweight that it should be downloaded very quickly. It's small and most often contains only a few frames of graphical content. So checking on the banner being available seems useless. Although I suppose such a testing method being available wouldn't hurt?

    As for the free assets I think they may not be up to date. Parts in the documentation are outdated too. The developer has been hard to reach for months, as evidenced by his long absence on the forum. He has managed to push an update around December but it's possible it's someone else doing the work right now.
     
  31. SocialFreak

    SocialFreak

    Joined:
    Dec 12, 2015
    Posts:
    37
    Just loaded Easy Mobile Pro into my Unity 2020.2.6f1 project and it keeps failing the resolve with the error below. I have used Easy Mobile plenty of times in other projects but not in Unity 2020. When I remove every trace of Easy Mobile, my project compiles fine.

    ERROR ========================

    Resolution failed

    Failed to fetch the following dependencies:
    com.sglib.easymobile:easy-mobile:+


    UnityEngine.Debug:LogError (object)
    Google.Logger:Log (string,Google.LogLevel) (at /Users/chkuang/Workspace/Git/unity-jar-resolver/source/VersionHandlerImpl/src/Logger.cs:136)
    GooglePlayServices.PlayServicesResolver:Log (string,Google.LogLevel) (at /Users/chkuang/Workspace/Git/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:1053)
    GooglePlayServices.GradleResolver:LogMissingDependenciesError (System.Collections.Generic.List`1<string>) (at /Users/chkuang/Workspace/Git/unity-jar-resolver/source/AndroidResolver/src/GradleResolver.cs:95)
    GooglePlayServices.GradleResolver/<DoResolutionUnsafe>c__AnonStorey18:<>m__22 (System.Collections.Generic.List`1<Google.JarResolver.Dependency>) (at /Users/chkuang/Workspace/Git/unity-jar-resolver/source/AndroidResolver/src/GradleResolver.cs:912)
    GooglePlayServices.GradleResolver/<GradleResolution>c__AnonStorey11:<>m__17 () (at /Users/chkuang/Workspace/Git/unity-jar-resolver/source/AndroidResolver/src/GradleResolver.cs:375)
    GooglePlayServices.GradleResolver/<GradleResolution>c__AnonStorey11:<>m__27 () (at /Users/chkuang/Workspace/Git/unity-jar-resolver/source/AndroidResolver/src/GradleResolver.cs:440)
    GooglePlayServices.GradleResolver/<ProcessAars>c__AnonStorey1B:<>m__24 () (at /Users/chkuang/Workspace/Git/unity-jar-resolver/source/AndroidResolver/src/GradleResolver.cs:1115)
    Google.RunOnMainThread:ExecutePollingJobs () (at /Users/chkuang/Workspace/Git/unity-jar-resolver/source/VersionHandlerImpl/src/RunOnMainThread.cs:409)
    Google.RunOnMainThread:<ExecuteAllUnnested>m__12 () (at /Users/chkuang/Workspace/Git/unity-jar-resolver/source/VersionHandlerImpl/src/RunOnMainThread.cs:541)
    Google.RunOnMainThread:RunAction (System.Action) (at /Users/chkuang/Workspace/Git/unity-jar-resolver/source/VersionHandlerImpl/src/RunOnMainThread.cs:343)
    Google.RunOnMainThread:ExecuteAllUnnested (bool) (at /Users/chkuang/Workspace/Git/unity-jar-resolver/source/VersionHandlerImpl/src/RunOnMainThread.cs:530)
    Google.RunOnMainThread:ExecuteAll () (at /Users/chkuang/Workspace/Git/unity-jar-resolver/source/VersionHandlerImpl/src/RunOnMainThread.cs:512)
    UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()
     
    cepoimario280135 and OmarVector like this.
  32. CyberAngel

    CyberAngel

    Joined:
    Oct 4, 2014
    Posts:
    128
    But it is not working that way, if it was, then the default TEST Ad that the Demo App has would be working and it is not!!!


    As I said, I did that with a coroutine and it still doesn't work, even with the default test ads that the framework provides in the editor!!!

    That is not what I said, if you can't read what I said then please go away, I will wait for the author of this code. I also have 15 years Unity development and 35 years games development, so I know what I am saying and I know what I have done and tested. And it doesn't work, as I stated the developer has assets on the store that are EM ready and they don't even work!!!!

    I am not doing any Add Checking, the settings are based on the assets on the Asset store and as stated for 10th time, they DO NOT WORK!


    Again you walked over everything that was said!!!!

    Don't care if they are up to date or not, EM and the examples in the documentation are up to date.

    Now, I am getting a bit irate with you, because its clear you have not got this working, and you have no idea how to get this to work. I have gone through the EM source code and there is absolutely no reason why this should not work, not to mention when it does work by faking it, with a button or only displaying the add on the games second run, the Add is displayed twice, which you also ignored!!!

    Its been 5 days now, and I am about to bite the bullet, get my money back and move on to something else or write the thing myself, but for the price of this asset and the amount of work it saved me, has caused me more work than expected.

    Like I said in another comment, there should be an event to say that it is ok to now display the Banner Ads, but there isn't, and you have to fudge your way around the EM code to actually try to work out how it works, the documentation for banners is easy and straight forward, but it still doesn't work. The only way it works, is like the Demo, use a button to activate it, there is no way to manually do this at initial startup, without forcing the user to play the game twice for Banner Ads, and that is not acceptable.

    Now I would like the author to pipe in here or reply via his support email, and get to the bottom of this, till then you have not provided one ounce of how to fix this issue!!!
     
  33. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    @CyberAngel
    First of all, please calm down, you are way too aggressive over this.
    I'm on 2019.4 LTS. Perhaps you also work on Unity 2020 which seems to be a source of problems, I don't know. Are you using the latest Unity Advertising package?
    All I can tell is that in the Editor, I can display the test banner without needing any button, by using the Demo Scene (not the Playmaker one). Sure, it's done by pressing the show button but in Playmaker, using the scripted method to display the banner, I can show it without using a button and I'm not doing anything exceptional here.

    This plugin's support has been of bad quality lately and you're not the only one not being unsatisfied with said "support". Plenty of people post here and get no answer. Some even tried mailing the guy and got no response at all. See the comments on the asset's page. They tell a lot.
    So if you're not satisfied with the plugin, just ask for a refunding and try another one and move on.
     
  34. CyberAngel

    CyberAngel

    Joined:
    Oct 4, 2014
    Posts:
    128
    His Demo package is via a button!!!
     
  35. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    The demo scene you think of is the main one, where the button loads the ads scene.
    Just load the ads scene manually, don't bother with the main one, and look into the scripts there.
     
  36. CyberAngel

    CyberAngel

    Joined:
    Oct 4, 2014
    Posts:
    128
    Again, I have gone through the demo section, the only way Banner Ads get displayed is via a button, once you have selected the properties of it. Secondly, it still doesn't address the fact that no matter what, in the Demo and all of the Authors Assets, the Banner Ad is displayed twice!!!
     
  37. Skyline520

    Skyline520

    Joined:
    Jan 14, 2016
    Posts:
    8
    Hi, I use 2 rewarded video for my scene: 1 default and 1 for double reward when level is completed. Do I need to use 2 different boolean?

    Code (CSharp):
    1. bool isReady1 = Advertising.IsRewardedAdReady();
    2. bool isReady2 = Advertising.IsRewardedAdReady(AdPlacement.PlacementWithName("Level_Complete"));
    3.  
    4. if(isReady1)
    5. {
    6.          Advertising.LoadRewardedAd();
    7. }
    8. if(isReady2)
    9. {
    10.          Advertising.LoadRewardedAd(AdPlacement.PlacementWithName("Level_Complete"));
    11. }
    12.  
    13. void RewardedAdCompletedHandler(RewardedAdNetwork network, AdLocation location)
    14. {
    15.         //give rewards
    16. }
    17. void RewardedAdCompletedHandlerLV(RewardedAdNetwork network, AdPlacement Level_Compelete)
    18. {
    19.           //give rewards
    20. }
    21.  
    22. void OnEnable()
    23. {
    24.         Advertising.RewardedAdCompleted += RewardedAdCompletedHandler;
    25.         Advertising.RewardedAdSkipped += RewardedAdSkippedHandler;
    26.         Advertising.RewardedAdCompleted += RewardedAdCompletedHandlerLV;
    27.         Advertising.RewardedAdSkipped += RewardedAdSkippedHandlerLV;
    28. }
    29.  
    30. void OnDisable()
    31. {
    32.         Advertising.RewardedAdCompleted -= RewardedAdCompletedHandler;
    33.         Advertising.RewardedAdSkipped -= RewardedAdSkippedHandler;
    34.         Advertising.RewardedAdCompleted -= RewardedAdCompletedHandlerLV;
    35.         Advertising.RewardedAdSkipped -= RewardedAdSkippedHandlerLV;
    36. }
    Do I get it right? Can I load and use the same ad, just different rewards?
     
  38. daniekk

    daniekk

    Joined:
    May 15, 2019
    Posts:
    4
    Hi, I was wondering if Easy Mobile Pro with Vungle ads and In app purchasing works on UWP.
     
  39. zetaxbr

    zetaxbr

    Joined:
    May 17, 2016
    Posts:
    22
    Hello Support/Guys,

    I'm using Easy Mobile for IAP on my game with Playmaker, everthing is working like a charm, but if I use a Promo Code for consumable the user cannot redeem the item because when the user click on the button of IAP a error message pop up: You already own this item. Which actions should I use to fix it Thanks in advance and keep the great work up!
     
  40. cyangamer

    cyangamer

    Joined:
    Feb 17, 2010
    Posts:
    234
    I'm trying to use the default consent dialog composer under Privacy but it does not seem to be working correctly. When I made changes the first time I was able to preview them. But now for every future change I make, if I test play my game, all the inputs revert back to my first change.

    Anyone know a workaround for this in the UI. I can do it programmatically in the meantime but the UI seemed more convenient.
     
  41. Etsai

    Etsai

    Joined:
    Sep 12, 2014
    Posts:
    24
  42. BergMarques

    BergMarques

    Joined:
    Jul 4, 2013
    Posts:
    7
    Hi! We are having a issue with sharing only in iOS.
    The method above works fine with android and iPad, but with iPhone only the message can be send. We tested in more the one iPhone. Just dont work. I'm missing something?

    Code (CSharp):
    1. IEnumerator SaveScreenshot()
    2.         {
    3.             // Wait until the end of frame
    4.             yield return new WaitForEndOfFrame();
    5.  
    6.             // The SaveScreenshot() method returns the path of the saved image
    7.             // The provided file name will be added a ".png" extension automatically
    8.             string path = Sharing.SaveScreenshot("MonsterScreenshot");
    9.  
    10.             // Share a saved image
    11.             // Suppose we have a "screenshot.png" image stored in the persistentDataPath,
    12.             // we'll construct its path first
    13.             path = System.IO.Path.Combine(Application.persistentDataPath, "MonsterScreenshot.png");
    14.  
    15.             // Share the image with the path, a sample message and an empty subject
    16.             Sharing.ShareImage(path, "Meu Monstro Favorito no Planet Park Battle!");
     
  43. Imillionaire

    Imillionaire

    Joined:
    Dec 14, 2012
    Posts:
    60
    Hey I'm having an issue with login. I've used both the automatic login, as well as GameServices.Init() and both give the same result:
    For those unable to view clip, the play games popup appears, and then vanishes without actually signing in the player

     
  44. kicsijohn2

    kicsijohn2

    Joined:
    Nov 12, 2017
    Posts:
    1
    Hi
    I want to upload my games to the Amazon app store
    Does the plugin support amazon app store monetization? Especially I want to place Vungle banner and rewarded ads (or maybe adcolony)

    Thank You!
     
  45. zetaxbr

    zetaxbr

    Joined:
    May 17, 2016
    Posts:
    22
  46. novaVision

    novaVision

    Joined:
    Nov 9, 2014
    Posts:
    518
    Guys, I didn't find any changes in EM regarding to new Apple App Tracking opt-in consent dialog. Didn't the add that native call to API?
     
  47. Falondrian

    Falondrian

    Joined:
    Nov 1, 2017
    Posts:
    74
    Hello, I have some requests:

    1. I have my 3rd party assets in the plugins folder, can you please make the EasyMobile folder easily movable? I saw that most of your code uses EM_Constants, however, some files are not referencing the path set there, making EM upgrades really tedious:

    - Editor/EasyMobileDependencies.xml (repository url)
    - Editor/EM_AndroidManifestBuilder.cs (FileIO.ToAbsolutePath in lines 25, 124 and 126)

    2. EasyMobileDependencies.xml specifies the android package version with "1.+", this is apparently deprecated, Android Studio tells me I should explicitly specify the version without "+"

    3. I am using the newest UnityPurchasing package (which doesn't require importing further scripts anymore). Apparently IAPStore.FacebookStore has been removed, so this needs to be fixed in InAppPurchasing.cs

    4. The tangle location has changed with the new URP package, its now in /Scripts/UnityPurchasing/generated. The EM_Constants::ReceiptValidationFolder path needs to be changed.

    5. Question: I skipped some updates and now with the newes EM version google play always pops up and says that Play Games is required for the app. However, I only use it as an optional feature, can I configure this somewhere, apart from disabling the init on startup?
     
    Last edited: Mar 16, 2021
  48. madawe

    madawe

    Joined:
    Sep 13, 2015
    Posts:
    7
    I am wondering about this as well
     
  49. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    470
    An update of the asset on the store is most necessary in this case, like for all extensions that provide support for advertising.
    Basically, from iOS 14.5 the extension might need to provide a new ATT consent button. I guess it's up to the developers to do the version checking, unless the publisher here proposes a all-in-on consent tool of some kind. If it's not there already it should come very very soon.
     
  50. BenWoodford

    BenWoodford

    Joined:
    Sep 29, 2013
    Posts:
    116
    First off: fantastic plugin, makes my life a lot easier

    Come across an issue though: I enabled the Camera/Gallery Submodule so I could use SaveImage, but when I run a build of the project output for iOS (which I do through fastlane rather than xcode directly) I get the following:

    Code (csharp):
    1.  
    2. [20:26:13]: ▸ ❌  Undefined symbols for architecture arm64
    3. [20:26:13]:> Symbol: _UIImagePickerController_delegate
    4. [20:26:13]:> Referenced from: _C_UIImagePickerController_delegate_m55D56CC52DC6A7FDCA3CE97B97E6AF7657FA01C5 in Assembly-CSharp9.o
    5. [20:26:13]: ▸ ❌  ld: symbol(s) not found for architecture arm64
    6. [20:26:13]: ▸ ❌  clang: error: linker command failed with exit code 1 (use -v to see invocation)
    7. [20:26:13]:** ARCHIVE FAILED **
    8. [20:26:13]: ▸ The following build commands failed:
    9. [20:26:13]: ▸     Ld /Users/runner/Library/Developer/Xcode/DerivedData/Unity-iPhone-hiyryebcnirhnmajlkyreayfhzeo/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/UnityFramework.framework/UnityFramework normal arm64
    10. [20:26:13]:(1 failure)
    11.  
    Any ideas what may have caused that...? Only other weird thing I’m doing is the Unity build is done by batchmode as I’m using Azure DevOps as a CI/CD tool
     
    Last edited: Mar 19, 2021