Google Analytics增强型电子商务无法获得收入

时间:2016-08-05 13:27:38

标签: ios swift google-analytics e-commerce enhanced-ecommerce

在为iOS实施增强型电子商务功能后,谷歌分析电子商务概述显示零收入。我直接实施了交易计量,没有任何结账步骤。控制台输出打印正确的收入值以及其他变量,但之后出现" http状态-1"。我发布了一个"缺少电子商务数据"通知检查,但它已经有3天了,而且还有待处理。有谁知道如何解决这个问题?

我一直在关注电子商务官方谷歌指南(测量交易部分): https://developers.google.com/analytics/devguides/collection/ios/v3/enhanced-ecommerce#measuring-transactions

P.S。:Google Analytics启用了增强型电子商务功能,GoogleService-Info.plist已添加到项目中。

我的代码:

static func tagCheckoutFromBookingInfo(bookingInfo: BookingInfo?, discountCode: String?) {
    //#if ANALYTICS
    let eventData = ProductInfo()
    let generalProductDict = eventData.getPayload(bookingInfo?.property, priceInfo: bookingInfo?.propertyPriceInfo(), specificInfo: nil, positionInList: nil)

    let product = ecommerceProductFromGeneralProductDict(generalProductDict, discountCode: discountCode)

    let builder = GAIDictionaryBuilder.createEventWithCategory(GTMEcommerceKeys.CheckoutCategory.rawValue, action: GTMEcommerceKeys.CheckoutPurchase.rawValue, label: nil, value: nil)

    let action = GAIEcommerceProductAction()
    action.setAction(kGAIPAPurchase)
    action.setTransactionId("T123")
    action.setAffiliation(GTMEcommerceKeys.CheckoutAffiliaction.rawValue)
    action.setRevenue(NSNumber(double: GTMHelper.priceFromDict(generalProductDict)))
    action.setCouponCode(discountCode ?? "")

    builder.setProductAction(action)
    builder.addProduct(product)

    let build: [NSObject: AnyObject] = builder.build() as [NSObject : AnyObject]
    tracker.send(build)
    //#endif
}

static func ecommerceProductFromGeneralProductDict(dict: [String: AnyObject]?, discountCode: String?) -> GAIEcommerceProduct {
    let product = GAIEcommerceProduct()

    let productId = (dict?[GTMKeys.ProductId.rawValue] as? String) ?? ""
    let productName = (dict?[GTMKeys.ProductName.rawValue] as? String) ?? ""
    product.setId(productId)
    product.setName(productName)

    if discountCode != nil {
        product.setCouponCode(discountCode ?? "")
    }
    if let productCategory = dict?[GTMKeys.ProductType.rawValue] as? String {
        product.setCategory(productCategory)
    }

    product.setPrice(GTMHelper.priceFromDict(dict))

    product.setQuantity(NSNumber(integer: 1))

    return product
}

控制台输出:

2016-08-05 16:41:28.986 Belvilla[1435:339806] VERBOSE: GoogleAnalytics 3.14 -[GAIBatchingDispatcher persist:] (GAIBatchingDispatcher.m:517): Saved hit: {
parameters =     {
    "&_crc" = 0;
    "&_s" = 3;
    "&_u" = ".nteynL";
    "&_v" = "mi3.1.4";
    "&a" = 655...;
    "&aid" = "--------------";
    "&an" = Name;
    "&ate" = "<null>";
    "&av" = "3.4.0";
    "&cid" = "f40c6c80-3ec9-43...";
    "&dm" = "iPhone6,1";
    "&ds" = app;
    "&ea" = Purchase;
    "&ec" = Ecommerce;
    "&el" = "<null>";
    "&ev" = "<null>";
    "&idfa" = "<null>";
    "&pa" = purchase;
    "&pr1ca" = "Holiday home";
    "&pr1cc" = "";
    "&pr1id" = "XX-00-20-00";
    "&pr1nm" = "Test House";
    "&pr1pr" = "456.7";
    "&pr1qt" = 1;
    "&sr" = 640x1136;
    "&t" = event;
    "&ta" = "Booking";
    "&tcc" = "";
    "&ti" = T123;
    "&tid" = "UA-.....";
    "&tr" = "456.7";
    "&ul" = "en-fr";
    "&v" = 1;
    "&z" = 740324....;
    gaiVersion = "3.14";
};
timestamp = "2016-08-05 13:41:28 +0000";
}

1 个答案:

答案 0 :(得分:0)

好的,所以诀窍是从TagManager中删除自定义调度间隔(app将GA和GTM结合起来)

tagManager.dispatchInterval = NSTimeInterval(1.0)

之后设置默认的调度间隔(120秒),一切正常,HTTP响应代码为200.