Skip to main content
Log in

A longitudinal study of popular ad libraries in the Google Play Store

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

Abstract

In-app advertisements have become an integral part of the revenue model of mobile apps. To gain ad revenue, app developers integrate ad libraries into their apps. Such libraries are integrated to serve advertisements (ads) to users; developers then gain revenue based on the displayed ads and the users’ interactions with such ads. As a result, ad libraries have become an essential part of the mobile app ecosystem. However, little is known about how such ad libraries have evolved over time. In this paper, we study the evolution of the 8 most popular ad libraries (e.g., Google AdMob and Facebook Audience Network) over a period of 33 months (from April 2016 until December 2018). In particular, we look at their evolution in terms of size, the main drivers for releasing a new version, and their architecture. To identify popular ad libraries, we collect 35,462 updates of 1,840 top free-to-download apps in the Google Play Store. Then, we identify 63 ad libraries that are integrated into the studied popular apps. We observe that an ad library represents 10% of the binary size of mobile apps, and that the proportion of the ad library size compared to the app size has grown by 10% over our study period. By taking a closer look at the 8 most popular ad libraries, we find that ad libraries are continuously evolving with a median release interval of 34 days. In addition, we observe that some libraries have grown exponentially in size (e.g, Facebook Audience Network), while other libraries have attempted to reduce their size as they evolved. The libraries that reduced their size have done so through: (1) creating a lighter version of the ad library, (2) removing parts of the ad library, and (3) redesigning their architecture into a more modular one. To identify the main drivers for releasing a new version, we manually analyze the release notes of the eight studied ad libraries. We observe that fixing issues that are related to displaying video ads is the main driver for releasing new versions. We also observe that ad library developers are constantly updating their libraries to support a wider range of Android platforms (i.e., to ensure that more devices can use the libraries without errors). Finally, we derive a reference architecture from the studied eight ad libraries, and we study how these libraries deviated from this architecture in the study period. Our study is important for ad library developers as it provides the first in-depth look into how the important mobile app market segment of ad libraries has evolved. Our findings and the reference architecture are valuable for ad library developers who wish to learn about how other developers built and evolved their successful ad libraries. For example, our reference architecture provides a new ad library developer with a foundation for understanding the interactions between the most important components of an ad library.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

Notes

  1. The Understand projects of each of the studied ad libraries are available from our supplementary data: https://github.com/SAILResearch/suppmaterial-18-ahsan-ads_provider_libs.

