我想使用 Google Analytics SDK for iOS v2 跟踪应用内购买,如其中所示电子商务追踪 https://developers.google.com/analytics/devguides/collection/ios/v2/ecommerce guide.
收到后我目前正在执行以下操作SKPaymentTransactionStatePurchased
交易更新:
- (void) trackTransaction:(SKPaymentTransaction*)transaction
{
NSString *transactionIdentifier = transaction.transactionIdentifier;
GAITransaction *gaiTransaction = [GAITransaction transactionWithId:transactionIdentifier withAffiliation:@"App Store"];
SKPayment *payment = transaction.payment;
NSString *productIdentifier = payment.productIdentifier;
SKProduct *product = [self productForIdentifier:productIdentifier];
NSString *productTitle = product.localizedTitle;
int64_t priceInMicros = product.price.floatValue * 1000000; // FIXME: Doesn't consider different currencies
[gaiTransaction addItemWithCode:productIdentifier name:productTitle category:nil priceMicros:priceInMicros quantity:payment.quantity];
gaiTransaction.revenueMicros = priceInMicros * payment.quantity; // FIXME: doesn't consider Apple's cut
id<GAITracker> tracker = [GAI sharedInstance].defaultTracker;
[tracker trackTransaction:gaiTransaction];
}
以上是跟踪应用内购买的正确方法吗?我至少发现两个问题:
-
SKProduct
返回本地化价格,如果我按原样跟踪它,收入聚合将不正确。有没有办法让价格正常化?
- 返还的收入并未考虑苹果的分成,苹果的分成并不总是 30%。是否可以获取应用内的净收入?
SKProduct 返回本地化价格,如果我按原样跟踪收入
聚合将不正确。有没有办法让价格正常化?
适用于 iOS v3 的 Google Analytics SDK https://developers.google.com/analytics/devguides/collection/ios/v3/ecommerce添加了对货币的支持。跟踪交易如下所示:
- (void)storePaymentTransactionFinished:(NSNotification *)notification
{
SKPaymentTransaction *paymentTransaction = notification.transaction;
if (paymentTransaction.transactionState == SKPaymentTransactionStateRestored) return;
SKPayment *payment = paymentTransaction.payment;
NSString *sku = payment.productIdentifier;
SKProduct *product = [[RMStore defaultStore] productForIdentifier:sku];
NSLocale *priceLocale = product.priceLocale;
NSString *currencyCode = [priceLocale objectForKey:NSLocaleCurrencyCode];
NSString *transactionId = paymentTransaction.transactionIdentifier;
NSNumber *productPrice = product.price;
{
NSNumber *revenue = @(productPrice.floatValue * payment.quantity);
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createTransactionWithId:transactionId
affiliation:@"App Store"
revenue:revenue
tax:0
shipping:0
currencyCode:currencyCode];
NSDictionary *parameters = [builder build];
[_tracker send:parameters];
}
{
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createItemWithTransactionId:transactionId
name:product.localizedTitle
sku:sku
category:@"In-App Purchase"
price:productPrice
quantity:@(payment.quantity)
currencyCode:currencyCode];
NSDictionary *parameters = [builder build];
[_tracker send:parameters];
}
}
上面的代码使用RMStore https://github.com/robotmedia/RMStore为了方便。
返回的收入没有考虑苹果的分成,即
并不总是30%。能否在期限内获得净收入
应用程序?
No.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)