নেটওয়ার্ক নির্দিষ্ট API ব্যবহার করা

মিডিয়েশন নেটওয়ার্ক তাদের নিজস্ব Android ও iOS SDK-তে API প্রদান করতে পারে যা আরও বিজ্ঞাপন কাস্টমাইজেশনের অনুমতি দেয়। প্ল্যাটফর্ম চ্যানেল ব্যবহার করে আপনি ডার্ট কোড থেকে এইসব API কল করতে পারবেন।

AppLovin-এর Android এবং iOS SDK-তে Dart থেকে কীভাবে গোপনীয়তা API কল করতে হয় তা নিম্নলিখিত স্যাম্পেল থেকে জানতে পারবেন।

dart-এ মেথড চ্যানেল তৈরি করো

আপনার ডার্ট কোডে, একটি মেথড চ্যানেল তৈরি করুন:

/// Wraps a method channel that makes calls to AppLovin privacy APIs.
class MyMethodChannel {
  final MethodChannel _methodChannel =
      MethodChannel('com.example.mediationexample/mediation-channel');

  /// Sets whether the user is age restricted in AppLovin.
  Future<void> setAppLovinIsAgeRestrictedUser(bool isAgeRestricted) async {
    return _methodChannel.invokeMethod(
      'setIsAgeRestrictedUser',
      {
        'isAgeRestricted': isAgeRestricted,
      },
    );
  }

  /// Sets whether we have user consent for the user in AppLovin.
  Future<void> setHasUserConsent(bool hasUserConsent) async {
    return _methodChannel.invokeMethod(
      'setHasUserConsent',
      {
        'hasUserConsent': hasUserConsent,
      },
    );
  }
}

আপনার Android কোড পরিবর্তন করুন

Android-এ AppLovin SDK-তে API কল করার জন্য একটি মেথড চ্যানেল সেট-আপ করুন:

public class MainActivity extends FlutterActivity {
  private static final String CHANNEL_NAME =
    "com.example.mediationexample/mediation-channel";

  @Override
  public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
    super.configureFlutterEngine(flutterEngine);

    // Set up a method channel for calling APIs in the AppLovin SDK.
    new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)
        .setMethodCallHandler(
          (call, result) -> {
            switch (call.method) {
              case "setIsAgeRestrictedUser":
                AppLovinPrivacySettings.setIsAgeRestrictedUser(call.argument("isAgeRestricted"), context);
                result.success(null);
                break;
              case "setHasUserConsent":
                AppLovinPrivacySettings.setHasUserConsent(call.argument("hasUserConsent"), context);
                result.success(null);
                break;
              default:
                result.notImplemented();
                break;
            }
          }
        );
  }
}

আপনার iOS কোড পরিবর্তন করুন

iOS-এ AppLovin SDK-তে API কল করার জন্য একটি মেথড চ্যানেল সেট-আপ করুন:

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [GeneratedPluginRegistrant registerWithRegistry:self];

  // Set up a method channel for calling methods in 3P SDKs.
  FlutterViewController* controller = (FlutterViewController*)self.window.rootViewController;

  FlutterMethodChannel* methodChannel = [FlutterMethodChannel
                                          methodChannelWithName:@"com.example.mediationexample/mediation-channel"
                                          binaryMessenger:controller.binaryMessenger];
  [methodChannel setMethodCallHandler:^(FlutterMethodCall* call, FlutterResult result) {
    if ([call.method isEqualToString:@"setIsAgeRestrictedUser"]) {
      [ALPrivacySettings setIsAgeRestrictedUser:call.arguments[@"isAgeRestricted"]];
      result(nil);
    } else if ([call.method isEqualToString:@"setHasUserConsent"]) {
      [ALPrivacySettings setHasUserConsent:call.arguments[@"hasUserConsent"]];
      result(nil);
    } else {
      result(FlutterMethodNotImplemented);
    }
  }];
}
@end

Dart-এ আপনার MethodChannel ব্যবহার করুন

এখন আপনি Dart থেকে AppLovin গোপনীয়তা API কল করতে আপনার MyMethodChannel ব্যবহার করতে পারেন:

/// An example widget for the home page of your app.
class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  
  // Keep a reference to your MyMethodChannel.
  static MyMethodChannel platform = MyMethodChannel();
  
  @override
  void initState() {
    super.initState();

    _updateAppLovinSettingsAndLoadAd();
  }
  
  Future<void> _updateAppLovinSettingsAndLoadAd() async {
    // Update the AppLovin settings before loading an ad.
    await platform.setAppLovinIsAgeRestrictedUser(true);
    await platform.setHasUserConsent(false);
    _loadAd();
  }
  
  void _loadAd() {
    // TODO: Load an ad.
  };

  @override
  Widget build(BuildContext context) {
    // TODO: Build your widget.
  }
}

অন্যান্য নেটওয়ার্কের মাধ্যমে কাজ করে এমন API সম্পর্কে আরও তথ্য Android এবং iOS ডকুমেন্টেশনে পাওয়া যাবে।