MaxCompute-based NoxMobi Global Precision Marketing System

NOX is a company in the pan-entertainment industry. One of its featured products is NoxPlayer, an Android operating system emulator that allows you to play mobile games on a PC. This industry-leading product has maintained the highest market share in China for more than two years. NoxMobi and NoxInfluencer are NOX’s other two major products.

In this article, Yang Yang, Senior Architect at NOX, describes the NoxMobi global precision marketing system built based on Alibaba Cloud’s MaxCompute.

The following content is sorted based on Yang Yang’s presentation video and PPT.

This speech focuses on the following three topics:

  1. Introduction to the industry and NOX
  2. Advertising services and systems
  3. Technologies and applications of MaxCompute

What Is Digital Marketing?

Currently, the global advertising market is estimated to have a value of around USD 600 billion, 30% of which comes from the Internet and mobile Internet ads. There is a huge market potential. Digital marketing, Internet advertising, online advertising, computational advertising, and programmable advertising all deal with the same issue: How can we place ads on the Internet?

Digital marketing involves three major parties: advertisers, publishers, and intermediaries.

Advertisers (demand side) focus on traffic and inventories while demanding the best possible effect at minimum costs. Effect includes brand effect and product effect. For example, a Coca-Cola ad might not make you go buy a Coca-Cola immediately. However, it imprints the Coca-Cola brand in your mind. This is the ad’s brand effect. In some cases, you may immediately click links in Toutiao ads pushed to you and download the linked products. These ads have product effect.

Publishers (supply side) demand maximum returns, including long-term returns and short-term returns. However, they cannot sacrifice their image for high short-term returns; otherwise, they may lose higher long-term returns.

Intermediaries pocket the difference by connecting the demand and supply sides using different methods, for example, scale effect and monopoly. Advertisers and publishers who have a monopoly have higher bargaining power.

In a word, digital marketing helps improve marketing efficiency by using the latest Internet technologies as well as AI, machine learning, and game theory in economics. It meets advertisers’ requirements for minimum-cost precision advertising, which distinguishes itself from traditional marketing. Publishers sell ad slots to advertisers in need, who bid for ad placement. Intermediaries act as go-betweens to effectively seal deals. The following figure shows a simple advertising industry ecosystem. The Demand Side Platforms (DSPs) represent advertisers on the demand side. Publishers on the right are Supply Side Platforms (SSPs). Companies at the bottom are intermediaries.

Advertising Services and Systems

NOX provides three major product systems to capture high-LTV users with low costs.

The left part of this figure describes the NoxMobi online advertising platform. NoxInfluencer in the middle is a cyberstar outside China. NoxPlayer and NoxCleaner on the right are NOX’s own media, which also push NOX’s ads.

NOX: Manages Every Marketing Stage

This figure shows the NOX products that are available for the pre-launch, launch, and post-launch marketing stages.

Pre-Launch and Launch Marketing

This figure shows the ad slots on NOX’s SSP products. The two screenshots on the right show the ad slots on NoxPlayer’s startup interface and NoxLauncher, respectively. These ads have little impact on user experience. As NOX focuses on businesses outside China and the advertising market outside China differs from that in China, NOX separates its advertising services in and outside China.

Success Story of NoxInfluencer

This figure shows NOX’s featured NoxInfluencer, which provides advertisers with traffic dividends and allows advertisers to contact online celebrities to help promote their apps. It pushes ads, for example, ads customized for Keep, including videos and live TV recorded by fitness instructors. These ads are profitable and also benefit the fitness instructors. NOX also uses NoxInfluencer to market its own SSP products. This costs about USD 100,000 but can help increase the number of downloads by 10,000 each day, enabling the marketed products to rank high in Google Play. For example, NoxCleaner ranks top 3 in the tool category in some countries.

Advertising Service Process: Online Advertising

Online advertising starts from user access. When you open an app or access a site, the app’s built-in SDK triggers an ad display through association with the corresponding SSP, which interconnects with an Ad Exchange (ADX, representing an intermediary). The ADX interconnects with multiple DSPs to invite them to bid. The DSPs, representing advertisers, decide whether to bid for an ad slot and offer prices. The ADX eventually sells the ad slot to the highest bidder at the price offered by the second highest bidder and returns the result to the SSP. Then you will view the ad pushed by the winning bidder. After the ad is displayed, you may click a link, and download and install the linked product. This will be tracked.

Evolution of NOX’s Advertising System

