谷歌分析 - 获取iOS应用内购买价值

3

我跟随这篇教程成功地在我的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.
}
2个回答

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);
    }
}

谢谢。实际上,这与Google Analytics更相关。 - fxfuture

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接