使用網路專屬 API
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
中介服務聯播網可能會在自己的 Android 和 iOS SDK 中提供 API,進一步自訂廣告。您可以使用平台管道,從 Dart 程式碼呼叫這些 API。
以下範例說明如何從 Dart 呼叫 AppLovin 的 Android 和 iOS SDK 中的 Privacy API。
在 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 程式碼
設定方法管道,在 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
現在您可以使用 MyMethodChannel
從 Dart 呼叫 AppLovin 隱私權 API:
/// 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 說明文件。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-31 (世界標準時間)。
[null,null,["上次更新時間:2025-08-31 (世界標準時間)。"],[[["\u003cp\u003eMediation networks sometimes offer custom ad features through their Android and iOS SDKs.\u003c/p\u003e\n"],["\u003cp\u003eAccess these features in your Flutter app using platform channels to communicate with native code.\u003c/p\u003e\n"],["\u003cp\u003eThe provided example demonstrates calling AppLovin's privacy APIs for age restrictions and user consent.\u003c/p\u003e\n"],["\u003cp\u003eSet up method channels in your Dart, Android, and iOS code to enable this communication.\u003c/p\u003e\n"],["\u003cp\u003eRefer to individual mediation network documentation for specific API details and implementation.\u003c/p\u003e\n"]]],[],null,["# Use network specific APIs\n\nMediation networks may provide APIs in their own Android and iOS SDKs that allow\nfor further ads customization. You can call these APIs from dart code by using a\n[platform channel](https://flutter.dev/docs/development/platform-integration/platform-channels).\n\nThe following sample shows you how to call privacy APIs in AppLovin's\n[Android](/ad-manager/mobile-ads-sdk/android/mediation/applovin#eu_consent_and_gdpr) and\n[iOS](/ad-manager/mobile-ads-sdk/ios/mediation/applovin#eu_consent_and_gdpr) SDKs from Dart.\n\nCreate a method channel in dart\n-------------------------------\n\nIn your dart code, create a method channel: \n\n /// Wraps a method channel that makes calls to AppLovin privacy APIs.\n class MyMethodChannel {\n final MethodChannel _methodChannel =\n MethodChannel('com.example.mediationexample/mediation-channel');\n\n /// Sets whether the user is age restricted in AppLovin.\n Future\u003cvoid\u003e setAppLovinIsAgeRestrictedUser(bool isAgeRestricted) async {\n return _methodChannel.invokeMethod(\n 'setIsAgeRestrictedUser',\n {\n 'isAgeRestricted': isAgeRestricted,\n },\n );\n }\n\n /// Sets whether we have user consent for the user in AppLovin.\n Future\u003cvoid\u003e setHasUserConsent(bool hasUserConsent) async {\n return _methodChannel.invokeMethod(\n 'setHasUserConsent',\n {\n 'hasUserConsent': hasUserConsent,\n },\n );\n }\n }\n\nModify your Android code\n------------------------\n\nSet up a method channel to make API calls to the AppLovin SDK in Android: \n\n public class MainActivity extends FlutterActivity {\n private static final String CHANNEL_NAME =\n \"com.example.mediationexample/mediation-channel\";\n\n @Override\n public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {\n super.configureFlutterEngine(flutterEngine);\n\n // Set up a method channel for calling APIs in the AppLovin SDK.\n new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)\n .setMethodCallHandler(\n (call, result) -\u003e {\n switch (call.method) {\n case \"setIsAgeRestrictedUser\":\n AppLovinPrivacySettings.setIsAgeRestrictedUser(call.argument(\"isAgeRestricted\"), context);\n result.success(null);\n break;\n case \"setHasUserConsent\":\n AppLovinPrivacySettings.setHasUserConsent(call.argument(\"hasUserConsent\"), context);\n result.success(null);\n break;\n default:\n result.notImplemented();\n break;\n }\n }\n );\n }\n }\n\nModify your iOS code\n--------------------\n\nSet up a method channel to make API calls to the AppLovin SDK in iOS: \n\n @implementation AppDelegate\n\n - (BOOL)application:(UIApplication *)application\n didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n [GeneratedPluginRegistrant registerWithRegistry:self];\n\n // Set up a method channel for calling methods in 3P SDKs.\n FlutterViewController* controller = (FlutterViewController*)self.window.rootViewController;\n\n FlutterMethodChannel* methodChannel = [FlutterMethodChannel\n methodChannelWithName:@\"com.example.mediationexample/mediation-channel\"\n binaryMessenger:controller.binaryMessenger];\n [methodChannel setMethodCallHandler:^(FlutterMethodCall* call, FlutterResult result) {\n if ([call.method isEqualToString:@\"setIsAgeRestrictedUser\"]) {\n [ALPrivacySettings setIsAgeRestrictedUser:call.arguments[@\"isAgeRestricted\"]];\n result(nil);\n } else if ([call.method isEqualToString:@\"setHasUserConsent\"]) {\n [ALPrivacySettings setHasUserConsent:call.arguments[@\"hasUserConsent\"]];\n result(nil);\n } else {\n result(FlutterMethodNotImplemented);\n }\n }];\n }\n @end\n\nUse your MethodChannel in Dart\n------------------------------\n\nNow you can use your `MyMethodChannel` to call AppLovin privacy APIs from Dart: \n\n /// An example widget for the home page of your app.\n class HomePage extends StatefulWidget {\n @override\n _HomePageState createState() =\u003e _HomePageState();\n }\n\n class _HomePageState extends State\u003cHomePage\u003e {\n // Keep a reference to your MyMethodChannel.\n static MyMethodChannel platform = MyMethodChannel();\n @override\n void initState() {\n super.initState();\n\n _updateAppLovinSettingsAndLoadAd();\n }\n Future\\\u003cvoid\\\u003e _updateAppLovinSettingsAndLoadAd() async {\n // Update the AppLovin settings before loading an ad.\n await platform.setAppLovinIsAgeRestrictedUser(true);\n await platform.setHasUserConsent(false);\n _loadAd();\n }\n void _loadAd() {\n // TODO: Load an ad.\n };\n\n @override\n Widget build(BuildContext context) {\n // TODO: Build your widget.\n }\n }\n\nMore details on the APIs supported by other networks can be found\nin the [Android](/ad-manager/mobile-ads-sdk/android/mediation/adcolony) and\n[iOS](/ad-manager/mobile-ads-sdk/ios/mediation/adcolony) documentation."]]