Skip to content

Commit 92f6d4d

Browse files
authored
Merge pull request #192 from ddxv/main
Add blog post and clarify docs
2 parents 8bf5b0a + 75df169 commit 92f6d4d

11 files changed

Lines changed: 104 additions & 14 deletions

File tree

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
- **Company Intelligence** — See the top client apps for any mobile SDK or services company
2323
- Example: [Salesforce Clients](https://appgoblin.info/companies/salesforce.com)
2424
- Example: [AppsFlyer Top Apps](https://appgoblin.info/companies/appsflyer.com)
25+
- Track quarterly app adoption and churn for a known company through added and lost app-change views
2526

2627
- **Ad Tech Insights** — Tracks live ad campaigns and the ad tech domains apps communicate with
2728

@@ -36,10 +37,10 @@
3637
- **App & game developers** looking to grow using free ASO tools
3738
- **Researchers & journalists** needing deep technical analysis across millions of apps
3839
- **Data scientists & marketers** needing reproducible app datasets for modeling, market mapping, and analysis
39-
- **Ad sales teams** prospecting clients by analyzing competitor app portfolios
40+
- **Ad sales teams** prospecting clients by analyzing competitor app portfolios and recent company churn
4041
- **Ad networks & DSPs** doing fraud detection
4142
- **DSPs** needing App-Ads.txt tied to real app store IDs (e.g. `com.example.app`) rather than just domain names
42-
- **Competitor researchers** tracking SDK adoption and growth trends
43+
- **Competitor researchers** tracking SDK adoption, quarterly app churn, and growth trends
4344
- **Privacy advocates** identifying hidden trackers and ad-tech domains in popular apps
4445

4546

backend/api_app/controllers/public/v1/docs.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,10 @@
218218
"description": (
219219
"Endpoint: `GET /api/v1/companies/{company_domain}/app-changes`\n\n"
220220
"Access: Paid tiers only.\n\n"
221-
"Returns ordered Android and iOS app store IDs for apps added to or "
222-
"lost from a company in a specific year/quarter slice, filtered by "
223-
"status and a single tag source."
221+
"Returns ordered Android and iOS app store IDs for a known company's "
222+
"quarterly churn and adoption slice. Use `status=lost` to review apps "
223+
"that removed the company in that year/quarter window, or `status=added` "
224+
"to review apps that newly added it, filtered by a single tag source."
224225
),
225226
}
226227
},

