ÿÿ React Native SDK 呼ã³å‡ºã—é †åº | Adapty ドキュメント

React Native SDKã®å‘¼ã³å‡ºã—é †åº

adapty.activate() ãŒå®Œäº†ã—ã¦ã‹ã‚‰ã€ä»–ã®Adapty SDKメソッドを呼ã³å‡ºã™å¿…è¦ãŒã‚りã¾ã™ã€‚解決ã•れるã¾ã§ã€SDKã¯çŠ¶æ…‹ã‚’æŒã¡ã¾ã›ã‚“。activate() ã®å‰ã¾ãŸã¯ä¸¦è¡Œã—ã¦ç™ºè¡Œã•れãŸå‘¼ã³å‡ºã—ã¯ã€#2002 notActivated ã§å¤±æ•—ã—ã¾ã™ã€‚

アプリãŒãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’èªè¨¼ã—ã€èµ·å‹•後ã«ã‚«ã‚¹ã‚¿ãƒžãƒ¼ãƒ¦ãƒ¼ã‚¶ãƒ¼IDã‚’å–å¾—ã™ã‚‹å ´åˆã¯ã€ãã®æ™‚点㧠adapty.identify() を呼ã³å‡ºã—ã¦ãã ã•ã„。identify ãŒè§£æ±ºã•れるã¾ã§ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ãƒ¡ã‚½ãƒƒãƒ‰ã‚’呼ã³å‡ºã•ãªã„ã§ãã ã•ã„。並行ã—ã¦å®Ÿè¡Œã•れる呼ã³å‡ºã—㯠#3006 profileWasChanged ã§å¤±æ•—ã™ã‚‹ã‹ã€ã‚¢ã‚¯ãƒ†ã‚£ãƒ™ãƒ¼ã‚·ãƒ§ãƒ³æ™‚ã«ä½œæˆã•れãŸåŒ¿åプロファイルã«å¯¾ã—ã¦å®Ÿè¡Œã•れã¾ã™ã€‚ã“れãŒèµ·ã“ã‚‹ã¨ã€ã‚¢ãƒˆãƒªãƒ“ューションã€appsflyer_id ãªã©ã®MMP IDã€ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã®æ‰€æœ‰æ¨©ãŒè­˜åˆ¥æ¸ˆã¿ãƒ—ロファイルã«å¸¸ã«è»¢é€ã•れるã¨ã¯é™ã‚Šã¾ã›ã‚“。アプリãŒãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’èªè¨¼ã—ãªã„å ´åˆã¯ã€identify をスキップã—ã¦åŒ¿åプロファイルã§ä½œæ¥­ã‚’ç¶šã‘ã¦ãã ã•ã„。

MMP・アナリティクスSDK(AppsFlyerã€Adjustã€Branchã€PostHog)もåŒã˜ãƒ«ãƒ¼ãƒ«ã«å¾“ã„ã¾ã™ã€‚å…ˆã«åˆæœŸåŒ–ã—ã¦UID コールãƒãƒƒã‚¯ã‚’å¾…ã£ã¦ã‹ã‚‰ adapty.activate を呼ã³å‡ºã—ã¦ãã ã•ã„。ãã†ã—ãªã„ã¨ã€MMP IDãŒçŸ­å‘½ã®åŒ¿åプロファイルã«ç´ä»˜ã‘られã€è­˜åˆ¥æ¸ˆã¿ãƒ—ロファイルã«å¸¸ã«è»¢é€ã•れるã¨ã¯é™ã‚Šã¾ã›ã‚“。AppsFlyerã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€AppsFlyer ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

æ­£ã—ã„é †åº

