@@ -92,6 +92,9 @@ public class ThirdwebManager : MonoBehaviour
92
92
[ field: SerializeField ]
93
93
private bool ShowDebugLogs { get ; set ; } = true ;
94
94
95
+ [ field: SerializeField ]
96
+ private bool OptOutUsageAnalytics { get ; set ; } = false ;
97
+
95
98
[ field: SerializeField , Header ( "Wallet Settings" ) ]
96
99
private ulong [ ] SupportedChains { get ; set ; } = new ulong [ ] { 421614 } ;
97
100
@@ -270,7 +273,14 @@ public async Task<IThirdwebWallet> ConnectWallet(WalletOptions walletOptions)
270
273
var address = await wallet . GetAddress ( ) ;
271
274
ThirdwebDebug . Log ( $ "Wallet address: { address } ") ;
272
275
273
- if ( walletOptions . SmartWalletOptions != null )
276
+ var isSmartWallet = walletOptions . SmartWalletOptions != null ;
277
+
278
+ if ( ! OptOutUsageAnalytics )
279
+ {
280
+ TrackUsage ( "connectWallet" , "connect" , isSmartWallet ? "smartWallet" : walletOptions . Provider . ToString ( ) [ ..1 ] . ToLower ( ) + walletOptions . Provider . ToString ( ) [ 1 ..] , address ) ;
281
+ }
282
+
283
+ if ( isSmartWallet )
274
284
{
275
285
ThirdwebDebug . Log ( "Upgrading to SmartWallet." ) ;
276
286
return await UpgradeToSmartWallet ( wallet , walletOptions . ChainId , walletOptions . SmartWalletOptions ) ;
@@ -322,5 +332,36 @@ public async Task<SmartWallet> UpgradeToSmartWallet(IThirdwebWallet personalWall
322
332
323
333
return wallet ;
324
334
}
335
+
336
+ private async void TrackUsage ( string source , string action , string walletType , string walletAddress )
337
+ {
338
+ if ( string . IsNullOrEmpty ( source ) || string . IsNullOrEmpty ( action ) || string . IsNullOrEmpty ( walletType ) || string . IsNullOrEmpty ( walletAddress ) )
339
+ {
340
+ ThirdwebDebug . LogWarning ( "Invalid usage analytics parameters." ) ;
341
+ return ;
342
+ }
343
+
344
+ try
345
+ {
346
+ var content = new System . Net . Http . StringContent (
347
+ Newtonsoft . Json . JsonConvert . SerializeObject (
348
+ new
349
+ {
350
+ source ,
351
+ action ,
352
+ walletAddress ,
353
+ walletType ,
354
+ }
355
+ ) ,
356
+ System . Text . Encoding . UTF8 ,
357
+ "application/json"
358
+ ) ;
359
+ _ = await Client . HttpClient . PostAsync ( "https://c.thirdweb.com/event" , content ) ;
360
+ }
361
+ catch
362
+ {
363
+ ThirdwebDebug . LogWarning ( $ "Failed to report usage analytics.") ;
364
+ }
365
+ }
325
366
}
326
367
}
0 commit comments