ÿÿ フローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®å–å¾— - React Native | Adapty ドキュメント

フローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®å–å¾— - React Native

getFlow ã§å–å¾—ã•れる内容
✦
フロー Flow Builder ã§ä½œæˆâ€”—デãƒã‚¤ã‚¹ä¸Šã§ãƒã‚¤ãƒ†ã‚£ãƒ–ã«ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã•れã€WebView ã¯ä¸è¦
✦
Paywall Builder ã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ« 既存ã®ã™ã¹ã¦ã® Paywall Builder コンテンツ

フローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’デザインã—ãŸã‚‰ã€ãƒ¢ãƒã‚¤ãƒ«ã‚¢ãƒ—リã«ãれを表示ã§ãã¾ã™ã€‚ã¾ãšã€ä»¥ä¸‹ã§èª¬æ˜Žã™ã‚‹ã‚ˆã†ã«ã€ãƒ—レースメントã«é–¢é€£ä»˜ã‘られãŸãƒ•ローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¨ãã®ãƒ“ュー設定をå–å¾—ã—ã¾ã™ã€‚

ã“ã®ãƒˆãƒ”ックã¯ãƒ•ローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーã§ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºã—ãŸãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã«é–¢ã™ã‚‹ã‚‚ã®ã§ã™ã€‚ペイウォールを手動ã§å®Ÿè£…ã™ã‚‹å ´åˆã¯ã€ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグペイウォールã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¨ãƒ—ロダクトã®å–å¾—ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

Adapty SDK ãŒãƒ¢ãƒã‚¤ãƒ«ã‚¢ãƒ—リã«ã©ã®ã‚ˆã†ã«çµ±åˆã•れã¦ã„ã‚‹ã‹ã€å®Ÿéš›ã®ä¾‹ã‚’見ã¦ã¿ã¾ã›ã‚“ã‹ï¼Ÿãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¡¨ç¤ºã€è³¼å…¥å‡¦ç†ã€ãã®ä»–ã®åŸºæœ¬æ©Ÿèƒ½ã‚’å«ã‚€å®Œå…¨ãªã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—を実演ã—ã¦ã„るサンプルアプリをã”覧ãã ã•ã„。

モãƒã‚¤ãƒ«ã‚¢ãƒ—リã§ãƒ•ローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹å‰ã«ï¼ˆã‚¯ãƒªãƒƒã‚¯ã—ã¦å±•開)
  1. Adapty ダッシュボードã§ãƒ—ロダクトを作æˆã™ã‚‹ã€‚
  2. Adapty ダッシュボードã§ãƒ•ロー/ペイウォールを作æˆã—ã€ãƒ—ロダクトを組ã¿è¾¼ã‚€ã€‚
  3. Adapty ダッシュボードã§ãƒ—レースメントを作æˆã—ã€ãƒ•ロー/ペイウォールを組ã¿è¾¼ã‚€ã€‚
  4. モãƒã‚¤ãƒ«ã‚¢ãƒ—リ㫠Adapty SDK をインストールã™ã‚‹ã€‚

フローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®å–å¾—

Flow Builder ã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーを使ã£ã¦ãƒ•ローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’作æˆã—ãŸå ´åˆã€ãƒ¢ãƒã‚¤ãƒ«ã‚¢ãƒ—リã®ã‚³ãƒ¼ãƒ‰ä¸Šã§ãれをユーザーã«è¡¨ç¤ºã™ã‚‹ãŸã‚ã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°å‡¦ç†ã‚’自分ã§å®Ÿè£…ã™ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。ãã®ã‚ˆã†ãªãƒ•ローやペイウォールã«ã¯ã€è¡¨ç¤ºã™ã‚‹å†…容ã¨è¡¨ç¤ºæ–¹æ³•ã®ä¸¡æ–¹ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ãŸã ã—ã€ãƒ—レースメントを通ã˜ã¦IDã‚’å–å¾—ã—ã€ãƒ“ュー設定をå–å¾—ã—ãŸä¸Šã§ã€ãƒ¢ãƒã‚¤ãƒ«ã‚¢ãƒ—リ内ã«è¡¨ç¤ºã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ フローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’ã§ãã‚‹ã ã‘æ—©ã„æ®µéšŽã§å–å¾—ã—ã€ãã®ãƒ“ューを作æˆã—ã¦ãŠãã¾ã—ょㆠ— ç†æƒ³çš„ã«ã¯è¡¨ç¤ºã™ã‚‹ã‚ˆã‚Šã‚‚ã‹ãªã‚Šå‰ã«è¡Œã„ã¾ã™ã€‚createFlowView メソッドã¯ãƒ“ューã®è¨­å®šã‚’読ã¿è¾¼ã¿ã€ç”»åƒã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã¨ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§é–‹å§‹ã—ã¾ã™ã€‚æ—©ã‚ã«å‘¼ã³å‡ºã™ã»ã©ã€ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ãŒå®Œäº†ã™ã‚‹ã¾ã§ã®æ™‚間を確ä¿ã§ãã¾ã™ã€‚フローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹é ƒã«ã¯ã€è¨­å®šã¨ç”»åƒãŒã™ã§ã«ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã•れãŸçŠ¶æ…‹ã«ãªã£ã¦ã„ã¾ã™ã€‚

フローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’å–å¾—ã™ã‚‹ã«ã¯ã€getFlow メソッドを使用ã—ã¾ã™ï¼š

try {
    const placementId = 'YOUR_PLACEMENT_ID';

    const flow = await adapty.getFlow(placementId);
  // the requested flow/paywall
} catch (error) {
    // handle the error
}

パラメーター:

パラメーター必須/ä»»æ„説明
placementIdå¿…é ˆå–å¾—ã—ãŸã„プレースメントã®è­˜åˆ¥å­ã€‚Adapty ダッシュボードã§ãƒ—レースメントを作æˆã™ã‚‹éš›ã«æŒ‡å®šã—ãŸå€¤ã§ã™ã€‚
fetchPolicyデフォルト: .reloadRevalidatingCacheData

デフォルトã§ã¯ã€SDK ã¯ã‚µãƒ¼ãƒãƒ¼ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’読ã¿è¾¼ã‚‚ã†ã¨ã—ã€å¤±æ•—ã—ãŸå ´åˆã¯ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã•れãŸãƒ‡ãƒ¼ã‚¿ã‚’è¿”ã—ã¾ã™ã€‚ã“ã®æ–¹å¼ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒå¸¸ã«æœ€æ–°ã®ãƒ‡ãƒ¼ã‚¿ã‚’å–å¾—ã§ãã‚‹ãŸã‚ã€æŽ¨å¥¨ã—ã¾ã™ã€‚

