ÿÿ リモートコンフィグペイウォールã®è¡¨ç¤º | Flutter SDK | Adapty ドキュメント

Flutter SDKã§ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグã§ãƒ‡ã‚¶ã‚¤ãƒ³ã•れãŸãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹

リモートコンフィグを使ã£ã¦ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’カスタマイズã—ãŸå ´åˆã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«è¡¨ç¤ºã™ã‚‹ãŸã‚ã«ãƒ¢ãƒã‚¤ãƒ«ã‚¢ãƒ—リã®ã‚³ãƒ¼ãƒ‰ä¸Šã§ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã‚’実装ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚リモートコンフィグã¯ãƒ‹ãƒ¼ã‚ºã«åˆã‚ã›ãŸæŸ”軟性をæä¾›ã™ã‚‹ãŸã‚ã€ä½•ã‚’å«ã‚ã‚‹ã‹ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ãƒ“ューをã©ã®ã‚ˆã†ã«è¡¨ç¤ºã™ã‚‹ã‹ã¯ã‚ãªãŸæ¬¡ç¬¬ã§ã™ã€‚リモートコンフィグ経由ã§è¨­å®šã•れãŸã‚«ã‚¹ã‚¿ãƒ ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹ãŸã‚ã«ã€ãƒªãƒ¢ãƒ¼ãƒˆè¨­å®šã‚’å–å¾—ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã‚’æä¾›ã—ã¦ã„ã¾ã™ã€‚

ペイウォールã®ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグをå–å¾—ã—ã¦è¡¨ç¤ºã™ã‚‹

v4 ã§ã¯ã€ãƒ•ロー㫠remoteConfigs リストãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚設定ã•れãŸãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ã”ã¨ã« 1 ã¤ã®ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグãŒç”¨æ„ã•れã¦ã„ã¾ã™ã€‚ユーザーã®ãƒ­ã‚±ãƒ¼ãƒ«ã«åˆã£ãŸã‚¨ãƒ³ãƒˆãƒªã‚’é¸æŠžã—ã€å¿…è¦ãªå€¤ã‚’å–り出ã—ã¦ãã ã•ã„。é©åˆ‡ãªãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ã®é¸ã³æ–¹ã«ã¤ã„ã¦ã¯ã€ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ã¨ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ ã‚’å‚ç…§ã—ã¦ãã ã•ã„。


try {
  final flow = await Adapty().getFlow(placementId: 'YOUR_PLACEMENT_ID');

  // one entry per configured localization; fall back to the first one
  final config = flow.remoteConfigs.firstWhereOrNull((c) => c.locale == 'en') ??
      flow.remoteConfig;

  final String? headerText = config?.dictionary?['header_text'] as String?;
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
  // handle the error
}

å¿…è¦ãªå€¤ã‚’ã™ã¹ã¦å–å¾—ã—ãŸã‚‰ã€ãれらをレンダリングã—ã¦è¦–覚的ã«é­…力的ãªãƒšãƒ¼ã‚¸ã«çµ„ã¿ç«‹ã¦ã¾ã™ã€‚ã•ã¾ã–ã¾ãªã‚¹ãƒžãƒ¼ãƒˆãƒ•ォンã®ç”»é¢ã‚µã‚¤ã‚ºã‚„å‘ãã«å¯¾å¿œã—ãŸãƒ‡ã‚¶ã‚¤ãƒ³ã«ã—ã¦ã€ãƒ‡ãƒã‚¤ã‚¹ã‚’å•ã‚ãšã‚·ãƒ¼ãƒ ãƒ¬ã‚¹ã§ä½¿ã„ã‚„ã™ã„体験をæä¾›ã—ã¦ãã ã•ã„。

以下ã§èª¬æ˜Žã™ã‚‹ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«è¡¨ç¤ºã‚¤ãƒ™ãƒ³ãƒˆã‚’å¿…ãšè¨˜éŒ²ã—ã¦ãã ã•ã„。ã“れã«ã‚ˆã‚Šã€Adapty アナリティクスãŒãƒ•ã‚¡ãƒãƒ«ã‚„ A/B ãƒ†ã‚¹ãƒˆã®æƒ…報をåŽé›†ã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚

