Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

Appodeal crash question
Started by ivan888 Mar 14 2017 09:50 AM

- - - - -
17 replies to this topic
appodeal question

Best Answer ingemar_cl , 15 March 2017 - 04:45 PM

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

[TOPIC CONTROLS]
This topic has been archived. This means that you cannot reply to this topic.
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

ivan888

[GLOBAL: userInfoPane.html]
ivan888
  • Contributor

  • 397 posts
  • Corona SDK

Hi all!

 

One quick question  :)

 

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!  :)

Ivan



[TOPIC: post.html]
#2

ingemar_cl

[GLOBAL: userInfoPane.html]
ingemar_cl
  • Contributor

  • 673 posts
  • Alumni

Do you have any more details about the crash?



[TOPIC: post.html]
#3

ivan888

[GLOBAL: userInfoPane.html]
ivan888
  • Contributor

  • 397 posts
  • Corona SDK

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...



[TOPIC: post.html]
#4

ivan888

[GLOBAL: userInfoPane.html]
ivan888
  • Contributor

  • 397 posts
  • Corona SDK

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



[TOPIC: post.html]
#5

ingemar_cl

[GLOBAL: userInfoPane.html]
ingemar_cl
  • Contributor

  • 673 posts
  • Alumni

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.



[TOPIC: post.html]
#6

ingemar_cl

[GLOBAL: userInfoPane.html]
ingemar_cl
  • Contributor

  • 673 posts
  • Alumni

  Best Answer

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


[TOPIC: post.html]
#7

ivan888

[GLOBAL: userInfoPane.html]
ivan888
  • Contributor

  • 397 posts
  • Corona SDK

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".



[TOPIC: post.html]
#8

ingemar_cl

[GLOBAL: userInfoPane.html]
ingemar_cl
  • Contributor

  • 673 posts
  • Alumni

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.



[TOPIC: post.html]
#9

ivan888

[GLOBAL: userInfoPane.html]
ivan888
  • Contributor

  • 397 posts
  • Corona SDK

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.



[TOPIC: post.html]
#10

ivan888

[GLOBAL: userInfoPane.html]
ivan888
  • Contributor

  • 397 posts
  • Corona SDK

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.

[TOPIC: post.html]
#11

ivan888

[GLOBAL: userInfoPane.html]
ivan888
  • Contributor

  • 397 posts
  • Corona SDK

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.

[TOPIC: post.html]
#12

ingemar_cl

[GLOBAL: userInfoPane.html]
ingemar_cl
  • Contributor

  • 673 posts
  • Alumni

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 :-)  



[TOPIC: post.html]
#13

ingemar_cl

[GLOBAL: userInfoPane.html]
ingemar_cl
  • Contributor

  • 673 posts
  • Alumni

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"})

Attached Thumbnails

  • appodeal-reward.png


[TOPIC: post.html]
#14

ivan888

[GLOBAL: userInfoPane.html]
ivan888
  • Contributor

  • 397 posts
  • Corona SDK

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" 

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...  :)


Edited by ivan888, 16 March 2017 - 11:27 PM.


[TOPIC: post.html]
#15

ingemar_cl

[GLOBAL: userInfoPane.html]
ingemar_cl
  • Contributor

  • 673 posts
  • Alumni

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.



[TOPIC: post.html]
#16

ivan888

[GLOBAL: userInfoPane.html]
ivan888
  • Contributor

  • 397 posts
  • Corona SDK

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

appodeal.show("rewardedVideo")

That is a problem...



[TOPIC: post.html]
#17

ingemar_cl

[GLOBAL: userInfoPane.html]
ingemar_cl
  • Contributor

  • 673 posts
  • Alumni

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".



[TOPIC: post.html]
#18

ivan888

[GLOBAL: userInfoPane.html]
ivan888
  • Contributor

  • 397 posts
  • Corona SDK

Ok. Got you.

 

Thanks.




[topic_controls]
[/topic_controls]