Giter Club home page Giter Club logo

Comments (8)

coneybeare avatar coneybeare commented on August 17, 2024 1

Yes, that is the solution (for now) as I detailed in length above. If you are using significant events at 0 (highly unadvised) then you will have to call showPromptIfNecessary() from wherever it makes sense in your app. Fixing the lifecycle callbacks so that it automatically shows on app open or launch would introduce unwanted behavior for just about everybody who is using significant events > 0.

from armchair.

coneybeare avatar coneybeare commented on August 17, 2024

Did you step through the code to see why?

from armchair.

odedharth avatar odedharth commented on August 17, 2024

@coneybeare which object should I debug?

from armchair.

coneybeare avatar coneybeare commented on August 17, 2024

I would place your breakpoint either in showPrompt or ratingConditionsHaveBeenMet

from armchair.

grizzly avatar grizzly commented on August 17, 2024

same here, seems both of your mentioned functions are never called....

your incrementUseCount() only increments the values but never calls showPromt (or did i miss something?)

from armchair.

coneybeare avatar coneybeare commented on August 17, 2024

incrementUseCount is never called directly by the user, but is called before a call to showPrompt in incrementAndRate. Can you reproduce what you are seeing in the example project with a basic setup?

from armchair.

coneybeare avatar coneybeare commented on August 17, 2024

Actually, I see why this might be happening. Sorry it took me some time to reacquaint myself with the code.

The application lifecycle notification callback methods only call incrementUseCount and not incrementAndRate. This is fine and by design so that the user is not bombarded with a review prompt immediately after opening the app, where chances of a review are lower. The library was really designed to keep significant events as the primary trigger for a review, when the user satisfaction is highest. A user is more likely to review if you do so at a point where it does not interrupt their flow. They came to your app for a reason, and now once they are in, you are asking them to stop doing that reason while they help you out by writing a review. Let them finish that reason (beat a level, do a thing, open stuff, check this or that) then ask them upon completion of said significant event.

But, if you want to keep significant events at 0, you should manually add showPromptIfNecessary wherever it makes sense in your app. I would recommend using significant events to trigger instead though as you will get better clickthrough rates to the App Store.

This presents a minor problem for me because the default for this value is 0 (has to be) so I may add a condition to the lifecycle callbacks that checks whether or not this value is 0 and perhaps call for a prompt. I have to think about it because it could cause unintended prompts for others. My gut tells me no and that the solution is for you to add the showPromptIfNecessary call to your setup, and add this info to the readme.

Either way I decide, you have a solution now.

from armchair.

grizzly avatar grizzly commented on August 17, 2024

yes thats the point. if you only want to have the use count (as odedharth describes) there is no call of showPromt. Your class is incrementing the useCount value but then never tries to fire the showPromt.

Other cases have this call: if someone calls userDidSignificantEvent, the function itself calls incrementSiginificantEventAndRate, which calls showPromt.

so do we have to call showPrompt(ifNecessary.... explicid?

best
stefan

from armchair.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.