ペイウォールã®è¡¨ç¤ºãŒå®Œäº†ã—ãŸã‚‰ã€æ¬¡ã¯è³¼å…¥ãƒ•ローã®è¨­å®šã«é€²ã¿ã¾ã™ã€‚ユーザーãŒè³¼å…¥ã‚’行ã†éš›ã¯ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ãƒ—ロダクトを引数ã¨ã—㦠.makePurchase() を呼ã³å‡ºã™ã ã‘ã§ã™ã€‚.makePurchase() メソッドã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€è³¼å…¥ã®å®Ÿè¡Œã‚’ã”覧ãã ã•ã„。

ã¾ãŸã€ãƒ•ォールãƒãƒƒã‚¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¨å‘¼ã°ã‚Œã‚‹ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ペイウォールã®ä½œæˆã‚’ãŠã™ã™ã‚ã—ã¾ã™ã€‚ã“ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã¯ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆæŽ¥ç¶šãŒãªã„å ´åˆã‚„キャッシュãŒåˆ©ç”¨ã§ããªã„å ´åˆã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¸è¡¨ç¤ºã•れã€ãã®ã‚ˆã†ãªçжæ³ã§ã‚‚スムーズãªä½“験をæä¾›ã—ã¾ã™ã€‚

ペイウォールã®è¡¨ç¤ºã‚¤ãƒ™ãƒ³ãƒˆã‚’記録ã™ã‚‹

Adaptyã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ãƒ‘フォーマンス測定をサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã€‚購入データã¯è‡ªå‹•çš„ã«åŽé›†ã•れã¾ã™ãŒã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¡¨ç¤ºãƒ­ã‚°ã¯ãŠå®¢æ§˜ãŒè¨˜éŒ²ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ペイウォールãŒã„ã¤è¡¨ç¤ºã•れるã‹ã‚’把æ¡ã—ã¦ã„ã‚‹ã®ã¯ãŠå®¢æ§˜è‡ªèº«ã ã‹ã‚‰ã§ã™ã€‚

ペイウォールã®è¡¨ç¤ºã‚¤ãƒ™ãƒ³ãƒˆã‚’記録ã™ã‚‹ã«ã¯ã€.logShowFlow(flow: flow) を呼ã³å‡ºã™ã ã‘ã§ã™ã€‚ã“れã«ã‚ˆã‚Šã€ãƒ•ã‚¡ãƒãƒ«ã‚„A/B テストã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«æŒ‡æ¨™ã«å映ã•れã¾ã™ã€‚

ビルダー ã§ä½œæˆã—ãŸãƒ•ローやペイウォールを表示ã—ã¦ã„ã‚‹å ´åˆã¯ã€.logShowFlow(flow: flow) を呼ã³å‡ºã™å¿…è¦ã¯ã‚りã¾ã›ã‚“。

try {
  await Adapty().logShowFlow(flow: flow);
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
  // handle the error
}

リクエストパラメータ:

パラメータ必須/ä»»æ„説明
flow必須AdaptyFlow オブジェクト。

リモートコンフィグを使ã£ã¦ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’カスタマイズã—ãŸå ´åˆã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«è¡¨ç¤ºã™ã‚‹ãŸã‚ã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã‚’アプリã®ã‚³ãƒ¼ãƒ‰ã§å®Ÿè£…ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚リモートコンフィグã¯ãƒ‹ãƒ¼ã‚ºã«åˆã‚ã›ãŸæŸ”軟性をæä¾›ã™ã‚‹ãŸã‚ã€ä½•ã‚’å«ã‚ã‚‹ã‹ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¦‹ãŸç›®ã‚’ã©ã†ã™ã‚‹ã‹ã¯ã™ã¹ã¦è‡ªåˆ†ã§æ±ºã‚られã¾ã™ã€‚リモートコンフィグをå–å¾—ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã‚’用æ„ã—ã¦ã„ã‚‹ã®ã§ã€ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグã§è¨­å®šã—ãŸã‚«ã‚¹ã‚¿ãƒ ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’自由ã«è¡¨ç¤ºã§ãã¾ã™ã€‚

ペイウォールã®ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグをå–å¾—ã—ã¦è¡¨ç¤ºã™ã‚‹

ペイウォールã®ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグをå–å¾—ã™ã‚‹ã«ã¯ã€remoteConfig プロパティã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦å¿…è¦ãªå€¤ã‚’å–り出ã—ã¾ã™ã€‚

try {
  final paywall = await Adapty().getPaywall(placementId: "YOUR_PLACEMENT_ID");
  final String? headerText = paywall.remoteConfig?.dictionary?['header_text'] as String?;
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
}

