Appodeal crash question

Hi all!

One quick question  :slight_smile:

I always make sure that I pass testMode = true while testing ad networks.

But today I accidentally left that line commented (so testMode was false).

What happened is that Appodeal reward video crashed my game while testing in sandbox on my iPad 2 mini.

Is that normal?

While  testMode = true  there are no crashes (but you see only generic always the same reward video)…

I am using Corona build 2017.3054 and testing game version 1.2 on my iPad 2 mini.

Thanks!  :slight_smile:

Ivan

Do you have any more details about the crash?

Hi ingemar,

I was not connected to the xCode at the time (so I do not know the details).

I did not get any errors, game just closed (crashed).

I tried to replicate the problem today with Corona 2017.3056 build.

But this occurs:

iOS build failed (5) after 29 seconds Mar 15 01:13:22.959 ERROR: Build Failed: A device build error occurred on the server.                                           Error: Get plugin failed.                                           Plugin: `plugin.appodeal`                      Publisher: `com.coronalabs`                      User Account: `xxx@com`                                          BuildID: 58c92fd10d411

I will try later…

Hi ingemar,

 

I cannot reproduce crash at this moment, sorry (now I am at Corona build 2017.3056).

 

But I think Appodeal is flagging me like this ( " not permitted to register for event … ignored registration"  ):

 

 

Mar 15 17:09:25 IVANs-iPad CommCenter[73] <Notice>: #I CTServerConnection from pid 6326[<private>] is named ‘<private>’.
Mar 15 17:09:25 IVANs-iPad CommCenter[73] <Notice>: #I   ==== client 6326 (<private>) registered for event kCTEventWirelessTechnologyChange(139) (now total 1)
Mar 15 17:09:25 IVANs-iPad CommCenter[73] <Notice>: #I   ==== client 6326 (<private>) registered for event kCTEventRegistrationDataStatus(55) (now total 2)
Mar 15 17:09:25 IVANs-iPad CommCenter[73] <Notice>: #E Client 6326 (<private>) not permitted to register for event kCTEventIndicatorSignalStrength(16); ignored registration
Mar 15 17:09:25 IVANs-iPad CommCenter[73] <Notice>: #I CTServerConnection from pid 6326 has closed (conn=0x123da8d50)
Mar 15 17:09:25 IVANs-iPad Crazy Controls(CoreTelephony)[6326] <Notice>: Could not successfully update network info during initialization.
Mar 15 17:09:25 IVANs-iPad Crazy Controls(WebCore)[6326] <Notice>: #WK: Starting frame load, frame = 0x105965500, main = 1
Mar 15 17:09:25 IVANs-iPad Crazy Controls[6326] <Notice>: -----------------------------event phase
Mar 15 17:09:25 IVANs-iPad Crazy Controls[6326] <Notice>: failed
Mar 15 17:09:25 IVANs-iPad Crazy Controls[6326] <Notice>: ----------------------------- event.type
Mar 15 17:09:25 IVANs-iPad Crazy Controls[6326] <Notice>: rewardedVideo
Mar 15 17:09:25 IVANs-iPad mediaremoted[4598] <Notice>: Client with pid 6326 opened connection.
Mar 15 17:09:25 IVANs-iPad mediaremoted[4598] <Notice>: Adding client with PID 6326
Mar 15 17:09:25 IVANs-iPad mediaremoted[4598] <Notice>: Added com.xxx.xxxxx as possible now playing application.
Mar 15 17:09:25 IVANs-iPad Crazy Controls(libsystem_trace.dylib)[6326] <Notice>: subsystem: com.apple.mediaremote, category: NowPlaying, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 0, enable_private_data: 0

I noticed they will not fire  event.phase == “completed”  when you turn OFF testMode.

When you turn ON testMode, then they will fire it and return event.data only in form of “reward”.

I do not get Rewarded video settings in form of event.data from their Dashboard…

Ivan

The “not permitted to register for event kCTEventIndicatorSignalStrength(16); ignored registration” isn’t coming from your app. It’s from CommCenter and is an internal message from iOS and can be ignored.

Also there is no phase==“completed” event for Appodeal. I assume you might mean phase==“loaded” ?

A “failed” event for rewarded videos can happen if you live in a region outside the US as the fill-rate may be low.

event.data is only available in the phase==“playbackEnded” event and will contain the reward data.

