iOS Google 跟踪代码管理器购买事件发送 0(零)作为数量参数

标签 ios objective-c in-app-purchase google-tag-manager

注意:它已经在帖子中提出:Quantities of items are not tracked in google analytics transactions但没有得到答复。

使用适用于 iOS (Objective-C) 的 Google 跟踪代码管理器([编辑] 发布版本 3.06)并发送购买事件(如 the example 中所述)时事件被发送,我可以在 Google Analytics 后端中读回它,但是数量的值始终为 0(零)。价格也是 0(零),但我不确定这是否是由于数量为 0 引起的。其他所有参数似乎都发送得很好。

请注意,我实现了 android SDK,没有出现任何问题。

现在的代码是(为了可读性而进行了更改):

int quantity = 1;
float price = 0.89f;
float shipping = 0.0f;
float tax = 0.0f;

TAGDataLayer *dataLayer = [TAGManager instance].dataLayer;

NSMutableArray *purchasedItems = [NSMutableArray array];

[purchasedItems addObject:@{@"name": GetStringParam(name),
                            @"sku": GetStringParam(SKU),
                            @"category": GetStringParam(category),
                            @"price": [NSNumber numberWithFloat:price],
                            @"currency": @"EUR",
                            @"quantity": [NSNumber numberWithInt:quantity]
                            }];

[dataLayer push:@{@"event": @"Transaction",
                  @"transactionId": GetStringParam(transactionID),
                  @"transactionTotal": [NSNumber numberWithInt:quantity],
                  @"transactionAffiliation": GetStringParam(affiliation),
                  @"transactionTax": [NSNumber numberWithFloat:tax],
                  @"transactionShipping": [NSNumber numberWithFloat:shipping],
                  @"transactionCurrency": @"EUR",
                  @"transactionProducts": purchasedItems
                  }];

[dataLayer push:@{@"transactionId": [NSNull null],
                  @"transactionTotal": [NSNull null],
                  @"transactionAffiliation": [NSNull null],
                  @"transactionTax": [NSNull null],
                  @"transactionShipping": [NSNull null],
                  @"transactionCurrency": [NSNull null],
                  @"transactionProducts": [NSNull null]
                  }];

我是否做错了什么或者是 iOS 版 GTM SDK 的已知问题?我真的很想在这方面得到一些帮助。

更新:只想添加 GTM 生成的日志:

Saved hit: {
parameters =     {
    "&_u" = ".L";
    "&_v" = "mi3.0.6";
    "&aid" = "[this is confidential]";
    "&an" = "[this is confidential]";
    "&av" = "[this is confidential]";
    "&cd" = "/Home";
    "&cid" = "60dc5171-1a8d-40ed-9f90-cc2cb1bbb30d";
    "&cu" = EUR;
    "&ic" = "Test-SKU";
    "&in" = "Test-name";
    "&ip" = "0.89";
    "&iq" = 1;
    "&iv" = "Test-category";
    "&sr" = 320x480;
    "&t" = item;
    "&ti" = "TEST-PURCHASE_JXJKY0N8";
    "&tid" = "UA-XXXXXX-2";
    "&ul" = en;
    "&v" = 1;
    "&z" = 12665685598291294076;
    gaiVersion = "3.06";
};
timestamp = "2014-04-10 11:02:23 +0000";
}

如果需要任何其他信息,请告诉我。

干杯, 尼尔斯

最佳答案

当前(3.06 版本)的 iOS SDK 存在一个错误,因此您不应在推送的电子商务事件中提供 NSNumbers 作为值。解决方法是改用字符串(例如,[NSString stringWithFormat @"%1.2f",price])。

我们正在努力修复该错误。

Neil(Google 移动应用跟踪代码管理器技术主管)

关于iOS Google 跟踪代码管理器购买事件发送 0(零)作为数量参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22985976/

相关文章:

android - 应用内计费选择哪种产品类型进行应用高级升级一年

ios - Flutter 应用程序的 FCM 通知未显示在 iOS 系统托盘中

ios - 在 XCode 中构建一个完整的 Cordova 应用程序以部署到 TestFlight

ios - 在 UITableView 中显示和隐藏特定的单元格类型(可能带有动画)

objective-c - UIWebView 不打开 ms word (doc) 和 ms excel (xls) 文件

python - 在 Google App Engine 上用 Python 验证 android 应用内购买消息的签名

ios - 声音无法在设备上播放,但可以在模拟器上播放

ios - 为什么我无法正确获取图像数据或无法将数据发送到服务器?

ios - Objective-C - 在屏幕中间画一条水平线

ios - 应用内购买不适用于 iOS 7