ãŸã ã—ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆæŽ¥ç¶šãŒä¸å®‰å®šãªå ´åˆã¯ã€.returnCacheDataElseLoad を使用ã™ã‚‹ã“ã¨ã‚’検討ã—ã¦ãã ã•ã„。キャッシュãŒå­˜åœ¨ã™ã‚‹å ´åˆã¯ã‚­ãƒ£ãƒƒã‚·ãƒ¥ãƒ‡ãƒ¼ã‚¿ã‚’è¿”ã—ã¾ã™ã€‚ã“ã®å ´åˆã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæœ€æ–°ã®ãƒ‡ãƒ¼ã‚¿ã‚’å–å¾—ã§ããªã„ã“ã¨ãŒã‚りã¾ã™ãŒã€æŽ¥ç¶šçŠ¶æ…‹ã«ã‹ã‹ã‚らãšèª­ã¿è¾¼ã¿æ™‚é–“ãŒçŸ­ç¸®ã•れã¾ã™ã€‚キャッシュã¯å®šæœŸçš„ã«æ›´æ–°ã•れるãŸã‚ã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’é¿ã‘ã‚‹ãŸã‚ã«ã‚»ãƒƒã‚·ãƒ§ãƒ³ä¸­ã«ä½¿ç”¨ã—ã¦ã‚‚安全ã§ã™ã€‚

キャッシュã¯ã‚¢ãƒ—リをå†èµ·å‹•ã—ã¦ã‚‚ä¿æŒã•れã€ã‚¢ãƒ—リã®å†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«æ™‚ã¾ãŸã¯æ‰‹å‹•ã§ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ãŸå ´åˆã«ã®ã¿å‰Šé™¤ã•れã¾ã™ã€‚

Adapty SDK ã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’ローカルã«2層ã§ä¿å­˜ã—ã¾ã™ã€‚1ã¤ã¯ä¸Šè¨˜ã®å®šæœŸæ›´æ–°ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã€ã‚‚ã†1ã¤ã¯ãƒ•ォールãƒãƒƒã‚¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã§ã™ã€‚ã¾ãŸã€CDN を使用ã—ã¦ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’より速ãå–å¾—ã—ã€CDN ã«æŽ¥ç¶šã§ããªã„å ´åˆã«å‚™ãˆã¦ã‚¹ã‚¿ãƒ³ãƒ‰ã‚¢ãƒ­ãƒ¼ãƒ³ã®ãƒ•ォールãƒãƒƒã‚¯ã‚µãƒ¼ãƒãƒ¼ã‚‚利用ã—ã¦ã„ã¾ã™ã€‚ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã¯ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆæŽ¥ç¶šãŒä¸å®‰å®šãªçжæ³ã§ã‚‚信頼性を確ä¿ã—ãªãŒã‚‰ã€å¸¸ã«æœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’å–å¾—ã§ãるよã†è¨­è¨ˆã•れã¦ã„ã¾ã™ã€‚

loadTimeoutMsデフォルト: 5秒

ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆä¸Šé™ã‚’設定ã—ã¾ã™ã€‚タイムアウトã«é”ã—ãŸå ´åˆã€ã‚­ãƒ£ãƒƒã‚·ãƒ¥ãƒ‡ãƒ¼ã‚¿ã¾ãŸã¯ãƒ­ãƒ¼ã‚«ãƒ«ãƒ•ォールãƒãƒƒã‚¯ãŒè¿”ã•れã¾ã™ã€‚

内部ã§è¤‡æ•°ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆãŒå®Ÿè¡Œã•れる場åˆãŒã‚ã‚‹ãŸã‚ã€ã¾ã‚Œã« loadTimeout ã§æŒ‡å®šã—ãŸæ™‚間よりã‚ãšã‹ã«é…れã¦ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã™ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚

Android ã®å ´åˆ: 拡張関数(例: 5.secondsã€.seconds 㯠import com.adapty.utils.seconds ã‹ã‚‰ï¼‰ã‚’使用ã™ã‚‹ã‹ã€TimeInterval.seconds(5) ã§ TimeInterval を作æˆã§ãã¾ã™ã€‚制é™ãªã—ã«ã™ã‚‹ã«ã¯ TimeInterval.INFINITE を使用ã—ã¦ãã ã•ã„。

レスãƒãƒ³ã‚¹ãƒ‘ラメータ

パラメータ説明
Flowフローã®è­˜åˆ¥å­ï¼ˆidã€variationId)ã€åå‰ã€ãƒ—レースメントã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ãƒãƒªã‚¢ãƒ³ãƒˆï¼ˆpaywalls)ã€ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグ(remoteConfigs)をå«ã‚€ AdaptyFlow オブジェクト。

ビュー設定ã®å–å¾—

ビルダー㮠Show on device ãƒˆã‚°ãƒ«ã‚’å¿…ãšæœ‰åйã«ã—ã¦ãã ã•ã„。ã“ã®ã‚ªãƒ—ションãŒã‚ªãƒ³ã«ãªã£ã¦ã„ãªã„å ´åˆã€ãƒ“ュー設定をå–å¾—ã§ãã¾ã›ã‚“。

プレースメント㌠Flow Builder ã¾ãŸã¯ ペイウォールビルダー ã§ãƒ‡ã‚¶ã‚¤ãƒ³ã•れã¦ã„ã‚‹å ´åˆã€Adapty ㌠UI をレンダリングã—ã¾ã™ã€‚createFlowView ã§ãƒ“ューを作æˆã—ã€ãƒ•ローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã—ã¦ãã ã•ã„。プレースメントãŒãƒ“ルダー UI ã‚’æŒãŸãªã„カスタムペイウォールã®å ´åˆã¯ã€ä»£ã‚りã«ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグペイウォールã¨ã—ã¦å‡¦ç†ã—ã¦ãã ã•ã„。 React Native SDK ã§ã¯ã€ãƒ“ューã®è¨­å®šã‚’事å‰ã«å–å¾—ã™ã‚‹å¿…è¦ã¯ãªãã€createFlowView を直接呼ã³å‡ºã›ã¾ã™ã€‚

createFlowView ãƒ¡ã‚½ãƒƒãƒ‰ã®æˆ»ã‚Šå€¤ã¯ä¸€åº¦ã—ã‹ä½¿ç”¨ã§ãã¾ã›ã‚“。å†åº¦ä½¿ç”¨ã™ã‚‹å¿…è¦ãŒã‚ã‚‹å ´åˆã¯ã€createFlowView メソッドを新ãŸã«å‘¼ã³å‡ºã—ã¦ãã ã•ã„。å†ä½œæˆã›ãšã«äºŒåº¦å‘¼ã³å‡ºã™ã¨ã€AdaptyUIError.viewAlreadyPresented エラーãŒç™ºç”Ÿã™ã‚‹å ´åˆãŒã‚りã¾ã™ã€‚


try {
  const view = await createFlowView(flow);
} catch (error) {
  // handle the error
}

パラメーター:

