UNPKG

2.82 kBJavaScriptView Raw
1import { NativeModulesProxy, UnavailabilityError } from '@unimodules/core';
2import { PermissionStatus } from 'expo-modules-core';
3import { Platform } from 'react-native';
4const { CTKAdSettingsManager } = NativeModulesProxy;
5export { PermissionStatus };
6const androidPermissionsResponse = {
7 granted: true,
8 expires: 'never',
9 canAskAgain: true,
10 status: PermissionStatus.GRANTED,
11};
12// TODO: rewrite the docblocks
13export default {
14 /**
15 * Contains hash of the device id
16 */
17 get currentDeviceHash() {
18 return CTKAdSettingsManager.currentDeviceHash;
19 },
20 async requestPermissionsAsync() {
21 if (Platform.OS === 'android') {
22 return Promise.resolve(androidPermissionsResponse);
23 }
24 if (!CTKAdSettingsManager.requestPermissionsAsync) {
25 throw new UnavailabilityError('expo-ads-facebook', 'requestPermissionsAsync');
26 }
27 return await CTKAdSettingsManager.requestPermissionsAsync();
28 },
29 async getPermissionsAsync() {
30 if (Platform.OS === 'android') {
31 return Promise.resolve(androidPermissionsResponse);
32 }
33 if (!CTKAdSettingsManager.getPermissionsAsync) {
34 throw new UnavailabilityError('expo-ads-facebook', 'getPermissionsAsync');
35 }
36 return await CTKAdSettingsManager.getPermissionsAsync();
37 },
38 /**
39 * Sets whether Facebook SDK should enable advertising tracking.
40 */
41 setAdvertiserTrackingEnabled(enabled) {
42 // noop outside of iOS
43 if (Platform.OS !== 'ios') {
44 return;
45 }
46 if (!CTKAdSettingsManager.setAdvertiserTrackingEnabled) {
47 throw new UnavailabilityError('expo-ads-facebook', 'setAdvertiserTrackingEnabled');
48 }
49 CTKAdSettingsManager.setAdvertiserTrackingEnabled(enabled);
50 },
51 /**
52 * Registers given device with `deviceHash` to receive test Facebook ads.
53 */
54 addTestDevice(deviceHash) {
55 CTKAdSettingsManager.addTestDevice(deviceHash);
56 },
57 /**
58 * Clears previously set test devices
59 */
60 clearTestDevices() {
61 CTKAdSettingsManager.clearTestDevices();
62 },
63 /**
64 * Sets current SDK log level
65 */
66 setLogLevel(logLevel) {
67 CTKAdSettingsManager.setLogLevel(logLevel);
68 },
69 /**
70 * Specifies whether ads are treated as child-directed
71 */
72 setIsChildDirected(isDirected) {
73 CTKAdSettingsManager.setIsChildDirected(isDirected);
74 },
75 /**
76 * Sets mediation service name
77 */
78 setMediationService(mediationService) {
79 CTKAdSettingsManager.setMediationService(mediationService);
80 },
81 /**
82 * Sets URL prefix
83 */
84 setUrlPrefix(urlPrefix) {
85 CTKAdSettingsManager.setUrlPrefix(urlPrefix || null);
86 },
87};
88//# sourceMappingURL=AdSettings.js.map
\No newline at end of file