AdTech and RTB Analytics in 10 minutes

SlicingDice Team
SlicingDice.com Blog
6 min readApr 20, 2017

Go from zero to AdTech and RTB analytics hero in less than 10 minutes, without managing any infrastructure or worrying about data size.

This guide will show how to use SlicingDice for AdTech analytics, a Serverless Data Warehouse and Analytics Database as a Service.

Everyday SlicingDice receives more than 1.1 billion data inserts and millions of queries from multiple indie devs and companies, many of them doing analytics on top of AdTech data, such as RTB.

Scenario description

Let’s imagine you collect data for all your active campaigns or RTB (real-time bidding) auctions and want to assess your campaigns performances.

Example of AdTech-related questions we want to answer:

  1. What is the cost per day for my campaigns in the past month?
  2. How many users clicked in one campaign and also in another?

Sending your campaigns and RTB data to SlicingDice

Sending data to SlicingDice is very simple and fast. You can use our easy-to-use API or any of our clients available in Python, Ruby, JavaScript, Java, .NET/C#, PHP, Go and Arduino.

In order to send your data, first you simply need to:
1. Define what your entity is going to be. We consider an entity to be like a user, a campaign, an advertiser and so on. That’s basically a way of saying: who owns the data? So looking the first question above, the data is clearly produced by a campaign, and on the second, a user would be an entity.

2. Once you know what is your entity, you simply need to specify the attributes (columns) and values you want to associate to your entities.

Check this data insertion example below

Pro Tip: Click here to generate a personal free demo API Key, so you can copy & paste all the cURL command examples below on your own terminal and play with it live using our /test endpoint.

In this example below our entities are campaigns and we will insert all the clicks received by each campaign and the corresponding cost for each click.

Looking this data insertion command above, we can clearly see that we have three campaign entities: campaign-01, campaign-02 and campaign-03.

For these three entities we associated two column: campaign-name and cost-per-click.

As you can see, all entities campaign-01, campaign-02 and campaign-03 have the same columns campaign-name and cost-per-click, but each with different values.

What is happening here is that you are telling SlicingDice that the campaign-name of the entity campaign-01 is “Facebook campaign” and also that the cost-per-click was “0.000123” for the click made on “2017–xx–xxT05:52:38Z”, “0.000235” made on “2017–xx–xxT04:26:20Z” and so on.

The exactly same thing is happening for the entity campaign-02, but in a different campaign and with different dates and click cost values.

Before starting to query this data, let’s see another insertion example:
Again: if you paste your personal demo API key on this cURL command below and execute it on your terminal, it will really work. Go ahead and try yourself.

In this example below our entities are users (cookies) and we will be inserting all the click on banners made by each one of them.

Again, we can clearly see that we have three user (cookie) entities: cookieID-01, cookieID-02 and cookieID-03.

All entities are sharing the same column called clicks, although each entity has its own values and dates associated to the column.

What is happening here is that you are telling SlicingDice to store that the entity cookieID-01 made a click on a banner for the campaign “campaign-1” on date “2017–xx–xxT05:52:38Z” and also for the campaign “campaign-2” on date “2017–xx–xxT04:26:20Z” and so on.

That’s it. Simple like that. As we now have some data stored, let’s answer the questions we defined in the beginning of this post:

  1. What is the cost per day for my campaigns in the past month?
  2. How many users clicked in one campaign and also in another?

Querying your data

Making queries on SlicingDice is simple and easy. It’s possible to do multiple types of analysis using our API and you can get to speed by seeing all the ready-to-use query examples we have on our Github clients repositories for Python, Ruby, JavaScript, Java, .NET/C#, PHP, and Go.

In order to answer the question What is the cost per day for my campaigns in the past month? we will be making an aggregation analysis.

Aggregation is a powerful way to cross data in order to find insights and unexpected patterns. You can think about it like being an Excel Pivot Table.

What is happening on this aggregation query below is that we are asking SlicingDice to get the sum of all the “cost-per-click” values that took place between “now” and “1 month ago”, and group the result by day.

Based on the data we inserted before, if you run this query above on your own terminal, you should be able to see these results below:

As you can see, the results are basically showing the sum of cost for all clicks, from all campaigns running in the past month, grouped by day. You can answer a lot of questions using aggregations and more importantly, discover insights out of your data.

Now let’s answer the second question we have: How many users clicked in one campaign and also in another?. We can easily answer this question by using the count entities analysis.

Count entities is a simply and fast way to know how many unique entities (cookies) you have that satisfies some set of conditions you define.

Let’s take as example our query below, what is happening here is that we want to know how many unique users/cookies (entities) have clicked on the “campaign-1” between “now” and “1 month ago” AND that also clicked on the “campaign-2” between “now” and “1 month ago”.

Note that we are putting a name for this query (users-that-clicked-in-both-campaigns) because our API accepts making multiple count queries in a single request.

Based on the data we inserted before, if you run this query above on your own terminal, you should be able to see these results below:

As you can see, the results are basically showing that 1 cookie (entity) clicked in both campaigns between “now” and “1 month ago”.

Now, if you want to know what cookies (entities) exactly clicked in both campaigns, you can simply make this result data extraction query below:

As you can see below, it’s showing that the cookieID-01 is the one that clicked on both campaigns.

What other questions and analysis can I make?

SlicingDice supports multiple types of data analysis, so you can basically answer any kind of question you may need for analytics purposes, for example:

  • How many (or what) users that clicked in campaigns from advertiser Coca-Cola also clicked in campaigns from Pepsi?
  • What is the most common profile of the users that are clicking the most on Coca-Cola campaign grouping by Gender, Age, Income and Interests?

You nailed it, hero! — Next steps

That’s it. You are now ready to start making as much AdTech analysis as you want.
If you are inclined to think that SlicingDice might work for you, we suggest you take a look on our documentation and at least follow our quickstart guide.

Please, don’t hesitate to contact our developer support team at any time, for any reason. We are here to support your needs.

Loved it… but, how much does it cost?

Our price is really innovative and cheap. We charge based on the quantity of columns you have, doesn’t matter how many rows you store for them.

So for example you can store unlimited data on SlicingDice for these two use cases presented above (cookies, for example) for less $ 10.00 per month. It’s true. Check our website pricing page.

Why SlicingDice?

Developers want to store and query their data, but they hate having to manage complex data infrastructure, so we do it for them.
All they have to do is simply store and query billions of real-time and historical data, without managing any infrastructure.

High availability?
You don’t need to worry. We always replicate and backup your data on three different datacenters, located in France, Canada and Germany.

Query speed?
If any query takes longer than 10 seconds to complete, no matter the query complexity or data size, you receive a 10¢ discount for each query. We believe ensuring fast queries is our responsibility, not yours.

Not sure if we can support your AdTech needs?

Click here and schedule a 15-minute talk with our developers, totally free of charge, so we can evaluate your case together.

Don’t know how to model your data in order to send it to SlicingDice?
No problem at all, schedule a time so we can talk or let’s chat online now.

--

--

SlicingDice Team
SlicingDice.com Blog

Dev team of SlicingDice — Serverless Data Warehouse and Analytics Database-as-a-service