ã©ã®ãƒ‘スをå–ã‚‹ã‹ã¯ã€ã‚«ã‚¹ã‚¿ãƒžãƒ¼ãƒ¦ãƒ¼ã‚¶ãƒ¼IDã‚’ã„ã¤çŸ¥ã‚‹ã‹ã€MMP・アナリティクスSDKを使用ã™ã‚‹ã‹ã©ã†ã‹ã®2点ã«ã‚ˆã£ã¦æ±ºã¾ã‚Šã¾ã™ã€‚

  • ステップ2ã¨5: ã™ã¹ã¦ã®ã‚¢ãƒ—リã§å¿…é ˆã§ã™ã€‚SDKをアクティベートã—ã¦ã‹ã‚‰ã€SDKメソッドを呼ã³å‡ºã—ã¾ã™ã€‚
  • ステップ1ã¨3: MMP・アナリティクスSDK(AppsFlyerã€Adjustã€Branchã€PostHog)を統åˆã™ã‚‹å ´åˆã®ã¿å¿…è¦ã§ã™ã€‚
  • ステップ4: アプリãŒãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’èªè¨¼ã—ã€èµ·å‹•後ã«ã‚«ã‚¹ã‚¿ãƒžãƒ¼ãƒ¦ãƒ¼ã‚¶ãƒ¼IDã‚’åŽé›†ã™ã‚‹å ´åˆã®ã¿å¿…è¦ã§ã™ã€‚

アプリ起動時ã«ã‚«ã‚¹ã‚¿ãƒžãƒ¼ãƒ¦ãƒ¼ã‚¶ãƒ¼IDãŒã‚ã‹ã£ã¦ã„ã‚‹å ´åˆã¯ã€activate() ã«ç›´æŽ¥æ¸¡ã—ã¦ãã ã•ã„(ステップ2a)。ã“ã®ãƒ‘スã§ã¯åŒ¿åプロファイルãŒä½œæˆã•れãªã„ãŸã‚ã€ã‚¹ãƒ†ãƒƒãƒ—4ã¯ä¸è¦ã§ã™ã€‚

ステップ呼ã³å‡ºã—タイミング備考
1MMP・アナリティクスSDKã‚’åˆæœŸåŒ–ã™ã‚‹ï¼ˆAppsFlyerã€Adjustã€PostHogã€Branchï¼‰ã‚¢ãƒ—ãƒªèµ·å‹•æ™‚ã€æœ€åˆã«MMPã®UIDコールãƒãƒƒã‚¯ï¼ˆä¾‹: getAppsFlyerUID)を待ã¡ã¾ã™ã€‚
2aadapty.activate('YOUR_PUBLIC_SDK_KEY', { customerUserId: 'YOUR_USER_ID' })アプリ起動時ã€ã‚¹ãƒ†ãƒƒãƒ—1ã®å¾Œã€ã‚«ã‚¹ã‚¿ãƒžãƒ¼ãƒ¦ãƒ¼ã‚¶ãƒ¼IDãŒã‚ã‚‹å ´åˆæŽ¨å¥¨ã€‚åŒ¿åプロファイルã¯ä¸€åˆ‡ä½œæˆã•れã¾ã›ã‚“。
2badapty.activate('YOUR_PUBLIC_SDK_KEY') (customerUserId ãªã—)アプリ起動時ã€ã‚¹ãƒ†ãƒƒãƒ—1ã®å¾Œã€ã‚«ã‚¹ã‚¿ãƒžãƒ¼ãƒ¦ãƒ¼ã‚¶ãƒ¼IDãŒãªã„å ´åˆï¼ˆã¾ãŸã¯åŽé›†ã—ãªã„å ´åˆï¼‰AdaptyãŒåŒ¿åプロファイルを作æˆã—ã¾ã™ã€‚
3å„MMPã«å¯¾ã—㦠adapty.updateAttribution(data, source, networkUserId)ステップ2ã®å¾Œã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¢ã‚¯ã‚·ãƒ§ãƒ³å‘¼ã³å‡ºã—ã®å‰MMP IDã‚’æ­£ã—ã„プロファイルã«ç´ä»˜ã‘ã‚‹ãŸã‚ã«å¿…è¦ã§ã™ã€‚
4await adapty.identify('YOUR_USER_ID')ステップ3ã®å¾Œï¼ˆMMPãªã—ã®å ´åˆã¯ã‚¹ãƒ†ãƒƒãƒ—2ã®å¾Œï¼‰ã€ã‚¹ãƒ†ãƒƒãƒ—5ã®å‰ — èªè¨¼ã‚りã®ãƒ‘ス2bã®ã¿å¿…ãš await を使用ã—ã¦ãã ã•ã„。identify 中ã®ä¸¦è¡Œå‘¼ã³å‡ºã—㯠#3006 profileWasChanged を発生ã•ã›ã¾ã™ã€‚
5getPaywallã€getPaywallProductsã€restorePurchasesã€makePurchaseã€updateAttributionã€updateProfileidentify を呼ã³å‡ºã™å ´åˆã¯ã‚¹ãƒ†ãƒƒãƒ—4ã®å¾Œã€ãれ以外ã¯ã‚¹ãƒ†ãƒƒãƒ—3ã®å¾Œï¼ˆMMPãªã—ã®å ´åˆã¯ã‚¹ãƒ†ãƒƒãƒ—2ã®å¾Œï¼‰ã“れらã®å‘¼ã³å‡ºã—ã«ã¯å®‰å®šã—ãŸãƒ—ロファイルãŒå¿…è¦ã§ã™ã€‚