パラメーター必須/ä»»æ„説明
flow必須目的ã®ãƒ•ロー/ペイウォールã®ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ©ãƒ¼ã‚’å–å¾—ã™ã‚‹ãŸã‚ã® AdaptyFlow オブジェクト。
customTagsä»»æ„カスタムタグã¨ãã®è§£æ±ºæ¸ˆã¿ã®å€¤ã®è¾žæ›¸ã‚’定義ã—ã¾ã™ã€‚カスタムタグã¯ã‚³ãƒ³ãƒ†ãƒ³ãƒ„内ã®ãƒ—レースホルダーã¨ã—ã¦æ©Ÿèƒ½ã—ã€ãƒ•ロー/ペイウォール内ã§ãƒ‘ーソナライズã•れãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã‚’æä¾›ã™ã‚‹ãŸã‚ã«ç‰¹å®šã®æ–‡å­—列ã«å‹•çš„ã«ç½®ãæ›ãˆã‚‰ã‚Œã¾ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーã®ã‚«ã‚¹ã‚¿ãƒ ã‚¿ã‚°ã«é–¢ã™ã‚‹ãƒˆãƒ”ックをå‚ç…§ã—ã¦ãã ã•ã„。
prefetchProductsä»»æ„ç”»é¢ä¸Šã®ãƒ—ロダクト表示タイミングを最é©åŒ–ã™ã‚‹ãŸã‚ã«æœ‰åйã«ã—ã¾ã™ã€‚true ã«ã™ã‚‹ã¨ã€AdaptyUI ãŒå¿…è¦ãªãƒ—ロダクトを自動的ã«ãƒ•ェッãƒã—ã¾ã™ã€‚デフォルト: false。
android.enableSafeAreaä»»æ„Android ã®ã¿ï¼ˆiOS ã§ã¯ç„¡è¦–ã•れã¾ã™ï¼‰ã€‚ãƒã‚¹ãƒˆã•れãŸã‚ªãƒ–ジェクトã¨ã—ã¦æ¸¡ã—ã¦ãã ã•ã„: android: { enableSafeArea: true }。true ã«ã™ã‚‹ã¨ã€ãƒ•ロービューã«ã‚»ãƒ¼ãƒ•エリアã®ãƒ‘ディングãŒé©ç”¨ã•れã¾ã™ã€‚モーダル表示(createFlowView + present())ã®å ´åˆã¯ãƒ‡ãƒ•ォルト㧠trueã€åŸ‹ã‚è¾¼ã¿ã® AdaptyFlowView コンãƒãƒ¼ãƒãƒ³ãƒˆã®å ´åˆã¯ãƒ‡ãƒ•ォルト㧠false ã§ã™ã€‚ã»ã¨ã‚“ã©ã®ã‚±ãƒ¼ã‚¹ã§ã¯ãƒ‡ãƒ•ォルト設定ãŒé©ã—ã¦ã„ã¾ã™ã€‚

複数ã®è¨€èªžã‚’使用ã—ã¦ã„ã‚‹å ´åˆã¯ã€ãƒ•ローã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã‚’追加ã™ã‚‹æ–¹æ³•ã¨ã€ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ã‚’æ­£ã—ã使用ã™ã‚‹æ–¹æ³•ã‚’ã“ã¡ã‚‰ã§ã”確èªãã ã•ã„。

ビューをå–å¾—ã—ãŸã‚‰ã€ãƒ•ロー/ペイウォールを表示ã—ã¦ãã ã•ã„。

デフォルトオーディエンスã®ãƒ•ローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’å–å¾—ã—ã¦è¡¨ç¤ºã‚’高速化ã™ã‚‹

通常ã€ãƒ•ローやペイウォールã¯ã»ã¼å³åº§ã«å–å¾—ã•れるãŸã‚ã€é«˜é€ŸåŒ–ã‚’æ„è­˜ã™ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。ãŸã ã—ã€ã‚ªãƒ¼ãƒ‡ã‚£ã‚¨ãƒ³ã‚¹ã‚„プレースメントãŒå¤šæ•°ã‚りã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®é€šä¿¡ç’°å¢ƒãŒä¸å®‰å®šãªå ´åˆã¯ã€å–å¾—ã«æ™‚é–“ãŒã‹ã‹ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚ãã®ã‚ˆã†ãªçжæ³ã§ã¯ã€ä½•も表示ã—ãªã„よりもã€ãƒ‡ãƒ•ォルトã®ãƒ•ローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã—ã¦ã‚¹ãƒ ãƒ¼ã‚ºãªãƒ¦ãƒ¼ã‚¶ãƒ¼ä½“験をæä¾›ã—ãŸã»ã†ãŒã‚ˆã„ã§ã—ょã†ã€‚ ã“れã«å¯¾å‡¦ã™ã‚‹ãŸã‚ã«ã€getFlowForDefaultAudience メソッドを使用ã§ãã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€æŒ‡å®šã—ãŸãƒ—レースメント㮠All Users オーディエンスå‘ã‘ã®ãƒ•ローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’å–å¾—ã—ã¾ã™ã€‚ãŸã ã—ã€æŽ¨å¥¨ã•れるアプローãƒã¯ フロー/ペイウォールã®å–å¾— セクションã§è©³ã—ã説明ã•れã¦ã„ã‚‹ getFlow メソッドを使用ã—ã¦ãƒ•ローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’å–å¾—ã™ã‚‹ã“ã¨ã§ã‚る点をç†è§£ã—ã¦ãŠãã“ã¨ãŒé‡è¦ã§ã™ã€‚

getFlow を推奨ã™ã‚‹ç†ç”±

getFlowForDefaultAudience メソッドã«ã¯ã„ãã¤ã‹ã®é‡å¤§ãªãƒ‡ãƒ¡ãƒªãƒƒãƒˆãŒã‚りã¾ã™ï¼š

  • å¾Œæ–¹äº’æ›æ€§ã®å•題: ç¾è¡Œãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¨å°†æ¥ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ç•°ãªã‚‹ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹å¿…è¦ãŒã‚ã‚‹å ´åˆã€èª²é¡ŒãŒç”Ÿã˜ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ç¾è¡Œï¼ˆãƒ¬ã‚¬ã‚·ãƒ¼ï¼‰ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«å¯¾å¿œã—ãŸãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’設計ã™ã‚‹ã‹ã€ç¾è¡Œï¼ˆãƒ¬ã‚¬ã‚·ãƒ¼ï¼‰ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã§ããªã„å•題をå—ã‘入れるã‹ã®ã„ãšã‚Œã‹ã‚’é¸æŠžã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
  • ターゲティングã®å–ªå¤±: ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒ All Users オーディエンスå‘ã‘ã«è¨­è¨ˆã•れãŸåŒä¸€ã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹ã“ã¨ã«ãªã‚‹ãŸã‚ã€å›½ã€ãƒžãƒ¼ã‚±ãƒ†ã‚£ãƒ³ã‚°ã®ã‚¢ãƒˆãƒªãƒ“ューションã€ç‹¬è‡ªã®ã‚«ã‚¹ã‚¿ãƒ å±žæ€§ã«åŸºã¥ãパーソナライズã•れãŸã‚¿ãƒ¼ã‚²ãƒ†ã‚£ãƒ³ã‚°ãŒã§ããªããªã‚Šã¾ã™ã€‚ より速ã„フローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®å–å¾—ã¨ã„ã†ãƒ¡ãƒªãƒƒãƒˆã®ãŸã‚ã«ã“れらã®ãƒ‡ãƒ¡ãƒªãƒƒãƒˆã‚’å—ã‘入れられる場åˆã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã« getFlowForDefaultAudience メソッドを使用ã—ã¦ãã ã•ã„。ãれ以外ã®å ´åˆã¯ã€ä¸Šè¨˜ã§èª¬æ˜Žã—㟠getFlow を使用ã—ã¦ãã ã•ã„。
