Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
谷歌分析-获取iOS应用内购买值_Ios_Objective C_Transactions_Google Analytics_In App Purchase - Fatal编程技术网

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

谷歌分析-获取iOS应用内购买值,ios,objective-c,transactions,google-analytics,in-app-purchase,Ios,Objective C,Transactions,Google Analytics,In App Purchase,我成功地在我的iOS应用程序中实现了应用内购买 我现在正尝试使用以下代码实现Google Analytics来跟踪购买。但在成功完成购买后,我不确定从何处获得实际价值 任何示例代码都将不胜感激 - (void)onPurchaseCompleted { GAITransaction *transaction = [GAITransaction transactionWithId:@"0_123456" // (NSString) Transaction ID

我成功地在我的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.
}

如果你问如何获得产品的价格并向用户展示,你就是这样做的。这些都是从这里得到的

这是我的最终代码:

- (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]];
}

谢谢实际上,它与谷歌分析更相关
- (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]];
}