Link Apple Search Ads to RevenueCat:

Keyword-Level ROAS Integration Guide

How to Generate Apple Search Ads API Credentials for Attribution

Apple Search Ads requires you to create a separate "API user" account to generate credentials.

This is different from your regular login account.

You need to invite yourself using another email address you own (or create one for this purpose).

In Apple Search Ads, go to Settings → User Management

Click "Invite Users"

Enter another email you own

Set Role to: "API Account - Read Only"

Get Your Account ID

Go to searchads.apple.com

Log in with your main account

Click your name in the top-right corner and Look for ACCOUNT ID next to your organization name (example: Account ID : 391139)

Copy this Account ID and paste it in the form field

Generate API Credentials

Log out from your main Apple Search Ads account

Log back in with your secondary email (API account)

Go to Settings → API

Click "Create Credential" or "Add Certificate"

You'll see a field for "Public Key"

Copy and paste this public key:

MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIQKaSROKEZSXTyRZIyBhwSoY04x8
/GNCv3cyfsuNSeDV0UCKWbxDZljPo0DEWwDUeiw3wgTaFndxzwnR3s9qvQ

Copy and paste this public key:

Click "Generate" or "Create"

Critical Step:

Copy these three values immediately. Paste all three values in the AppSkale form:

Client ID (e.g., SEARCHADS.abc123... )

Team ID (e.g., SEARCHADS.def456... )

Key ID (e.g., a1b2c3d4-5678... )

Click "Save & Continue"

Configuring the AppSkale SDK for iOS Revenue Attribution

Add Your App

Configure your iOS app to start tracking attribution and revenue.

App Name * The name of your app as it appears in the App Store.

App Store URL * Your app's URL from the App Store. This must include the app ID. Format: https://apps.apple.com/us/app/your-app/id1234567890

Bundle ID * Your app's unique identifier, found in Xcode or App Store Connect. Format: com.yourcompany.yourapp

Once your app is added, you'll see a a confirmation message and your unique API Key (save this securely!)

After adding your app, you'll receive a unique API key. You'll need it for both: SDK integration in your app and RevenueCat webhook authentication. Example API Key format: appskale _abc123def456...

Setting Up RevenueCat Webhooks for Real-Time ROAS Data

Go to app.revenuecat.com and Navigate to Integrations → Webhooks

Click "+ Add" or "Add Webhook"

Webhook URL:

https://api.appskale.ai/api/webhooks/revenuecat

Authorization Header: In the "Authorization Header Value" field, paste your API key (the same one from your app setup). Format: Just paste the key directly, like: appskale_abc123def456...

Environment: Both Production and Sandbox

Apps - select your app | Events - all events

Click Save

Install AppSkale SDK

The SDK automatically tracks installs and Apple Search Ads attribution.

Installation
You can install the AppSkale SDK using either CocoaPods or Swift Package Manager:

Option 1: CocoaPods
Add to your Podfile:
pod 'AppSkaleSDK'
Then run in your Terminal:
Pod Install

Option 2: Swift Package Manager (SPM)
In Xcode, go to File > Add Packages...
Enter the repository URL: https://github.com/appskale/appskale-sdk-ios
Select the latest version and target your project
Click "Add Package"

After the installation, add this code to your AppDelegate.swift file:

import AppSkaleSDK

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
        ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
        
        AppSkaleAttribution.shared.configure(apiKey: "YOUR_API_KEY_HERE" )   
        
        return true
    }

Replace YOUR API KEY _ _ _ HERE with your actual API key from the setup page.

Track Purchases: Add this code wherever you handle successful purchases (typically in your RevenueCat purchase completion handler):

Purchases.shared.purchase(package: package) {
    (transaction, purchaserInfo, error, userCancelled) in
    // After successful purchase, track with AppSkale:
    if let transaction = transaction {
        let price = package.storeProduct.price as Decimal
        let currency = package.storeProduct.priceFormatter?.currencyCode ?? "USD"
        AppSkaleAttribution.shared.trackPurchase(
            transactionId: transaction.transactionIdentifier ?? "unknown",
            productId: package.storeProduct.productIdentifier,
            price: NSDecimalNumber(decimal: price).doubleValue,
            currency: currency
        )
    }
}

That's it! The SDK automatically tracks app installs, retrieves Apple Search Ads attribution data and link the purchases to keywords

Ready to scale profitably

Stop guessing which keywords work. See exactly which Apple Search Ads keywords drive paying users, not just installs

Apple Search Ads attribution and ROAS tracking for iOS apps

© 2025. All rights reserved.

Ready to scale profitably

Stop guessing which keywords work. See exactly which Apple Search Ads keywords drive paying users, not just installs

Apple Search Ads attribution and ROAS tracking for iOS apps

© 2025. All rights reserved.

Ready to scale profitably

Stop guessing which keywords work. See exactly which Apple Search Ads keywords drive paying users, not just installs

Apple Search Ads attribution and ROAS tracking for iOS apps

© 2025. All rights reserved.