try {
    const id = 'YOUR_PLACEMENT_ID';

    const flow = await adapty.getFlowForDefaultAudience(id);
  // the requested flow/paywall
} catch (error) {
    // handle the error
}
パラメータ必須/ä»»æ„説明
placementId必須プレースメントã®è­˜åˆ¥å­ã§ã™ã€‚Adapty ダッシュボードã§ãƒ—レースメントを作æˆã™ã‚‹éš›ã«æŒ‡å®šã—ãŸå€¤ã§ã™ã€‚
fetchPolicyデフォルト: .reloadRevalidatingCacheData

デフォルトã§ã¯ã€SDK ã¯ã‚µãƒ¼ãƒãƒ¼ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’読ã¿è¾¼ã‚‚ã†ã¨ã—ã€å¤±æ•—ã—ãŸå ´åˆã¯ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã•れãŸãƒ‡ãƒ¼ã‚¿ã‚’è¿”ã—ã¾ã™ã€‚ユーザーãŒå¸¸ã«æœ€æ–°ã®ãƒ‡ãƒ¼ã‚¿ã‚’å—ã‘å–れるãŸã‚ã€ã“ã®è¨­å®šã‚’推奨ã—ã¾ã™ã€‚

ãŸã ã—ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆæŽ¥ç¶šãŒä¸å®‰å®šãªå ´åˆã¯ã€.returnCacheDataElseLoad ã®ä½¿ç”¨ã‚’検討ã—ã¦ãã ã•ã„。ã“ã®è¨­å®šã§ã¯ã€ã‚­ãƒ£ãƒƒã‚·ãƒ¥ãŒå­˜åœ¨ã™ã‚‹å ´åˆã«ã‚­ãƒ£ãƒƒã‚·ãƒ¥ãƒ‡ãƒ¼ã‚¿ã‚’è¿”ã—ã¾ã™ã€‚最新データãŒå¾—られãªã„ケースã¯ã‚りã¾ã™ãŒã€æŽ¥ç¶šçжæ³ã«é–¢ã‚らãšèª­ã¿è¾¼ã¿ãŒé€Ÿããªã‚Šã¾ã™ã€‚キャッシュã¯ã‚»ãƒƒã‚·ãƒ§ãƒ³ä¸­ã‚‚å®šæœŸçš„ã«æ›´æ–°ã•れるãŸã‚ã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’減らã™ç›®çš„ã§å®‰å¿ƒã—ã¦åˆ©ç”¨ã§ãã¾ã™ã€‚

ãªãŠã€ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã¯ã‚¢ãƒ—リをå†èµ·å‹•ã—ã¦ã‚‚ä¿æŒã•れã€ã‚¢ãƒ—リã®ã‚¢ãƒ³ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«æ™‚ã¾ãŸã¯æ‰‹å‹•ã§ã‚¯ãƒªã‚¢ã—ãŸå ´åˆã®ã¿å‰Šé™¤ã•れã¾ã™ã€‚

アセットã®ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚º

フロー/ペイウォール内ã®ç”»åƒã‚„動画をカスタマイズã™ã‚‹ã«ã¯ã€ã‚«ã‚¹ã‚¿ãƒ ã‚¢ã‚»ãƒƒãƒˆã‚’実装ã—ã¾ã™ã€‚

ヒーロー画åƒã¨å‹•ç”»ã«ã¯ã€ã‚らã‹ã˜ã‚ hero_image ãŠã‚ˆã³ hero_video ã¨ã„ã†å®šç¾©æ¸ˆã¿IDãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚カスタムアセットãƒãƒ³ãƒ‰ãƒ«ã§ã¯ã€ã“れらã®IDを使ã£ã¦å„è¦ç´ ã‚’指定ã—ã€å‹•作をカスタマイズã—ã¾ã™ã€‚

ãã®ä»–ã®ç”»åƒã‚„å‹•ç”»ã«ã¤ã„ã¦ã¯ã€Adapty ダッシュボードã§ã‚«ã‚¹ã‚¿ãƒ IDを設定ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚

ãŸã¨ãˆã°ã€æ¬¡ã®ã‚ˆã†ãªã“ã¨ãŒã§ãã¾ã™ã€‚

  • 特定ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«åˆ¥ã®ç”»åƒã‚„動画を表示ã™ã‚‹ã€‚
  • リモートã®ãƒ¡ã‚¤ãƒ³ç”»åƒã®èª­ã¿è¾¼ã¿ä¸­ã«ãƒ­ãƒ¼ã‚«ãƒ«ã®ãƒ—レビュー画åƒã‚’表示ã™ã‚‹ã€‚
  • å‹•ç”»ã®å†ç”Ÿå‰ã«ãƒ—レビュー画åƒã‚’表示ã™ã‚‹ã€‚

ã“ã®æ©Ÿèƒ½ã‚’使用ã™ã‚‹ã«ã¯ã€Adapty React Native SDK ã‚’ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 3.8.0 ä»¥ä¸Šã«æ›´æ–°ã—ã¦ãã ã•ã„。

シンプルãªãƒ‡ã‚£ã‚¯ã‚·ãƒ§ãƒŠãƒªã‚’使ã£ã¦ã‚«ã‚¹ã‚¿ãƒ ã‚¢ã‚»ãƒƒãƒˆã‚’æä¾›ã™ã‚‹ä¾‹ã‚’以下ã«ç¤ºã—ã¾ã™ï¼š

const customAssets: Record<string, AdaptyCustomAsset> = {
  'custom_image': { type: 'image', relativeAssetPath: 'custom_image.png' },
  'hero_video': {
    type: 'video',
    fileLocation: {
      ios: { fileName: 'custom_video.mp4' },
      android: { relativeAssetPath: 'videos/custom_video.mp4' }
    }
  }
};

view = await createFlowView(flow, { customAssets })

アセットãŒè¦‹ã¤ã‹ã‚‰ãªã„å ´åˆã€ãƒ•ロー/ペイウォールã¯ãƒ‡ãƒ•ォルトã®å¤–観ã«ãƒ•ォールãƒãƒƒã‚¯ã—ã¾ã™ã€‚

