GithubHelp home page GithubHelp logo

apphudsdk-android's Introduction

Apphud

Greetings!

Apphud SDK is an open-source library for iOS and Android to manage auto-renewable subscriptions and other in-app purchases in your app.

Apphud has SDKs in iOS (Swift), Android (Kotlin), and cross-platform SDKs: React Native and Flutter.

What is Apphud?

Apphud is all-in-one infrastructure for your app growth. Apphud helps marketing and product management teams to make right decisions based on the data and tools.

Subscriptions Infrastructure

Integrate in-app purchases and subscriptions in your mobile app in 2 lines of code. No server code required. Apphud works with all apps on iOS, iPadOS, MacOS, tvOS, watchOS and Android. Cross-platform support out of the box.

Real-time Revenue Analytics

View key subscription metrics in our dashboard and charts, like MRR, Subscriber Retention (Cohorts), Churn rate, ARPU, Trial Conversions, Proceeds, Refunds, etc.

Integrations

Send subscription events to your favorite third party platforms with automatic currency conversion. Choose from 18 integrations, including: AppsFlyer, Adjust, Branch, Firebase, Amplitude, Mixpanel, OneSignal, Facebook, TikTok, and more. Custom Server-to-Server webhooks and APIs are also available.

A/B Experiments

Test different in-app purchases and paywalls. Run experiments to find the best combination of prices and purchase screen parameters that maximize ROI.

Web-to-App (iOS)

Web-to-App solution overcomes IDFA limitations in the post iOS 14.5 era. Using this solution you can run paid campaigns in Facebook or TikTok and get real-time attribution with nearly 100% accuracy.

Rules (iOS)

Apphud may win back lapsed subscribers, reduce churn rate, get cancellation insights, send push notifications and many more using the mechanics below. This mechanics are called Rules. Choose between manual, scheduled and automated rule. Manual rules will be performed manually, scheduled rule will be performed on a certain time, automated rule will be triggered after certain event. Use our visual web editor to create you custom screen or screen sequence for Rule, and analyze user stats from every created screen.

Why Apphud?

Complete mobile in-app purchases stack with no extra costs. Don’t waste time and money on building your own in-app purchases infrastructure. Use Apphud for free until your app revenue increases $10,000 per month.

Focused on data accuracy. Apphud provides the highest accuracy on app revenue tracking. Analyze all important app metrics with a confidence.

Trusted by thousands of mobile apps worldwide. From small apps earning a few thousands per month to a leading mobile-focused companies.

Support that really cares. With Apphud you can be sure you’re not alone with in-app subscription growth challenges. We proud of our zero-ignored tickets support – answering to every request in minutes! Customers success and priority support for Enterprise clients.

Retain users and grow revenue. Use our Rules to engage and re-engage subscribers with no code required. Run A/B pricing experiments to find a better price.

Installation

Create your account at Apphud for free. Please feel free to read our SDK Integration Guide.

Having a question?

If you have any questions or troubles with SDK integration feel free to contact us. We are online.

https://apphud.com/contacts

Like Apphud? Place a star at the top 😊

apphudsdk-android's People

Contributors

abivan-tech avatar bodoss avatar goldinnikolai avatar ren6 avatar vladimir-slatvinskiy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

apphudsdk-android's Issues

Unable to delete app from dashboard

I have created an app by mistakenly from dashboard now there are two apps in dashboard. I want to delete one app because of similar names and confusion and when i clicked delete app it shows popup and say contact us in any way.

Critical SDK error after integrating SDK

Google Play reporting to me about this issue after App Hud 1.6.1 integration
Critical SDK error reported by Google Play after integrating SDK.

com.google.firebase:firebase-config:21.1.0
Bug affecting some locales causing HTTP errors Please downgrade to 21.0.2 or, 
if available, update to the next version which will contain a fix. For more info please see: 
https://github.com/firebase/firebase-android-sdk/issues/3757

NullPointerException in SkuDetailsWrapper

Hi,

I'm receiving crash in Crashlytics for reasonable amount of users:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.android.billingclient.api.PurchaseHistoryRecord.e()' on a null object reference
at com.apphud.sdk.internal.SkuDetailsWrapper.restoreAsync(SkuDetailsWrapper.kt:26)
at com.apphud.sdk.internal.BillingWrapper$restore$1.invokeSuspend(BillingWrapper.kt:137)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

Fatal Exception: java.lang.IllegalStateException: Already resumed

Hi. Continuation#resume calls twice in your code at here

It could be caused by different versions of coroutines. AppHud sdk has 1.5.0 and 1.6.0 in my project.

Full trace from Firebase crashlytics:

