Mobile Deep Link Association Monitor avatar

Mobile Deep Link Association Monitor

Pricing

from $2.00 / 1,000 monitor rows

Go to Apify Store
Mobile Deep Link Association Monitor

Mobile Deep Link Association Monitor

Monitor public Apple AASA and Android assetlinks files for mobile universal-link/app-link association drift.

Pricing

from $2.00 / 1,000 monitor rows

Rating

0.0

(0)

Developer

Defenestrator

Defenestrator

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 days ago

Last modified

Categories

Share

Monitor public Apple Universal Links and Android App Links association files for release, growth, and security regressions.

This Actor checks each public domain for:

  • Apple apple-app-site-association files at /.well-known/apple-app-site-association and /apple-app-site-association.
  • Android Digital Asset Links files at /.well-known/assetlinks.json.
  • JSON parseability, HTTP status, redirects, content-type signals, association counts, app IDs, package names, signing certificate fingerprints, path rules, Android 15 dynamic rules, and semantic drift against a previous run snapshot.

It is designed for scheduled monitoring. Run it once to capture a baseline, then paste OUTPUT.snapshot into the next run or scheduled task to alert on changed app IDs, package names, certificate fingerprints, path rules, dynamic rules, broken files, or missing expected associations.

Why teams run it repeatedly

Universal Links and App Links can silently break after web deploys, CDN changes, app ID/package changes, certificate rotations, marketing-domain migrations, or mobile-release changes. A normal website uptime monitor can say the domain is up while iOS or Android link verification is broken. This Actor produces decision-ready rows for mobile QA, growth, lifecycle marketing, and app-security teams.

Input

  • targets: public domains or URLs. URLs are accepted, but only their public host is used.
  • platforms: ios, android, or both.
  • targetExpectations: optional JSON keyed by domain, for example:
{
"www.example.com": {
"iosAppIds": ["TEAMID.com.example.app"],
"androidPackageNames": ["com.example.app"],
"androidSha256Fingerprints": ["AA:BB:CC:..."]
}
}
  • previousSnapshot or previousSnapshotJson: copy from a prior run's OUTPUT.snapshot to enable drift alerts. Malformed, incomplete, or duplicate-key snapshot rows fail the run instead of silently disabling comparison.
  • includeAllRows: keep true for complete baseline exports. When false, only alert/error rows are written and OUTPUT.snapshot intentionally contains only those billed rows, so it is not a complete next-run baseline.

Output rows

Each dataset row represents one target domain and platform file. Important fields include:

  • domain, platform, fileType, finalUrl, statusCode, redirectCount.
  • iosAppIds, androidPackageNames, androidSha256Fingerprints, relationNames.
  • pathRuleCount, componentsRuleCount, dynamicRuleCount.
  • changedSincePrevious, changedFields, missingExpected, semanticHash.
  • alert, priority, riskScore, alertReasons, recommendedAction.

OUTPUT.snapshot contains compact rows suitable for the next run's previousSnapshot input.

Safety and limitations

  • Only public HTTP(S) destinations are supported. Localhost, private, link-local, multicast, documentation, and other reserved IP destinations are blocked; each request and redirect connects only to the exact public addresses validated for that hop.
  • The Actor does not log in, use a browser, call App Store / Play Console APIs, or verify app entitlements/manifests. It validates public website association files only.
  • Apple and Google are trademarks of their respective owners. This Actor is unofficial and is not affiliated with Apple, Google, Android, or any monitored domain.
  • Do not submit private, internal, confidential, or VPN-only hostnames.

Pricing

Buyer-unit price: $2.00 per 1,000 domain/platform association rows written to the default dataset, plus the $0.00005 run-start event.

This Actor uses Apify Pay Per Event (PPE) pricing:

  • apify-actor-start: $0.00005 per run start.
  • apify-default-dataset-item: $0.002 per dataset row (Monitor row).
  • Platform usage is included in the event price; users do not pay a separate platform-usage pass-through.
  • A dataset row is exactly one emitted domain/platform result. With includeAllRows=false, clean non-alert checks are not emitted or item-charged.
  • The Actor checks the PPE charge result, stops before further source work when the dataset-item charge limit is reached, and reports intended versus actually written rows.

Use Apify's max total charge setting before starting a run if you want a hard spend cap.