Adapty ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã®æ–°ã—ã„ペイウォールビルダーã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ãƒ“ジュアルデザインを作æˆã—ãŸå¾Œã€ãれをモãƒã‚¤ãƒ«ã‚¢ãƒ—リã«è¡¨ç¤ºã§ãã¾ã™ã€‚最åˆã®ã‚¹ãƒ†ãƒƒãƒ—ã¯ã€ãƒ—レースメントã«é–¢é€£ä»˜ã‘られãŸãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¨ãã®ãƒ“ュー設定をå–å¾—ã™ã‚‹ã“ã¨ã§ã™ã€‚詳細ã¯ä»¥ä¸‹ã‚’ã”覧ãã ã•ã„。

æ–°ã—ã„ペイウォールビルダーã¯ã€React Native SDK ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 3.0 以é™ã§å‹•作ã—ã¾ã™ã€‚

ペイウォールビルダーã§ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºã—ãŸãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã«ã¤ã„ã¦ã®èª¬æ˜Žã§ã™ã€‚ペイウォールを手動ã§å®Ÿè£…ã—ã¦ã„ã‚‹å ´åˆã¯ã€ãƒ¢ãƒã‚¤ãƒ«ã‚¢ãƒ—リã§ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグペイウォールã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¨ãƒ—ロダクトをå–å¾—ã™ã‚‹ãƒˆãƒ”ックをå‚ç…§ã—ã¦ãã ã•ã„。

Adapty SDK ãŒãƒ¢ãƒã‚¤ãƒ«ã‚¢ãƒ—リã«ã©ã®ã‚ˆã†ã«çµ±åˆã•れã¦ã„ã‚‹ã‹ã€å®Ÿéš›ã®ä¾‹ã‚’見ã¦ã¿ã¾ã›ã‚“ã‹ï¼Ÿãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¡¨ç¤ºã€è³¼å…¥å‡¦ç†ã€ãã®ä»–ã®åŸºæœ¬æ©Ÿèƒ½ã‚’å«ã‚€å®Œå…¨ãªã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—を実演ã—ã¦ã„るサンプルアプリをã”覧ãã ã•ã„。

モãƒã‚¤ãƒ«ã‚¢ãƒ—リã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¡¨ç¤ºã‚’é–‹å§‹ã™ã‚‹å‰ã«ï¼ˆã‚¯ãƒªãƒƒã‚¯ã—ã¦å±•開)
  1. Adapty ダッシュボードã§ãƒ—ロダクトを作æˆã—ã¾ã™ã€‚
  2. Adapty ダッシュボードã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’作æˆã—ã€ãƒ—ロダクトを追加ã—ã¾ã™ã€‚
  3. Adapty ダッシュボードã§ãƒ—レースメントを作æˆã—ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’追加ã—ã¾ã™ã€‚
  4. モãƒã‚¤ãƒ«ã‚¢ãƒ—リ㫠Adapty SDK をインストールã—ã¾ã™ã€‚

ペイウォールビルダーã§ä½œæˆã—ãŸãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’å–å¾—ã™ã‚‹

ペイウォールビルダーを使ã£ã¦ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’デザインã—ãŸå ´åˆã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«è¡¨ç¤ºã™ã‚‹ãŸã‚ã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã‚³ãƒ¼ãƒ‰ã‚’ã‚¢ãƒ—ãƒªå†…ã«æ›¸ãå¿…è¦ã¯ã‚りã¾ã›ã‚“。ã“ã®ã‚ˆã†ãªãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã«ã¯ã€è¡¨ç¤ºã™ã‚‹å†…容ã¨è¡¨ç¤ºæ–¹æ³•ã®ä¸¡æ–¹ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ãŸã ã—ã€ãƒ—レースメントを通ã˜ã¦ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®IDã‚’å–å¾—ã—ã€ãƒ“ュー設定をå–å¾—ã—ãŸä¸Šã§ã€ã‚¢ãƒ—リ内ã«è¡¨ç¤ºã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ 最é©ãªãƒ‘フォーマンスを確ä¿ã™ã‚‹ã«ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«è¡¨ç¤ºã™ã‚‹å‰ã«ç”»åƒã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ãŒå®Œäº†ã™ã‚‹ã‚ˆã†ååˆ†ãªæ™‚間を確ä¿ã™ã‚‹ãŸã‚ã«ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¨ãã®ãƒ“ュー設定をã§ãã‚‹ã ã‘æ—©ãå–å¾—ã™ã‚‹ã“ã¨ãŒé‡è¦ã§ã™ã€‚

ペイウォールをå–å¾—ã™ã‚‹ã«ã¯ã€getPaywall メソッドを使用ã—ã¾ã™ã€‚

try {
    const placementId = 'YOUR_PLACEMENT_ID';
    const locale = 'en';

    const paywall = await adapty.getPaywall(placementId, locale);
  // the requested paywall
} catch (error) {
    // handle the error
}

パラメーター:

パラメータ必須/ä»»æ„説明
placementIdå¿…é ˆå–å¾—ã—ãŸã„プレースメントã®è­˜åˆ¥å­ã€‚Adapty ダッシュボードã§ãƒ—レースメントを作æˆã™ã‚‹éš›ã«æŒ‡å®šã—ãŸå€¤ã§ã™ã€‚
locale

ä»»æ„

デフォルト: en

ペイウォールã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ã®è­˜åˆ¥å­ã€‚ãƒã‚¤ãƒ•ン(-)ã§åŒºåˆ‡ã‚‰ã‚ŒãŸ1ã¤ã¾ãŸã¯2ã¤ã®ã‚µãƒ–ã‚¿ã‚°ã§æ§‹æˆã•れる言語コードを指定ã—ã¾ã™ã€‚最åˆã®ã‚µãƒ–ã‚¿ã‚°ã¯è¨€èªžã€2番目ã¯ãƒªãƒ¼ã‚¸ãƒ§ãƒ³ã‚’表ã—ã¾ã™ã€‚

例:en ã¯è‹±èªžã€pt-br ã¯ãƒ–ラジルãƒãƒ«ãƒˆã‚¬ãƒ«èªžã‚’表ã—ã¾ã™ã€‚

ロケールコードãŠã‚ˆã³æŽ¨å¥¨ã™ã‚‹ä½¿ç”¨æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ã¨ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

fetchPolicyデフォルト: .reloadRevalidatingCacheData

デフォルトã§ã¯ã€SDK ã¯ã‚µãƒ¼ãƒãƒ¼ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’読ã¿è¾¼ã‚‚ã†ã¨ã—ã€å¤±æ•—ã—ãŸå ´åˆã¯ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã•れãŸãƒ‡ãƒ¼ã‚¿ã‚’è¿”ã—ã¾ã™ã€‚å¸¸ã«æœ€æ–°ã®ãƒ‡ãƒ¼ã‚¿ã‚’ユーザーã«å±Šã‘られるãŸã‚ã€ã“ã®è¨­å®šã‚’推奨ã—ã¾ã™ã€‚

