Skip to content

Commit e6bb525

Browse files
committed
feat: add analytics tracking for SDK RPC requests
- Implemented analytics tracking for SDK RPC requests when not sending via network. - Integrated SendAnalytics function to log SDK_RPC_REQUEST events with relevant parameters.
1 parent 86052b0 commit e6bb525

File tree

1 file changed

+23
-0
lines changed
  • packages/sdk/src/services/RemoteCommunicationPostMessageStream

1 file changed

+23
-0
lines changed

packages/sdk/src/services/RemoteCommunicationPostMessageStream/write.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
import {
2+
TrackingEvents,
3+
SendAnalytics,
4+
DEFAULT_SERVER_URL,
5+
} from '@metamask/sdk-communication-layer';
16
import { RemoteCommunicationPostMessageStream } from '../../PostMessageStream/RemoteCommunicationPostMessageStream';
27
import { METHODS_TO_REDIRECT, RPC_METHODS } from '../../config';
38
import {
@@ -67,6 +72,24 @@ export async function write(
6772
.catch((err: unknown) => {
6873
logger(`[RCPMS: _write()] error sending message`, err);
6974
});
75+
} else {
76+
try {
77+
// Only send analytics if we are not sending via network.
78+
await SendAnalytics(
79+
{
80+
id: channelId,
81+
event: TrackingEvents.SDK_RPC_REQUEST,
82+
params: {
83+
method: targetMethod,
84+
from: 'mobile',
85+
},
86+
},
87+
instance.state.remote?.state.communicationServerUrl ??
88+
DEFAULT_SERVER_URL,
89+
);
90+
} catch (error) {
91+
logger(`[RCPMS: _write()] error sending analytics`, error);
92+
}
7093
}
7194

7295
if (!isSecure) {

0 commit comments

Comments
 (0)