I am using the native google analytics SDKs in iOS and Android projects. Recently i noticed that the web API provides a way to track "non-interact" events:
https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#nonInteraction
However, the native SDKs do not allow to track events using this attribute. Can anybody explain why and how something like non-interact could be tracked using the native SDKs?
thanks
after a lot of searching for a documentation for iOS i found this syntax:
[builder set:#"1" forKey:kGAINonInteraction];
taken from:
https://developers.google.com/analytics/devguides/collection/ios/v3/enhanced-ecommerce
hope that helped.
Related
I'm just wondering if it's still possible to implement banner ads in a React Native App. I've tried using some but they don't work.
You want to display banner ads in React Native. I recommend two popular libraries which help you do that.
The first one is react-native-admob
The second one is react-native-firebase which is provided so many libraries to help you use firebase services (included admob). I prefer this one.
PS: The integrating is a little bit complicated but keep patient then they work like charm.
Cheer!
I’ve done some digging on this. And here is what I've found so far.
AdMob: Supported and verified
I managed to make this work. In terms of dependency, AdMob requires FireBase. But FireBase does not support React Native out of box. I used a wrapper called React-Native-Firebase to make it work. https://rnfirebase.io/
https://firebase.google.com/
https://dev-yakuza.github.io/en/react-native/react-native-admob/
FB Ads: Supported
I haven’t verified it myself. But it seems to be well documented. (And React Native being related to Facebook, I’d be surprised if it weren’t supported.) https://www.npmjs.com/package/react-native-fbads
Flurry: NOT supported
Flurry Analytics supports React Native but Flurry Ads do not. Below is message from their support team when I asked them about this.
"Thank you for contacting Flurry Technical Support. We offer a React Native wrapper, however it does not currently support ads, only analytics. You can read more about it here: https://developer.yahoo.com/flurry/docs/integrateflurry/react-native/ "
MoPub: Not really
I’ve found two React Native wrappers. One is old and no longer updated. (The authors seem to be actively monitoring the discussions and replying to queries. But they are no longer providing tech support.) And the other is very new and doesn’t seem to have enough documentation or evidence that it actually works.
https://www.npmjs.com/package/react-native-mopub
https://www.npmjs.com/package/react-native-mopub-sdk
I'm working on a project to deliver Android and iOS native apps. Unfortunately the company that we're delivering this for has multiple stakeholders around the globe who use different analytics solutions.
This means we have to implement GA, Omniture (Adobe Analytics) plus at least two others! Rolling four analytics tracking solutions on every event/screen is a nightmare scenario for the native apps devs, so we're looking at using a Tag Manager. Adobe's DTM does not have an SDK, so that puts us back into GTM land.
However I have not been able to find good direction on using GTM's "custom" function within an iOS or Android container using the SDKs.
The question: has anyone had experience calling Adobe Analytics using GTM for iOS or Android using the SDKs? If so, how difficult was it? Are there any tricks/tips you can offer?
Thanks!
I've an app in Google Play, today I received a mail from Google saying that:
Google Play warning: You are using an unsafe implementation of
X509TrustManager
It says something about the SSL certificate issues and a way to solve the issue.
I'm asking this question because of curiosity,
Actually what is this warning all about ?
I'm not using any network related activities in my app (it's a local database driven app), so why this warning occurred for my app?
More Details:
My app was built using Appcelerator Titanium and google says this implementation is in ti.modules.titanium.network.NonValidatingTrustManager;. I'm sure that I never used such a class in my code.
Actually what is this warning all about ?
You should have been linked to this page, which explains what it is all about. In a nutshell, Google is scanning apps for people who screw up SSL, such as blindly accepting all certificates as valid.
I'm not using any network related activities in my app (it's a local database driven app), so why this warning occurred for my app?
Because something else in your APK has done this. In the case of this developer, it was a library.
My app was built using Appcelerator Titanium and google says this implementation is in ti.modules.titanium.network.NonValidatingTrustManager;. I'm sure that I never used such a class in my code.
You may not have used it directly. However, something else is using it. Or, perhaps it is there because it is just part of the overall Titanium framework and remains in your APK.
Appcelerator is tracking this issue on JIRA here:
https://jira.appcelerator.org/browse/TIMOB-20431
We also put out a blog post with information here:
http://www.appcelerator.com/blog/2016/02/google-security-alert-unsafe-implementation-of-the-interface-x509trustmanager/
The email speaks about a May 17th deadline for newly submitted (!) apps and updates. We will have a fix and instructions ready in time.
Read this:
http://docs.appcelerator.com/platform/latest/#!/guide/SSL_Certificate_Store_Support_for_HTTP_Clients
It all about the Google pushing everybody to use https. If you are using into your app the Titanium.Network.createHTTPClient object, then you will have to implement that with this:
var certificateStore = require('ti.certificatestore').
The module can be find here: https://github.com/appcelerator-modules/ti.certificatestore
The problem is not related to the js code. It is inside Titanium sdk and no matter do you use some fucntions or not.
I think the possible solution is to rewrite class
https://github.com/appcelerator/titanium_mobile/blob/bc85170157d3bebc5de1d61a9fe6e34bce84a8c9/android/modules/network/src/java/ti/modules/titanium/network/NonValidatingTrustManager.java
We should create safe implementation of X509TrustManager
I just got the same message on a my apps. Same module specified as the OP.
ti.modules.titanium.network.NonValidatingTrustManager;
A few points from my research so far:
http://docs.appcelerator.com/platform/latest/#!/guide/SSL_Certificate_Store_Support_for_HTTP_Clients does discuss the problem and provide examples for iOS and Android. However:
the examples are different for each OS and require creating or downloading modules (the Android one is a couple years old now)
the docs specifically say these methods are no longer supported and
You should instead use the HTTPClient's securityManager property to
implement support for SSL Certificate Stores.
the SecurityManagerProtocol docs, unfortunately, have no examples. The few references I could find (http://docs.appcelerator.com/platform/latest/#!/api/Modules.Https) require the use of modules.https which is a PAID module only.
I'm left with the question: If Google rejects all Appcelerator apps with this particular issue, and only developers with paid subscriptions get an officially-supported solution, does this mean Appcelerator 'community edition' is officially incompatible with Google Play? Is Appcelerator planning to support HTTPS officially for it's community members?
Anyone from Appcelerator care to comment, please?
Thank you,
David
We had gone through the link for iOS-SDK.
http://aws.amazon.com/articles/0006282245644577
Is it possible in android to implement stream throttling like iOS?
If yes, how we are going to implement it? How to check whether it's working correctly?
That is a very old article. It only applies to AWS SDK for iOS v1. The latest version is v2.3.2. Throttling is no longer supported in v2. As for the AWS SDK for Android, such feature has never been implemented. You probably need 3rd party app to achieve that.
According to what I've understood, you don't need any plugin to implement Social API's interfaces for iOS because it uses a default implementation from Game Center.
So my question is for Android. Does it need a plugin to implement it or use a default implementation like Google Play Service?
As far as I am aware you do need a plugin, luckily Google have stepped up and released an Open-Source plugin :)
https://github.com/playgameservices/play-games-plugin-for-unity
Amazon also has Unity plugins for GameCircle as well as In-App Purchasing. There are inside the Mobile SDK: https://developer.amazon.com/public/resources/development-tools/sdk