Peach Payments
mSDK v2 · Target List Research
JUL 2026
Companion to the campaign planLiving document · updated as we expand

Who to
put the
ads in front of.

Building the target-company list for the mSDK v2 LinkedIn campaign: South African businesses with consumer apps that take in-app payments, assembled from public app-store data and uploaded as a Matched Audience. Method, results, and the shortlist to review, all here.

01

The approach

Our ICP qualifier is visible in public data, which most B2B lists can't say.

A company qualifies for mSDK ads if it has a consumer app that takes in-app payments. That's observable in the app stores, so we build the list from app-store and web data, then hand it to LinkedIn to match. Nothing scrapes LinkedIn; discovery happens entirely outside it.

Why category, not SDK detection. Category membership (food delivery, retail, travel, wallets) is itself the "takes payments" qualifier, and install count is the scale signal. Confirming whose payment SDK an app runs would only matter for per-company messaging, which ad audiences don't do. So SDK intelligence is deferred to a later enhancement (see the competitor-signal playbook).
02

The pipeline

Every step is a repeatable script in the project's list-builder folder.
01

Discover

Google Play + Apple charts across SA consumer categories, plus a by-name hunt for betting operators.

02

Dedupe & tier

Group apps into companies; tier by install / rating scale (T1 big or cross-platform, T3 long tail).

03

SA filter

Keep the South African companies: .za domains, then a homepage-signal pass to recover SA merchants on .com.

04

ICP flag

Drop banks, telcos, government and payment providers — not merchant prospects.

05

Review

Human tick over the ambiguous .com recoveries (this page, section 05).

06

Enrich

Resolve each company to its LinkedIn page URL (RapidAPI / Apify / spider.cloud).

07

Exclude

Remove existing Peach customers via HubSpot before upload.

08

Upload

Company Matched Audience in Campaign Manager; wait 24-48h to match, verify size clears 300.

03

Where it landed

Companies, not people — mind the units. The 300 threshold counts matched members, not companies. LinkedIn expands our companies to their employees, then filters to relevant roles; the Tier-1/2 companies alone carry enough staff to put the member pool in the low thousands. Target by job function + seniority (not narrow exact titles) to keep that pool high, and confirm the estimate in Campaign Manager before spending. Existing Peach customers, financial institutions and government are all split out of this acquisition number.
04

Acquisition targets

Verified SA merchants, not already Peach customers, with a resolved LinkedIn page. Both links clickable.
CompanyWebsiteLinkedInTierVerticals
This is the clean acquisition upload set: checked against the real 23,630-merchant Peach customer list (Lightdash), with mismatched SerpAPI URLs removed. Existing Peach customers are split out below as a separate upsell audience.
05

Customers & held back

Split out of acquisition, kept on record — some are opportunities, not waste.

Existing Peach merchants are an upsell audience for mSDK (they trust Peach; the mobile SDK is a new product to them), not budget waste — decide whether to run them as a separate expansion campaign. The rest are genuinely held back.

Already Peach customers — upsell candidates

CompanyWebsiteLinkedInPeach merchant nameTier

Excluded — financial / government

CompanyDomainReason

Dropped — wrong LinkedIn match (needs manual URL)

CompanyDomainBad matchTier

Unresolved — no LinkedIn page found

CompanyDomainTier
06

Tools & risk tiers

We stay on the low rungs. LinkedIn is only ever touched at the sanctioned upload step.
L0 · Use

App-store & web

Google Play + Apple + homepage checks. No LinkedIn. Our discovery engine.

L1 · Use

Public-page enrich

Apify anchor, spider.cloud — public LinkedIn pages, no login, no account risk.

L2 · Use

Scraped-index API

RapidAPI Fresh LinkedIn — vendor absorbs the scraping; name → company URL.

L3 · Careful

Own session

Sales Navigator in ego-lite, read-only, human-paced. For Tier 1 validation only.

L4 · Reject

Cloud cookie actors

Handing our session to datacenter scrapers. LinkedIn's classic ban trigger. Never.

ToolJobCostStatus
google-play-scraperSA Play charts + developer site + installsFreeTested
Apple RSS + iTunesSA App Store charts + seller siteFreeTested
Apify anchor actorCompany name → LinkedIn page + websiteFree tierTested
RapidAPI Fresh LinkedInDomain → LinkedIn company record$10/moTested
spider.cloudBulk LinkedIn company-page fetch~$5 balanceTested
Sales NavigatorTier 1 account validation (ego-lite)TrialActive
42matters / SimilarwebApp-SDK intelligenceEnterpriseDropped — sales-gated
07

How to re-run it

Scripts live in Ad Campaign/list-builder/. Repeatable and cheap.
1

Discover

node discover-playstore.mjs + discover-playstore-delta.mjs + discover-apple.mjs → raw JSON per store.

2

Merge & tier

node merge-and-tier.mjs → dedupes to companies, tiers, flags non-merchants and global giants → companies.csv.

3

Recover .com SA merchants

node recover-sa-dotcom.mjs then refine-recovered.mjs → homepage + contact-signal checks → sa-recovered.json (the review set on this page).

4

Enrich + finalize

enrich-linkedin.mjs (RapidAPI domain lookup) then finalize-enrich.mjs (SerpAPI fallback + flag non-merchants) → matched-audience-upload.csv.

08

Status & next

Living document — this section moves as we expand.

Discovery → enrich → verify → exclude

182 assembled, enriched to LinkedIn URLs, bad SerpAPI matches removed, and cross-checked against the real 23,630-merchant Peach customer list (Lightdash). 103 clean acquisition targets in matched-audience-upload.csv.

Decide on the 35 customers

Run existing Peach merchants as a separate mSDK upsell campaign, or leave them out. Your call (section 05).

Upload

Company Matched Audience in Campaign Manager; wait 24-48h, verify size clears 300, attach to C1/C2.

+

Later enhancements

Competitor-signal passes (website payment-gateway detection; DIY APK SDK grep) — documented, for a future session.

← The campaign plan
Sources & references