When testing your app with live ads (testMode=false), you can increase your chances of receiving ads by using a VPN service on your device and setting it to a US server.

BTW.

You mentioned a crash in your first post on this thread.

iOS generates crash logs on the device. To see what may have happened:

  1. Start Xcode
  2. Select Window->Devices
  3. Connect your iPad mini 
  4. Select your device (left panel)
  5. Click the “View Device Logs” button
  6. Check out the entries with Type: Crash where Process is your app name

Sorry, I meant:

**event.phase == “playbackEnded”  (**not “completed” (typo) ).

I just checked xCode iPad crash logs, and last one was recorded on 30.04.2016, so I do not know what happened few days ago…

I checked event.data during phase==“playbackEnded”

Only thing I saw was " reward".

There were no data that was set in Appodeal Dashboard (for example " 200" and " coins").

So they just return " reward".

Those settings on the Appodeal dashboard are under the “Legacy settings” sections.

I’m starting to think they are not valid anymore.

The plugin merely forwards the data we get from Appodeal.

I’d suggest you contact Appodeal support and ask about the issue. I believe there’s a link to their support on the bottom of the Appodeal dashboard page.

I am little tight on schedule in releasing my app… so I have included all possibilities: “reward”, “200” when checking my pairs…

If they return another unexpected value later… bummer … but I will contact them … I have no time to wait at this moment.

This is APPODEAL response on this topic (I do not understand it).
It follows:

Use appodeal.show( adUnitType [, params] ) and create segment with price reward https://docs.coronalabs.com/plugin/appodeal/show.html
look for 

placement (optional)
String. The placement you want the ad to be associated with. Placements are an advanced feature used together with “Segments” as defined in the Appodeal dashboard.

New reply (rewardItem and rewardAmount were never returned during testMode = true):

https://docs.coronalabs.com/plugin/admob/event/adsRequest/phase.html

“reward” — Indicates that a rewarded video ad has been viewed to its completion and that a reward should be given. Additionally, for this phase, event.data is a JSON-formatted string containing rewardItem and rewardAmount keys.

I think they may have misunderstood the issue, but I’ll have a look at the Segments.

There is no “reward” phase for Appodeal.

The docs for “reward” in the link you posted above is for AdMob, not Appodeal :slight_smile:  

I’ve investigated Segments and can confirm that the reward setup is done now by using Segments.

You can find the Segment section in the Appodeal Dashboard.

Attached is a screenshot of how I set up a simple placement for rewards.

You’ll need to add one segment per platform (iOS, Android etc)

When you show your ad you associate it with a placement like this

appodeal.show(“rewardedVideo”, {placement=“reward”})

Everything seems to work the “old way” (maybe Appodeal is pushing this to have more valid payments information).

When you “for” check  pairs  upon

event.phase == "playbackEnded" and event.type == "rewardedVideo"&nbsp;

you get " reward" string back.

I will reflect segments in next week game revision, this one is waiting for review.

Btw, I read that Appodeal purchased Corona SDK, and that you are going to be open-source…  :slight_smile:

Checking for phase “playbackEnded” and type “rewardedVideo” is the only correct way to detect when a reward should be given.

The only difference is if you want to dynamically set the reward from the Appodeal dashboard (instead of hardcoding the value in your app).

The reward settings in the “Legacy section” of the Appodeal dashboard are ignored. If you want to modify the reward data returned in the event you must use Segments as described above.

But I haven`t passed {placement=“reward”} during:

appodeal.show("rewardedVideo")

That is a problem…

Yes, without using {placement=“some-name”} when you call show() you’ll need to hard-code the reward value in your app when you get phase “playbackEnded” and type “rewardedVideo”.

Ok. Got you.

Thanks.

Do you have any more details about the crash?

Hi ingemar,

I was not connected to the xCode at the time (so I do not know the details).

I did not get any errors, game just closed (crashed).

I tried to replicate the problem today with Corona 2017.3056 build.

But this occurs:

iOS build failed (5) after 29 seconds Mar 15 01:13:22.959 ERROR: Build Failed: A device build error occurred on the server.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Error: Get plugin failed.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Plugin: `plugin.appodeal`&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Publisher: `com.coronalabs`&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; User Account: `xxx@com` &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BuildID: 58c92fd10d411

I will try later…