mcpField
A
applovin-ads-integration

applovin-ads-integration

github.com/finsilabs营销与增长6073 次安装6 天前更新
代码仓库

关于 applovin-ads-integration

为拥有原生 iOS 或 Android 购物应用的团队提供 AppLovin 广告接入指导,覆盖用户获取、购买归因和应用内广告变现。内容包括 MAX SDK、移动归因合作伙伴及 SKAdNetwork 配置。

主要功能

  1. 01集成 iOS 与 Android MAX SDK
  2. 02配置移动归因合作伙伴
  3. 03发送购买事件与回传
  4. 04设置用户获取广告系列
  5. 05配置 MAX 广告变现瀑布流
  6. 06映射 SKAdNetwork 转化值

适用场景

  1. 01为购物应用获取新用户
  2. 02追踪购买并优化广告 ROAS
  3. 03通过应用内广告实现变现
  4. 04配置 iOS 隐私归因

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill applovin-ads-integration

安装后在 Claude Code 中输入/applovin-ads-integration确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

tile.json
evals/ios-sdk-setup-and-max-ad-loading/
criteria.json
task.md
evals/purchase-event-postback-integration/
criteria.json
task.md
evals/skadnetwork-attribution-and-retargeting/
criteria.json
task.md

详细介绍

AppLovin 广告集成

概述

AppLovin 是领先的电商应用移动广告平台,结合了 MAX mediation SDK(通过广告为应用变现)和 AppLovin Ads(获取用户并开展重定向营销活动)。这项技能适用于拥有原生 iOS 或 Android 购物应用,并希望开展用户获取营销活动或通过应用内广告变现的商家。不适用于纯网页商店。

何时使用这项技能

  • 为原生移动电商应用开展用户获取营销活动时
  • 使用 MAX mediation 通过应用内广告为移动电商应用变现时
  • 设置购买事件回传,以进行 ROAS 优化出价时
  • 从 MoPub/ironSource 迁移到 AppLovin MAX mediation 时
  • 为已将商品加入购物车但尚未购买的移动应用用户创建重定向营销活动时
  • 实施 SKAdNetwork 归因,以符合 iOS 14+ 的要求时

核心说明

步骤 1:确定你的需求

AppLovin 服务于两种不同的使用场景,请选择适合的一种:

目标使用方式难度
获取新应用用户并重新定位现有用户AppLovin Ads(需求方平台)中等 — 在 manage.applovin.com 的控制面板中配置
向用户展示广告,为应用变现AppLovin MAX SDK高 — 需要在移动应用中集成 SDK
跟踪购买事件以优化 ROASSDK + MMP(Adjust、AppsFlyer 或 Singular)高 — 需要设置服务器端回传

前提条件:你需要在 applovin.com 拥有 AppLovin 账户,并且拥有已上架 App Store 或 Google Play 的移动应用。

步骤 2:在移动应用中安装 AppLovin MAX SDK

iOS(CocoaPods):

添加到你的 Podfile:

pod 'AppLovinSDK'
pod 'AppLovinMediationGoogleAdMobAdapter'
pod 'AppLovinMediationMetaAudienceNetworkAdapter'

在 AppDelegate.swift 中初始化:

import AppLovinSDK

func application(_ app: UIApplication, didFinishLaunchingWithOptions opts: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
  ALSdk.shared().mediationProvider = "max"
  ALSdk.shared().userIdentifier = currentUser?.id ?? ""
  ALSdk.shared().initializeSdk { sdkConfig in
    // SDK ready — load your first ad
  }
  return true
}

Android(Gradle):

在 app/build.gradle 中:

dependencies {
    implementation 'com.applovin:applovin-sdk:+'
    implementation 'com.applovin.mediation:google-adapter:+'
    implementation 'com.applovin.mediation:facebook-adapter:+'
}

在 Application.onCreate() 中:

AppLovinSdk.getInstance(this).apply {
    mediationProvider = "max"
    userIdentifier = currentUser?.id ?: ""
    initializeSdk { /* SDK ready */ }
}
步骤 3:设置移动监测合作伙伴(MMP)——请在开展营销活动之前完成

没有 MMP 时不要开展 AppLovin 营销活动。 直接回传无法捕获跨设备归因,也无法解码 SKAdNetwork 数据。可使用以下任一服务:

  • Adjust(adjust.com)——使用最广泛,与 AppLovin 的集成能力强
  • AppsFlyer(appsflyer.com)——行业标准,适合多渠道归因
  • Singular(singular.net)——适合注重隐私的归因

每个 MMP 都提供 AppLovin 集成模块,可自动发送购买回传。在 MMP 控制面板中:

  1. 前往 Partner Configuration → AppLovin
  2. 输入你的 AppLovin SDK 密钥
  3. 启用“In-App Purchase”回传
  4. 配置 SKAdNetwork 的转化值映射
步骤 4:在应用中跟踪购买事件

确认购买后立即触发购买事件,同时在客户端和服务器端进行:

客户端(iOS):

func trackPurchase(orderId: String, revenue: Double, currency: String) {
  ALEventService.shared().trackEvent(ALEventTypePurchasedProduct, withParameters: [
    ALEventParameterRevenueAmount: NSNumber(value: revenue),
    ALEventParameterRevenueCurrency: currency,
    ALEventParameterProductIdentifier: orderId,
  ])
}

// Also track add-to-cart for retargeting signal
func trackAddToCart(productId: String, price: Double) {
  ALEventService.shared().trackEvent(ALEventTypeAddedItemToCart, withParameters: [
    ALEventParameterProductIdentifier: productId,
    ALEventParameterRevenueAmount: NSNumber(value: price),
  ])
}