ãŸã ã—ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆæŽ¥ç¶šãŒä¸å®‰å®šã ã¨è€ƒãˆã‚‰ã‚Œã‚‹å ´åˆã¯ã€.returnCacheDataElseLoad を使用ã—ã¦ã€ã‚­ãƒ£ãƒƒã‚·ãƒ¥ãŒå­˜åœ¨ã™ã‚‹å ´åˆã¯ã‚­ãƒ£ãƒƒã‚·ãƒ¥ãƒ‡ãƒ¼ã‚¿ã‚’è¿”ã™ã‚ˆã†ã«ã™ã‚‹ã“ã¨ã‚’検討ã—ã¦ãã ã•ã„。ã“ã®å ´åˆã€æœ€æ–°ãƒ‡ãƒ¼ã‚¿ãŒå±Šã‹ãªã„ã“ã¨ãŒã‚りã¾ã™ãŒã€æŽ¥ç¶šãŒä¸å®‰å®šãªçжæ³ã§ã‚‚読ã¿è¾¼ã¿ãŒé€Ÿããªã‚Šã¾ã™ã€‚キャッシュã¯ã“ã¾ã‚ã«æ›´æ–°ã•れるãŸã‚ã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’減らã™ç›®çš„ã§ã‚»ãƒƒã‚·ãƒ§ãƒ³ä¸­ã«ä½¿ç”¨ã—ã¦ã‚‚å•題ã‚りã¾ã›ã‚“。

キャッシュã¯ã‚¢ãƒ—リをå†èµ·å‹•ã—ã¦ã‚‚ä¿æŒã•れã€ã‚¢ãƒ—リã®å†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«æ™‚ã¾ãŸã¯æ‰‹å‹•ã§ã‚¯ãƒªã‚¢ã—ãŸå ´åˆã«ã®ã¿å‰Šé™¤ã•れã¾ã™ã€‚

Adapty SDK ã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’ローカルã«2層ã§ä¿å­˜ã—ã¾ã™ã€‚1ã¤ã¯ä¸Šè¿°ã®å®šæœŸæ›´æ–°ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã€ã‚‚ã†1ã¤ã¯ãƒ•ォールãƒãƒƒã‚¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã§ã™ã€‚ã¾ãŸã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®å–得を高速化ã™ã‚‹ãŸã‚ã« CDN を使用ã—ã€CDN ã«æŽ¥ç¶šã§ããªã„å ´åˆã«å‚™ãˆãŸã‚¹ã‚¿ãƒ³ãƒ‰ã‚¢ãƒ­ãƒ³ã®ãƒ•ォールãƒãƒƒã‚¯ã‚µãƒ¼ãƒãƒ¼ã‚‚å‚™ãˆã¦ã„ã¾ã™ã€‚ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã¯ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆæŽ¥ç¶šãŒä¸å®‰å®šãªçжæ³ã§ã‚‚信頼性を確ä¿ã—ãªãŒã‚‰ã€å¸¸ã«æœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’å–å¾—ã§ãるよã†è¨­è¨ˆã•れã¦ã„ã¾ã™ã€‚

loadTimeoutMsデフォルト: 5秒

ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆä¸Šé™ã‚’設定ã—ã¾ã™ã€‚タイムアウトã«é”ã—ãŸå ´åˆã€ã‚­ãƒ£ãƒƒã‚·ãƒ¥ãƒ‡ãƒ¼ã‚¿ã¾ãŸã¯ãƒ­ãƒ¼ã‚«ãƒ«ã®ãƒ•ォールãƒãƒƒã‚¯ãŒè¿”ã•れã¾ã™ã€‚

内部ã§è¤‡æ•°ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆãŒç™ºç”Ÿã™ã‚‹å ´åˆãŒã‚ã‚‹ãŸã‚ã€ã¾ã‚Œã« loadTimeout ã§æŒ‡å®šã—ãŸæ™‚間よりã‚ãšã‹ã«é…れã¦ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã™ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚

