我想跟踪应用内购买与谷歌Analytics(分析)SDK适用于iOS V2,在他们的指示电子商务跟踪指导。
我目前在做以下收到后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返回一个本地化的价格,如果我跟踪它,是收入的聚集将是不正确的。 有没有办法正常化的价格是多少?
谷歌Analytics(分析)SKD适用于iOS V3增加了对货币的支持。 追踪交易看起来是这样的:
- (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为了方便。
返回的收入不采取苹果的切进去,这并不总是30%。 是否有可能获得应用程序内的净收入?
没有。
问得好,耻辱你有没有答案,这是我刚刚碰到同样的问题。
因此,要刺激有关这个主题的讨论中,我想建议这个“解决办法”。
NSString *affiliation = [product.priceLocale objectForKey:NSLocaleCurrencyCode];
GAITransaction *gaiTransaction = [GAITransaction transactionWithId:transactionIdentifier withAffiliation:affiliation];
这个想法是,你不能做有关应用不同的货币东西。 相反,你需要移动的问题分析和使用它的过滤摸出每个国家的App Store的收入。
所以,如果它是一个美国交易的联盟将是“美元”。
至于
拿苹果切进去,这并不总是30%
这是我这个消息。 在我印象中30%是由苹果一成不变的。 所以我只是用0.7乘以收入