References

  • Addo ID, Ahamed SI, Yau SS, Buduru A (2014) A reference architecture for improving security and privacy in internet of things applications. In: 2014 IEEE International conference on mobile services, pp 108–115

  • Akdeniz (2019) Google Play Crawler. https://github.com/Akdeniz/google-play-crawler. (Last accessed: July 2019)

  • Android version history (2019) https://en.wikipedia.org/wiki/Android_version_history. (Last accessed: July 2019)

  • Apache Software Foundation (2018) Download apache commons BCEL. https://archive.apache.org/dist/commons/bcel/. (Last accessed: July 2019)

  • AppAnnie (2017) In-App advertising spend to triple, reach $201 billion by 2021. https://www.appannie.com/en/insights/market-data/app-advertising-spend-2021/. (Last accessed: July 2019)

  • AppBrain (2016) Video ads. https://www.appbrain.com/stats/libraries/tag/video-ads/video-ads. (Last accessed: July 2019)

  • AppBrain Intelligence (2019) https://www.appbrain.com/stats/. (Last accessed: July 2019)

  • AppAnnie (2018) App Annie. https://www.appannie.com/. (Last accessed: July 2019)

  • Au KWY, Zhou YF, Huang Z, Lie D. (2012) PScout: analyzing the Android permission specification. In: Proceedings of the 2012 ACM conference on computer and communications security, CCS ’12, pp 217–228

  • Backes M, Bugiel S, Derr E, McDaniel P, Octeau D, Weisgerber S (2016) On demystifying the Android application framework: re-visiting Android permission specification analysis. In: Proceedings of the 25th USENIX conference on security symposium, SEC’16, pp 1101–1118

  • Belanche D, Flavián C., Pérez-Rueda A (2017) Understanding interactive online advertising: congruence and product involvement in highly and lowly arousing, skippable video ads. J Interact Mark 37:75–88

    Article  Google Scholar 

  • Book T, Pridgen A, Wallach DS (2013) Longitudinal analysis of Android ad library permissions. Computing Research Repository, arXiv:1303:0857

  • Calciati P, Gorla A (2017) How do apps evolve in their permission requests?: A preliminary study. In: Proceedings of the 14th international conference on mining software repositories, MSR ’17, pp 37–41

  • Calciati P, Kuznetsov K, Bai X, Gorla A (2018) What did really change with the new release of the app? In: Proceedings of the 15th international conference on mining software repositories, MSR ’18, pp 142– 152

  • Cohen J (1960) A coefficient of agreement for nominal scales. Educ Psychol Meas 20(1):37–46

    Article  Google Scholar 

  • Davidson D, Fredrikson M, Livshits B (2014) MoRePriv: mobile OS support for application personalization and privacy. In: Proceedings of the 30th annual computer security applications conference, ACSAC ’14, pp 236–245

  • de la Iglesia JLM, Gayo JEL (2009) Doing business by selling free services. In: Web 2.0. Springer, pp 1–14

  • Derr E, Bugiel S, Fahl S, Acar Y, Backes M (2017) Keep me updated: an empirical study of third-party library updatability on Android. In: Proceedings of the 24th ACM SIGSAC conference on computer and communications security, CCS ’17, pp 2187–2200

  • dex2jar (2019) http://sourceforge.net/projects/dex2jar/. (Last accessed July 2019)

  • Dong F, Wang H, Li L, Guo Y, Bissyandé TF, Liu T, Xu G, Klein J (2018) FraudDroid: automated ad fraud detection for Android Apps. In: Proceedings of the 26th ACM joint meeting on european software engineering conference and symposium on the foundations of software engineering, ESEC/FSE’18, pp 257–268

  • Dueñas JC, Oliveira WLd, Puente JAdl (1998) A software architecture evaluation model. In: Proceedings of the second international ESPRIT ARES workshop on development and evolution of software architectures for product families, pp 148–157

  • Facebook (2017) Introducing rewarded video for game developers. https://www.facebook.com/audiencenetwork/news-and-insights/introducing-rewarded-video. (Last accessed; July 2019)

  • Felt AP, Chin E, Hanna S, Song D, Wagner D (2011) Android permissions demystified. In: Proceedings of the 18th ACM conference on computer and communications security, CCS ’11, pp 627–638

  • Gao C, Zeng J, Sarro F, Lyu MR, King I (2018) Exploring the effects of ad schemes on the performance cost of mobile phones. In: Proceedings of the 1st international workshop on advances in mobile app analysis, A-mobile ’18, pp 13–18

  • Google (2016) SDK-less mediation: an easier way to mediate. https://www.blog.google/products/admob/sdk-less-mediation/. (Last accessed: July 2019)

  • Google (2019a) Best practices for unique identifiers. https://developer.android.com/training/articles/user-data-ids. (Last accessed: July 2019)

  • Google (2019b) Manage your app’s memory. https://developer.android.com/topic/performance/memory. (Last accessed: July 2019)

  • Google (2019c) Playtime 2018. Helping you build better apps in a smaller bundle. https://android-developers.googleblog.com/2018/10/playtime-2018.html. (Last accessed: July 2019)

  • Google (2019d) View the Java heap and memory allocations with memory profiler. https://developer.android.com/topic/performance/memory. (Last accessed: July 2019)0

  • Google Mobile Ads Lite SDK (2019) https://developers.google.com/admob/android/lite-sdk. (Last accessed: July 2019)

  • Grace MC, Zhou W, Jiang X, Sadeghi A-R (2012) Unsafe exposure analysis of mobile in-app advertisements. In: Proceedings of the Fifth ACM conference on security and privacy in wireless and mobile networks, ACSAC ’14, pp 101–112

  • Grosskurth A, Godfrey MW (2005) A reference architecture for web browsers. In: Proceedings of the 21st international conference on software maintenance, ICSM ’05, pp 661–664

  • Gui J, Mcilroy S, Nagappan M, Halfond WGJ (2015) Truth in advertising the hidden cost of mobile Ads for software developers. In: Proceedings of the 37th international conference on software engineering, ICSE ’15, pp 100–110

  • Gui J, Nagappan M, Halfond WG (2017) What aspects of mobile ads do users care about? An empirical study of mobile in-app ad reviews. arXiv:1702.07681

  • Guo C, Zhang J, Yan J, Zhang Z, Zhang Y (2013) Characterizing and detecting resource leaks in android applications. In: Proceedings of the 28th international conference on automated software engineering, ASE ’13, pp 389–398

  • Hao L, Guo H, Easley RF (2017) A mobile platform’s in-app advertising contract under agency pricing for app sales. Prod Oper Manag 26(2):189–202

    Article  Google Scholar 

  • Hassan AE, Holt RC (2000) A reference architecture for web servers. In: Proceedings of the 7th working conference on reverse engineering, WCRE ’10, pp 150–160

  • Hassan AE, Holt RC (2002) Architecture recovery of web applications. In: Proceedings of the 24th international conference on software engineering, ICSE ’02, pp 349–359

  • Hassan S, Shang W, Hassan AE (2017) An empirical study of emergency updates for top android mobile apps. Empir Softw Eng 22(1):505–546

    Article  Google Scholar 

  • Hassan S, Bezemer C, Hassan AE (2018) Studying bad updates of top free-to-download apps in the Google Play Store. IEEE Trans Softw Eng, 1–21

  • How Virtual and Augmented Reality Ads Improve Consumer Engagement (2019) http://www.econtentmag.com/Articles/News/News-Feature/How-Virtual-and-Augmented-Reality-Ads-Improve-Consumer-Engagement-117710.htm. (Last accessed: July 2019)

  • Khandkar SH (2009) Open coding. http://pages.cpsc.ucalgary.ca/saul/wiki/uploads/CPSC681/open-coding.pdf. (Last accessed: July 2019)

  • Kim D, Son S, Shmatikov V (2016) What mobile ads know about mobile users. In: Proceedings of the 23rd annual network and distributed system security symposium, NDSS ’16, pp 1–14

  • Landis JR, Koch GG (1977) The measurement of observer agreement for categorical data. Biometrics, 33

  • Li L, Bissyandé TF, Klein J, Traon YL (2016) An investigation into the use of common libraries in android apps. In: Proceedings of the 23rd software analysis, evolution, and reengineering, SANER ’16, pp 403–414

  • Manic M (2015) The rise of native advertising. Bulletin of the Transilvania University of Brasov. Econ Sci Series V 8(1):53

    MathSciNet  Google Scholar 

  • McDonnell T, Ray B, Kim M (2013) An empirical study of API stability and adoption in the android ecosystem. In: Proceedings of the 29th IEEE international conference on software maintenance, ICSME ’13, pp 70–79

  • Measuring Ad Viewability (2019) https://www.thinkwithgoogle.com/feature/viewability/. (Last accessed: July 2019)

  • Medvidovic N, Jakobac V (2006) Using software evolution to focus architectural recovery. Autom Softw Eng 13(2):225–256

    Article  Google Scholar 

  • Medvidovic N, Taylor RN (2000) A classification and comparison framework for software architecture description languages. IEEE Trans Softw Eng 26(1):70–93

    Article  Google Scholar 

  • MoPub (2019) Customize the MoPub SDK for only the formats you use. https://www.mopub.com/2016/09/15/customize-the-mopub-sdk-for-only-the-formats-you-u. (Last accessed: July 2019)

  • Preston-Werner T (2013) Semantic versioning 2.0.0. https://semver.org/. (Last accessed: July 2019)

  • ProGuard (2013) https://www.guardsquare.com/en/products/proguard. (Last accessed: July 2019)

  • psych (2019) Procedures for psychological, psychometric, and personality research. https://cran.r-project.org/web/packages/psych/index.html. (Last accessed: July 2019)

  • ReactiveX (2019) http://reactivex.io/intro.html. (Last accessed: July 2019)

  • Roy B, Mondal AK, Roy CK, Schneider KA, Wazed K (2017) Towards a reference architecture for cloud-based plant genotyping and phenotyping analysis frameworks. In: IEEE International conference on software architecture, pp 41–50

  • Ruiz IJM, Nagappan M, Adams B, Berger T, Dienst S, Hassan AE (2014) Impact of ad libraries on ratings of android mobile apps. IEEE Softw 31(6):86–92

    Article  Google Scholar 

  • Ruiz IJM, Nagappan M, Adams B, Berger T, Dienst S, Hassan AE (2016) Analyzing ad library updates in android apps. IEEE Softw 33(2):74–80

    Article  Google Scholar 

  • RxJava (2019) https://github.com/ReactiveX/RxJava. (Last accessed: July 2019)

  • Segment (2019) Effect of mobile app size on downloads. https://segment.com/blog/mobile-app-size-effect-on-downloads/. (Last accessed: July 2019)

  • The simple guide to understand facebook ads metrics (2019) https://adespresso.com/blog/understand-facebook-ads-metrics-guide/. (Last accessed: July 2019)

  • Understand Tool (2019) https://scitools.com/. (Last accessed: July 2019)

  • Vungle (2019) Generate more revenue. https://vungle.com/monetize/. (Last accessed: July 2019)

  • Wang H, Li H, Guo Y (2019) Understanding the evolution of mobile app ecosystems: a longitudinal measurement study of google play. In: The World wide web conference, WWW ’19, pp 1988–1999

  • Why Playable Ads are the Key to Engaged Users (2019) https://applift.com/blog/playable-ads-2. (Last accessed: July 2019)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Md Ahasanuzzaman.

Additional information

Communicated by: Romain Robbes

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendix: Identified Ad Libraries

Appendix: Identified Ad Libraries

Table 9 shows the list of identified 63 ad libraries. In addition, Table 10 shows the list of 303 packages that we manually analyzed over the web.

Table 9 List of identified 63 ad libraries
Table 10 List of 303 packages that we manually search on the web for ad library identification

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Ahasanuzzaman, M., Hassan, S., Bezemer, CP. et al. A longitudinal study of popular ad libraries in the Google Play Store. Empir Software Eng 25, 824–858 (2020). https://doi.org/10.1007/s10664-019-09766-x

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-019-09766-x

Keywords

Navigation