backend/tests/test_v1_api.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1637,9 +1637,10 @@ def test_openapi_json_only_lists_public_v1_paths(self):
16371637
company_app_changes_operation["description"]
16381638
== "Endpoint: `GET /api/v1/companies/{company_domain}/app-changes`\n\n"
16391639
"Access: Paid tiers only.\n\n"
1640-
"Returns ordered Android and iOS app store IDs for apps added to or "
1641-
"lost from a company in a specific year/quarter slice, filtered by "
1642-
"status and a single tag source."
1640+
"Returns ordered Android and iOS app store IDs for a known company's "
1641+
"quarterly churn and adoption slice. Use `status=lost` to review apps "
1642+
"that removed the company in that year/quarter window, or `status=added` "
1643+
"to review apps that newly added it, filtered by a single tag source."
16431644
)
16441645
company_app_changes_examples = company_app_changes_operation["responses"][
16451646
"200"
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
title: "AppGoblin's company changes API tracks B2B churn"
3+
description: "AppGoblin's API lets you track when apps join or leave mobile app B2B companies"
4+
pubDate: "May 31 2026"
5+
heroImage: "/blog-images/appgoblin_app_changes_churn_api.png"
6+
---
7+
8+
# Tracking Vendor Churn and Adoption via API
9+
10+
While many users view the AppGoblin company dataset as a static snapshot, the paid `app-changes` endpoint functions as a highly effective churn-tracking engine for known vendors.
11+
12+
By querying a specific company domain and applying a status filter, you can isolate programmatic shifts in the mobile ecosystem:
13+
14+
* `GET /api/v1/companies/{company_domain}/app-changes`
15+
16+
### The Core Filters
17+
* **`status=lost`**: Reviews the exact apps that *removed* that company's technology during the selected timeframe.
18+
* **`status=added`**: Reviews the exact apps that *newly integrated* that company's technology during the selected timeframe.
19+
20+
---
21+
22+
## Why This Matters
23+
24+
Tracking quarterly ecosystem deltas unlocks powerful programmatic workflows for several core B2B teams:
25+
26+
* **Ad Networks & Mediation Platforms:** Identify apps that recently dropped a direct competitor, instantly generating high-intent lead lists for outbound sales teams.
27+
* **Competitor Research & Strategy:** Track the churn and adoption velocity of specific market alternatives quarter-over-quarter.
28+
* **Compliance, Privacy, & Security:** Programmatically verify that sunsetted SDKs or deprecated third-party integration partners have been completely removed across a fleet of apps.
29+
30+
> **One Important Boundary:** This endpoint provides a quarterly delta for a *known single domain*. It does not explicitly guarantee or prove that App X removed Vendor A and added Vendor B in a single combined response. However, if your team already targets specific vendors, it provides the exact list of additions and removals you need.
31+
32+
---
33+
34+
## Practical Examples
35+
36+
The endpoint allows you to inspect changes across different relationship layers by modifying the `tag_source` parameter:
37+
* `sdk`: For native mobile SDK footprint changes.
38+
* `api_call`: For direct server-to-server or app-to-server API integrations.
39+
* `app_ads_direct`: For authorized ad seller verification changes via `app-ads.txt`.
40+
41+
### 1. Extracting Competitor Churn (`status=lost`)
42+
To find apps that dropped a specific vendor (e.g., AppLovin) during a given quarter, isolate the lost SDK signatures:
43+
44+
```bash
45+
curl -H "X-API-Key: <your-api-token>" \
46+
"https://appgoblin.info/api/v1/companies/applovin.com/app-changes?status=lost&tag_source=sdk&year=2026&quarter=1"
47+
```
48+
49+
### 2. Identifying Market Adoption (`status=added`)
50+
51+
To see which apps are actively onboarding a specific vendor (e.g., ironSource), swap the query to target newly added footprints:
52+
53+
```bash
54+
curl -H "H-API-Key: <your-api-token>" \
55+
"https://appgoblin.info/api/v1/companies/ironsrc.com/app-changes?status=added&tag_source=sdk&year=2026&quarter=1"
56+
```
57+
58+
## Getting Started
59+
60+
This capability is fully live in the production API environment today. To explore the parameters or upgrade your access tier, visit the resources below:
61+
62+
- Explore the interactive payloads in the AppGoblin API Docs.
63+
64+
- Unlock access to premium company endpoints on the AppGoblin Pricing Page.

frontend/src/content/blog/AppGoblin-API-access-for-metrics-companies-more.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "AppGoblin Public API now has free and paid access tiers"
33
description: "You can now generate AppGoblin API keys on any account, use free app endpoints immediately, and unlock company endpoints plus higher quotas on paid plans."
44
pubDate: "May 24 2026"
5-
heroImage: "/blog-images/blog-placeholder-about.jpg"
5+
heroImage: "/blog-images/2026_appgoblin_aso_api_release.png"
66
---
77

88

frontend/src/routes/api-docs/+page.svelte

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,23 @@
3232
<div class="space-y-4 py-4 md:py-6">
3333
<div class="px-4 md:px-6">
3434
<h1 class="text-2xl font-bold md:text-3xl">API Documentation</h1>
35+
<div class="mt-3 max-w-4xl space-y-3 text-sm md:text-base">
36+
<p>
37+
The AppGoblin public API includes paid company churn tracking through
38+
<code>GET /api/v1/companies/{'{'}company_domain{'}'}/app-changes</code>. Query a known
39+
company by quarter, then use <code>status=lost</code> to review apps that removed it or
40+
<code>status=added</code> to review apps that newly adopted it.
41+
</p>
42+
<p>
43+
This is useful for ad-network prospecting, competitor monitoring, and compliance review. For
44+
example, sales teams can pull apps that recently lost a monetization or analytics vendor,
45+
while compliance teams can review recent SDK removals for a specific provider.
46+
</p>
47+
<p class="opacity-80">
48+
The current endpoint is scoped to quarterly company deltas for a known domain. It does not
49+
directly correlate one vendor's removal with another vendor's addition in the same response.
50+
</p>
51+
</div>
3552
</div>
3653

3754
<iframe

frontend/src/routes/companies/[domain]/apps-added/+page.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
<section class="mb-4 space-y-2">
2222
<h2 class="text-xl font-semibold">Recently Added Apps</h2>
2323
<p class="text-sm mb-3">
24-
This view tracks apps that recently added this company through SDK, API-call, or app-ads.txt
25-
direct signals across the latest available quarter and the quarter before it.
24+
This view tracks the quarterly adoption side of this company's churn data through SDK, API-call,
25+
or app-ads.txt direct signals across the latest available quarter and the quarter before it.
2626
</p>
2727
</section>
2828

frontend/src/routes/companies/[domain]/apps-lost/+page.svelte

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@
2121
<section class="mb-4 space-y-2">
2222
<h2 class="text-xl font-semibold">Recently Lost Apps</h2>
2323
<p class="text-sm mb-3">
24-
This view tracks apps that recently removed this company through SDK, API-call, or app-ads.txt
25-
direct signals across the latest available quarter and the quarter before it.
24+
This view tracks the quarterly churn side of this company's app-change data through SDK,
25+
API-call, or app-ads.txt direct signals across the latest available quarter and the quarter
26+
before it.
2627
</p>
2728
</section>
2829

frontend/src/routes/pricing/+page.svelte

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@
9494
},
9595
{
9696
category: 'API Access',
97-
name: 'API /companies endpoint',
97+
name: 'API /companies + churn endpoints',
9898
free: false,
9999
sdk: true,
100100
appads: true,
@@ -211,6 +211,11 @@
211211
through the end of your current billing period. Payments already made are non-refundable.
212212
</p>
213213

214+
<p class="text-sm opacity-80 mt-3 max-w-3xl">
215+
Paid API access also unlocks company churn and adoption tracking, including quarterly
216+
app-change lists for apps a known vendor recently added or lost.
217+
</p>
218+
214219
<br />
215220

216221
<!-- Features Table -->
210 KB
Loading

0 commit comments

Comments
 (0)