服务器端回传(确保信号可靠):

async function sendApplovinPurchasePostback(params: {
  userId: string;
  orderId: string;
  revenue: number;
  currency: string;
  applovinId?: string;
}) {
  const url = new URL('https://d.applovin.com/postback/v1/purchase');
  url.searchParams.set('event_token', process.env.APPLOVIN_POSTBACK_TOKEN!);
  url.searchParams.set('event_name', 'purchase');
  url.searchParams.set('user_id', params.userId);
  url.searchParams.set('transaction_id', params.orderId);
  url.searchParams.set('revenue', params.revenue.toFixed(2));
  url.searchParams.set('currency', params.currency);
  if (params.applovinId) url.searchParams.set('device_id', params.applovinId);

  await fetch(url.toString());
}
步骤 5:创建用户获取营销活动

在 manage.applovin.com 的 AppLovin 广告控制面板中:

  1. 前往 Campaigns → Create Campaign
  2. 配置:
    • Campaign Type:App Install(iOS 或 Android)
    • Optimization Goal:Purchase(ROAS 优化)
    • Bid Strategy:Target ROAS — 从 200% 开始,每天购买量超过 50 笔后再提高
    • Daily Budget:ROAS 营销活动的最低预算为 $200/天(算法需要足够的数据量)
    • Targeting:优先选择 ROAS 最高的 Tier-1 国家/地区(US、CA、GB、AU);年龄 25–54 岁
  3. 上传创意素材:15 秒和 30 秒视频广告、可试玩广告以及静态横幅
  4. 在 Audience Signals 下,上传基于高价值购买者的相似受众(从你的 MMP 导出)
步骤 6:配置 MAX 中介瀑布流(仅适用于应用变现)

如果你通过应用内广告变现(而不只是开展用户获取),请在 MAX 控制面板中配置瀑布流:

  1. 前往 MAX → Ad Units → Create Ad Unit
  2. 先设置应用内竞价网络(同时竞价,收益最高者优先):
    • AppLovin Exchange
    • Meta Audience Network
    • Google AdMob
  3. 添加带有底价的传统瀑布流备用网络:
    • $3.00 CPM → Vungle
    • $2.00 CPM → Unity Ads
    • $1.00 CPM → ironSource

在应用中加载并展示插屏广告:

class CartViewController: UIViewController {
  var interstitialAd: MAInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    interstitialAd = MAInterstitialAd(adUnitIdentifier: "YOUR_AD_UNIT_ID")
    interstitialAd?.delegate = self
    interstitialAd?.load()
  }
}

extension CartViewController: MAAdDelegate {
  func didLoad(_ ad: MAAd) { /* ready to show */ }
  func didHide(_ ad: MAAd) {
    interstitialAd?.load() // preload immediately after hide
  }
}
步骤 7:为 iOS 14+ 归因配置 SKAdNetwork

在 AppLovin 控制面板和应用代码中,将购买价值范围映射到 SKAdNetwork 转化值(0–63):

func updateSKANConversionValue(orderValue: Double) {
  let conversionValue: Int
  switch orderValue {
  case 0..<25:    conversionValue = 10
  case 25..<50:   conversionValue = 20
  case 50..<100:  conversionValue = 30
  case 100..<200: conversionValue = 40
  default:         conversionValue = 63
  }

  if #available(iOS 16.1, *) {
    SKAdNetwork.updatePostbackConversionValue(conversionValue, coarseValue: .high, lockWindow: false) { _ in }
  } else {
    SKAdNetwork.updateConversionValue(conversionValue)
  }
}

在 AppLovin 的 SKAN 配置面板(MAX → SKAN Configuration)中配置相同的方案,以便平台解码回传数据。

最佳实践

  • 始终使用 MMP——直接回传会遗漏跨设备归因和 SKAdNetwork 解码;MMP 会自动处理这些工作
  • 在服务端设置收入回传——客户端事件可能被伪造;服务端回传能为 AppLovin 提供可靠的 ROAS 信号
  • 提前预加载广告——在 didHide 后立即调用 load(),以便为下一次展示准备好广告
  • 所有广告位都使用应用内竞价——同时竞价的 eCPM 比顺序瀑布流高 15–30%
  • 每两周更新一次创意素材——AppLovin 的算法很快就会对创意素材感到厌倦;添加新的视频和可玩广告格式
  • 限制再营销频次——将每位用户每天的展示次数限制为 3 次

常见问题

问题解决方案
购买回传未记录验证回传令牌是否正确;确保 revenue 使用小数格式(而非整数)
SDK 在 iOS 上初始化失败将 NSUserTrackingUsageDescription 添加到 Info.plist;在 SDK 初始化前实现 ATT 提示
ROAS 广告系列消耗不足降低 tROAS 目标;确保每天有 50+ 次购买事件,以便算法进行优化
SKAN 转化值全部显示为零确认在最终购买确认后调用 updateConversionValue,而不只是在付款意向时调用
激励广告首次展示后无法加载在 didHide 回调中调用 load(),而不是在 didDisplay 中调用
回传中缺少 Android GAID在 Android 13+ 上申请 AD_ID 权限;用户可能已在设备设置中限制广告跟踪

相关技能

  • @tiktok-ads-integration
  • @meta-ads-integration
  • @marketing-attribution-dashboard
  • @push-notifications
  • @customer-retention-engine

评论

支持 Markdown