Android ã®å ´åˆï¼šTimeInterval ã¯æ‹¡å¼µé–¢æ•°ï¼ˆä¾‹ï¼š5.seconds(.seconds 㯠import com.adapty.utils.seconds ã‹ã‚‰ï¼‰ãªã©ï¼‰ã¾ãŸã¯ TimeInterval.seconds(5) ã§ä½œæˆã§ãã¾ã™ã€‚制é™ãªã—ã«è¨­å®šã™ã‚‹ã«ã¯ TimeInterval.INFINITE を使用ã—ã¦ãã ã•ã„。

レスãƒãƒ³ã‚¹ãƒ‘ラメータ

パラメーター説明
Paywallプロダクト ID ã®ãƒªã‚¹ãƒˆã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«è­˜åˆ¥å­ã€ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグã€ãŠã‚ˆã³ãã®ä»–ã®ã„ãã¤ã‹ã®ãƒ—ロパティをå«ã‚€ AdaptyPaywall オブジェクト。

ペイウォールビルダーã§ä½œæˆã—ãŸãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ãƒ“ュー設定をå–å¾—ã™ã‚‹

ペイウォールビルダー㮠Show on device トグルを有効ã«ã—ã¦ãã ã•ã„。ã“ã®ã‚ªãƒ—ションãŒã‚ªãƒ³ã«ãªã£ã¦ã„ãªã„å ´åˆã€ãƒ“ュー設定をå–å¾—ã§ãã¾ã›ã‚“。

ペイウォールをå–å¾—ã—ãŸã‚‰ã€ViewConfiguration ãŒå«ã¾ã‚Œã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’確èªã—ã¦ãã ã•ã„。ã“れãŒå«ã¾ã‚Œã¦ã„ã‚‹å ´åˆã€ãã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーã§ä½œæˆã•れãŸã“ã¨ã‚’示ã—ã¾ã™ã€‚ã“ã®æƒ…報をもã¨ã«ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¡¨ç¤ºæ–¹æ³•を決定ã—ã¦ãã ã•ã„。ViewConfiguration ãŒå­˜åœ¨ã™ã‚‹å ´åˆã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¨ã—ã¦æ‰±ã„ã€å­˜åœ¨ã—ãªã„å ´åˆã¯ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¨ã—ã¦å‡¦ç†ã—ã¦ãã ã•ã„。

React Native SDK ã§ã¯ã€ãƒ“ュー設定を手動ã§å–å¾—ã›ãšã«ã€ç›´æŽ¥ createPaywallView メソッドを呼ã³å‡ºã—ã¦ãã ã•ã„。

createPaywallView メソッドã®çµæžœã¯ä¸€åº¦ã—ã‹ä½¿ç”¨ã§ãã¾ã›ã‚“。å†åº¦ä½¿ç”¨ã™ã‚‹å¿…è¦ãŒã‚ã‚‹å ´åˆã¯ã€createPaywallView メソッドを新ãŸã«å‘¼ã³å‡ºã—ã¦ãã ã•ã„。å†ä½œæˆã›ãšã«2回呼ã³å‡ºã™ã¨ã€AdaptyUIError.viewAlreadyPresented エラーãŒç™ºç”Ÿã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚

// for the Adapty SDK < 3.14 – import {createPaywallView} from 'react-native-adapty/dist/ui';

if (paywall.hasViewConfiguration) {
  try {
    const view = await createPaywallView(paywall);
  } catch (error) {
    // handle the error
  }
} else {
    //use your custom logic
}

パラメーター:

パラメーター必須/ä»»æ„説明
paywall必須目的ã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ©ãƒ¼ã‚’å–å¾—ã™ã‚‹ãŸã‚ã® AdaptyPaywall オブジェクト。
customTagsä»»æ„カスタムタグã¨ãã®è§£æ±ºæ¸ˆã¿ã®å€¤ã®ãƒ‡ã‚£ã‚¯ã‚·ãƒ§ãƒŠãƒªã‚’定義ã—ã¾ã™ã€‚カスタムタグã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚³ãƒ³ãƒ†ãƒ³ãƒ„内ã®ãƒ—レースホルダーã¨ã—ã¦æ©Ÿèƒ½ã—ã€ç‰¹å®šã®æ–‡å­—列ã«å‹•çš„ã«ç½®ãæ›ãˆã‚‹ã“ã¨ã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«å†…ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„をパーソナライズã—ã¾ã™ã€‚詳細ã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーã®ã‚«ã‚¹ã‚¿ãƒ ã‚¿ã‚°ã®ãƒˆãƒ”ックをå‚ç…§ã—ã¦ãã ã•ã„。
prefetchProductsä»»æ„ç”»é¢ä¸Šã®ãƒ—ロダクト表示タイミングを最é©åŒ–ã™ã‚‹ãŸã‚ã«æœ‰åйã«ã—ã¾ã™ã€‚true ã®å ´åˆã€AdaptyUI ã¯å¿…è¦ãªãƒ—ロダクトを自動的ã«å–å¾—ã—ã¾ã™ã€‚デフォルト: false。

複数ã®è¨€èªžã‚’使用ã—ã¦ã„ã‚‹å ´åˆã¯ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ã‚’追加ã™ã‚‹æ–¹æ³•ã¨ã€ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ã®æ­£ã—ã„ä½¿ã„æ–¹ã«ã¤ã„ã¦ã¯ã“ã¡ã‚‰ã‚’ã”覧ãã ã•ã„。

ビューをå–å¾—ã—ãŸã‚‰ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã—ã¦ãã ã•ã„。

デフォルトオーディエンスå‘ã‘ペイウォールをå–å¾—ã—ã¦è¡¨ç¤ºã‚’高速化ã™ã‚‹

通常ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¯ã»ã¼å³åº§ã«å–å¾—ã•れるãŸã‚ã€é€Ÿåº¦ã‚’æ°—ã«ã™ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。ãŸã ã—ã€ã‚ªãƒ¼ãƒ‡ã‚£ã‚¨ãƒ³ã‚¹ã‚„ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®æ•°ãŒå¤šãã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆæŽ¥ç¶šãŒä¸å®‰å®šãªå ´åˆã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®å–å¾—ã«äºˆæƒ³ä»¥ä¸Šã®æ™‚é–“ãŒã‹ã‹ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚ãã®ã‚ˆã†ãªçжæ³ã§ã¯ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’ã¾ã£ãŸã表示ã—ãªã„よりもã€ãƒ‡ãƒ•ォルトã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã—ã¦ã‚¹ãƒ ãƒ¼ã‚ºãªãƒ¦ãƒ¼ã‚¶ãƒ¼ä½“験を確ä¿ã—ãŸã„å ´åˆãŒã‚ã‚‹ã§ã—ょã†ã€‚ ã“れã«å¯¾å‡¦ã™ã‚‹ã«ã¯ã€getPaywallForDefaultAudience メソッドを使用ã§ãã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€All Users オーディエンスå‘ã‘ã«æŒ‡å®šã•れãŸãƒ—レースメントã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’å–å¾—ã—ã¾ã™ã€‚ãŸã ã—ã€æŽ¨å¥¨ã‚¢ãƒ—ãƒ­ãƒ¼ãƒã¯ getPaywall メソッドã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’å–å¾—ã™ã‚‹ã“ã¨ã§ã‚りã€è©³ç´°ã¯ä¸Šè¨˜ã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«æƒ…å ±ã®å–得セクションをå‚ç…§ã—ã¦ãã ã•ã„。

getPaywall を推奨ã™ã‚‹ç†ç”±

getPaywallForDefaultAudience メソッドã«ã¯ã„ãã¤ã‹ã®é‡å¤§ãªæ¬ ç‚¹ãŒã‚りã¾ã™ï¼š

  • å¾Œæ–¹äº’æ›æ€§ã®å•題: ç•°ãªã‚‹ã‚¢ãƒ—リãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼ˆç¾è¡Œãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¨å°†æ¥ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼‰ã§ç•°ãªã‚‹ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹å¿…è¦ãŒã‚ã‚‹å ´åˆã€èª²é¡ŒãŒç”Ÿã˜ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚ç¾è¡Œï¼ˆãƒ¬ã‚¬ã‚·ãƒ¼ï¼‰ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«å¯¾å¿œã—ãŸãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’設計ã™ã‚‹ã‹ã€ç¾è¡Œï¼ˆãƒ¬ã‚¬ã‚·ãƒ¼ï¼‰ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã§ããªã„å•題を許容ã™ã‚‹ã‹ã€ã„ãšã‚Œã‹ã®å¯¾å¿œãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚
  • ターゲティングã®å–ªå¤±: ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã« All Users オーディエンスå‘ã‘ã«è¨­è¨ˆã•れãŸåŒä¸€ã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãŒè¡¨ç¤ºã•れã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€å›½ã€ãƒžãƒ¼ã‚±ãƒ†ã‚£ãƒ³ã‚°ã®ã‚¢ãƒˆãƒªãƒ“ューションã€ç‹¬è‡ªã®ã‚«ã‚¹ã‚¿ãƒ å±žæ€§ãªã©ã«åŸºã¥ãパーソナライズã•れãŸã‚¿ãƒ¼ã‚²ãƒ†ã‚£ãƒ³ã‚°ãŒã§ããªããªã‚Šã¾ã™ã€‚ ã“れらã®ãƒ‡ãƒ¡ãƒªãƒƒãƒˆã‚’許容ã—ã¦ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®å–得を高速化ã—ãŸã„å ´åˆã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã« getPaywallForDefaultAudience メソッドを使用ã—ã¦ãã ã•ã„。ãã†ã§ãªã„å ´åˆã¯ã€ä¸Šè¨˜ã§èª¬æ˜Žã—㟠getPaywall を使用ã—ã¦ãã ã•ã„。
try {
    const id = 'YOUR_PLACEMENT_ID';
    const locale = 'en';

    const paywall = await adapty.getPaywallForDefaultAudience(id, locale);
  // the requested paywall
} catch (error) {
    // handle the error
}

getPaywallForDefaultAudience メソッドã¯ã€React Native SDK ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.11.2 以é™ã§åˆ©ç”¨ã§ãã¾ã™ã€‚

パラメータ必須/ä»»æ„説明
placementId必須プレースメントã®è­˜åˆ¥å­ã§ã™ã€‚Adapty ダッシュボードã§ãƒ—レースメントを作æˆã™ã‚‹éš›ã«æŒ‡å®šã—ãŸå€¤ã§ã™ã€‚
locale

ä»»æ„

デフォルト: en

ペイウォールã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ã®è­˜åˆ¥å­ã§ã™ã€‚ã“ã®ãƒ‘ラメータã¯ã€ãƒžã‚¤ãƒŠã‚¹ï¼ˆ-)文字ã§åŒºåˆ‡ã‚‰ã‚ŒãŸ1ã¤ä»¥ä¸Šã®ã‚µãƒ–ã‚¿ã‚°ã§æ§‹æˆã•れる言語コードã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚最åˆã®ã‚µãƒ–ã‚¿ã‚°ã¯è¨€èªžã€2番目ã®ã‚µãƒ–ã‚¿ã‚°ã¯åœ°åŸŸã‚’表ã—ã¾ã™ã€‚

