Closed awsproserve closed 1 year ago
Hi @awsproserve, thank you for the detailed screenshots. I think this error may be due to the incorrect formatting in the Info.plist
, since the added SKAdNetworkIdentifier
items should be inside the array
tag of SKAdNetworkItems
, for example:
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>...</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>...</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>...</string>
</dict>
</array>
You can also add the full SKAdNetworkItems
into AppLovinMAX_UPL_IOS.xml
if it's easier to format there
Hello @ritamsarmah you where right, when I tried to open up the info.plist file in Xcode, without opening in text, it threw me an error. I have used your suggested format and then it opened up successfully in Xcode. see screenshot below. I tried to build in iOS though and I got still the same error,
ERROR:
UATHelper: Packaging (iOS): AppLovin IOS Plugin found UATHelper: Packaging (iOS): Couldn't find PLCrashReporter in folder 'lib-Xcode-13.4.1', using default 'lib-Xcode-12.4' UATHelper: Packaging (iOS): Compiling against OS Version 12.0 [minimum allowed at runtime] UATHelper: Packaging (iOS): Parsing headers for run UATHelper: Packaging (iOS): Running UnrealHeaderTool "/Users/caataiwi/Documents/Unreal Projects/KZ_4.27_Avatar_nov_17_max/run.uproject" "/Users/caataiwi/Documents/Unreal Projects/KZ_4.27_Avatar_nov_17_max/Intermediate/Build/IOS/run/Shipping/run.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -absl og="/Users/caataiwi/Library/Logs/Unreal Engine/LocalBuildLogs/UHT-run-IOS-Shipping_2.txt" -installed UATHelper: Packaging (iOS): 2022-11-21 12:52:49.242 UnrealHeaderTool[83952:8144251] [UE4] Looking for binary: ../../../Engine/Programs/UnrealHeaderTool/Config/BinaryConfig.ini UATHelper: Packaging (iOS): LogInit: Display: Loading text-based GConfig.... UATHelper: Packaging (iOS): Reflection code generated for run in 6.2245425 seconds UATHelper: Packaging (iOS): Compiling with iPhoneOS SDK 15.5 UATHelper: Packaging (iOS): Zip file: /Users/caataiwi/Documents/Unreal Projects/KZ_4.27_Avatar_nov_17_max/Binaries/IOS/run-IOS-Shipping.dSYM.zip UATHelper: Packaging (iOS): Adding PostBuildSync action UATHelper: Packaging (iOS): IOSPlugin: Plugins/Runtime/AR/AppleAR/AppleARKit/Source/AppleARKit/AppleARKit_IOS_UPL.xml UATHelper: Packaging (iOS): IOSPlugin: Plugins/Marketplace/EasyAdsPro/Source/EasyAds/EasyAds_IOS_UPL.xml UATHelper: Packaging (iOS): IOSPlugin: Plugins/Marketplace/PsIronSource/Source/PsIronSource/IronSource_APL_IOS.xml UATHelper: Packaging (iOS): IOSPlugin: ../../../caataiwi/Documents/Unreal Projects/KZ_4.27_Avatar_nov_17_max/Plugins/AppLovinMAX/Source/AppLovinMAX/AppLovinMAX_UPL_IOS.xml UATHelper: Packaging (iOS): Writing manifest to /Users/caataiwi/Documents/Unreal Projects/KZ_4.27_Avatar_nov_17_max/Intermediate/Build/Manifest.xml UATHelper: Packaging (iOS): ERROR: Unable to merge actions producing AppLovinSDK.embeddedframework.extracted: prerequisites are different PackagingResults: Error: Unable to merge actions producing AppLovinSDK.embeddedframework.extracted: prerequisites are different UATHelper: Packaging (iOS): ERROR: Action graph is invalid; unable to continue. See log for additional details. PackagingResults: Error: Action graph is invalid; unable to continue. See log for additional details. UATHelper: Packaging (iOS): Took 12.747466s to run mono, ExitCode=6 UATHelper: Packaging (iOS): UnrealBuildTool failed. See log for more details. (/Users/caataiwi/Library/Logs/Unreal Engine/LocalBuildLogs/UBT-run-IOS-Shipping_2.txt) UATHelper: Packaging (iOS): AutomationTool exiting with ExitCode=6 (6) UATHelper: Packaging (iOS): RunUAT ERROR: AutomationTool was unable to run successfully. PackagingResults: Error: AutomationTool was unable to run successfully. PackagingResults: Error: Unknown Error
screenshot of the error
Any other thoughts as to why im getting this error?
I noticed you have some other iOS plugins enabled, EasyAds, PsIronSource, etc. that could potentially conflict with our plugin—do you still encounter the issue after disabling all the other plugins? Have you also encountered this issue when trying to build our demo app?
I just disabled the applovin plugin to make sure its not an error with my application, and the iOS build was successful. let me disable the other plugins and remove thier code and see, will get back shortly
Hi @ritamsarmah I have disabled the other ad plugins, and it works now, thank you so much for your recommendations I was able to build IOS app successfully. Question, im looking at the blue prints from your sample project, im looking at all the blueprints, but im not seeing anywhere where I can ad a actual numeric banner id. Here are the blueprints im looking at
Im looking at the blueprints and I see where you can load, and show as per screenshot below, but where do I specify the numeric id at?
Also where is the banner ad going to be actually displayed? I dont see visually where it will show up. is this the placeholder for the banner ad? (as seen in the screenshot below?)
in summary, 1/ where do we specify the banner ad ids 2/ how can we visually place the banner ad on the screen? do we have control where the banner ad will show up, or will it show only at the top or the bottom of the screen, and if so how do we tell the banner ad where it should show itself.
The demo app currently only uses C++, so the actual functions being called are in BannerWidget.cpp
. The blueprint functions in our plugin go by the same name as the C++ ones, so you'd be using Create Banner
, which allows you to specify the ad unit ID and position.
You may like to check out our docs on how to work with banners, including the positioning options available: https://dash.applovin.com/documentation/mediation/unreal/ad-formats/banners
Many thanks, this was so very much helpful @ritamsarmah. We placed the blueprint code in our level blueprint by clicking the "open level blue print" as seen in screen shot section #1. The code we added to which is connected to a event begin play node as seen in section #2.
We where able to successful build the iOS file and load it into the App Store via testlight. When we download the application from test flight, the app launches on the launch screen for 1 second then crashes. would you be able to help us as to why its crashing. the below screenshot shows the crash code from AppleConnect. I sent the log to Xcode and you can see below:
I first tried the blueprint with a create banner node and show banner node and recieved the crash. then I reread the documentation and saw its required to add a background. I've also added a extra delay just in case the banner hasn't loaded yet for me to show. and its still crashing. would you be able to know why. Thanks again in advance :)
Would you be able to provide any crash logs? Could you check that you're initializing the SDK before calling any of the banner methods? You'll need to wait for the SDK to initialize before creating or showing banners.
Hi @ritamsarmah you where correct, we where not initializing the SKD before calling the banner ad, That is now resolved. We ran into another issue. is there a way we can make a action happen AFTER the interstitial ad is called, whats happening now is the player dies, and after they die they can choose to be revived but they have to watch an interstitial ad when they hit the retry button. the problem is when the interstitial ad is displaying the game continues on to restart while the interstitial ad is going on. Using other plugins they exposed in blueprint a way where we can wait until the interstitial ad is finished/ closed, and then have the an action happen immediatlly after, ie the player comes back to life. Whats happening now is while the interstitial ad is going on, the player comes back and dies again before the interstitial ad I even finished.
here is how our current setup for the interstitial blueprint, pls let us know if we can add anything to implement this solution, many thanks and happy thanksgiving :)
here is an example of another plugin we used where it gave us the option to do a certain action, after the user closed the ad
do you have something we can do with applovin that is similar?
Currently we only support event callbacks via C++ (e.g., binding to delegates like UAppLovinMAX::OnInterstitialDisplayedDelegate
), though full blueprint support is something we are actively working on and plan to release very soon.
Hi @awsproserve, if you'd like to test out a version of the plugin with blueprint support, the feature is available under this branch.
Wonderful, thank you so much @ritamsarmah I'll test this out and let you know. Is there release notes I can read to see what is new so I can compare, or is it the call back support for blueprint, just so I know what to test.
No release notes or docs yet, since that feature branch is still being finalized (and interface is subject to potential changes), but just wanted to give you the chance to try it out with your integration.
It includes a new AppLovinMAXDelegate
blueprint class with dynamic delegates for each event. I'd recommend using delegates to determine when the SDK initializes before loading any ads and when ads finish loading before showing them. Here's a basic example for creating/showing a banner:
Perfect, thank you, whats the best way to update the plugin, should I just delete the old one and reinstall?
Yep, that should work!
Perfect, thank you, whats the best way to update the plugin, should I just delete the old one and reinstall?
Hi. I see you also used EasyAdsPro. I'm currently using it. Why did you choose Applovin MAX? Is it better?
Perfect, thank you, whats the best way to update the plugin, should I just delete the old one and reinstall?
Hi. I see you also used EasyAdsPro. I'm currently using it. Why did you choose Applovin MAX? Is it better?
Because EasyAdsPro you have to use mediation with googleadmob, and I have alot of issues with google admob, well, not only me but if you just google the problems you run into with them its alot and painful, and there is no support what so ever from google. I was using meta directly before they converted to solely working with mediation partners, meaning you can't use them stand alone, so we plan to use meta audience network along with Applovin. So far our experience with Applovin has been wonderful. We had 64 apps running on meta before with no problem (native IOS and Android apps), when meta changed to only work with mediation parters we went to google admob and thats where we ran into alot of issues, so we are going to migrate all our apps to use applovin. Not many mediation partners support unreal engine as well, so this is great that they are compatible with unreal engine! Hope that answers your question, let me know if you have any others, would be happy to share my experience, as we have used alot of different services these past few years.
Yep, that should work!
wonderful trying this today, sorry been out sick, but im back today recovering slowly, will update you with my findings/experience.
Yep, that should work!
@ritamsarmah can you send me the link again/ give me access, when I try the previous link it give me error on that page. Thank you. this is the error I get
Oops, the branch got deleted since we just merged it in. You can test the plugin straight off the master
branch.
Also as a disclaimer, the plugin on master
still isn't an "official" versioned release, so we may make interface/name changes in the meantime until the next major version update (aiming for the beginning of next year). However, the functionality you need is all fully implemented. :smile:
thanks for the heads up! diving into this right now! Many thanks for all your help and support!!!! A++++
Perfect, thank you, whats the best way to update the plugin, should I just delete the old one and reinstall?
Hi. I see you also used EasyAdsPro. I'm currently using it. Why did you choose Applovin MAX? Is it better?
Because EasyAdsPro you have to use mediation with googleadmob, and I have alot of issues with google admob, well, not only me but if you just google the problems you run into with them its alot and painful, and there is no support what so ever from google. I was using meta directly before they converted to solely working with mediation partners, meaning you can't use them stand alone, so we plan to use meta audience network along with Applovin. So far our experience with Applovin has been wonderful. We had 64 apps running on meta before with no problem (native IOS and Android apps), when meta changed to only work with mediation parters we went to google admob and thats where we ran into alot of issues, so we are going to migrate all our apps to use applovin. Not many mediation partners support unreal engine as well, so this is great that they are compatible with unreal engine! Hope that answers your question, let me know if you have any others, would be happy to share my experience, as we have used alot of different services these past few years.
Thanks for reply! I would like to know more about applovin and how to setup mediation there. Currently my game reached 2000+ downloads a day. The only reason I'm considering Applovin is Yandex Ads and Admob Bidding(it's performing very good, like 10-14$ eCPM even though my top countries aren't Tier1) support. My game's 5% audience is russians. Can we talk in discord? My username in Dicord
@ritamsarmah Hi, I can't seem to get the function called "Add AppLovin Max Delegate" how to I find this function, see screenshot.
I was able to setup everything else from your screenshot, except for the missing function for "Add AppLovin Max Delegate"
I also am checking the demo app and also can't find the "Add AppLovin Max Delegate" function.
Hm, so currently AppLovin MAX Delegate
is a blueprint component that needs to be instantiated and attached to a blueprint class, for example of an Actor.
Hi @ritamsarmah Thanks for the response, im not sure if I am doing this correctly, please let me know. so this is what im doing.
Step 1: Create Blueprint, and choose actor component Step 2: I've named my blueprint AppLovinMaxDelegate Step3: open the blueprint you just created, and create a function
Step 4: from he function type in Add Applov....
Result, I am not able to see the AppLovin Max Delegate from the function im creating, as you have in your screenshot, Am I doing this right,
Many thanks in advance you've great such amazing help so far!!! :)
I'll admit I'm not too well-versed in blueprints, but I think my approach would be to have a new or existing Actor
blueprint class that handles the AppLovin MAX related code, and add the AppLovin MAX Delegate
(which is already an actor component) to it.
Hi, sorry im alittle confused. im trying to see how to create the "AppLovin MAX Delegate", and what code AppLovin Max related code that you refer to above should go inside the "AppLovin MAX Delegate" function that im creating?
to clarify my question, see whats highlighted in teal blue boxes, that is the applovin max code, so the question remains, what goes inside the AppLovin Max Delegate actor or function that im creating? this screenshot above is the one you sent me, so im trying to see how can I create the AppLovin Max Delegate actor/function, and what do I put in it, since its not available by default when I search for it.
maybe you can send me your test file, and I can reverse engineer it from there to get the answer if that helps?
while packaging this latest plugin with the old configurations for initializing, banner, and interstitial, (the original instructions you gave me to create these, not the new ones because the new ones im missing the applovin max delegate actor/ function, but with the old configurations im getting red errors while packing the iOS package, starting with failed to initialize the plugin.
here are a few of the errors we have, not all of them but some of them, but I do believe they start with the first error below.
im guessing the old setup doesn't work no more and I need to conform with the new setup/configurations.
here are some other errors,
Hi @awsproserve, you may try clearing all your cached build/intermediate directories before re-compiling and see if that gets rid of the errors.
I also apologize for the confusion about the integration. I'm taking some time to create a better example and write out some clearer instructions, and will report back once it's ready.
HI @ritamsarmah thanks so much that would be very much appreciated. We'll wait on those instructions. we cleaned the intermediate directories and we still come across the same errors, im assuming the new plugin has another method to initialize the plugin which is causing the errors as we are currenlty using the original instructions/ configurations.
Perfect, thank you, whats the best way to update the plugin, should I just delete the old one and reinstall?
Hi. I see you also used EasyAdsPro. I'm currently using it. Why did you choose Applovin MAX? Is it better?
Because EasyAdsPro you have to use mediation with googleadmob, and I have alot of issues with google admob, well, not only me but if you just google the problems you run into with them its alot and painful, and there is no support what so ever from google. I was using meta directly before they converted to solely working with mediation partners, meaning you can't use them stand alone, so we plan to use meta audience network along with Applovin. So far our experience with Applovin has been wonderful. We had 64 apps running on meta before with no problem (native IOS and Android apps), when meta changed to only work with mediation parters we went to google admob and thats where we ran into alot of issues, so we are going to migrate all our apps to use applovin. Not many mediation partners support unreal engine as well, so this is great that they are compatible with unreal engine! Hope that answers your question, let me know if you have any others, would be happy to share my experience, as we have used alot of different services these past few years.
Thanks for reply! I would like to know more about applovin and how to setup mediation there. Currently my game reached 2000+ downloads a day. The only reason I'm considering Applovin is Yandex Ads and Admob Bidding(it's performing very good, like 10-14$ eCPM even though my top countries aren't Tier1) support. My game's 5% audience is russians. Can we talk in discord? My username in Dicord MadaraAlmighty#3477
just sent you a friend request via discord muzzy#6387 @NursultanNazarov
Here are the instructions I had for creating a new actor to implement the AppLovin MAX Delegate. I've also included the final blueprint for reference here: Bp_AppLovinMAXDelegate.uasset.zip
Actor
blueprint class that will implement the event callbacks.In general, you'll want to listen for the OnSdkInitialized
event before loading an ad (whether it is banner, interstitial, etc.), and listen for the corresponding On*AdLoaded
event before attempting to show it. You should also listen to the On*AdFailedToDisplay
to implement any retry logic/error handling as desired.
I believe you could try adding the AppLovin MAX Delegate component as just a variable in other blueprint classes and implement the events in a similar way, but this was the example I had time to get working. If you need further clarification or have other suggestions for better integration steps, feel free to let me know.
Many thanks for the instructions, question how do you get the little computer screen on the Event On initialized in the second screenshot, and what is its purpose?
After setting it up as you described above, with the exception of the little computer screen icon that im missing as stated above when packaging I still get alot of red line errors related to the plugin, stating its not initialized properly starting with this error:
I have setup in my global instance a custom event to initialize when called as in screenshot below
and on my first level blueprint in my begin play event, I call the custom event "custom event applovin initialize"
the custom event for initializing is connected to the event begin play in my first level blueprint
thats how I initialized before with the previous version of your plugin
here is screenshot of my applovin delegate actor for reference
I'm not sure about the computer icon to be completely honest. I think it was a fluke mis-input during the screenshot, but it should not be necessary.
Did some further digging on the errors you mentioned—looks like this is actually due to us not providing default values for our USTRUCT properties (though I'm not sure why its not showing an error for me). I'll quickly fix that and let you know when its ready.
Hi @awsproserve, I've created a new branch with the fix for the errors you were encountering here: https://github.com/AppLovin/AppLovin-MAX-Unreal/tree/fix/default_ustruct_values
Would you mind trying that out (by copying the plugin from that branch) and letting me know if that fixes the issue?
Hello there @ritamsarmah thanks for uploading the new branch, im getting the same error. here are the errors im getting in the screenshots below, hope you have a wonderful day,
an a side note, thanks in advance for all your help. in getting this plugin to work, anything more we can do to help in this process please let us know
MAX Plugin Version
1.1.2
Unreal Engine Version
4.27
Device/Platform Info
IOS
Current Behavior
I install the plugin to unreal engine and while trying to build the application I get the following error below. Been trying for all this week and still no avail, any help in the right direction would be greatly appreciated. Thanks - Sarah
Expected Behavior
The game/application should build successfully without error, and package successfully
How to Reproduce
First lets down load the plugin. I navigate to the GIT repo, and download the plugin folder
Go to your downloads and find the folder we just downloaded and copy the plugin from the plugin folder
Put the applovin max plugin in your projects plugin folder
Find your [yourgame/appname].target.cs file within your project folder, open with text editor and add the following below
// Add compiler argument to support building on macOS with Xcode 13.3+ bOverrideBuildEnvironment = true; AdditionalCompilerArguments = "-Wno-unused-but-set-variable";
Add AppLovinMAX as a dependency to the PublicDependencyModuleNames array inside of your app’s.Build.cs file:
for example:
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "AppLovinMAX" });
Screenshot of me adding it to my app, our public dependency module name line is formatted by default different than yours, so I used it the way my project has it in in default with adding the applovin, input core, engine, and coreuobject. and I also tired it with your exact formate. see below | V
(I just noticed that after I save this file and re open it, my changes save to the run.build.cs file, however when I try to package the app, and it fails, I go back to the run.build.cs file and it reverts back to default, is that expected? see below for the default that it reverts back to
now I try it exactly the way you have it in your instructions, and tried building package and still not working. it still also reverts back to default when package fails.
to suppress this warning. UATHelper: Packaging (iOS): Couldn't find PLCrashReporter in folder 'lib-Xcode-13.4.1', using default 'lib-Xcode-12.4' UATHelper: Packaging (iOS): Compiling against OS Version 12.0 [minimum allowed at runtime] UATHelper: Packaging (iOS): Parsing headers for run UATHelper: Packaging (iOS): Running UnrealHeaderTool "/Users/caataiwi/Documents/Unreal Projects/KZ_4.27_Avatar_nov_17_max/run.uproject" "/Users/caataiwi/Documents/Unreal Projects/KZ_4.27_Avatar_nov_17_max/Intermediate/Build/IOS/run/Shipping/run.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -absl og="/Users/caataiwi/Library/Logs/Unreal Engine/LocalBuildLogs/UHT-run-IOS-Shipping_2.txt" -installed UATHelper: Packaging (iOS): 2022-11-19 02:18:44.600 UnrealHeaderTool[80304:7868319] [UE4] Looking for binary: ../../../Engine/Programs/UnrealHeaderTool/Config/BinaryConfig.ini UATHelper: Packaging (iOS): LogInit: Display: Loading text-based GConfig.... UATHelper: Packaging (iOS): Reflection code generated for run in 4.5829604 seconds UATHelper: Packaging (iOS): Compiling with iPhoneOS SDK 15.5 UATHelper: Packaging (iOS): Zip file: /Users/caataiwi/Documents/Unreal Projects/KZ_4.27_Avatar_nov_17_max/Binaries/IOS/run-IOS-Shipping.dSYM.zip UATHelper: Packaging (iOS): Adding PostBuildSync action UATHelper: Packaging (iOS): IOSPlugin: Plugins/Runtime/AR/AppleAR/AppleARKit/Source/AppleARKit/AppleARKit_IOS_UPL.xml UATHelper: Packaging (iOS): IOSPlugin: Plugins/Marketplace/EasyAdsPro/Source/EasyAds/EasyAds_IOS_UPL.xml UATHelper: Packaging (iOS): IOSPlugin: Plugins/Marketplace/PsIronSource/Source/PsIronSource/IronSource_APL_IOS.xml UATHelper: Packaging (iOS): IOSPlugin: ../../../caataiwi/Documents/Unreal Projects/KZ_4.27_Avatar_nov_17_max/Plugins/AppLovinMAX/Source/AppLovinMAX/AppLovinMAX_UPL_IOS.xml UATHelper: Packaging (iOS): Writing manifest to /Users/caataiwi/Documents/Unreal Projects/KZ_4.27_Avatar_nov_17_max/Intermediate/Build/Manifest.xml UATHelper: Packaging (iOS): ERROR: Unable to merge actions producing AppLovinSDK.embeddedframework.extracted: prerequisites are different PackagingResults: Error: Unable to merge actions producing AppLovinSDK.embeddedframework.extracted: prerequisites are different UATHelper: Packaging (iOS): ERROR: Action graph is invalid; unable to continue. See log for additional details. PackagingResults: Error: Action graph is invalid; unable to continue. See log for additional details. UATHelper: Packaging (iOS): Took 9.091533s to run mono, ExitCode=6 UATHelper: Packaging (iOS): UnrealBuildTool failed. See log for more details. (/Users/caataiwi/Library/Logs/Unreal Engine/LocalBuildLogs/UBT-run-IOS-Shipping_2.txt) UATHelper: Packaging (iOS): AutomationTool exiting with ExitCode=6 (6) UATHelper: Packaging (iOS): RunUAT ERROR: AutomationTool was unable to run successfully. PackagingResults: Error: AutomationTool was unable to run successfully. PackagingResults: Error: Unknown Error LogSlate: Window 'Output Log' being destroyed LogSlate: Window 'Output Log' being destroyed
Additional note: When I remove the plugin and revert all my changes I made, I can successfully package the IOS and upload it to apples test flight.
If anyone can please help us with what we are doing wrong here. I want to note we have't yet implemented any blueprints or code specific to the plugin, we wanted to make sure that we can package the game after we installed the plugin to make sure nothing broke. Thanks in advance for any help you can provide. :)
Additional Info
No response