Загрузил A Z

devtodev-analytics-In-game-store

реклама
IN-GAME STORE:
HOW TO BOOST YOUR
REVENUE
An ultimate product analytics platform for data-driven teams
w w w. d e v t o d e v. c o m
ABOUT THIS BOOK
devtodev is an analytical platform for games and apps that you can use to monitor
user behavior, identify bottlenecks in app economy, gauge user's progress through
game levels, and forecast LTV (now using ML!)
Dozens of cases go through devtodev every day both regarding apps and games.
We see that the most common cause of problems or errors is the lack of knowledge
in certain aspects of app development - in analytics, game design, etc.
We strive to provide developers and analysts with more knowledge so in future that
they can save their resources and improve their products.
This book is also special. Speaking of games developers often focus on game
balance, economy, difficulty curve. That’s certainly the right approach. However, we
want to tell you about one more source of income increase - an in-game store.
Read this book to find out more about ways to improve your free-to-play ingame store performance and conversion to purchase rate: where to place entry
points, how to arrange items 'on shelves', how to price them, what tricks to use to
drive users to spend more. You will also get familiar with some free-to-play game
monetization strategies and Live Ops.
The most important thing: you will see how the changes lead to an increase in your
revenue (without altering the gameplay at all!)
TABLE OF CONTENTS
1.
2.
3.
STORE APPEARANCE ............................................
3
1.1
4
Examples of favorable in-game store locations
GOODS ..................................................................
10
2.1
Number of Goods
10
2.2
Categorizing Goods
12
2.3
How to List Items
13
IN-GAME PRICE TALK .............................................
15
3.1
Pricing
15
3.2
Ceiling and Floor Prices
17
3.3 Virtual Currency Rate
19
3.4 Currency Cross Rates
20
3.5
21
Price Tricks
4.
ADS IN SPOTLIGHT ................................................
29
5.
LIVE OPS ................................................................
31
6.
LOCAL MARKET DIFFERENCES ...............................
34
7.
BONUS CASE ABOUT +30% TO INCOME .................
35
8.
CONCLUSION ........................................................
36
1
STORE APPEARANCE
So, let’s start by looking at our store as a whole and trying to identify possible
growth areas.
The look of your in-game store has a dramatic influence on the conversion, i.e. on
the percentage of players who actually opens it and makes a purchase.
That is why it needs to, first of all, be placed at a spot where users can easily find it
and open it.
If you want to see a higher conversion rate, you need to place entrance points in
the most convenient locations, for example:
●
a button on the main screen;
●
a plus sign on the hard currency icon;
●
a button in the player character menu/garage.
In-game stores are often placed in the most accessible area that as the bottom
of the screen. The upper left corner (in portrait mode) and the entire upper part
(in landscape mode) of the screen are hard to reach and you rarely see stores in
these areas.
3
An ultimate product analytics platform for data-driven teams
www.devtodev.com
EXAMPLES OF FAVORABLE IN-GAME
STORE LOCATIONS
Gwent. We play this game in landscape mode and the store is relatively accessible.
It is well integrated into the interface and looks like one of the cards.
Hearthstone. You can find the shop in the bottom left corner of the screen so it is
easy to reach with a finger.
www.devtodev.com
An ultimate product analytics platform for data-driven teams
4
Wildscapes. There are two shops and two points of entry.
●
You can find the first point in the bottom left corner.
This 'door' leads to a soft currency shop where you can buy something
for your zoo without using real-money.
●
The second point of entry looks like a little plus sign on a purple gem.
In this shop, you can spend real-money. The fact that this shop is so well
hidden probably makes the game more casual, makes you feel that you can
just play and don’t worry about money.
5
An ultimate product analytics platform for data-driven teams
www.devtodev.com
Archero. This game has even more points of entry: a plus sign on the rhombusshaped gold coin and on the green gem in the upper right corner, and a chest in the
lower left corner. By clicking them you open different sections of the same store.
www.devtodev.com
An ultimate product analytics platform for data-driven teams
6
After you open the in-game shop, you are faced with the choice: either buy
something or not. Developers employ some tricks to tip your inner scales in favor
of the first option, e.g. they hide part of the information to arouse your interest and
encourage you to click on it.
Examples of in-game stores that you want to
linger around a little bit longer
Wildscapes. Here we see 4,5 bundles on one screen.
The gamer can see that there are more than four bundles in this shop, that they
can scroll it and find more offers.
| You can see only half of the fifth bundle which makes you think that you can scroll
right and find even more valuable offers.
7
An ultimate product analytics platform for data-driven teams
www.devtodev.com
Angry Birds 2. The same here: you can see only part of the fifth card.
It is supposed to engage the gamer and encourage them to scroll further.
Zeptolab’s C.A.T.S. In the Boxes section of its in-game store, you can see only
half of the 'super parts box'. And again the developers encourage us to scroll and
go through everything that the shop offers.
www.devtodev.com
An ultimate product analytics platform for data-driven teams
8
Some developers try to make the moment of purchase really memorable. You can
see it, for instance, in the Gwent or Hearthstone games (see the screenshots
below). You buy a set of cards (or obtain them through normal gameplay), drag
a card to the middle, then click on it and it explodes! Gorgeous special effects
create memorable moments and the game sticks in your mind.
| Above is Hearthstone, below is Gwent
9
An ultimate product analytics platform for data-driven teams
www.devtodev.com
2
GOODS
Goods are anything sold in the store of a free-to-play game.
A good has the following characteristics:
●
Price of goods;
●
Nature of goods (items, resources, or currencies);
●
Volume of goods.
E.g., 100 gold coins for $4.99.
NUMBER OF GOODS
The first thing the user sees when opening the store is the prices and the
number of goods. Is there something they need? Does it come in multiple options?
Are the prices affordable or they’d better exit the shop and become grinders?
There is no ideal balance of prices and goods that is suitable for all games.
However, we can give you some guidelines.
There should not be ‘too few’ goods in your store because gamers like to have a
choice. And there should not be ‘too many’ goods either because it can lead to
choice paralysis. Choice paralysis or decision paralysis is a kind of mental trap;
a situation where players don’t choose anything at all rather than risk making the
wrong choice.
Choice paralysis is a theory presented in a study called The Jam Experiment by
tow psychologists-Sheena Iyengar and Mark Lepper from Columbia and Stanford
University. One day they presented 24 options of jam and invited everyone to try
it and buy it. Next time they presented only 6 options. In the former case, they
managed to gather a much larger audience but the conversion to purchase rate
happened to be much lower than in the second case (4% vs 31%).
www.devtodev.com
An ultimate product analytics platform for data-driven teams
10
The same experiment was replicated in other brick and mortar stores using apples
and they showed similar results.
Any game developer’s ultimate goal is to strike a balance between 'too many' and
'too few'. On average, this optimum falls in the range of 5 to 7 goods because it’s
difficult for people to keep track of a larger number of objects and they risk facing
choice paralysis.
A Use Case about 7 and 200
Let’s take a look at an example from devtodev analytics usage. One of the games
of our clients had a 0.1% conversion to purchase rate which is very low. We started
researching paying user behavior and found out that its in-game store looks like
a single list of 200 items. There were no categories, no structure at all! Gamers
couldn’t decide on anything and often left the shop empty-handed. Based upon
our recommendations, the developer kept only 7 items and the rest of them were
slowly introduced during the playthrough. After the changes were introduced, the
conversion rate increased threefold - to 0.3%!
11
An ultimate product analytics platform for data-driven teams
www.devtodev.com
CATEGORIZING GOODS
In case you have a lot of goods, you need to categorize them into distinct
groups. The more groups you have, the better your store, and the bigger your
project capacity is, and as a result - the project’s revenue.
While creating categories you run a risk of causing choice paralysis because
the more items you add, the more difficult it is to make purchases. This problem is
easily solved by the interface. You can, for example, create six categories with seven
items in each. This way the gamer will only see a list of six categories and after
clicking one of them - seven items. They will not see all the 42 items at one time
and will not have to deal with choice paralysis.
Categories in popular free-to-play games
Gwent. Categorizing is done well here. There are card kegs (a basic purchase),
bundles, ornaments, etc.
www.devtodev.com
An ultimate product analytics platform for data-driven teams
12
Brawl Stars. Items are broken down into categories using colored backgrounds
- items of one category pictured on a blue background, items of another category on a green background.
HOW TO LIST ITEMS
Presentation of items on the screen has a profound influence on user compliance
in free-to-play games:
●
If you sort items by prices in descending order then you may scare your
potential customers away and they will never return to the shop;
●
If you sort items by prices in ascending order, you will let the opportunity of
an impulse purchase slip through your shopping cart. They will always
choose an item from the first half of the list (the cheapest) and ignore the
second.
It’s common knowledge that showing minnows the cheapest items first and
showing whales the most expensive items first can really boost your revenue.
However, practice shows that everything depends on the item: minnows may be
reluctant to buy decorations but they will be more generous with boosters.
13
An ultimate product analytics platform for data-driven teams
www.devtodev.com
We have analyzed how this all works in popular titles and came to two interesting
conclusions:
●
first, the items in the shops are almost always sorted by prices in
ascending order;
●
second, there are more than one or two items on display simultaneously.
If in the shop or in the category there are only, let’s say, five items, then
the gamer can see all of them at the same time.
It is hard to say whether ascending order is better or descending order is better
because every game and every audience is unique. To find the best solution for
your project, you need to run A/B testing.
www.devtodev.com
An ultimate product analytics platform for data-driven teams
14
3
IN-GAME PRICE TALK
An in-game shop in a free-to-play game consists of first of all, items and prices.
That’s why the price chapter is central to our book. Here we will talk about the price
level and about experimenting with prices that can help you find new growth areas
in your project.
PRICING
One of the most difficult problems of any free-to-play in-game shop is pricing. How
much should the items cost? Should they be expensive? Should they be cheap?
In case you set low prices at the beginning, your players will be unhappy when you
will eventually raise them. If you set high prices then you will have great ARPPU but
you will have only one customer - your own tester. It means that you have no choice
but to look for a balance and use some psychological tricks (read below).
What can you use as reference points when pricing Items in an a in-game shop?
●
As a reference price, you can use the price of a cup of coffee, a movie ticket,
or restaurant desserts.
●
Another reference point is other similar games. Just find your closest
competitors and look at their prices.
●
You can compare your game with other games. Open HowLongToBeat
website and take a look at the average playthrough times. For example,
The Witcher’s average playtime is about 48 hours. Find its price and divide
it by 48 - this will be its cost per hour. You know how long it takes to beat
your game and you can calculate all the necessary prices.
15
An ultimate product analytics platform for data-driven teams
www.devtodev.com
You can also use your ARPPU data to calculate in-game prices in a more scientific
and precise manner.
Setting Prices by Using ARPPU
Traffic budget = $100,000; CPI = $2.
You purchase 50,000 users. Their conversion rate is 1.5%.
We roughly know these numbers in advance.
We calculate and see that we will acquire 750 paying players. To simply recoup the
traffic costs our ARPPU should be no less than $133.33.
This was a calculation for an average paying gamer. But as we all know, there is no
such entity as an 'average gamer'. There are minnows, dolphins, and whales.
| This is how the data on the three groups looks like in devtodev analytics
www.devtodev.com
An ultimate product analytics platform for data-driven teams
16
You have, let’s say, 80% of minnows. Their ARPPU = $20.
15% of dolphins. Their ARPPU = $100
And 5% of whales.
Problem: What the ARPPU of whales should be equal to have an average ARPPU
of $133.33? This problem is easy to solve.
Answer: A whale should have an ARPPU of $2050. It means that you need to set
your prices so that they will spend no less than this sum.
The game is not even released yet but you already can calculate approximate
ARPPU numbers for all groups of our future paying users.
This is a simple example of how you can take scarce source data and turn it into
a relatively reliable reference for prices for all paying categories.
PRICE CEILINGS AND PRICE FLOORS
Let’s take a look at how and what the highest and the lowest item prices influence
in your in-game shop.
The lowest price is aimed at turning players into payers. Let them experience how
convenient, comfortable and safe the shopping is. Sometimes the lowest price item
is the very first purchase the player makes in games.
Special starter packs for beginners are also a great idea. You can make them up
semi-personal: one kind of pack for beginner minnows, another - for beginner
whales (they tend to show off from the start).
17
An ultimate product analytics platform for data-driven teams
www.devtodev.com
The highest price is aimed at whales and is usually a value of the project capacity,
while the project capacity describes the ability of a gamer to spend as much
in the game as they want. The capacity depends on prices and on the variety of
goods in the store. The highest price items are supposed to be both useful and
beautiful because the whales who buy them want to get a badge that can let them
stand out from the crowd of non-whales.
Analysis of highest and lowest prices in seven popular games:
| On the X-axis, you see the number of items in the shop (max. 7, min. 3).
On the Y-axis, you see prices.
www.devtodev.com
An ultimate product analytics platform for data-driven teams
18
What conclusions can you draw from this graph?
1.
Most games give a choice of 5-7 items.
2.
Each 'step' raises the price 1.5-2 times.
3.
The prices of the most expensive items are much less different than
the prices of the cheapest items.
The cheapest item prices are often lower in casual games than in hardcore games.
Here, 100% is the highest virtual currency rate. In almost all games except for
Angry Birds, it is the first item. C.A.T.S. drops the price most significantly - you
can buy 100 gems for 100 RUB and 3,000 gems for 1,000 RUB. In other games,
the diffusion is within the range of 60-80%.
CURRENCY CROSS RATES
A game can have any number of currencies (hard, soft, medium, etc) and sooner or
later you will face a situation where you need to correlate them to one another. What
are their prices in real-world money? How to exchange them? These questions are
difficult to answer.
The major reference point here is time - how many currency units the player can
harvest per one hour. After you calculate the cost per one hour of gameplay, you
can set the selling prices of each currency that you have in your game. You can
read about it in more detail in the 'Pricing' chapter above.
19
An ultimate product analytics platform for data-driven teams
www.devtodev.com
VIRTUAL CURRENCY RATE
We sell our virtual currency for the real money, for example, crystals for US dollars.
The bigger the pack is and the more crystals there are in it, the better bargain for
the gamer it is supposed to be. It means that, in theory, the bigger the pack is, the
lower the virtual currency rate is. But this theory has two finer points:
1.
If the currency weakens too slowly, then for the player there is no point
in buying an expensive pack. If, for example, they buy 100 crystals for $10,
and 1010 crystals for $100, they don’t see any value in spending a large
amount of money at once.
2.
If the currency weakens too fast, for example, the player can buy 100
crystals for $10, and 10,000 crystals for $100, then they play it through and
churn because it becomes play-to-win.
It means that the currency should weaken at a rate that is both not slow and not
fast. It should weaken smoothly just like in the following games:
www.devtodev.com
An ultimate product analytics platform for data-driven teams
20
PRICE TRICKS
To some extent, you can manipulate the spending habits of your users. There are
many marketing theories that you can implement in your game.
Some of the theories devtodev verified in the analytical track at DevGAMM
conference in Moscow. We ran several experiments with 103 participants:
77 males and 26 females.
Bait Experiment
Imagine that you need a magazine subscribtion. You have the following options:
●
web: $59
●
print: $125
●
print + web: $125
It seems that the second option is unnecessary here. Who is going to subscribe
to a print magazine when they have an option of subscribing to print and web
versions for the same money?
During the devtodev experiment the votes were split as follows:
●
web: 16%
●
print: 0%
●
print + web: 84%
As expected, no one chose the second option and most people voted for
the best value for money option.
21
An ultimate product analytics platform for data-driven teams
www.devtodev.com
ARPU was $114.44.
Then we ran another experiment without the second option and the vote split was
completely different:
●
web: 68%
●
print + web: 32%
ARPU was $80.12.
Why did that happen? Because people compared just two options here and it
was obvious for them that it is not reasonable to pay two times more for a print
version since they will get the web version. They made a reasoned choice and this
choice reduced our ARPU by $34.32.
It all means that with one bait item, the item that no one ever picks, we can
boost our ARPU by half!
How does it work? It’s difficult for the brain to compare several values if they are far
from each other (A and B). But we can add one more option (-A), that is closer to
one of the options (A) but worse is a little bit worse. Then people understand that A
is better than -A and then they mechanically conclude that A is better than B.
Second Bait Experiment
Another experiment for studying the 'bait' on approximately equally good options.
We randomly split the participants into A and B groups. People in the B group had
to choose the most handsome man - Chris Hemsworth or Ryan Gosling.
www.devtodev.com
An ultimate product analytics platform for data-driven teams
22
As a result, the voting was as following:
Chris Hemsworth is a winner. It may have something to do with the fact
that he starred in the latest Avengers movie not long before the experiment.
People in the A group went through a similar experiment, but they had to choose
between three options - Ryan Gosling, bruised Ryan Gosling and Chris Hemsworth.
And here are the results:
As you can see, bruised Ryan Gosling helped 'normal' Ryan Gosling to lead the poll.
23
An ultimate product analytics platform for data-driven teams
www.devtodev.com
By the way, during this experiment, we found out that men like Gosling more, while
women prefer Hemsworth:
Third Bait Experiment
After that devtodev conducted another experiment on two different groups.
Group A had to choose between two popcorn buckets - small for 100 RUB
and large for 200 RUB.
www.devtodev.com
An ultimate product analytics platform for data-driven teams
24
Whilst the B group had a choice between 3 bucket:
●
small for 100 RUB
●
medium for 180 RUB
●
large for 200 RUB
The medium option was closer to the large option. Its main goal was to attract
attention to the large tin and encourage people to spend more money.
| Group A results
| Group B results
25
An ultimate product analytics platform for data-driven teams
www.devtodev.com
It is obvious that the medium option got things done: it increased the average
check from 136.5 RUB to 161.9 RUB - by 19%!
Anchoring
An anchor is an implicitly suggested reference point. How does anchoring work?
If you talk to somebody and set the value of the 'anchor' then all the future
values they will interpret using this 'anchor' to gauge.
“In a study by Tversky and Kahneman (they noticed anchoring first), participants
observed a roulette wheel that was predetermined to stop on either 10 or 65.
Participants were then asked to guess the percentage of the United Nations that
were African nations. Participants whose wheel stopped on 10 guessed lower
values (25% on average) than participants whose wheel stopped at 65 (45% on
average).” (Wikipedia)
The answers of the participants depended strongly on the anchor values.
The First Anchoring Experiment by devtodev
devtodev made the experiment more difficult and let the participants set the
anchors by themselves. So, we first asked them to write down the last two digits
of their phone numbers, which is arguably a random double-digit number.
www.devtodev.com
An ultimate product analytics platform for data-driven teams
26
Then they were asked to guess the price of the same bottle of wine (in US dollars).
Here are the results:
The participants whose phone numbers end with the digits from 0 to 20 tend to
assign a lower value to the bottle of wine than those whose phone numbers end
with the digits from 80 to 99.
The Second Anchoring Experiment by devtodev
Group A situation. According to the data from progamedev.net, the median
day 1 retention rate in trivia games is 35%, in word games is 38%, in casino games
is 34%. What is your estimate of the day 1 retention in racing games?
Group B situation. According to the data from progamedev.net, the median
day 1 retention rate in simulation games is 22%, in action games is 24%, in
adventure games is 24%. What is your estimate of the day 1 retention in
racing games?
That is to say, the Group B 'anchor' was set at the values lower than the 'anchor' of
Group A. Did it influence the evaluation of the day 1 retention in racing games?
27
An ultimate product analytics platform for data-driven teams
www.devtodev.com
As you can see, it did influence and influence a great deal.
Based on these results, you can see that there is no shame in adding to your store
some high-priced items. You can use a certain set and proper distribution of items
to optimize the user trajectory in a favorable manner.
www.devtodev.com
An ultimate product analytics platform for data-driven teams
28
4
ADS IN SPOTLIGHT
In case you have a free-to-play game with a shop, you make money on in-app
purchases. But the number of paying users is generally low (it is estimated as 1% of
all players) which makes developers turn to ads and other methods of monetization.
Let’s look at the two primary directions for its implementation:
1.
Ad units get implemented in the shop. In this case, the player can view ads
and buy something they need.
2.
You can choose to serve ads to the free (non-paying) players only. While to
paying players or potentially paying players (they are found using machine
learning) you can show offers instead.
Examples of games with a well-balanced ad and
IAP monetization strategy
Zeptolab’s C.A.T.S. You can get rid of ads using two ways: by either buying a
special offer or a gem pack.
29
An ultimate product analytics platform for data-driven teams
www.devtodev.com
Archero. In this game, you can buy twenty energy for sixty gems or watch an ad to
recharge five energy up to four times a day.
www.devtodev.com
An ultimate product analytics platform for data-driven teams
30
5
LIVE OPS
Here are some one-size-fits-all tips and tricks on Live Ops:
1.
When you run some promotions, you need to make them obvious, e.g.
you can highlight the 'most popular' offer (although players cannot
know whether it’s the most popular or not).
2.
If you highlight the 'best value for money' offer, you need to explain why
it is worth the price and what are the benefits compared to other offers.
3.
Showing the special offer beyond the shop interface is also important.
Your users have to know about the offer even if they don’t open the shop.
4.
Give your player character an opportunity to try on the promoted outfits/
weapons so that the player can see how much better they will look.
5.
You need to highlight all your Live Ops activities. This way, every player
will see that the offers are tailor-made for them, they are special and very
precious to you.
More Live Ops tips and tricks you can find in our FREE dedicated course.
31
An ultimate product analytics platform for data-driven teams
www.devtodev.com
How it is implemented in different games
Hearthstone. On the 'Today’s Quests' screen sometimes you may see a special
offer promo banner.
Wildscapes. After opening the store, you see the 'most popular' item and the 'best
value' item. Besides, you notice a very nice visualization of the treasure pile - the
higher the price, the bigger it is.
www.devtodev.com
An ultimate product analytics platform for data-driven teams
32
Brawl Stars. Some items have badges like 'new', 'best value' etc. There are also
'was/now' prices familiar from supermarkets. In the currency section, there are two
highlighted items - 'popular' and 'best value'.
Angry Birds. One of the items occupies the first place, it is larger than the rest of
them and has a badge 'x2 value'.
33
An ultimate product analytics platform for data-driven teams
www.devtodev.com
6
LOCAL MARKET DIFFERENCES
There are some cultural differences between in-game stores in local markets.
We can give you some recommendations but you should take them with
a grain of salt.
In some regions, affordable luxury is in high demand. People who live there like to
decorate their characters as they wish, make them unique and remarkable.
In other regions people tend to be gamblers and are more comfortable with
'play-to-win'.
In some countries, gamers are 'ready' to pay for team-player games.
If you want to know more about local markets, you need to talk to the gamers of the
chosen region, conduct region specific surveys and read books about international
communications and ethnic psychology.
www.devtodev.com
An ultimate product analytics platform for data-driven teams
34
7
BONUS CASE ABOUT
+30% INCOME GROWTH
Once a game developer mistreated their players and wanted to make up for them
by giving away some virtual currency. At the same time, they introduced a new item
category. They hoped that players will spend the currency but they didn’t expect
the economy to see any drastic changes - players were expected to simply give
back the currency that they received from developers. But the amount of real-world
currency spent rose by 30%!
Analysts didn’t have a clue if it was due to the currency giveaway or a new category
introduction. They conducted an experiment: after some time they run another
giveaway but that time they didn’t add new categories or items. And it boosted
player spending again!
So, using occasional giveaways, you can drive users to spend more money.
35
An ultimate product analytics platform for data-driven teams
www.devtodev.com
8
CONCLUSION
After reading this small book, you may understand that an in-game shop is not
just a collection of items but rather a complex system where you can find many
growth opportunities and ways to increase your revenue without altering the
gameplay.
Summing up key ideas:
1.
In-store convenience: make your in-game shop more accessible for players,
help them see the entire variety of items, and find the right one.
2.
Experiment with prices: try different price options, set them for each
customer category, find the optimum position and number of units
for items.
3.
Use different currencies and set exchange rates.
4.
Use some tricks that help you to redesign the customer journey
the way you need it.
5.
Categorizing and targeting: increase the project capacity
and conversion rates.
Every game is unique and you shouldn’t implement everything we have described
in this book. Start with A/B testing and find out what works best for you.
We will be very happy if this book helps you to increase revenue, therefore,
we wish you successful experiments and an audience that is 100% lead material!
THANK YOU!
www.devtodev.com
An ultimate product analytics platform for data-driven teams
36
AN ULTIMATE PRODUCT ANALYTICS PLATFORM
FOR DATA-DRIVEN TEAMS
IMPROVE YOUR IN-GAME STORE PERFORMANCE
WITH DEVTODEV:
Identify differences in best-selling in-game items from market to market
Monitor ARPPU to set prices
Interpret the results of pricing experiments
Measure conversion to purchase rate and other financial metrics
Segment paying users to improve in-game store conversion
Analyze the behavior of 'minnows', 'dolphins' and 'whales'
Predict revenue and LTV of the project
Check out all the platform’s features in our demo
Sign up to get 30 days of FREE access to devtodev
Скачать