例: en ã¯è‹±èªžã€pt-br ã¯ãƒ–ラジルãƒãƒ«ãƒˆã‚¬ãƒ«èªžã‚’表ã—ã¾ã™ã€‚

ロケールコードã®è©³ç´°ãŠã‚ˆã³æŽ¨å¥¨ã•れる使用方法ã«ã¤ã„ã¦ã¯ã€ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ã¨ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

fetchPolicyデフォルト: .reloadRevalidatingCacheData

デフォルトã§ã¯ã€SDK ã¯ã‚µãƒ¼ãƒãƒ¼ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’読ã¿è¾¼ã‚‚ã†ã¨ã—ã€å¤±æ•—ã—ãŸå ´åˆã¯ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã•れãŸãƒ‡ãƒ¼ã‚¿ã‚’è¿”ã—ã¾ã™ã€‚ã“ã®æ–¹æ³•ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒå¸¸ã«æœ€æ–°ã®ãƒ‡ãƒ¼ã‚¿ã‚’å—ã‘å–れるãŸã‚ã€æŽ¨å¥¨ã—ã¦ã„ã¾ã™ã€‚

ãŸã ã—ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆæŽ¥ç¶šã®ä¸å®‰å®šãªç’°å¢ƒã«ã„ã‚‹ã¨æƒ³å®šã•れる場åˆã¯ã€.returnCacheDataElseLoad を使用ã—ã¦ã‚­ãƒ£ãƒƒã‚·ãƒ¥ãŒå­˜åœ¨ã™ã‚Œã°ãã‚Œã‚’è¿”ã™æ–¹æ³•も検討ã—ã¦ãã ã•ã„。ã“ã®å ´åˆã€æœ€æ–°ãƒ‡ãƒ¼ã‚¿ãŒå±Šã‹ãªã„ã“ã¨ãŒã‚りã¾ã™ãŒã€æŽ¥ç¶šçŠ¶æ…‹ã«é–¢ã‚らãšèª­ã¿è¾¼ã¿æ™‚é–“ãŒçŸ­ç¸®ã•れã¾ã™ã€‚キャッシュã¯ã‚»ãƒƒã‚·ãƒ§ãƒ³ä¸­ã«å®šæœŸçš„ã«æ›´æ–°ã•れるãŸã‚ã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’減らã™ç›®çš„ã§å®‰å…¨ã«ä½¿ç”¨ã§ãã¾ã™ã€‚

ãªãŠã€ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã¯ã‚¢ãƒ—リをå†èµ·å‹•ã—ã¦ã‚‚ä¿æŒã•れã€ã‚¢ãƒ—リã®å†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã¾ãŸã¯æ‰‹å‹•クリアを行ã£ãŸå ´åˆã«ã®ã¿å‰Šé™¤ã•れã¾ã™ã€‚

アセットã®ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚º

ペイウォール内ã®ç”»åƒã‚„動画をカスタマイズã™ã‚‹ã«ã¯ã€ã‚«ã‚¹ã‚¿ãƒ ã‚¢ã‚»ãƒƒãƒˆã‚’実装ã—ã¾ã™ã€‚

ヒーロー画åƒã¨ãƒ’ーロー動画ã«ã¯ã€hero_image 㨠hero_video ã¨ã„ã†ã‚らã‹ã˜ã‚定義ã•れ㟠ID ãŒã‚りã¾ã™ã€‚カスタムアセットãƒãƒ³ãƒ‰ãƒ«ã§ã¯ã€ã“れら㮠ID を指定ã—ã¦è¦ç´ ã®å‹•作をカスタマイズã—ã¾ã™ã€‚

ãã®ä»–ã®ç”»åƒã‚„å‹•ç”»ã«ã¤ã„ã¦ã¯ã€Adapty ダッシュボードã§ã‚«ã‚¹ã‚¿ãƒ  ID を設定ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚

ãŸã¨ãˆã°ã€æ¬¡ã®ã‚ˆã†ãªã“ã¨ãŒã§ãã¾ã™ã€‚

  • 一部ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«åˆ¥ã®ç”»åƒã‚„動画を表示ã™ã‚‹ã€‚
  • リモートã®ãƒ¡ã‚¤ãƒ³ç”»åƒã®èª­ã¿è¾¼ã¿ä¸­ã«ãƒ­ãƒ¼ã‚«ãƒ«ã®ãƒ—レビュー画åƒã‚’表示ã™ã‚‹ã€‚
  • å‹•ç”»ã®å†ç”Ÿå‰ã«ãƒ—レビュー画åƒã‚’表示ã™ã‚‹ã€‚

ã“ã®æ©Ÿèƒ½ã‚’使用ã™ã‚‹ã«ã¯ã€Adapty React Native SDK ã‚’ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 3.8.0 ä»¥ä¸Šã«æ›´æ–°ã—ã¦ãã ã•ã„。

シンプルãªãƒ‡ã‚£ã‚¯ã‚·ãƒ§ãƒŠãƒªã‚’使ã£ã¦ã‚«ã‚¹ã‚¿ãƒ ã‚¢ã‚»ãƒƒãƒˆã‚’æä¾›ã™ã‚‹ä¾‹ã‚’示ã—ã¾ã™:

const customAssets: Record<string, AdaptyCustomAsset> = {
  'custom_image': { type: 'image', relativeAssetPath: 'custom_image.png' },
  'hero_video': {
    type: 'video',
    fileLocation: {
      ios: { fileName: 'custom_video.mp4' },
      android: { relativeAssetPath: 'videos/custom_video.mp4' }
    }
  }
};

view = await createPaywallView(paywall, { customAssets })

アセットãŒè¦‹ã¤ã‹ã‚‰ãªã„å ´åˆã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¯ãƒ‡ãƒ•ォルトã®å¤–観ã«ãƒ•ォールãƒãƒƒã‚¯ã—ã¾ã™ã€‚

ÿÿÿÿ