ã“れらã®ã‚¹ãƒ†ãƒƒãƒ—をスキップã™ã‚‹ã¨ã€ãƒªãƒ”ートユーザーã®ãƒ—レミアムアクセス喪失ã€ãƒ—ロファイルã¸ã® appsflyer_id ã®æ¬ è½ã€èª¤ã£ãŸã‚ªãƒ¼ãƒ‡ã‚£ã‚¨ãƒ³ã‚¹ã«å¯¾ã—ã¦ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãŒè¿”ã•れるã¨ã„ã£ãŸå•題ãŒç™ºç”Ÿã—ã¾ã™ã€‚

Web2appãŠã‚ˆã³ã‚¦ã‚§ãƒ–ファãƒãƒ«ã‹ã‚‰ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«

ユーザーãŒã‚¦ã‚§ãƒ–ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆï¼ˆStripeã€Paddle)ã§è³¼å…¥ã—ã€ãã®å¾Œãƒã‚¤ãƒ†ã‚£ãƒ–アプリをインストールã—ãŸå ´åˆã€ãƒ‡ãƒã‚¤ã‚¹æœ€åˆã® activate() ãŒæ–°ã—ã„匿åプロファイルを作æˆã—ã¾ã™ã€‚ã“ã®ãƒ—ロファイルã¯ã‚¦ã‚§ãƒ–プロファイルã¨ãƒªãƒ³ã‚¯ã•れã¾ã›ã‚“。アプリ起動å‰ã«ã‚«ã‚¹ã‚¿ãƒžãƒ¼ãƒ¦ãƒ¼ã‚¶ãƒ¼IDを解決ã§ãã‚‹å ´åˆï¼ˆèªè¨¼ãƒ•ローやインストールリファラーã‹ã‚‰ï¼‰ã€activate() ã«ç›´æŽ¥æ¸¡ã—ã¦ãã ã•ã„。ãã†ã§ãªã„å ´åˆã€identify('YOUR_USER_ID') を呼ã³å‡ºã—ã¦ã‹ã‚‰ restorePurchases を呼ã³å‡ºã™ã¾ã§ã€ã‚¦ã‚§ãƒ–購入ã¯ãƒ‡ãƒã‚¤ã‚¹ä¸Šã§è¡¨ç¤ºã•れã¾ã›ã‚“。

å„ウェブãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã§é€ä¿¡ã™ã‚‹ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã«ã¤ã„ã¦ã¯ã€ä»¥ä¸‹ã‚’å‚ç…§ã—ã¦ãã ã•ã„:

ÿÿÿÿ