Fatal Exception: java.lang.IllegalStateException: Already resumed
       at kotlin.coroutines.SafeContinuation.resumeWith(SafeContinuationJvm.kt:44)
       at com.apphud.sdk.internal.SkuDetailsWrapper$queryAsyncEx$$inlined$suspendCoroutine$lambda$1$1.onSkuDetailsResponse(SkuDetailsWrapper.kt:118)
       at com.android.billingclient.api.zzv.run(com.android.billingclient:billing@@4.0.0:1)
       at com.android.billingclient.api.zzw.run(com.android.billingclient:billing@@4.0.0:4)
       at android.os.Handler.handleCallback(Handler.java:809)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:166)
       at android.app.ActivityThread.main(ActivityThread.java:7555)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:963)

Puchase callback is leaking

Hi! When I use Apphud#purchase with success result and after close fragment I received that leak is happened. I thing that callback should be called when all internal operations is completed and my callback isn't need for billing client anymore.

Support android api 23

Is it possible to return support for older versions of android? Now we use 23 api on the project and we can’t update because you have a minimum version of 26

Feature request

Please add rules and push notifications to Android SDK!
Must have features

Critical crash in library

Caused by: java.lang.RuntimeException: Missing type parameter.
        at com.google.gson.reflect.a.getSuperclassTypeParameter(Unknown Source:26)
        at com.google.gson.reflect.a.<init>(Unknown Source:7)
        at com.apphud.sdk.storage.SharedPreferencesStorage$customer$type$1.<init>(Unknown Source:0)
        at com.apphud.sdk.storage.SharedPreferencesStorage.getCustomer(Unknown Source:11)
        at com.apphud.sdk.ApphudInternal.needRegistration(Unknown Source:92)
        at com.apphud.sdk.ApphudInternal.initialize$sdk_release(Unknown Source:78)
        at com.apphud.sdk.Apphud.start(Unknown Source:26)
        at com.apphud.sdk.Apphud.start(Unknown Source:11)
        at com.apphud.sdk.Apphud.start(Unknown Source:11)

Fatal Exception: java.util.ConcurrentModificationException for userProperties

Fatal Exception: java.util.ConcurrentModificationException
       at java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:757)
       at java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:790)
       at java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:788)
       at com.apphud.sdk.ApphudInternal.updateUserProperties(ApphudInternal.java:532)
       at com.apphud.sdk.ApphudInternal.access$getParser$p(ApphudInternal.java:24)
       at com.apphud.sdk.ApphudInternal$registration$1$1.run(ApphudInternal.java:164)
       at android.os.Handler.handleCallback(Handler.java:938)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:236)
       at android.app.ActivityThread.main(ActivityThread.java:8051)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)

После того, как начали использовать userProperties стали получать некоторое количество падений с таким стектрейсом.
Версия библиотеки на данный момент 0.8 (но посмотрел исходники, для самой последней вроде не менялся принципиально мехазнизм работы с userProperties, думаю проблема сохранилась)

StackOverflowError on

I see crash in google console. Version sdk 0.3 only huawei devices.
Android Sdk version 26, 27, 28.

Inin in onCreate, application class.

Apphud.start(this, Constants.APPHUD_API_KEY, Support.getDeviceId());

Stack trace

java.lang.StackOverflowError: 
  at com.apphud.sdk.client.ApphudUrl.<init> (SourceFile:2)
  at com.apphud.sdk.client.ApphudUrl$Builder.build (SourceFile:1)
  at com.apphud.sdk.client.HttpUrlConnectionExecutor.call (SourceFile:7)
  at com.apphud.sdk.client.ApphudService.registration (SourceFile:7)
  at com.apphud.sdk.tasks.RegistrationCallable.call (SourceFile:2)
  at com.apphud.sdk.tasks.RegistrationCallable.call (SourceFile:1)
  at com.apphud.sdk.tasks.LoopRunnable.run (SourceFile:1)
  at com.apphud.sdk.tasks.LoopRunnable.run (SourceFile:9)
  at com.apphud.sdk.tasks.LoopRunnable.run (SourceFile:9)
  at com.apphud.sdk.tasks.LoopRunnable.run (SourceFile:9)
  at com.apphud.sdk.tasks.LoopRunnable.run (SourceFile:9)
  at com.apphud.sdk.tasks.LoopRunnable.run (SourceFile:9)
  at com.apphud.sdk.tasks.LoopRunnable.run (SourceFile:9)
  at com.apphud.sdk.tasks.LoopRunnable.run (SourceFile:9)
  at com.apphud.sdk.tasks.LoopRunnable.run (SourceFile:9)
  at com.apphud.sdk.tasks.LoopRunnable.run (SourceFile:9)
  at com.apphud.sdk.tasks.LoopRunnable.run (SourceFile:9)

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.