Cloud Music RTA Advertising and User Acquisition System: Architecture and Optimization Practices
NetEase Cloud Music’s RTA advertising system delivers real‑time, personalized ads at massive scale by using isolated Nginx clusters, layered decoupling, asynchronous Netty/Redis processing, and optimized storage with hash‑based key compression and Protostuff serialization, while supporting automated audience selection and in‑app attribution to boost user acquisition.
This article introduces the RTA (Real Time API) advertising system architecture and implementation practices at NetEase Cloud Music. RTA is a critical advertising method that enables real-time, personalized ad delivery by allowing advertisers to make targeting decisions before ad exposure.
RTA Delivery Architecture: The system handles massive request volumes with single-media QPS ranging from tens of thousands to hundreds of thousands, with response timeouts of only 50-60 milliseconds. The architecture features: independent Nginx clusters isolated from the main site, layered decoupling (request adaptation, delivery strategy, device mapping, device writing layers), asynchronous processing using Netty and Lettuce Redis client, and timeout handling via timing wheels for optimal performance.
Automated Crowd Selection: The system integrates with Cloud Music's "Mirror" audience platform to enable flexible device-based audience targeting. Key capabilities include tag-based or SQL-based custom audience selection, A/B experiment integration, automated data validation, support for hundreds of millions of daily device records, and comprehensive exception alerting.
Storage Optimization: Facing storage challenges with billions of device records (Oaid, Imei, Idfa with multiple encryption methods), the team achieved over 80% storage reduction through: key transformation using MurmurHash2 64-bit hashing (reducing 39-86 byte keys), value transformation including audience package name serialization (converting strings to integers), business expiration time optimization (coarsening millisecond-level to 10-minute precision), and Protostuff serialization instead of JSON. Additionally, migrating from String to Hash structure with ziplist encoding significantly reduced memory overhead by eliminating redundant redisObject metadata, dictEntry, and SDS information.
Real-time In-app Engagement: The system builds user attribution capabilities to track acquisition sources (new users, returning users) and delivers personalized homepage content through module ranking intervention and resource prioritization, effectively improving user retention from paid advertising.
NetEase Cloud Music Tech Team
Official account of NetEase Cloud Music Tech Team
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.