å¿…è¦ãªå€¤ã‚’ã™ã¹ã¦å–å¾—ã—ãŸã‚‰ã€æ¬¡ã¯ãれらをレンダリングã—ã¦è¦–覚的ã«é­…力的ãªãƒšãƒ¼ã‚¸ã«çµ„ã¿ç«‹ã¦ã¾ã—ょã†ã€‚ã•ã¾ã–ã¾ãªãƒ¢ãƒã‚¤ãƒ«ç«¯æœ«ã®ç”»é¢ã‚µã‚¤ã‚ºã‚„å‘ãã«å¯¾å¿œã—ãŸãƒ‡ã‚¶ã‚¤ãƒ³ã«ã™ã‚‹ã“ã¨ã§ã€ã©ã®ãƒ‡ãƒã‚¤ã‚¹ã§ã‚‚シームレスã§ä½¿ã„ã‚„ã™ã„体験をæä¾›ã§ãã¾ã™ã€‚

以下ã§èª¬æ˜Žã™ã‚‹ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«è¡¨ç¤ºã‚¤ãƒ™ãƒ³ãƒˆã‚’å¿…ãšè¨˜éŒ²ã—ã¦ãã ã•ã„。ã“れã«ã‚ˆã‚Šã€Adapty アナリティクスãŒãƒ•ã‚¡ãƒãƒ«ãŠã‚ˆã³ A/B ãƒ†ã‚¹ãƒˆç”¨ã®æƒ…報をåŽé›†ã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚

ペイウォールã®è¡¨ç¤ºãŒå®Œäº†ã—ãŸã‚‰ã€æ¬¡ã¯è³¼å…¥ãƒ•ローã®è¨­å®šã«é€²ã¿ã¾ã™ã€‚ユーザーãŒè³¼å…¥ã‚’行ã†éš›ã¯ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ãƒ—ロダクトを使ã£ã¦ .makePurchase() を呼ã³å‡ºã™ã ã‘ã§ã™ã€‚.makePurchase() メソッドã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€è³¼å…¥ã®å®Ÿè£…ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

ã¾ãŸã€ãƒ•ォールãƒãƒƒã‚¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¨å‘¼ã°ã‚Œã‚‹ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ペイウォールã®ä½œæˆã‚‚ãŠå‹§ã‚ã—ã¾ã™ã€‚ã“ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã¯ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆæŽ¥ç¶šãŒãªã„å ´åˆã‚„キャッシュãŒåˆ©ç”¨ã§ããªã„å ´åˆã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«è¡¨ç¤ºã•れã€ã“ã†ã—ãŸçжæ³ã§ã‚‚スムーズãªä½“験をæä¾›ã—ã¾ã™ã€‚

ペイウォールã®è¡¨ç¤ºã‚¤ãƒ™ãƒ³ãƒˆã‚’記録ã™ã‚‹

Adapty ã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ãƒ‘フォーマンス計測をサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã€‚購入データã¯è‡ªå‹•çš„ã«åŽé›†ã•れã¾ã™ãŒã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¡¨ç¤ºãƒ­ã‚°ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’見ãŸã‚¿ã‚¤ãƒŸãƒ³ã‚°ã‚’ã‚ãªãŸè‡ªèº«ã—ã‹æŠŠæ¡ã§ããªã„ãŸã‚ã€æ‰‹å‹•ã§ã®è¨˜éŒ²ãŒå¿…è¦ã§ã™ã€‚

ペイウォールã®è¡¨ç¤ºã‚¤ãƒ™ãƒ³ãƒˆã‚’記録ã™ã‚‹ã«ã¯ã€.logShowPaywall(paywall) を呼ã³å‡ºã™ã ã‘ã§ã™ã€‚ã“れã«ã‚ˆã‚Šãƒ•ã‚¡ãƒãƒ«ã‚„ A/B テストã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«æŒ‡æ¨™ã«å映ã•れã¾ã™ã€‚

ペイウォールビルダー ã§ä½œæˆã—ãŸãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã—ã¦ã„ã‚‹å ´åˆã€.logShowPaywall(paywall) ã®å‘¼ã³å‡ºã—ã¯ä¸è¦ã§ã™ã€‚

try {
  final result = await Adapty().logShowPaywall(paywall: paywall);
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
}

リクエストパラメーター:

パラメーター必須/ä»»æ„説明
paywall必須AdaptyPaywall オブジェクト。
ÿÿÿÿ