Skip to main content

Independent Meta API connections and AppsFlyer S2S event delivery

Connect only the Meta APIs you need, then send selected subscription events to AppsFlyer from the same PNLight project.

Meta integration

Connect Meta APIs independentlyConnect the Marketing API for campaigns and spend. Connect the Conversions API for server-side event delivery. Use either API or both. Target URL and click tracking stay in the same account settings. Read the docs.Inspect each delivery attemptWhen delivery fails, account settings show recent Conversions API outcomes. Open an event to see the status, reason, request URL, and HTTP response for that attempt. Read the docs.

AppsFlyer integration

Send subscription milestones through S2SMap PNLight subscription lifecycle events to the names you expect in AppsFlyer. Pause delivery without clearing the configuration, then resume it later. Mapped events are sent for users whose attribution includes an AppsFlyer user ID. Read the docs.

PNLight adds Remote Config for typed, targeted app settings

Change a feature flag, a line of copy, a limit, or a paywall variant without waiting for the next app release. Local defaults cover first launch and offline sessions.

Dashboard

Typed configuration and overridesDefine a base configuration with Boolean, string, number, string-array, and JSON values. Add ordered overrides for campaign, device, OS version, SDK version, or country. Read the docs.Drafts and publishingChanges stay in a draft and do not affect the app until you publish them. Publish the draft after review. To return to an earlier version, restore it into a new draft. Read the docs.

SDK updates

Local values in the SDKSwift, React Native, and Flutter apps can supply local defaults, refresh with fetchAndActivate, and read values through typed getters. If a fetch fails, the previous active configuration and local defaults are still available. Read the docs.

Remote UI supports multi-screen flows and SDK-owned purchases

A Remote UI placement can guide users through several screens and start a StoreKit purchase. The flow stays in remote configuration, so you do not need separate app code for each screen.

Remote UI

Multiple screens in one flowReturn multiple routes in one flow and move between them with PNLight push, replace, present, and dismiss actions. RemoteUiView owns the native navigation stack and modal presentation. Read the docs.Preview and configuration checksStart with a reusable preset, then fill project-specific strings and product IDs through runtime placeholders. Live preview, iPhone device presets, action logs, and simulated purchase outcomes catch problems before the config reaches the app. Read the docs.Purchases through the SDKSchema v3 adds the SDK-owned pnlight.purchase action and an onPurchased callback for refreshing entitlements or navigation afterward. It also brings animated progress bars and numbers. Existing schema v1 and v2 configs remain supported. Read the docs.Native navigation and system feedbackRemote UI accounts for safe areas and scaling variables. Flows can also use haptics, dialogs, and native modal presentation.

Product catalog, StoreKit 2 purchases, and event diagnostics

The Products section now includes a catalog for App Store product IDs. The iOS SDK supports StoreKit 2 purchases and restoration, while the Events page shows event data and delivery attempts.

Purchases

One catalog per projectKeep each project’s App Store product IDs in Products, with production and QA catalogs separated by project. Remote UI product placeholders can pull IDs from the catalog while PNLight builds a config. Read the docs.StoreKit 2 purchases and restorationThe iOS SDK loads App Store products, completes verified purchases, restores transactions, and checks introductory-offer eligibility. Purchase and restore screens can read the same resulting state.Receipt retries after a purchaseAfter StoreKit verifies a purchase, the app receives success even if PNLight cannot accept the receipt immediately. The SDK retries later, and PNLight can recover the original transaction and subscription history from the saved receipt. Read the docs.

Dashboard

Event data and delivery attemptsThe new Events page brings subscription, app, and system events together across all users. Filter the list, then inspect the raw payload, attribution context, and delivery attempt for each integration. Read the docs.

PNLight adds Remote UI targeting, App Events analytics, and SDK 0.7.2

Remote UI gained targeting by campaign, device, and SDK version. Analytics added App Events, while SDK 0.7.2 added IDFA refresh and Remote UI cache controls.

Dashboard

App Events analyticsThe Analytics → App Events view includes a chart of SDK events and a searchable table. Open an event from the table to inspect its payload or related customer profile. Read the docs.Remote UI targeting and protectionRemote UI placements can now target users by ad campaign, device, OS version, country, and SDK version. Placement settings also include protection modes for secure rendering and capture handling. Read the docs.Test devices for Remote UI QAYou can add test device IDFAs or SDK user IDs from Integration. Test devices can receive Remote UI in test mode, including cases where production targeting or capture protection would normally block the placement. Read the docs.Customer timeline debuggingCustomer profiles now provide more debugging context, including app events, attribution details, test-device state, and Remote UI capture state. Read the docs.

SDK updates

SDK 0.7.2The iOS, React Native, and Flutter wrappers are synchronized at version 0.7.2. The release improves Remote UI cache behavior, adds ignoreCache, and exposes clearer config-loading errors in wrapper APIs. Read the docs.IDFA refresh after ATTSDKs now expose updateIdfa() so apps can send the granted IDFA after the App Tracking Transparency prompt completes. This is useful when PNLight initializes before ATT authorization. Read the docs.App-open trackingThe SDK now reports repeat app opens after the first install. PNLight uses this signal to keep customer activity fresh and to add system app-open events to timelines.Remote UI cache refreshRemote UI configs are cache-first by default and refresh in the background with ETag requests. Use ignoreCache when QA or state changes require a fresh server response. Read the docs.

New features

Integration diagnosticsThe Integration page shows whether the app is connected to PNLight. It also collects the latest install, attribution, event, and Remote UI signals. You can copy the project SDK token from the same page. Read the docs.Cohorts analyticsThe Analytics section now includes a Cohorts view that groups users by registration window and tracks the revenue they generate over time. Use it to judge whether a paid acquisition cohort pays back its spend. Read the docs.Remote UI analyticsThe new Remote UI view in Analytics shows how many unique users requested a placement and how many saw its configuration over the selected period. Read the docs.Global dashboard searchSearch across projects and pages from anywhere in the dashboard, and switch projects without losing your place.

Updates

Adaptive chart granularityAnalytics charts now adjust their time granularity automatically based on the selected date range, with stricter date-range and view-by limits to keep results readable.SDK version reported on eventsThe SDK now sends its version with every event, making it easier to correlate behavior with a specific SDK release when reviewing data.Project member settings accessProject members (not just owners) can now edit project settings, so teams no longer need to route routine changes through a single account.

Fixes

Remote UI internal attributionResolved an issue where internal attribution did not apply correctly to Remote UI sessions. Attribution now resolves consistently across SDK and Remote UI flows.