我们如何使用facebook AppEventsLogger添加到反应原生的购物车事件

时间:2018-05-23 07:11:38

标签: react-native react-native-fbsdk

我正在尝试实施facebook SDK来跟踪我的应用程序中的添加到购物车事件,但它在这里不起作用是我的代码

首先,我在我的应用程序react-native-fbsdk中导入了facebook SDK,它已成功安装并且登录功能运行良好。

现在在产品界面中,我从SDK

导入facebook AppEventsLogger和AppEventsConstants
const FBSDK = require('react-native-fbsdk');
const {
    AppEventsLogger,
    AppEventsConstants
} = FBSDK;

当用户将产品成功添加到购物车时,我需要在日志中跟踪此事件,我尝试下面的代码,但它无法正常工作

var params = {};
params[AppEventsConstants.CONTENT] = "Sample Product 1";
params[AppEventsConstants.CONTENT_ID] = "1";
params[AppEventsConstants.CONTENT_TYPE] = "Product";
params[AppEventsConstants.CURRENCY] = "INR";

AppEventsLogger.logEvent(AppEventsConstants.EVENT_NAME_ADDED_TO_WISHLIST, 40, params)

上面的代码给我一个未定义的错误。请帮我解决一下这个问题。

2 个答案:

答案 0 :(得分:0)

不幸的是,react-native-fbsdk不提供标准事件名称和参数名称的常量。经过研究后,我发现Marketing API文档中列出了实际名称(为什么没有App Events?)。

我不知道它是否在正确的位置,但是您可以参考https://developers.facebook.com/docs/marketing-api/app-event-api/以获得实际的标准事件名称和参数名称。至少在我看来,它有效。这是我的“添加到购物车”事件代码:

function logAddToCart(totalPrice, contentType, contentId, currency) {
    const params = {
        'fb_content_type': contentType,
        'fb_content_id': contentId,
        'fb_currency': currency
    };
    AppEventsLogger.logEvent('fb_mobile_add_to_cart', totalPrice, params);
}

答案 1 :(得分:0)

u可以从文档中读取react-native-fbsdk https://github.com/facebook/react-native-fbsdk/blob/17af77b48ad6ea62fa3c0f552cd8f6a699ef6a64/src/FBAppEventsLogger.js#L92

,你可以从中找到常数 https://github.com/facebook/facebook-android-sdk/blob/master/facebook-core/src/main/java/com/facebook/appevents/AppEventsConstants.java#L33-L312

// helpers

import { AppEventsLogger } from 'react-native-fbsdk'

export const FB_ADDED_TO_CART = 'fb_mobile_add_to_cart'
export async function logAdsEvent(eventName, ...args) {
  let valueToSum = 0
  if (typeof args[0] === 'number') {
    valueToSum = args.shift()
  }
  let parameters = null
  if (typeof args[0] === 'object') {
    parameters = toSnakeCase(args[0])
  }

  AppEventsLogger.logEvent(eventName, valueToSum, parameters)

}

实现

import helpers

 logAdsEvent(FB_ADDED_TO_CART, result.stores[0].subTotal || 0, {
          fbContent: JSON.stringify(result.stores[0]),
          fbCurrency: 'IDR'
        })