ÿÿ Flutter SDKã®ã‚­ãƒƒã‚ºãƒ¢ãƒ¼ãƒ‰ | Adapty ドキュメント

Flutter SDKã®ã‚­ãƒƒã‚ºãƒ¢ãƒ¼ãƒ‰

FlutterアプリãŒå­ã©ã‚‚å‘ã‘ã®å ´åˆã€AppleãŠã‚ˆã³Googleã®ãƒãƒªã‚·ãƒ¼ã«å¾“ã†å¿…è¦ãŒã‚りã¾ã™ã€‚Adapty SDKを使用ã—ã¦ã„ã‚‹å ´åˆã€ã„ãã¤ã‹ã®ç°¡å˜ãªæ‰‹é †ã§ã“れらã®ãƒãƒªã‚·ãƒ¼ã«æº–æ‹ ã™ã‚‹ã‚ˆã†è¨­å®šã—ã€ã‚¢ãƒ—リストアã®å¯©æŸ»ã‚’通éŽã§ãã¾ã™ã€‚

何ãŒå¿…è¦ã§ã™ã‹ï¼Ÿ

ä»¥ä¸‹ã®æƒ…å ±åŽé›†ã‚’無効ã«ã™ã‚‹ã‚ˆã†ã€Adapty SDK を設定ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚

  • IDFA(広告識別å­ï¼‰ï¼ˆiOS)
  • Android 広告 ID(AAID/GAID)(Android)
  • IP アドレス ã•らã«ã€ã‚«ã‚¹ã‚¿ãƒžãƒ¼ãƒ¦ãƒ¼ã‚¶ãƒ¼IDã®æ‰±ã„ã«ã¯å分注æ„ã™ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚<FirstName.LastName> å½¢å¼ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼IDã¯ã€ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã¨åŒæ§˜ã«å€‹äººãƒ‡ãƒ¼ã‚¿ã®åŽé›†ã¨ã—ã¦æ‰±ã‚れã¾ã™ã€‚キッズモードã§ã¯ã€ãƒ©ãƒ³ãƒ€ãƒ åŒ–ã¾ãŸã¯åŒ¿å化ã•れãŸè­˜åˆ¥å­ï¼ˆãƒãƒƒã‚·ãƒ¥IDやデãƒã‚¤ã‚¹ãŒç”Ÿæˆã—ãŸUUIDãªã©ï¼‰ã‚’使用ã™ã‚‹ã“ã¨ã§ã€ã‚³ãƒ³ãƒ—ライアンスを確ä¿ã™ã‚‹ã®ãŒãƒ™ã‚¹ãƒˆãƒ—ラクティスã§ã™ã€‚

キッズモードを有効ã«ã™ã‚‹

Adapty ダッシュボードã§ã®è¨­å®š

Adapty ダッシュボードã§ã€IPアドレスã®åŽé›†ã‚’無効化ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚App settingsã«ç§»å‹•ã—ã€Collect users’ IP addressã®ä¸‹ã«ã‚ã‚‹Disable IP address collectionをクリックã—ã¦ãã ã•ã„。

モãƒã‚¤ãƒ«ã‚¢ãƒ—リã®ã‚³ãƒ¼ãƒ‰å¤‰æ›´

ãƒãƒªã‚·ãƒ¼ã«æº–æ‹ ã™ã‚‹ãŸã‚ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã® IDFA(iOS)ã€GAID/AAID(Android)ã€ãŠã‚ˆã³ IP アドレスã®åŽé›†ã‚’無効ã«ã—ã¦ãã ã•ã„。

Android: SDK ã®è¨­å®šã‚’æ›´æ–°ã™ã‚‹

try {
    await Adapty().activate(
        configuration: AdaptyConfiguration(apiKey: 'YOUR_API_KEY')
          ..withGoogleAdvertisingIdCollectionDisabled(true)  // set to `true`
          ..withIpAddressCollectionDisabled(true),  // set to `true`
    );
} catch (e) {
    // handle the error
}

iOS: SDK v4 ã§ã‚­ãƒƒã‚ºãƒ¢ãƒ¼ãƒ‰ã‚’有効ã«ã™ã‚‹

