Authored by chenl

增加曝光埋点和点击埋点。review by 庄佳佳。

... ... @@ -61,10 +61,7 @@ export default class Birth extends Component {
key={'sectionID+rowID' + sectionID+rowID}
rowID={rowID}
data={rowData}
similarIndex={this.props.similarIndex}
onPressProduct={this.props.onPressProductListProduct}
onLongPressProduct={this.props.onLongPressProduct}
onPressFindSimilar={this.props.onPressFindSimilar}
/>
</View>
);
... ...
... ... @@ -81,10 +81,7 @@ export default class FastExpress extends Component {
key={'sectionID+rowID' + sectionID+rowID}
rowID={rowID}
data={rowData}
similarIndex={this.props.similarIndex}
onPressProduct={this.props.onPressProductListProduct}
onLongPressProduct={this.props.onLongPressProduct}
onPressFindSimilar={this.props.onPressFindSimilar}
/>
</View>
);
... ...
... ... @@ -47,10 +47,7 @@ export default class YearActivity extends Component {
key={'sectionID+rowID' + sectionID+rowID}
rowID={rowID}
data={rowData}
similarIndex={this.props.similarIndex}
onPressProduct={this.props.onPressProductListProduct}
onLongPressProduct={this.props.onLongPressProduct}
onPressFindSimilar={this.props.onPressFindSimilar}
/>
</View>
);
... ...
... ... @@ -78,6 +78,21 @@ class BirthContainer extends Component {
let url = `http://m.yohobuy.com?openby:yohobuy={"action":"go.productDetail","params":{"product_skn":"${productSkn}"}}`;
ReactNative.NativeModules.YH_CommonHelper.jumpWithUrl(url);
//点击埋点
try{
let productId = product && product.get('product_id', "");
let rec_id = product && product.get('rec_id', "");
let params = {
TYPE_ID: 8,
I_INDEX: rowId + 1,
PRD_ID: productId,
REC_ID: rec_id,
};
ReactNative.NativeModules.YH_CommonHelper.logEvent('YB_GOODS_LIST_DT', params);
}
catch(error) {}
}
onLongPressProduct(rowID) {
... ...
... ... @@ -74,6 +74,21 @@ class FastExpressContainer extends Component {
let url = `http://m.yohobuy.com?openby:yohobuy={"action":"go.productDetail","params":{"product_skn":"${productSkn}"}}`;
ReactNative.NativeModules.YH_CommonHelper.jumpWithUrl(url);
//点击埋点
try{
let productId = product && product.get('product_id', "");
let rec_id = product && product.get('rec_id', "");
let params = {
TYPE_ID: 7,
I_INDEX: rowId + 1,
PRD_ID: productId,
REC_ID: rec_id,
};
ReactNative.NativeModules.YH_CommonHelper.logEvent('YB_GOODS_LIST_DT', params);
}
catch(error) {}
}
onLongPressProduct(rowID) {
... ...
... ... @@ -74,24 +74,21 @@ class YearActivityContainer extends Component {
let url = `http://m.yohobuy.com?openby:yohobuy={"action":"go.productDetail","params":{"product_skn":"${productSkn}"}}`;
ReactNative.NativeModules.YH_CommonHelper.jumpWithUrl(url);
//点击埋点
try{
let productId = product && product.get('product_id', "");
let rec_id = product && product.get('rec_id', "");
let params = {
REC_POSE: 100100,
REC_ID: this.props.yearActivity.rec_id,
TYPE_ID: 11,
ENT_ID: "",
I_INDEX: rowId + 1,
PRD_ID: productId,
PRD_NUM: rowId,
ACTION_ID: 1,
REC_ID: rec_id,
};
ReactNative.NativeModules.YH_CommonHelper.logEvent('YB_CHOOSE_FOR_YOU', params);
}
catch(error) {
ReactNative.NativeModules.YH_CommonHelper.logEvent('YB_GOODS_LIST_DT', params);
}
catch(error) {}
}
onLongPressProduct(rowID) {
... ... @@ -122,8 +119,6 @@ class YearActivityContainer extends Component {
style={styles.container}
onEndReached={this.onEndReached}
onPressProductListProduct={this.onPressProductListProduct}
onLongPressProduct={this.onLongPressProduct}
onPressFindSimilar={this.onPressFindSimilar}
/>
);
}
... ...
... ... @@ -39,10 +39,13 @@ export function getBirthProductList() {
return new BirthService(app.host).getBirthProductList(channel, page)
.then(json => {
let payload = parseUtils.parsePageInfoList(json);
//生成Rec_ID
let rec_id = parseUtils.getRecId();
let payload = parseUtils.parsePageInfoList(json, rec_id);
//获取的产品列表进行曝光上传大数据
dispatch(dataExposure(payload));
dispatch(dataExposure(payload, rec_id));
if (payload.currentPage > 1) {
let oldList = birth.get('list').toJS();
... ... @@ -82,7 +85,7 @@ export function getBirthProductFailure(error) {
}
}
function dataExposure(payload) {
function dataExposure(payload, rec_id) {
return(dispatch, getState)=>{
try {
... ... @@ -103,9 +106,9 @@ function dataExposure(payload) {
TYPE_ID:8,
TOTAL:total,
PRD_LIST:productIdList,
REC_ID:payload.rec_id
}
console.log(params);
REC_ID:rec_id
};
ReactNative.NativeModules.YH_CommunityHelper.logEvent("YB_GOODS_LIST",params);
}catch (error){}
}
... ...
... ... @@ -61,10 +61,13 @@ export function getFastProductList() {
return new FastExpressService(app.host).getFastExpressProduct(channel, page)
.then(json => {
let payload = parseUtils.parsePageInfoList(json);
//生成Rec_ID
let rec_id = parseUtils.getRecId();
let payload = parseUtils.parsePageInfoList(json, rec_id);
//埋点上报
dispatch(dataExpose(payload));
dispatch(dataExpose(payload, rec_id));
if (payload.currentPage > 1) {
let oldList = fastExpress.get('list').toJS();
... ... @@ -125,7 +128,7 @@ export function getFastProductFailure(error) {
}
}
function dataExpose(payload) {
function dataExpose(payload, rec_id) {
return(dispatch,getState)=>{
try {
... ... @@ -146,9 +149,8 @@ function dataExpose(payload) {
TYPE_ID:7,
TOTAL:total,
PRD_LIST:productIdList,
REC_ID:payload.rec_id
REC_ID:rec_id
}
console.log(params);
ReactNative.NativeModules.YH_CommunityHelper.logEvent("YB_GOODS_LIST",params);
}catch (error){}
}
... ...
... ... @@ -43,10 +43,13 @@ export function getYearActivityProductList() {
return new yearActivityService(app.host).getYearProductList(channel, pageSize, page)
.then(json => {
let payload = parseUtils.parsePageInfoList(json);
//生成Rec_ID
let rec_id = parseUtils.getRecId();
let payload = parseUtils.parsePageInfoList(json, rec_id);
//对获取的数据进行展示曝光
dispatch(dataExposure(payload));
dispatch(dataExposure(payload, rec_id));
if (payload.currentPage > 1) {
let oldList = yearActivity.get('list').toJS();
... ... @@ -86,7 +89,7 @@ export function getYearProductFailure(error) {
}
}
function dataExposure(payload){
function dataExposure(payload, rec_id){
return (dispatch, getState) => {
try {
... ... @@ -107,14 +110,13 @@ function dataExposure(payload){
}
let params = {
REC_POSE: 100100,
REC_ID: payload.rec_id,
PRD_ID: productIds,
PRD_NUM: productCount,
ACTION_ID: 0,
TYPE_ID: 11,
TOTAL: productCount,
PRD_LIST: productIds,
REC_ID: rec_id,
};
ReactNative.NativeModules.YH_CommonHelper.logEvent('YB_CHOOSE_FOR_YOU', params);
ReactNative.NativeModules.YH_CommonHelper.logEvent('YB_GOODS_LIST', params);
}
catch(error) {
}
... ...
... ... @@ -11,7 +11,6 @@ let InitialState = Record({
total: 0,
pageSize: 50,
pageCount: 0,
rec_id: '',
});
export default InitialState;
... ...
'use strict';
import ReactNative from 'react-native';
import md5 from 'md5';
const {
Dimensions,
... ... @@ -8,23 +10,41 @@ const {
function parsePageInfoList(json) {
function parsePageInfoList(json, rec_id) {
let currentPage = json && json.page ? json.page : 1;
let pageCount = json && json.page_total ? json.page_total : 0;
let total = json && json.total ? json.total : 0;
let list = json && json.product_list ? json.product_list : [];
let rec_id = json && json.rec_id ? json.rec_id : '';
//为列表数据添加rec_id,埋点事件需要
list.map((item, i) => {
item.rec_id = rec_id;
});
return {
currentPage,
pageCount,
total,
list,
rec_id,
}
}
/**
* 客户端40位随机数指纹
* @return
*/
function getRecId() {
try {
let date = new Date();
let encryptStr = md5(date);
return encryptStr + encryptStr.substring(0,8);
} catch (error) {
return "";
}
}
module.exports = {
parsePageInfoList,
getRecId,
};
... ...