3

我跟着this tutorial在我的iOS應用中成功實施應用購買。Google Analytics(分析) - 讓iOS獲得應用購買價值

我正在嘗試使用以下代碼實施Google Analytics跟蹤購買。但是,如果成功完成購買,我不確定從哪裏獲得實際價值。

任何示例代碼將不勝感激。

- (void)onPurchaseCompleted { 
    GAITransaction *transaction = 
     [GAITransaction transactionWithId:@"0_123456"   // (NSString) Transaction ID, should be unique. 
         withAffiliation:@"In-App Store"];  // (NSString) Affiliation 
    transaction.taxMicros = (int64_t)(0.17 * 1000000);   // (int64_t) Total tax (in micros) 
    transaction.shippingMicros = (int64_t)(0);     // (int64_t) Total shipping (in micros) 
    transaction.revenueMicros = (int64_t)(2.16 * 1000000);  // (int64_t) Total revenue (in micros) 

    [transaction addItemWithSKU:@"L_789"       // (NSString) Product SKU 
         name:@"Level Pack: Space"    // (NSString) Product name 
        category:@"Game expansions"    // (NSString) Product category 
        priceMicros:(int64_t)(1.99 * 1000000)  // (int64_t) Product price (in micros) 
        quantity:1];        // (NSInteger) Product quantity 

    [[GAI sharedInstance].defaultTracker sendTransaction:transaction]; // Send the transaction. 
} 

回答

5

都把這裏是我的最終代碼:

- (void)trackPurchaseWithTransaction:(SKPaymentTransaction *)transaction andAction:(NSString *)action 
{ 
    //Only track purchase, not restore 
    if(![action isEqualToString:IAPHelperProductPurchasedNotification]) return; 

    id tracker = [[GAI sharedInstance] defaultTracker]; 

    SKPayment *payment = transaction.payment; 
    NSString *sku = payment.productIdentifier; 
    SKProduct *product; 

    for(SKProduct *skProduct in skProducts) { 
     if([skProduct.productIdentifier isEqualToString:skProduct.productIdentifier]) { 
      product = skProduct; 
     } 
    } 

    NSLocale *priceLocale = product.priceLocale; 
    NSString *currencyCode = [priceLocale objectForKey:NSLocaleCurrencyCode]; 
    NSString *transactionId = transaction.transactionIdentifier; 
    NSNumber *productPrice = product.price; 
    NSNumber *revenue = @(productPrice.floatValue * payment.quantity); 

    GAIDictionaryBuilder *transBuilder = [GAIDictionaryBuilder createTransactionWithId:transactionId 
                     affiliation:@"App Store" 
                      revenue:revenue 
                       tax:0 
                     shipping:0 
                    currencyCode:currencyCode]; 
    [tracker send:[transBuilder build]]; 

    GAIDictionaryBuilder *itemBuilder = [GAIDictionaryBuilder createItemWithTransactionId:transactionId 
                       name:product.localizedTitle 
                        sku:sku 
                      category:@"In-App Purchase" 
                       price:productPrice 
                      quantity:@(payment.quantity) 
                     currencyCode:currencyCode]; 
    [tracker send:[itemBuilder build]]; 
} 
1

如果您問的是如何獲得產品的價格並向用戶展示,那麼您就是這麼做的。這是從這個Tutorial

- (void)requestProUpgradeProductData 
{ 
    NSSet *productIdentifiers = [NSSet setWithObject:... ];//create your set 
    productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers]; 
    productsRequest.delegate = self; 
    [productsRequest start]; 
} 

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response 
{ 
    NSArray *products = response.products; 
    proUpgradeProduct = [products count] == 1 ? [products firstObject] : nil; 
    if (proUpgradeProduct) 
    { 
     NSLog(@"Product title: %@" , proUpgradeProduct.localizedTitle); 
     NSLog(@"Product description: %@" , proUpgradeProduct.localizedDescription); 
     NSLog(@"Product price: %@" , proUpgradeProduct.price); 
     NSLog(@"Product id: %@" , proUpgradeProduct.productIdentifier); 
    } 
} 
+0

感謝。實際上它與Google Analytics更相關 – fxfuture

相關問題