SDK v4 ã§ã¯ã€ãƒã‚¤ãƒ†ã‚£ãƒ– iOS SDK 㯠Swift Package Manager ã‹ã‚‰ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã€ã‚­ãƒƒã‚ºãƒ¢ãƒ¼ãƒ‰ã¯ KidsMode Swift パッケージトレイトを通ã˜ã¦æœ‰åŠ¹åŒ–ã•れã¾ã™ã€‚ã“ã®ãƒˆãƒ¬ã‚¤ãƒˆã«ã‚ˆã‚Šã€IDFAã€AdSupportã€AppTrackingTransparency ã«é–¢ã™ã‚‹ã‚³ãƒ¼ãƒ‰ãŒã™ã¹ã¦ã‚³ãƒ³ãƒ‘イルã‹ã‚‰é™¤å¤–ã•れã¾ã™ã€‚ã“れã«ã¯ Xcode 26 以é™ãŒå¿…è¦ã§ã™ã€‚

SDK v4 ã§ã¯ã€pubspec.yaml ã§ adapty_flutter ã®ä»£ã‚り㫠adapty_flutter_kids パッケージを使用ã—ã¦ãã ã•ã„。ã“れã¯ãƒ—ラグインã®ã‚­ãƒƒã‚ºãƒ¢ãƒ¼ãƒ‰ç‰ˆã§ã‚りã€å…¬é–‹ API ã‚‚ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚‚åŒã˜ã§ã™ã€‚唯一ã®é•ã„ã¯ã€ãƒã‚¤ãƒ†ã‚£ãƒ– iOS SDK ㌠KidsMode トレイトã§ãƒ“ルドã•れã¦ã„る点ã§ã™ï¼š

dependencies:
  adapty_flutter_kids: 4.0.0

Dart ã®ã‚³ãƒ¼ãƒ‰ã¯ãã®ã¾ã¾ã§ã€ã‚¤ãƒ³ãƒãƒ¼ãƒˆã‚’æ–°ã—ã„パッケージåã«æ›´æ–°ã™ã‚‹ã ã‘ã§ã™:

iOS: CocoaPods を使用ã—ã¦ã‚­ãƒƒã‚ºãƒ¢ãƒ¼ãƒ‰ã‚’有効ã«ã™ã‚‹ï¼ˆSDK v3)

  1. Podfile ã‚’æ›´æ–°ã—ã¾ã™:

    • post_install セクションãŒãªã„å ´åˆã¯ã€ä»¥ä¸‹ã®ã‚³ãƒ¼ãƒ‰ãƒ–ロック全体を追加ã—ã¦ãã ã•ã„。
    • post_install セクションãŒã‚ã‚‹å ´åˆã¯ã€ãƒã‚¤ãƒ©ã‚¤ãƒˆã•れãŸè¡Œã‚’ãã®ä¸­ã«ãƒžãƒ¼ã‚¸ã—ã¦ãã ã•ã„。
    def adapty_enable_kids_mode(installer)
      installer.pods_project.targets.each do |target|
        next unless target.name == 'Adapty'
        target.build_configurations.each do |config|
          flags = config.build_settings['OTHER_SWIFT_FLAGS'] || '$(inherited)'
          flags = flags.join(' ') if flags.is_a?(Array)
          config.build_settings['OTHER_SWIFT_FLAGS'] = "#{flags} -DADAPTY_KIDS_MODE"
        end
        target.frameworks_build_phase.files.dup.each do |bf|
          target.frameworks_build_phase.remove_build_file(bf) if bf.display_name.to_s.include?('AdSupport')
        end
      end
      installer.pods_project.save
      Dir.glob(File.join(installer.sandbox.root, 'Target Support Files', '**', '*.xcconfig')).each do |xc|
        File.write(xc, File.read(xc).gsub(/\s*-framework\s+"?AdSupport"?/, ''))
      end
    end
    
    post_install do |installer|
      # ... keep your existing post_install body (Flutter adds one automatically) ...
    
      adapty_enable_kids_mode(installer)   # <-- enable Adapty Kids Mode
    end
  2. 変更をé©ç”¨ã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã‚’実行ã—ã¾ã™ã€‚

    pod install
ÿÿÿÿ