Google Analytics(分析) - 让iOS获得应用购买价值
问题描述:
我跟着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.
}
答
都把这里是我的最终代码:
- (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]];
}
答
如果您问的是如何获得产品的价格并向用户展示,那么您就是这么做的。这是从这个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