2016-08-05 3 views
0

iOS 용 고급 전자 상거래 기능을 구현 한 후 Google 애널리틱스의 전자 상거래 개요에서 수익이 전혀 나타나지 않습니다. 체크 아웃 단계없이 트랜잭션 측정을 직접 구현했습니다. 콘솔 출력은 올바른 수익 값을 다른 변수와 함께 인쇄하지만 그 후에는 "http 상태 -1"이됩니다. '누락 된 전자 상거래 데이터'알림 확인을 시작했지만 이미 3 일이 지났으며 아직 보류 중입니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까?Google 애널리틱스 향상된 전자 상거래가 수익을받지 못함

I했습니다 여기에 전자 상거래에 공식 구글 가이드 (거래 섹션을 측정) 다음이었다 : https://developers.google.com/analytics/devguides/collection/ios/v3/enhanced-ecommerce#measuring-transactions

P.S : Google 웹 로그 분석을 강화했다 전자 상거래가 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"; 
} 

답변

0

좋아, 그래서 트릭 (응용 프로그램은 GA 및 GTM 모두 결합되어) TagManager에서 사용자 정의 파견 간격을 제거하는 것이었다

tagManager.dispatchInterval = NSTimeInterval(1.0) 

그런 다음 기본 디스패치 간격 (120 초)이 설정되고 모든 것이 잘 작동합니다. HTTP 응답 c ode는 200입니다.