接入穿山甲SDK
接入GeoMoreSdk
npm install react-native-brayant-ad
在RN项目的 Project级别的 build.gradle 中添加如下配置 (android/build.gradle)
allprojects {
repositories {
google()
mavenCentral()
// 添加穿山甲SDK仓库
maven {
url 'https://artifact.bytedance.com/repository/pangle'
}
}
}
在项目入口文件中初始化init, 如果不是全局初始化的就需要在每次调用的时候传入
import { init } from 'react-native-brayant-ad';
useEfect(() => {
init({
appid: "xxxx",
app: "app名称",
amount: 1000,
reward: "金币",
debug: true
}).then((res) => {})
})
参数 | 说明 | 类型 | 默认值 | 是否必填 |
---|---|---|---|---|
appid | 穿山甲中创建应用的appid | string | - | 是 |
app | app名称 | string | 穿山甲媒体APP | 否 |
uid | 有些uid和穿山甲商务有合作的需要 | string | - | 否 |
amount | 奖励数量 | number | 1000 | 否 |
reward | 奖励名称 | string | 金币 | 否 |
debug | 是否是开发者模式 | boolean | false | 否 |
init 成功会返回一个promise
interface AD_EVENT_TYPE {
onAdError: string; // 广告加载失败监听
onAdClick: string; // 广告被点击监听
onAdClose: string; // 广告关闭
onAdSkip: string; // 用户点击跳过广告监听
onAdShow: string; // 开屏广告开始展示
}
EmuAnim = 'default' | 'none' | 'catalyst' | 'slide' | 'fade';
参数 | 说明 | 类型 | 默认值 | 是否必填 |
---|---|---|---|---|
codeid | 广告位id | string | - | 是 |
anim | 广告进入方式 | EmuAnim | default | 否 |
这边案列默认全部init初始化后
import { dyLoadSplashAd } from 'react-native-brayant-ad';
import { StyleSheet, Text, View, TouchableOpacity } from 'react-native';
const ScrenPage = () => {
const onOpenScren = () => {
const splashAd = dyLoadSplashAd({
codeid: '889272631',
anim: 'default',
});
splashAd.subscribe('onAdClose', (event) => {
console.log('广告关闭', event);
});
splashAd.subscribe('onAdSkip', (i) => {
console.log('用户点击跳过监听', i);
});
splashAd.subscribe('onAdError', (e) => {
console.log('开屏加载失败监听', e);
});
splashAd.subscribe('onAdClick', (e) => {
console.log('开屏被用户点击了', e);
});
splashAd.subscribe('onAdShow', (e) => {
console.log('开屏开始展示', e);
});
};
render(){
return (
<TouchableOpacity onPress={onOpenScren}>
<Text style={{ textAlign: 'center' }}> 开屏</Text>
</TouchableOpacity>
)
}
}
主动看激励视频时,才检查这个权限
无参数 requestPermission()
开始看激励视频
参数 | 说明 | 类型 | 默认值 | 是否必填 |
---|---|---|---|---|
codeid | 广告位id | string | - | 是 |
export enum AD_EVENT_TYPE {
onAdError = 'onAdError', // 广告加载失败监听
onAdLoaded = 'onAdLoaded', // 广告加载成功监听
onAdClick = 'onAdClick', // 广告被点击监听
onAdClose = 'onAdClose', // 广告关闭监听
}
这边案列默认全部init初始化后
import { requestPermission, startRewardVideo } from 'react-native-brayant-ad';
import { StyleSheet, Text, View, TouchableOpacity } from 'react-native';
const RewardVideoPage = () => {
const onStartRewardVideo = () => {
const rewardVideo = startRewardVideo({
codeid: '956956876',
});
rewardVideo.result.then((val: any) => {
console.log('RewardVideo 回调结果', val);
});
rewardVideo.subscribe('onAdLoaded', (event) => {
console.log('广告加载成功监听', event);
});
rewardVideo.subscribe('onAdError', (event) => {
console.log('广告加载失败监听', event);
});
rewardVideo.subscribe('onAdClose', (event) => {
console.log('广告被关闭监听', event);
});
rewardVideo.subscribe('onAdClick', (event) => {
console.log('广告点击查看详情监听', event);
});
};
render(){
return (
<TouchableOpacity onPress={onOpenScren}>
<Text style={{ textAlign: 'center' }}> 开屏</Text>
</TouchableOpacity>
)
}
}
参数 | 说明 | 类型 | 默认值 | 是否必填 |
---|---|---|---|---|
codeid | 广告位id | string | - | 是 |
orientation | 竖屏横屏 | 'HORIZONTAL' | 'VERTICAL' | VERTICAL | 否 |
import { requestPermission, startRewardVideo } from 'react-native-brayant-ad';
import { StyleSheet, Text, View, TouchableOpacity } from 'react-native';
const RewardVideoPage = () => {
useEffect(() => {
// step 1: 获取权限
requestPermission()
}, []);
render() {
return (
<TouchableOpacity
style={{
marginVertical: 20,
paddingHorizontal: 30,
paddingVertical: 15,
backgroundColor: '#F96',
borderRadius: 50,
}}
onPress={() => {
let fullVideo = startFullScreenVideo({
codeid: '957781965',
});
console.log('FullVideoAd rs:', fullVideo);
fullVideo.result?.then((val: any) => {
console.log('FullVideoAd rs then val', val);
});
fullVideo.subscribe('onAdLoaded' as any, (event) => {
console.log('广告加载成功监听', event);
});
fullVideo.subscribe('onAdError' as any, (event) => {
console.log('广告加载失败监听', event);
});
fullVideo.subscribe('onAdClose' as any, (event) => {
console.log('广告被关闭监听', event);
});
fullVideo.subscribe('onAdClick' as any, (event) => {
console.log('广告点击查看详情监听', event);
});
}}
>
<Text style={{ textAlign: 'center' }}> Start 全屏视频广告</Text>
</TouchableOpacity>
)
}
}
参数 | 说明 | 类型 | 默认值 | 是否必填 |
---|---|---|---|---|
codeid | 广告位id | string | - | 是 |
appid | 应用id | string | - | 是 |
参数 | 说明 | 类型 | 默认值 | 是否必填 |
---|---|---|---|---|
codeid | 广告位id | string | - | 是 |
appid | 应用id | string | - | 是 |
visible | 是否显示组件中广告 | boolean | - | 否 |
appid | 应用id | string | - | 是 |
style | 组件样式 | ViewStyle | - | 否 |
onAdError | 广告错误事件 | Function | - | 否 |
onAdShow | 显示广告事件 | Function | - | 否 |
onAdClick | 点击广告事件 | Function | - | 否 |
import { loadDrawFeedAd, DrawFeedView } from 'react-native-brayant-ad';
import { StyleSheet, Text, View, TouchableOpacity } from 'react-native';
const RewardVideoPage = () => {
useEffect(() => {
loadDrawFeedAd({
appid: '****',
codeid: '****',
});
}, []);
render() {
return (
<DrawFeedView
codeid={'957795405'}
appid={'5519001'}
visible={true}
onAdError={(e: any) => {
console.log('DrawFeedAd 加载失败', e);
}}
onAdShow={(e: any) => {
console.log('DrawFeedAd 开屏开始展示', e);
}}
onAdClick={(e: any) => {
console.log('onAdClick DrawFeed', e.nativeEvent);
}}
/>
)
}
}
参数 | 说明 | 类型 | 默认值 | 是否必填 |
---|---|---|---|---|
codeid | 广告位id | string | - | 是 |
adWidth | 广告宽度 | number | 375 | 否 |
visible | 是否显示组件中广告 | boolean | - | 否 |
style | 组件样式 | ViewStyle | - | 否 |
onAdLayout | 广告加载成功事件 | Function | - | 否 |
onAdClose | 广告关闭事件 | Function | - | 否 |
onAdClick | 广告被用户点击事件 | Function | - | 否 |
onAdError | 广告加载失败事件 | Function | - | 否 |
import { FeedAdView } from 'react-native-brayant-ad';
import { StyleSheet, Text, View, TouchableOpacity } from 'react-native';
const RewardVideoPage = () => {
useEffect(() => {
}, []);
render() {
return (
<FeedAdView
codeid={'****'}
adWidth={400}
visible={showFeedView}
onAdLayout={(data: any) => {
console.log('Feed 广告加载成功!', data);
}}
onAdClose={(data: any) => {
console.log('Feed 广告关闭!', data);
}}
onAdError={(err: any) => {
console.log('Feed 广告加载失败!', err);
}}
onAdClick={(val: any) => {
console.log('Feed 广告被用户点击!', val);
}}
/>
)
}
}
MIT
Made with create-react-native-library