Ad performance daily
Daily delivery, installs and day-7 cohort revenue per creative set, the AppLovin advertiser report by campaign and creative set.
- Grain
- date_day x campaign_id x creative set (ad_id)
- Built from
- 1Raw tables
- 1Staging
- 1Core
- 1Analytics
- Reads from AppLovin
- advertiser_report
- Ships as
- Weld and dbt SQL, open source on GitHub
1-- core.applovin.ad_performance_daily
2-- Daily delivery, installs and day-7 cohort revenue per creative set, the
3-- AppLovin advertiser report by campaign and creative set.
4--
5-- Grain: date_day x campaign_id x creative set (ad_id). Days are UTC.
6-- Currency: USD (see the README).
7-- Depends on: staging.applovin.advertiser_report
8--
9-- The first twelve columns are the cross-channel ad contract (date_day,
10-- account_id, account_name, campaign_id, campaign_name, ad_id, ad_name, spend,
11-- impressions, clicks, conversions, conversion_value) shared with the other paid
12-- ads templates in this repo, so they can be stacked with UNION ALL.
13--
14-- AppLovin's report has no stable ad id, so the creative set is the lowest level:
15-- ad_id = creative_set_id, ad_name = the creative set name. The report has no
16-- account column either: account_id and account_name are NULL, one Weld
17-- connection being one AppLovin account.
18-- conversions = installs. conversion_value = total revenue (in-app purchases plus
19-- ad revenue) from users who installed that day, within 7 days. It is NULL for
20-- the last seven days, until the window has elapsed.
21
22WITH daily AS (
23 -- The report splits each creative set by country, platform, device, placement,
24 -- ad type and more; sum them back up to one row per creative set.
25 SELECT
26 date_day,
27 campaign_id,
28 creative_set_id,
29 MAX(campaign_name) AS campaign_name,
30 MAX(campaign_type) AS campaign_type,
31 MAX(app_package_name) AS app_package_name,
32 MAX(creative_set_name) AS creative_set_name,
33 SUM(spend) AS spend,
34 SUM(impressions) AS impressions,
35 SUM(clicks) AS clicks,
36 SUM(installs) AS installs,
37 SUM(sales) AS sales,
38 SUM(total_revenue_d0) AS total_revenue_d0,
39 SUM(total_revenue_d7) AS total_revenue_d7
40 FROM {{staging.applovin.advertiser_report}}This model and the 2 it depends on. Deploy them together; refs like {{staging.…}} resolve to the matching folders in Weld, and the dbt view uses source() and ref().
How it counts. And where it stops.
The first twelve columns are the cross-channel ad contract (date_day, account_id, account_name, campaign_id, campaign_name, ad_id, ad_name, spend, impressions, clicks, conversions, conversion_value) shared with the other paid ads templates in this repo, so they can be stacked with UNION ALL. AppLovin's report has no stable ad id, so the creative set is the lowest level: ad_id = creative_set_id, ad_name = the creative set name. The report has no account column either: account_id and account_name are NULL, one Weld connection being one AppLovin account. conversions = installs. conversion_value = total revenue (in-app purchases plus ad revenue) from users who installed that day, within 7 days. It is NULL for the last seven days, until the window has elapsed.
Raw tables it reads
- raw.applovin.advertiser_report
More AppLovin models
Put AppLovin in front
of your agents.
Connect AppLovin, deploy the models, and ask questions in Claude, Cursor or ChatGPT. Free for 14 days, no credit card.