{"id":8241,"date":"2026-10-28T08:17:00","date_gmt":"2026-10-28T01:17:00","guid":{"rendered":"https:\/\/adtek.agency\/skadnetwork-adattributionkit-ios-app-ads\/"},"modified":"2026-10-28T09:44:34","modified_gmt":"2026-10-28T02:44:34","slug":"skadnetwork-adattributionkit-ios-app-ads","status":"publish","type":"post","link":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/","title":{"rendered":"Measuring iOS app ads after ATT: SKAdNetwork, AdAttributionKit and why MMP numbers differ"},"content":{"rendered":"<p><em>Updated October 2026.<\/em><\/p>\n<p>AdAttributionKit is the attribution framework Apple now recommends: the SKAdNetwork documentation page opens with advice to use AdAttributionKit for app campaigns on the App Store and on alternative app marketplaces (<a href=\"https:\/\/developer.apple.com\/documentation\/storekit\/skadnetwork\" target=\"_blank\" rel=\"nofollow noopener\">Apple Developer, SKAdNetwork<\/a>). Since ATT, measuring iOS app ads relies on two sources: device-level data from users who agree to tracking, and aggregated postbacks from Apple&#8217;s two frameworks for everyone else. This article walks through SKAdNetwork and AdAttributionKit, how to set them up with an MMP, how to read numbers that do not match, incrementality testing, a sample conversion value table and a checklist to run before you increase your <a href=\"https:\/\/adtek.agency\/en\/glossary\/user-acquisition-ua\/\">user acquisition<\/a> budget.<\/p>\n<h2>ATT and the IDFA: the change that started with iOS 14.5<\/h2>\n<p>Since iOS 14.5, an app must ask permission through <a href=\"https:\/\/adtek.agency\/en\/glossary\/app-tracking-transparency-att\/\">App Tracking Transparency (ATT)<\/a> before it tracks users or reads the <a href=\"https:\/\/adtek.agency\/en\/glossary\/identifier-for-advertisers-idfa\/\">IDFA<\/a> (the identifier for advertisers). If the user declines, the IDFA returns all zeros (<a href=\"https:\/\/developer.apple.com\/documentation\/adsupport\/asidentifiermanager\/advertisingidentifier\" target=\"_blank\" rel=\"nofollow noopener\">Apple Developer, advertisingIdentifier<\/a>).<\/p>\n<p>Apple&#8217;s <a href=\"https:\/\/developer.apple.com\/app-store\/user-privacy-and-data-use\/\" target=\"_blank\" rel=\"nofollow noopener\">User Privacy and Data Use<\/a> page spells out a few points that are often misread. You may not use a hashed email address or phone number to track someone who has not agreed. Session IDs, fingerprint IDs and device graph IDs are also identifiers that need permission. The IDFV may only be used for analytics across apps from the same developer.<\/p>\n<p>The result: device-level <a href=\"https:\/\/adtek.agency\/en\/glossary\/mobile-attribution\/\">mobile attribution<\/a> now works only for the group that opts in. The group that declines is measured through Apple&#8217;s aggregated frameworks, which are slower and less detailed. The APIs of both frameworks can be called without an ATT request (<a href=\"https:\/\/developer.apple.com\/documentation\/adattributionkit\" target=\"_blank\" rel=\"nofollow noopener\">Apple Developer, AdAttributionKit<\/a>). How to ask for permission correctly is covered in our article on <a href=\"https:\/\/adtek.agency\/en\/att-ios-app-tracking-transparency-rules\/\">Apple&#8217;s ATT rules<\/a>.<\/p>\n<h2>SKAdNetwork 4: postbacks, conversion values and crowd anonymity<\/h2>\n<p><a href=\"https:\/\/adtek.agency\/en\/glossary\/skadnetwork\/\">SKAdNetwork<\/a> attributes installs from ads without the IDFA. The current version is 4.0, which runs on iOS 16.1 and later (<a href=\"https:\/\/developer.apple.com\/documentation\/storekit\/skadnetwork-4-release-notes\" target=\"_blank\" rel=\"nofollow noopener\">SKAdNetwork 4 release notes<\/a>).<\/p>\n<p><strong>1. Three conversion windows<\/strong>, counted from the first app open: days 0 to 2, days 3 to 7 and days 8 to 35. Each conversion window produces at most one postback. Postback 1 arrives after a random delay of 24 to 48 hours; postbacks 2 and 3 arrive after 24 to 144 hours. The app can lock the value to receive the postback sooner, but any later events in that conversion window are then ignored. AdAttributionKit uses exactly the same windows (<a href=\"https:\/\/developer.apple.com\/documentation\/adattributionkit\/receiving-postbacks-in-multiple-conversion-windows\" target=\"_blank\" rel=\"nofollow noopener\">Apple Developer, AAK conversion windows<\/a>).<\/p>\n<p><strong>2. Conversion values.<\/strong> The fine value is a 6-bit number from 0 to 63, and it appears only in postback 1. The coarse value has three levels, low, medium and high, and is used in postbacks 2 and 3, and in postback 1 when data is limited (<a href=\"https:\/\/developer.apple.com\/documentation\/adattributionkit\/identifying-the-parameters-in-a-postback\" target=\"_blank\" rel=\"nofollow noopener\">Apple Developer, postback parameters<\/a>). The app decides what each level means.<\/p>\n<p><strong>3. Crowd anonymity.<\/strong> Version 4 replaces the campaign ID (up to 100 values) with a 4-digit source identifier. Apple assigns each install to a postback data tier based on the crowd size of the app that showed the ad, the advertised app, the country and the source identifier. Fewer installs mean a postback with less information (<a href=\"https:\/\/developer.apple.com\/documentation\/storekit\/receiving-postbacks-in-multiple-conversion-windows\" target=\"_blank\" rel=\"nofollow noopener\">Apple Developer, Receiving postbacks in multiple conversion windows<\/a>):<\/p>\n<table>\n<thead>\n<tr>\n<th>Tier<\/th>\n<th>Postback 1<\/th>\n<th>Postbacks 2 and 3<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Tier 3<\/td>\n<td>2 to 4 digit source identifier, fine value, source app, country code<\/td>\n<td>2-digit source identifier, coarse value<\/td>\n<\/tr>\n<tr>\n<td>Tier 2<\/td>\n<td>2 to 4 digit source identifier, fine value<\/td>\n<td>Same as above<\/td>\n<\/tr>\n<tr>\n<td>Tier 1<\/td>\n<td>2-digit source identifier, coarse value<\/td>\n<td>Same as above<\/td>\n<\/tr>\n<tr>\n<td>Tier 0<\/td>\n<td>2-digit source identifier only<\/td>\n<td>None<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>This table explains a common mistake: splitting iOS spend into too many small campaigns. Each campaign gets few installs, drops to Tier 0 or 1, and loses the fine value entirely. Google Ads also advises limiting the number of iOS campaigns, because many campaigns blur SKAdNetwork data (<a href=\"https:\/\/support.google.com\/google-ads\/answer\/10384955?hl=en\" target=\"_blank\" rel=\"nofollow noopener\">Google Ads Help, iOS App campaigns<\/a>).<\/p>\n<h2>AdAttributionKit: where it stands in 2026<\/h2>\n<p>AdAttributionKit (AAK) arrived with iOS 17.4 (early 2024) and measures ads for both the App Store and alternative app marketplaces. Apple Ads help now says &#8220;SKAdNetwork is now called AdAttributionKit&#8221; (<a href=\"https:\/\/ads.apple.com\/app-store\/help\/attribution\/0094-ad-attribution-overview\" target=\"_blank\" rel=\"nofollow noopener\">Apple Ads, App ad attribution overview<\/a>).<\/p>\n<h3>Re-engagement: measuring people who already have the app<\/h3>\n<p>SKAdNetwork cannot measure <a href=\"https:\/\/adtek.agency\/en\/glossary\/re-engagement\/\">re-engagement<\/a>. AAK can. A re-engagement counts when someone who already has the app taps a custom-rendered ad, or taps the Open button on a StoreKit-rendered ad (<a href=\"https:\/\/developer.apple.com\/documentation\/adattributionkit\/receiving-ad-attributions-and-postbacks\" target=\"_blank\" rel=\"nofollow noopener\">Apple Developer, Receiving ad attributions and postbacks<\/a>). Things to know:<\/p>\n<ul>\n<li>Only taps count; views do not. Networks that lose the attribution get no postback.<\/li>\n<li>From iOS 18, an ad can open the app&#8217;s universal link, with the AdAttributionKitReengagementOpen parameter attached.<\/li>\n<li>The app has only 2 days to send its first conversion value update, compared with 60 days for an install.<\/li>\n<li>Apple caps the number of re-engagements per app per month and per device per year.<\/li>\n<li>The conversion-type field reads download, redownload or reengagement.<\/li>\n<\/ul>\n<p>AAK handles measurement only. Sending a list of your app users to an ad network for retargeting still counts as tracking, and you can do it only for users who agreed to ATT.<\/p>\n<p>The AdAttributionKit Updates page (checked October 17, 2026) lists the most recent update as June 2025 (<a href=\"https:\/\/developer.apple.com\/documentation\/updates\/adattributionkit\" target=\"_blank\" rel=\"nofollow noopener\">Apple Developer, AdAttributionKit Updates<\/a>). The newest features:<\/p>\n<ul>\n<li><strong>Custom attribution windows:<\/strong> the default is 30 days for clicks and 1 day for views; an app can set 1 to 30 days for clicks and 1 to 7 days for views.<\/li>\n<li><strong>Cooldown<\/strong> of 0 to 720 hours between two conversions, and <strong>conversion tags<\/strong> (iOS 18.4) for overlapping re-engagements.<\/li>\n<li><strong>Development postbacks:<\/strong> generate test postbacks in the iPhone&#8217;s Developer settings and choose the postback data tier (<a href=\"https:\/\/developer.apple.com\/documentation\/adattributionkit\/creating-postbacks-in-developer-settings\" target=\"_blank\" rel=\"nofollow noopener\">Apple Developer, developer settings<\/a>).<\/li>\n<\/ul>\n<p>How the two frameworks relate: Apple recommends AAK, SKAdNetwork keeps running alongside it, and both share the same ad network IDs. Impressions from both frameworks are ranked together, a click beats a view, and only one impression wins. An SDK that integrates both calls the update APIs of both (<a href=\"https:\/\/developer.apple.com\/documentation\/adattributionkit\/adattributionkit-skadnetwork-interoperability\" target=\"_blank\" rel=\"nofollow noopener\">Apple Developer, interoperability<\/a>).<\/p>\n<p>Platform support is still uneven. Google Ads (checked October 2026) does not yet support AAK. Apple Ads has registered for SKAdNetwork since April 10, 2025 (<a href=\"https:\/\/ads.apple.com\/app-store\/help\/attribution\/0028-measuring-ad-performance\" target=\"_blank\" rel=\"nofollow noopener\">Apple Ads Help<\/a>), and AppsFlyer notes that from iOS 26.2, Apple Ads sends postbacks through AAK (<a href=\"https:\/\/support.appsflyer.com\/hc\/en-us\/articles\/34395758837137-Bulletin-Apple-Ads-now-supports-SKAN-attribution\" target=\"_blank\" rel=\"nofollow noopener\">AppsFlyer, updated May 2026<\/a>). You should receive postback copies from both frameworks.<\/p>\n<h3>SKAdNetwork vs AdAttributionKit compared<\/h3>\n<table>\n<thead>\n<tr>\n<th>Criterion<\/th>\n<th>SKAdNetwork 4<\/th>\n<th>AdAttributionKit<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Minimum iOS<\/td>\n<td>16.1<\/td>\n<td>17.4; re-engagement from 18<\/td>\n<\/tr>\n<tr>\n<td>Install source<\/td>\n<td>App Store<\/td>\n<td>App Store and alternative app marketplaces<\/td>\n<\/tr>\n<tr>\n<td>Re-engagement<\/td>\n<td>No<\/td>\n<td>Yes, clicks only<\/td>\n<\/tr>\n<tr>\n<td>Attribution window<\/td>\n<td>Fixed: 30 days for clicks, 24 hours for views<\/td>\n<td>Same default as SKAN, customizable in Info.plist<\/td>\n<\/tr>\n<tr>\n<td>Cooldown, conversion tags<\/td>\n<td>No<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td>Key for receiving postback copies<\/td>\n<td>NSAdvertisingAttributionReportEndpoint<\/td>\n<td>AttributionCopyEndpoint<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>What an MMP does in UA measurement<\/h2>\n<p>An <a href=\"https:\/\/adtek.agency\/en\/glossary\/mobile-measurement-partner-mmp\/\">MMP (mobile measurement partner)<\/a> such as AppsFlyer, Adjust, Branch or Singular sits between your app and the ad networks and does four jobs:<\/p>\n<ol>\n<li>Device-level attribution for users who agree to ATT, and for sources outside ad networks such as links, QR codes and <a href=\"https:\/\/adtek.agency\/en\/glossary\/deep-linking\/\">deep linking<\/a>.<\/li>\n<li>Collecting SKAN and AAK postbacks from every network, decoding conversion values according to your schema, and deduplicating them against device-level data.<\/li>\n<li>Receiving postback copies for cross-checking, because the conversion value is not part of Apple&#8217;s signature and the numbers a network reports back can be altered (according to AppsFlyer).<\/li>\n<li>Filtering out <a href=\"https:\/\/adtek.agency\/en\/glossary\/install-fraud\/\">install fraud<\/a> before networks get paid.<\/li>\n<\/ol>\n<h3>Postback copies: developers receive them directly since iOS 15<\/h3>\n<p>In 2021, advertisers often complained that Apple sent postbacks only to ad networks. Since iOS 15, if the app registers for it, the device also sends the developer a copy of the winning postback, identical to the one the network receives and sent at the same time (<a href=\"https:\/\/developer.apple.com\/documentation\/storekit\/receiving-ad-attributions-and-postbacks\" target=\"_blank\" rel=\"nofollow noopener\">Apple Developer, SKAdNetwork postbacks<\/a>). The registration keys are in the table above. To receive postback copies for re-engagement as well, turn on the &#8220;Opt in for Reengagement Postback Copies&#8221; option (<a href=\"https:\/\/developer.apple.com\/documentation\/adattributionkit\/configuring-an-advertised-app\" target=\"_blank\" rel=\"nofollow noopener\">Apple Developer, Configuring an advertised app<\/a>).<\/p>\n<h3>Setting up AdAttributionKit with an MMP<\/h3>\n<ol>\n<li>Upgrade the MMP SDK to a version that supports both SKAdNetwork 4 and AAK. If old code still calls registerAppForAdNetworkAttribution(), remove it: the function was deprecated in iOS 15.4, and Apple points to updatePostbackConversionValue instead (<a href=\"https:\/\/developer.apple.com\/documentation\/storekit\/skadnetwork\/registerappforadnetworkattribution()\" target=\"_blank\" rel=\"nofollow noopener\">Apple Developer, registerAppForAdNetworkAttribution()<\/a>); the AAK equivalent is updateConversionValue. The app has to call the update function at least once, ideally on first open, or the conversion window never starts.<\/li>\n<li>Declare both postback copy keys using the domain your MMP gives you.<\/li>\n<li>Server-to-server events sent to the MMP should not use the IDFA as the matching key; use the IDFV, the MMP&#8217;s own ID or your internal user ID.<\/li>\n<li>Enter the conversion value schema (see below), then test it with development postbacks across several postback data tiers.<\/li>\n<\/ol>\n<h2>Why Meta and Google numbers differ from your MMP<\/h2>\n<p>Do not aim for a 100% match between the two sides, because each one uses a different attribution model (<a href=\"https:\/\/support.appsflyer.com\/hc\/en-us\/articles\/4410481130641-Meta-ads-discrepancies\" target=\"_blank\" rel=\"nofollow noopener\">AppsFlyer, Meta ads discrepancies, updated November 2025<\/a>; <a href=\"https:\/\/support.appsflyer.com\/hc\/en-us\/articles\/4404976682257-iOS-metrics-in-the-Overview-dashboard-SKAN-and-AppsFlyer-metrics-side-by-side\" target=\"_blank\" rel=\"nofollow noopener\">AppsFlyer, iOS metrics dashboard, updated May 2025<\/a>):<\/p>\n<table>\n<thead>\n<tr>\n<th>Cause<\/th>\n<th>What happens<\/th>\n<th>What to do<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Attribution window<\/td>\n<td>Meta defaults to 7-day click, 1-day view; the MMP lets you set 1 to 30 days<\/td>\n<td>Set the MMP window to match Meta<\/td>\n<\/tr>\n<tr>\n<td>Self-attribution<\/td>\n<td>Meta claims the install regardless of other sources; the MMP uses last click across sources<\/td>\n<td>A network total higher than the MMP total is normal<\/td>\n<\/tr>\n<tr>\n<td>Modeling<\/td>\n<td>Meta uses a probabilistic model (AEM) on iOS, so some installs show up on only one side; Google uses conversion modeling<\/td>\n<td>Label clearly which columns are modeled numbers<\/td>\n<\/tr>\n<tr>\n<td>Time zone, install date<\/td>\n<td>Meta defaults to PST, SKAN uses UTC; the SKAN install date is inferred from when the postback arrives; Google Ads data in SKAN can lag by up to 13 days<\/td>\n<td>Use one time zone; look at a range of at least 7 days that ends 3 to 5 days before today<\/td>\n<\/tr>\n<tr>\n<td>Event lifetime<\/td>\n<td>Meta counts events within 7 days of the click, AppsFlyer up to 180 days<\/td>\n<td>Compare revenue on the same day cutoff<\/td>\n<\/tr>\n<tr>\n<td>Duplicate events<\/td>\n<td>The same event is sent from both the Facebook SDK and the MMP, and Meta does not deduplicate it<\/td>\n<td>Send each event from one source only<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>I track the ratio, not the raw number. A hypothetical example: Meta reports 1,000 installs and the MMP credits 700 to Meta, a ratio of 0.70. Three weeks in a row around 0.70 is the gap caused by different models. If week five drops to 0.40 with an unchanged budget, something has broken: a new SDK, a changed schema, duplicate events. To find out which channel actually brings in additional users, run <a href=\"https:\/\/adtek.agency\/en\/incrementality-testing-for-marketers\/\">incrementality testing<\/a> instead of arguing over which number is right.<\/p>\n<h3>Reading SKAN and AAK reports<\/h3>\n<p>As the share of installs attributed through postbacks grows, what drops first is your ability to measure, not necessarily performance. I look at four things:<\/p>\n<ul>\n<li>The most recent days are always incomplete, because postback 1 can arrive about 4 days after the first app open.<\/li>\n<li>The share of postbacks with a fine value, with only a coarse value, or empty, broken down by source. A rising empty share usually comes from splitting campaigns too thin.<\/li>\n<li>If the source identifier is down to 2 digits, ask the ad network whether those 2 digits encode the campaign or the creative.<\/li>\n<li>Blended CPA and ROAS across all of iOS as the baseline while per-channel numbers are still fuzzy.<\/li>\n<\/ul>\n<p>For users who have not agreed, ads cannot be personalized based on the behavior they leave in your app, so your product feed should favor best sellers. A\/B tests run slower because you wait for postbacks, so test fewer variants.<\/p>\n<h2>Running an incrementality test for an iOS app<\/h2>\n<p>Without the IDFA, user-level tests are hard, but a geo test only compares totals, so it does not need the IDFA:<\/p>\n<ol>\n<li>Split provinces and cities into two groups with similar install and revenue history; the control group turns off the channel you want to measure.<\/li>\n<li>Measure with total iOS installs, organic included, and revenue by region from the MMP or your internal data, because postbacks carry no province-level detail.<\/li>\n<li>Keep creative, pricing and promotions the same across regions.<\/li>\n<li>Compare the gap between the two groups with the gap before the test, and convert it into cost per incremental install.<\/li>\n<\/ol>\n<p>Google Ads offers Conversion Lift based on geography, which supports App campaigns too, but you have to contact a Google representative and the campaign must target a single country (<a href=\"https:\/\/support.google.com\/google-ads\/answer\/14097193?hl=en\" target=\"_blank\" rel=\"nofollow noopener\">Google Ads Help, Conversion Lift based on geography<\/a>). A hypothetical example: Meta reports 1,000 installs and the test finds 400 incremental installs, so you apply a 0.4 multiplier to Meta&#8217;s numbers when allocating budget.<\/p>\n<h2>A quick comparison with Android<\/h2>\n<p>Android has no permission layer like ATT yet. The Install Referrer API returns referral data straight from Google Play (<a href=\"https:\/\/developer.android.com\/google\/play\/installreferrer\" target=\"_blank\" rel=\"nofollow noopener\">Android Developers, updated July 2025<\/a>), so Android numbers usually match better than iOS numbers. Privacy Sandbox, once seen as &#8220;Android&#8217;s ATT&#8221;, was discontinued by Google in an announcement on October 17, 2025, Attribution Reporting API included (<a href=\"https:\/\/privacysandbox.com\/news\/update-on-plans-for-privacy-sandbox-technologies\/\" target=\"_blank\" rel=\"nofollow noopener\">Privacy Sandbox, October 17, 2025<\/a>).<\/p>\n<h2>Setting up a SKAdNetwork conversion value schema for an e-commerce app<\/h2>\n<p>A schema is the table that defines what each conversion value means. Without one, a postback is just a number, so this is the part that decides the quality of your iOS app ad measurement:<\/p>\n<ol>\n<li>Pick events that reflect value within the first 48 hours, because only postback 1 carries a fine value.<\/li>\n<li>Order values from least to most important. For ads signed with SKAN 3 or earlier, the 24-hour timer only restarts when the new value is higher than the old one.<\/li>\n<li>Assign coarse values that mean something, because Tiers 0 and 1 and postbacks 2 and 3 carry only coarse values.<\/li>\n<li>Choose between locking early (data reaches the algorithm faster) and waiting for the conversion window to close (fuller measurement).<\/li>\n<li>Enter the schema in your MMP and use one version for every network; review it after 2 weeks of live traffic.<\/li>\n<\/ol>\n<p>A sample table, a hypothetical example for a cosmetics app with an average order value of about VND 350,000:<\/p>\n<table>\n<thead>\n<tr>\n<th>Fine value<\/th>\n<th>Meaning (postback 1, days 0 to 2)<\/th>\n<th>Coarse<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>0<\/td>\n<td>First app open<\/td>\n<td>low<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Account sign-up<\/td>\n<td>low<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Add to cart<\/td>\n<td>medium<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Checkout started<\/td>\n<td>medium<\/td>\n<\/tr>\n<tr>\n<td>10 to 19<\/td>\n<td>First order, 10 revenue bands of VND 100,000 each (10 is under 100,000; 19 is 900,000 or more)<\/td>\n<td>medium if under 300,000, high if 300,000 or more<\/td>\n<\/tr>\n<tr>\n<td>30 to 39<\/td>\n<td>2 or more orders, same bands applied to cumulative revenue<\/td>\n<td>high<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Postback 2 (days 3 to 7) and postback 3 (days 8 to 35) carry only coarse values: low means the user returned to the app, medium means 1 order, high means 2 or more orders or cumulative revenue of VND 700,000 or more. Postback 3 is the closest signal to <a href=\"https:\/\/adtek.agency\/en\/glossary\/lifetime-value-ltv\/\">LTV<\/a> that SKAN gives you; the share of high values by source helps you estimate day-35 <a href=\"https:\/\/adtek.agency\/en\/glossary\/return-on-ad-spend-roas\/\">ROAS<\/a>.<\/p>\n<p>Do not spend all 64 values on 64 events, because fine values only exist from Tier 2 up. Do not change the schema mid-campaign. Do not set &#8220;app open&#8221; as coarse high, or the algorithm will optimize for people who install and leave. The events in your schema should match the set of <a href=\"https:\/\/adtek.agency\/en\/app-marketing-kpis\/\">app marketing KPIs<\/a> your team already reports internally.<\/p>\n<h2>iOS app ad measurement checklist before you scale UA spend<\/h2>\n<p>Answer each item yes or no. If any item is still a no, hold off on increasing the budget.<\/p>\n<ol>\n<li>The MMP SDK is current and supports both SKAdNetwork and AdAttributionKit; the code no longer calls registerAppForAdNetworkAttribution().<\/li>\n<li>Info.plist has both postback copy keys pointing to the MMP, and the postback copy report already shows data.<\/li>\n<li>The conversion value schema is documented and identical across the MMP, Meta and Google.<\/li>\n<li>Development postbacks have been tested at Tier 0 and Tier 3, and the server reads them correctly.<\/li>\n<li>The ATT opt-in rate is tracked weekly.<\/li>\n<li>The attribution window and time zone in the MMP match each platform.<\/li>\n<li>Each event reaches Meta from one source only.<\/li>\n<li>There are few enough iOS campaigns that most postbacks carry a fine value.<\/li>\n<li>You have at least 3 weeks of history for the platform to MMP ratio.<\/li>\n<li>Fraud protection is on; AAK re-engagement links open the right screen.<\/li>\n<li>You have recorded your baseline <a href=\"https:\/\/adtek.agency\/en\/glossary\/organic-install\/\">organic install<\/a> level, so you can see whether ads are eating into organic installs.<\/li>\n<\/ol>\n<p>Only then choose channels and budgets according to the <a href=\"https:\/\/adtek.agency\/en\/app-marketing-strategy\/\">app marketing strategy<\/a> for each stage; if the app is about to launch, go back over the steps for an <a href=\"https:\/\/adtek.agency\/en\/app-launch-checklist-app-store-google-play\/\">app launch on the App Store<\/a> first. If you need a review of your iOS measurement setup or a UA plan for your app, Adtek&#8217;s <a href=\"https:\/\/adtek.agency\/en\/solution\/app-user-acquisition\/\">App User Acquisition<\/a> team (Apple Ads certified) can work through it with you via the <a href=\"https:\/\/adtek.agency\/en\/contact\/\">Adtek contact page<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apple now recommends AdAttributionKit, while SKAdNetwork keeps running alongside it. How both frameworks report iOS installs, how to set them up with an MMP, why platform numbers never match the MMP, and what to check before raising UA spend.<\/p>\n","protected":false},"author":4,"featured_media":8243,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_meta-robots-noindex":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_opengraph-image-id":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_twitter-image-id":"","inline_featured_image":false,"footnotes":""},"categories":[216,217],"tags":[],"class_list":["post-8241","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digital-marketing-en","category-growth-marketing-en"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SKAdNetwork and AdAttributionKit: Measuring iOS App Ads<\/title>\n<meta name=\"description\" content=\"SKAdNetwork and AdAttributionKit for iOS app ads: postbacks, conversion values, MMP setup, why Meta and MMP numbers differ, and a checklist before scaling.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SKAdNetwork and AdAttributionKit: Measuring iOS App Ads\" \/>\n<meta property=\"og:description\" content=\"SKAdNetwork and AdAttributionKit for iOS app ads: postbacks, conversion values, MMP setup, why Meta and MMP numbers differ, and a checklist before scaling.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/\" \/>\n<meta property=\"og:site_name\" content=\"Adtek Growth Marketing Agency\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/101888089257566\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-28T01:17:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-28T02:44:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/adtek.agency\/wp-content\/uploads\/2026\/10\/do-luong-quang-cao-app-ios-cover.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1260\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Tin Le\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tin Le\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/skadnetwork-adattributionkit-ios-app-ads\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/skadnetwork-adattributionkit-ios-app-ads\\\/\"},\"author\":{\"name\":\"Tin Le\",\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/#\\\/schema\\\/person\\\/89da4c8949908c5ec6b7500ef0236716\"},\"headline\":\"Measuring iOS app ads after ATT: SKAdNetwork, AdAttributionKit and why MMP numbers differ\",\"datePublished\":\"2026-10-28T01:17:00+00:00\",\"dateModified\":\"2026-10-28T02:44:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/skadnetwork-adattributionkit-ios-app-ads\\\/\"},\"wordCount\":2617,\"publisher\":{\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/skadnetwork-adattributionkit-ios-app-ads\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/adtek.agency\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/skadnetwork-adattributionkit-ios-app-ads-cover.jpg\",\"articleSection\":[\"Digital Marketing\",\"Growth Marketing\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/skadnetwork-adattributionkit-ios-app-ads\\\/\",\"url\":\"https:\\\/\\\/adtek.agency\\\/en\\\/skadnetwork-adattributionkit-ios-app-ads\\\/\",\"name\":\"SKAdNetwork and AdAttributionKit: Measuring iOS App Ads\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/skadnetwork-adattributionkit-ios-app-ads\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/skadnetwork-adattributionkit-ios-app-ads\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/adtek.agency\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/skadnetwork-adattributionkit-ios-app-ads-cover.jpg\",\"datePublished\":\"2026-10-28T01:17:00+00:00\",\"dateModified\":\"2026-10-28T02:44:34+00:00\",\"description\":\"SKAdNetwork and AdAttributionKit for iOS app ads: postbacks, conversion values, MMP setup, why Meta and MMP numbers differ, and a checklist before scaling.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/skadnetwork-adattributionkit-ios-app-ads\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/adtek.agency\\\/en\\\/skadnetwork-adattributionkit-ios-app-ads\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/skadnetwork-adattributionkit-ios-app-ads\\\/#primaryimage\",\"url\":\"https:\\\/\\\/adtek.agency\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/skadnetwork-adattributionkit-ios-app-ads-cover.jpg\",\"contentUrl\":\"https:\\\/\\\/adtek.agency\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/skadnetwork-adattributionkit-ios-app-ads-cover.jpg\",\"width\":2400,\"height\":1260,\"caption\":\"Measuring iOS app ads after ATT: SKAdNetwork, AdAttributionKit and why MMP numbers differ\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/skadnetwork-adattributionkit-ios-app-ads\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/adtek.agency\\\/en\\\/homepage\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Measuring iOS app ads after ATT: SKAdNetwork, AdAttributionKit and why MMP numbers differ\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/adtek.agency\\\/en\\\/\",\"name\":\"Adtek\",\"description\":\"Adtek was founded in 2021 to help brands grow their businesses from branding building to revenue growth.\",\"publisher\":{\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/#organization\"},\"alternateName\":\"Adtek Growth Marketing Agency\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/adtek.agency\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/#organization\",\"name\":\"Adtek\",\"alternateName\":\"Adtek Growth Marketing Agency\",\"url\":\"https:\\\/\\\/adtek.agency\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/adtek.agency\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/logo-adtek.png\",\"contentUrl\":\"https:\\\/\\\/adtek.agency\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/logo-adtek.png\",\"width\":440,\"height\":369,\"caption\":\"Adtek\"},\"image\":{\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/101888089257566\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/adtek-growth-marketing-agency\\\/\",\"https:\\\/\\\/www.tiktok.com\\\/@adtek.growth.marketing\",\"https:\\\/\\\/www.google.com\\\/search?kgmid=\\\/g\\\/11x7pm71mh\"],\"email\":\"contact@adtek.agency\",\"telephone\":\"+84932349434\",\"legalName\":\"C\u00f4ng ty C\u1ed5 ph\u1ea7n Adtek Technology\",\"foundingDate\":\"2022-05-05\",\"description\":\"Adtek l\u00e0 growth marketing agency t\u1ea1i Vi\u1ec7t Nam, gi\u00fap th\u01b0\u01a1ng hi\u1ec7u t\u0103ng tr\u01b0\u1edfng t\u1eeb x\u00e2y d\u1ef1ng th\u01b0\u01a1ng hi\u1ec7u \u0111\u1ebfn doanh thu: Brand Commerce, qu\u1ea3ng c\u00e1o hi\u1ec7u su\u1ea5t, SEO v\u00e0 AI Search, d\u1eef li\u1ec7u v\u00e0 CRM, th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed.\",\"taxID\":\"0317120810\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"146 Bis Nguy\u1ec5n V\u0103n Th\u1ee7\",\"addressLocality\":\"Ph\u01b0\u1eddng T\u00e2n \u0110\u1ecbnh\",\"addressRegion\":\"TP. H\u1ed3 Ch\u00ed Minh\",\"addressCountry\":\"VN\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/adtek.agency\\\/en\\\/#\\\/schema\\\/person\\\/89da4c8949908c5ec6b7500ef0236716\",\"name\":\"Tin Le\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/adtek.agency\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/tin-le-avatar-100x100.jpg\",\"url\":\"https:\\\/\\\/adtek.agency\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/tin-le-avatar-100x100.jpg\",\"contentUrl\":\"https:\\\/\\\/adtek.agency\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/tin-le-avatar-100x100.jpg\",\"caption\":\"Tin Le\"},\"description\":\"T\u00edn L\u00ea is the Founder & Managing Director of Adtek Growth Marketing Agency. He previously spent more than 10 years in senior digital marketing roles at VNG, Adayroi (Vingroup), Lazada and Shopee.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/lethanhtin\"],\"url\":\"https:\\\/\\\/adtek.agency\\\/en\\\/author\\\/tin-le\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SKAdNetwork and AdAttributionKit: Measuring iOS App Ads","description":"SKAdNetwork and AdAttributionKit for iOS app ads: postbacks, conversion values, MMP setup, why Meta and MMP numbers differ, and a checklist before scaling.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/","og_locale":"en_US","og_type":"article","og_title":"SKAdNetwork and AdAttributionKit: Measuring iOS App Ads","og_description":"SKAdNetwork and AdAttributionKit for iOS app ads: postbacks, conversion values, MMP setup, why Meta and MMP numbers differ, and a checklist before scaling.","og_url":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/","og_site_name":"Adtek Growth Marketing Agency","article_publisher":"https:\/\/www.facebook.com\/101888089257566","article_published_time":"2026-10-28T01:17:00+00:00","article_modified_time":"2026-10-28T02:44:34+00:00","og_image":[{"width":2400,"height":1260,"url":"https:\/\/adtek.agency\/wp-content\/uploads\/2026\/10\/do-luong-quang-cao-app-ios-cover.jpg","type":"image\/jpeg"}],"author":"Tin Le","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Tin Le","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/#article","isPartOf":{"@id":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/"},"author":{"name":"Tin Le","@id":"https:\/\/adtek.agency\/en\/#\/schema\/person\/89da4c8949908c5ec6b7500ef0236716"},"headline":"Measuring iOS app ads after ATT: SKAdNetwork, AdAttributionKit and why MMP numbers differ","datePublished":"2026-10-28T01:17:00+00:00","dateModified":"2026-10-28T02:44:34+00:00","mainEntityOfPage":{"@id":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/"},"wordCount":2617,"publisher":{"@id":"https:\/\/adtek.agency\/en\/#organization"},"image":{"@id":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/#primaryimage"},"thumbnailUrl":"https:\/\/adtek.agency\/wp-content\/uploads\/2026\/10\/skadnetwork-adattributionkit-ios-app-ads-cover.jpg","articleSection":["Digital Marketing","Growth Marketing"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/","url":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/","name":"SKAdNetwork and AdAttributionKit: Measuring iOS App Ads","isPartOf":{"@id":"https:\/\/adtek.agency\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/#primaryimage"},"image":{"@id":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/#primaryimage"},"thumbnailUrl":"https:\/\/adtek.agency\/wp-content\/uploads\/2026\/10\/skadnetwork-adattributionkit-ios-app-ads-cover.jpg","datePublished":"2026-10-28T01:17:00+00:00","dateModified":"2026-10-28T02:44:34+00:00","description":"SKAdNetwork and AdAttributionKit for iOS app ads: postbacks, conversion values, MMP setup, why Meta and MMP numbers differ, and a checklist before scaling.","breadcrumb":{"@id":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/#primaryimage","url":"https:\/\/adtek.agency\/wp-content\/uploads\/2026\/10\/skadnetwork-adattributionkit-ios-app-ads-cover.jpg","contentUrl":"https:\/\/adtek.agency\/wp-content\/uploads\/2026\/10\/skadnetwork-adattributionkit-ios-app-ads-cover.jpg","width":2400,"height":1260,"caption":"Measuring iOS app ads after ATT: SKAdNetwork, AdAttributionKit and why MMP numbers differ"},{"@type":"BreadcrumbList","@id":"https:\/\/adtek.agency\/en\/skadnetwork-adattributionkit-ios-app-ads\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/adtek.agency\/en\/homepage\/"},{"@type":"ListItem","position":2,"name":"Measuring iOS app ads after ATT: SKAdNetwork, AdAttributionKit and why MMP numbers differ"}]},{"@type":"WebSite","@id":"https:\/\/adtek.agency\/en\/#website","url":"https:\/\/adtek.agency\/en\/","name":"Adtek","description":"Adtek was founded in 2021 to help brands grow their businesses from branding building to revenue growth.","publisher":{"@id":"https:\/\/adtek.agency\/en\/#organization"},"alternateName":"Adtek Growth Marketing Agency","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/adtek.agency\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/adtek.agency\/en\/#organization","name":"Adtek","alternateName":"Adtek Growth Marketing Agency","url":"https:\/\/adtek.agency\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/adtek.agency\/en\/#\/schema\/logo\/image\/","url":"https:\/\/adtek.agency\/wp-content\/uploads\/2022\/03\/logo-adtek.png","contentUrl":"https:\/\/adtek.agency\/wp-content\/uploads\/2022\/03\/logo-adtek.png","width":440,"height":369,"caption":"Adtek"},"image":{"@id":"https:\/\/adtek.agency\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/101888089257566","https:\/\/www.linkedin.com\/company\/adtek-growth-marketing-agency\/","https:\/\/www.tiktok.com\/@adtek.growth.marketing","https:\/\/www.google.com\/search?kgmid=\/g\/11x7pm71mh"],"email":"contact@adtek.agency","telephone":"+84932349434","legalName":"C\u00f4ng ty C\u1ed5 ph\u1ea7n Adtek Technology","foundingDate":"2022-05-05","description":"Adtek l\u00e0 growth marketing agency t\u1ea1i Vi\u1ec7t Nam, gi\u00fap th\u01b0\u01a1ng hi\u1ec7u t\u0103ng tr\u01b0\u1edfng t\u1eeb x\u00e2y d\u1ef1ng th\u01b0\u01a1ng hi\u1ec7u \u0111\u1ebfn doanh thu: Brand Commerce, qu\u1ea3ng c\u00e1o hi\u1ec7u su\u1ea5t, SEO v\u00e0 AI Search, d\u1eef li\u1ec7u v\u00e0 CRM, th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed.","taxID":"0317120810","address":{"@type":"PostalAddress","streetAddress":"146 Bis Nguy\u1ec5n V\u0103n Th\u1ee7","addressLocality":"Ph\u01b0\u1eddng T\u00e2n \u0110\u1ecbnh","addressRegion":"TP. H\u1ed3 Ch\u00ed Minh","addressCountry":"VN"}},{"@type":"Person","@id":"https:\/\/adtek.agency\/en\/#\/schema\/person\/89da4c8949908c5ec6b7500ef0236716","name":"Tin Le","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/adtek.agency\/wp-content\/uploads\/2026\/10\/tin-le-avatar-100x100.jpg","url":"https:\/\/adtek.agency\/wp-content\/uploads\/2026\/10\/tin-le-avatar-100x100.jpg","contentUrl":"https:\/\/adtek.agency\/wp-content\/uploads\/2026\/10\/tin-le-avatar-100x100.jpg","caption":"Tin Le"},"description":"T\u00edn L\u00ea is the Founder & Managing Director of Adtek Growth Marketing Agency. He previously spent more than 10 years in senior digital marketing roles at VNG, Adayroi (Vingroup), Lazada and Shopee.","sameAs":["https:\/\/www.linkedin.com\/in\/lethanhtin"],"url":"https:\/\/adtek.agency\/en\/author\/tin-le\/"}]}},"_links":{"self":[{"href":"https:\/\/adtek.agency\/en\/wp-json\/wp\/v2\/posts\/8241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adtek.agency\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adtek.agency\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adtek.agency\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/adtek.agency\/en\/wp-json\/wp\/v2\/comments?post=8241"}],"version-history":[{"count":2,"href":"https:\/\/adtek.agency\/en\/wp-json\/wp\/v2\/posts\/8241\/revisions"}],"predecessor-version":[{"id":8244,"href":"https:\/\/adtek.agency\/en\/wp-json\/wp\/v2\/posts\/8241\/revisions\/8244"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/adtek.agency\/en\/wp-json\/wp\/v2\/media\/8243"}],"wp:attachment":[{"href":"https:\/\/adtek.agency\/en\/wp-json\/wp\/v2\/media?parent=8241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adtek.agency\/en\/wp-json\/wp\/v2\/categories?post=8241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adtek.agency\/en\/wp-json\/wp\/v2\/tags?post=8241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}