Repository navigation
Conversation
sbarrio
commented
Jul 9, 2026
|
✅ All CI checks and tests passed. 🎉 All green!🧪 All tests passed 🔗 Commit SHA: e424cd4 | Docs | View more details | Give us feedback! |
3 tasks
sbarrio
force-pushed
the
sbarrio/RUM-16664/add-report-app-fully-displayed-api-for-ttfd
branch
from
July 31, 2026 10:53
9ffcb33 to
92df9ba
Compare
sbarrio
force-pushed
the
sbarrio/RUM-16664/add-report-app-fully-displayed-api-for-ttfd
branch
from
September 1, 2026 15:27
92df9ba to
231a438
Compare
sbarrio
force-pushed
the
sbarrio/RUM-16664/add-report-app-fully-displayed-api-for-ttfd
branch
from
September 24, 2026 11:02
231a438 to
7eba10b
Compare
4 tasks
sbarrio
force-pushed
the
sbarrio/RUM-16664/add-report-app-fully-displayed-api-for-ttfd
branch
from
October 9, 2026 12:10
7eba10b to
e424cd4
Compare
sbarrio
marked this pull request as ready for review
October 9, 2026 12:24
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
Cross-platform startup instrumentation and native bridge changes require final device and build validation.
0 open findings
What changed in this PR
Adds Android TTID collection and exposes manual TTFD reporting across React Native architectures.
Changes:
- Upgrades Android Datadog dependencies and adds RUM prelaunch.
- Adds
reportAppFullyDisplayed()with native bridges and tests. - Updates example apps and iOS generated project metadata.
| File | Description |
|---|---|
packages/react-native-webview/android/build.gradle |
Upgrades WebView SDK. |
packages/react-native-session-replay/android/build.gradle |
Upgrades replay SDK and removes mavenLocal. |
packages/internal-testing-tools/android/build.gradle |
Upgrades core SDK. |
packages/core/src/specs/NativeDdRum.ts |
Extends the native specification. |
packages/core/src/rum/types.ts |
Exposes the public TTFD API. |
packages/core/src/rum/DdRum.ts |
Implements buffered TTFD reporting. |
packages/core/src/rum/__tests__/DdRum.test.ts |
Tests JavaScript delegation. |
packages/core/jest/mock.js |
Updates the package mock. |
packages/core/ios/Tests/MockRUMMonitor.swift |
Records TTFD calls in tests. |
packages/core/ios/Tests/DdRumTests.swift |
Tests iOS delegation. |
packages/core/ios/Sources/DdRumImplementation.swift |
Calls the iOS RUM monitor. |
packages/core/ios/Sources/DdRum.mm |
Exports the iOS bridge method. |
packages/core/android/src/test/kotlin/com/datadog/tools/unit/MockRumMonitor.kt |
Updates the Android monitor mock. |
packages/core/android/src/test/kotlin/com/datadog/reactnative/DdRumTest.kt |
Tests Android delegation. |
packages/core/android/src/oldarchCommon/kotlin/com/datadog/reactnative/DdRum.kt |
Exposes the old-architecture method. |
packages/core/android/src/newarch/kotlin/com/datadog/reactnative/DdRum.kt |
Exposes the new-architecture method. |
packages/core/android/src/main/kotlin/com/datadog/reactnative/DdRumImplementation.kt |
Calls the Android RUM monitor. |
packages/core/android/build.gradle |
Upgrades SDKs and adds RUM prelaunch. |
packages/core/__mocks__/react-native.ts |
Updates the typed React Native mock. |
example/src/ddUtils.tsx |
Demonstrates TTFD with legacy initialization. |
example/src/App.tsx |
Demonstrates TTFD with the provider. |
example/ios/Podfile.lock |
Updates the RCT-Folly checksum. |
example/ios/DdSdkReactNativeExample.xcodeproj/project.pbxproj |
Adds Swift library search paths. |
example-new-architecture/ios/Podfile.lock |
Updates the RCT-Folly checksum. |
example-new-architecture/ios/DdSdkReactNativeExample.xcodeproj/project.pbxproj |
Adds Swift library search paths. |
example-new-architecture/App.tsx |
Demonstrates TTFD reporting. |
benchmarks/ios/Podfile.lock |
Updates the RCT-Folly checksum. |
benchmarks/ios/BenchmarkRunner.xcodeproj/project.pbxproj |
Adds Swift library search paths. |
benchmarks/android/app/build.gradle |
Upgrades benchmark SDK dependencies. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
marco-saia-datadog
approved these changes
Oct 12, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
TTID reporting
This PR integrates the
com.datadoghq:dd-sdk-android-rum-prelaunchmodule that was added to the Android SDK here: DataDog/dd-sdk-android#3635As such, this PR also bumps the native Android SDK to version 3.15.0.
This module integrates a way for Cross Platform SDKs to reliably obtain a TTID measurement without having to rely on the native Android SDK being initialized as early as possible, which is something that on most RN apps will not be possible as the first Activity will most probably have rendered its first frame way before the RN bridge has started and the host app has initialized the RN SDK. For more details on the implementation please check the PR linked above.
TTFD reporting
Second, this PR exposes the manual
reportAppFullyDisplayedAPI, which allows for host apps to decide when an app has completed it's first display and report that timestamp back to Datadog to be presented on the Dashboard as the TTFD value for that session alongside its TTID.Motivation
TTID and TTFD vitals have been reported consistently on native SDKs for a while now but the RN SDK lacked propert support for them. This PR solves this.
Additional Notes
Android
iOS
Review checklist (to be filled by reviewers)