This figure shows how NOX’s advertising system evolves. In the early phase, just like small developers did, NOX’s advertising system integrated third-party SDKs. NOX could not control the ads triggered by third-party SDKs and received relatively low revenues. In the second phase, NOX developed an ad display module. At the beginning, NOX received offline advertising orders from advertisers or enterprises outside China, which led to much higher incomes. The system built an ad display module on clients, and the business server had a corresponding display control module. Later on, NOX performed simple CTL estimation and comparison on received orders and delivered the most profitable ads. NOX’s advertising ecosystem in the third phase, as shown in the figure, consists of the modules of client, DSP, SSP, integrated ADX, and business server. The client and business server modules formed the business system in the first phase. In the third phase, however, the connection between them is refined to segment traffic only. The DSP, SSP, and integrated ADX modules form the advertising service. NOX invites not only its own DSPs but also third-party DSPs to bid, thus maximizing the revenue. In addition, the SDK can be developed into a closed-source converged SDK that is compatible with third-party SDKs, which can bring additional revenues.

MaxCompute: DSP System Data Streams and Services

This section focuses on DSP system data streams. The SSP and ADX are relatively simple and therefore not described here. Typically, an advertising process starts from Runtime Bidding (RTB), which is an important part of DSP to implement real-time bidding. In the process of bidding, RTB generates bidding events and records them to Kafka, which processes subscription messages and keeps updating the cache. Data in Kafka is converted into features by Spark Streaming and then returned to RTB. Pixel is an event service that is accessed after an event, such as ad display or installation, occurs. This service tracks all sessions of the advertising process. Such data also flows to Kafka and is processed by Updater and Spark Streaming. In addition to the data returned to RTB, a data stream flows from Kafka to the central node, MaxCompute, through high-speed channels. On MaxCompute, offline report and characteristics computation is performed on the data stream. Reports are then displayed on DSP Report (for example, RDS).

Based on NOX’s design, all core data on advertising is processed in such a process. Operations-related non-core data is processed by the enterprise-level Sensors Data BI service, which is built by NOX on Alibaba Cloud.

Application of Spark Streaming

Spark Streaming is used for real-time computation of reports and characteristics. Services must be stable and available 24/7. A latency within seconds is acceptable. For example, the report of an ad can be provided 10s after the ad is placed. Throughput-based horizontal scaling must be supported. For example, the system must not break down when multiple SSPs are connected and traffic bursts. In addition, data of NOX’s businesses around the world needs to be converged and made available on one platform.

Spark Streaming can meet all the preceding requirements. Therefore, NOX uses it together with Kafka, RDS, and Redis for data output. NOX applies for an exclusive small cluster consisting of three to five machines from Alibaba Cloud E-MapReduce to deploy Spark Streaming. Once the machines are applied for, they are exclusively used by NOX without being released. The cluster is hosted by Alibaba Cloud and supports 24/7 Spark Streaming tasks. In each IDC, NOX has the Bidder or Pixel service that generates a vast amount of data. In an old solution, data was semi-computed in each IDC and then sent back. This had low bandwidth requirements. However, if this solution is used, each function had to be duplicated, with one set for local computing and the other for aggregation computing. Therefore, NOX replaced this complicated solution with the streaming solution in which original logs are compressed and then sent back in streaming mode. Streaming transmission requires low but stable bandwidths, and the cost is acceptable even though the high-speed channel bandwidth is used. Kafka supports compression protocols and is used to compress logs. Moreover, the central node deployment facilitates development.

The bottom layer of the preceding figure shows Alibaba Cloud’s E-MapReduce hosting service. The DSP and SSP are deployed in separate clusters hosted by Alibaba Cloud E-MapReduce at a low cost. If a platform fails in the event of traffic bursts, the other can still work properly. Event topics are sent to Kafka, sent out through Kafka, and then sent back to Kafka. In this way, Updater transmits data from Kafka to Redis or RDS for modeling and report computation. The only defect of this design is that stability and scalability rely on high-speed channels.

MaxCompute for Offline Computation

NOX uses MaxCompute to deal with various offline computation issues, including BI data computation, ad report computation, anti-cheat computation, labeling, characteristics computation, unified user ID (UUID) computation, and crawler data processing. Before using MaxCompute, NOX built its own Hadoop cluster with six and later more than ten Alibaba Cloud ECS instances. However, the ECS instances often crashed. The used Spark occupied large memory, and data might be lost if the number of user requests bursts. In addition, the ECS instances mainly ran BI data at night and were idle in the daytime, causing high costs. Later on, NOX used the Pay-As-You-Go E-MapReduce hosted cluster to process data at night and canceled the service in the daytime. However, the processing was time-consuming, which took 10 to 20 minutes. Finally, NOX starts to use MaxCompute, which has brought NOX many benefits. NOX no longer needs to maintain the cluster. The large Hadoop cluster ensures a computing speed much higher than that of a Spark cluster. The billing method of MaxCompute is Pay-As-You-Go, helping reduce the cost. The costs of creating Hadoop cluster, using E-MapReduce, and using MaxCompute decrease progressively. In addition, MaxCompute SQL is efficient and easy to debug, and has detailed reference documents. Furthermore, MaxCompute provides a useful dispatching system, which is difficult to build.

