רשתות תהליך בחירת הרשת עשויות לספק ממשקי API ב-SDK שלהן ל-Android ול-iOS, שמאפשרים לבצע התאמה אישית נוספת של המודעות. אפשר לקרוא לממשקי ה-API האלה מקוד Dart באמצעות ערוץ פלטפורמה.
בדוגמה הבאה מוסבר איך לבצע קריאה ל-API של פרטיות ב-SDK של AppLovin ל-Android ול-iOS מ-Dart.
יצירת ערוץ שיטות ב-Dart
יוצרים ערוץ שיטות בקוד 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
מגדירים ערוץ method כדי לבצע קריאות ל-API ל-AppLovin SDK ב-Android:
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
מגדירים ערוץ method כדי לבצע קריאות API ל-AppLovin SDK ב-iOS:
@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
שימוש ב-MethodChannel ב-Dart
עכשיו אפשר להשתמש ב-MyMethodChannel
כדי לקרוא לממשקי ה-API של AppLovin בנושא פרטיות מ-Dart:
/// 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.