2012-12-08 11 views
13

Ich möchte In-App-Käufe mit dem Google Analytics SDK für iOS v2 nachverfolgen, wie in ihrem Leitfaden Ecommerce Tracking angegeben.In-App-Kauf-Tracking mit Google Analytics iOS SDK

ich zur Zeit nach dem Empfang eine SKPaymentTransactionStatePurchased Transaktion Update wie folgt vorgehen:

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

Ist das über die rechten Käufe in-App von Tracking? Ich erkennen, zwei Probleme zumindest:

  1. SKProduct gibt einen lokalisierten Preis und wenn ich es verfolgen, wie sie ist Einnahmen Aggregation falsch sein wird. Gibt es eine Möglichkeit, den Preis zu normalisieren?
  2. Der Umsatz, der zurückgegeben wird, berücksichtigt nicht den Schnitt von Apple, der nicht immer 30% beträgt. Ist es möglich, den Nettoumsatz innerhalb der App zu erhalten?

Antwort

11

SKProduct gibt einen lokalisierten Preis und wenn ich es verfolgen Einnahmen als Service-Leistung Aggregation falsch sein wird. Gibt es eine Möglichkeit, den Preis zu normalisieren?

Google Analytics SKD for iOS v3 Unterstützung für Währungen hinzugefügt. eine Transaktion Tracking sieht wie folgt aus:

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

Der obige Code RMStore der Einfachheit halber verwendet.

Der zurückgegebene Umsatz nicht Apple Schnitt berücksichtigt, die nicht immer 30% ist. Ist es möglich, den Nettoumsatz innerhalb der App zu erhalten?

Nr

2

Gute Frage, Schade, Sie haben keine Antworten zu diesem Thema, da ich gerade auf das gleiche Problem gestoßen bin.

Um die Diskussion zu diesem Thema anzuregen, möchte ich diesen "Workaround" vorschlagen.

Die Idee ist, dass Sie nichts über verschiedene Währungen in-App tun können. Stattdessen müssen Sie das Problem in Analytics verschieben und anhand der Filterung die Einnahmen pro nationalem App Store ermitteln.

Also, wenn es eine US-Transaktion ist, wird die Affiliate "USD" sein.

Was

nehmen Apples Schnitt berücksichtigt, die 30 nicht immer% ist

dies ist mir neu. Ich hatte den Eindruck, dass die 30% von Apple in Stein gemeißelt wurden. So bin ich Multiplikation Umsatz nur um 0,7

+0

Nette Idee, @Seoras. – hpique

+0

Es ist nicht immer genau 30%. Es hängt von App Store Region und Währung ab. Also würde ich Einnahmen wie für Berichte lassen und nur in Erinnerung behalten ~ 30% ... – oleynikd

+0

Wahr. 2 Jahre später, nachdem ich etwas Erfahrung gesammelt habe, kann ich auf Japan als gutes Beispiel hinweisen, dass ich nicht die volle 70% -ige Reduzierung bekommen habe. Japan behält 20% Ihrer Einnahmen. Es sei denn, Sie legen über Apple eine Steuerbefreiungsform vor, die auch in alten ägyptischen Hieroglyphen enthalten sein könnte. – Seoras

Verwandte Themen