Considering that data import and export may fail to cover some services outside China, NOX prioritizes data synchronization and uses SDKs to process streaming data. If data synchronization and SDKs are inapplicable, NOX runs scripts and Tunnel commands to import and export data.

File data shown in this figure is mainly crawler data. This is because some service logs and external data are uploaded to OSS first. RDS data, including the advertising business data as well as many other types of data, is imported to partition tables on MaxCompute in a unified manner. SQL computing is used in most of the computation businesses, whereas MaxCompute is used when the SQL scripts are complicated or run slowly. Graph computing is used only to compute the same user’s UUID. The minimum-cost subgraph algorithm is used. For example, multiple devices used by a single user are associated with the user. PAI is essential for CTL estimation.

Characteristics Computation and Labeling

The following figure shows an example of the external label system of a third-party DMP. The label system consists of several categories, such as demography and device information, each of which includes multiple labels. Typically, characteristics values are continuous, and labels are added to the values based on specific rules. For example, a user’s online duration over the past week can be defined as a characteristic, and the value ranges from 0 to 7, in days. Labels of “inactivity”, “low activity”, “medium activity”, “high activity”, and “very high activity” can be added to the characteristic values of 0, 1, 2–3, 4–5, and 6–7, respectively. With the characteristics and labels defined, the computation effect is subject to the written SQL statements. In the past, the WITH clause was not supported, and the SQL code contained many lines and was difficult to modify. It is important to use code separators in SQL compilation. Additionally, built-in functions are recommended. Although user-defined functions (UDFs) have similar functions and one UDF may achieve the functions of two or three built-in functions, built-in functions are much more efficient. We recommend that you use UDFs only when built-in functions fail to meet your requirements. You can also use MapReduce, for example, to implement isofrequency discretization of a batch of characteristics values.

These are standard DMP functions implemented by using labels. NOX has not integrated these functions with the platform. NOX is also considering using Alibaba Cloud’s label service.


Targeting refers to audience targeting. There are two targeting methods. One is label-based targeting, which allows operators to optimize audience targeting by using labels based on their experience. This method supports easier manual operations than using models with characteristics input. It can be used to enlarge or narrow down the blind targeting range in the early delivery phase of an ad. The other method is look-alike, in which your ads are targeted to people who are possibly the source audience, namely, seed users.

As shown in this figure, targeting is implemented by directing internal and external data to MaxCompute. MaxCompute performs various computations, synchronizes the labeled data or data marked through machine learning to the online platform, and caches the data. During real-time bidding, the system looks up the RTB cache. If a match is found, the advertiser configures an ad on DSP and pushes the ad. If no match is found, no ad will be pushed.

CTR Estimation

NOX has invested heavily in click-through rate (CTR) estimation. CTR estimation includes estimation of CTR, conversion rate (CVR), and even the product of CTR and CVR. CTR estimation is used to calculate the effective cost per mille (eCPM). The eCPM represents the expected returns of an ad display and involves some probability theory. It equals the unit price multiplied by the probability of the returns. The eCPM helps prepare most advertising policies.

As shown in this figure, offline data flows to MaxCompute and online data flows to Spark Streaming. MaxCompute and Spark Streaming transmit the data to the label and characteristics cache. Some cache data is then directly loaded to the memory. Other data that cannot be loaded to the memory, such as user characteristics data, is queried from the cache of the Inference server. Through combination, the Inference service generates a characteristics vector, which can be used to compute the CTR. The computed CTR is then returned to RTB Bidder for policy processing and final bidding decision making. After a bidding process ends, logs of bidding participation, biding result, and ad display are sent to MaxCompute or Spark Streaming for model training and update of existing models, forming a closed loop. Furthermore, Spark Streaming and TensorFlow are used for online models and deep learning, respectively.


Pacing is complex. During a bidding process, not only the returns of a single ad display but also the overall effectiveness of exposing an ad must be considered. For example, a publisher may deliver only the ad with the highest CVR in the first two hours of a day, but fail to deliver the other ads. The revenue may be lower than that the publisher would have received if the publisher delivered the ad with the other ads. In general, pacing uses a mathematical method of maximizing the revenue based on layered and time-based traffic statistics and estimation. By referring to a thesis of Yahoo, NOX has developed a solution to make CTR estimation as well as layered and time-based statistics and calculation more accurate for effective and efficient policy enforcement.

NOX is seeking partners and hopes to cooperate with more developers who intend to expand the market outside China.


Alibaba Cloud MaxCompute is a fast and completely hosted big data computing solution for warehousing terabytes and petabytes of data. MaxCompute provides various data importing solutions and classic distributed computing models. It enables users to resolve massive data computation problems while reducing business costs and maintaining data security. Organizations such as NOX have achieved business success by incorporating MaxCompute into their architecture.

Learn more about Alibaba Cloud MaxCompute at


Follow me to keep abreast with the latest technology news, industry insights, and developer trends.