(Eddystone) Is it possible to get the number of times an URL is received by a device without writing your own app? - ibeacon

Is it possible to get the amount of times an URL is received by a device from the proximity beacon API? I want to know what the click through ratio is of the broadcasted URL.

That depends. If you write your own app that scans for Eddystone-URL beacons and triggers some content (e.g., the web page itself) off of that, then naturally you're in full control and can implement this kind of analytics. Though it'll only apply to people which installed the app.
If you rely on Chrome for iOS, or the Physical Web iOS and Android apps to discover the Eddystone-URL beacons, then these apps do not provide any such numbers.
However, both Chrome for iOS and the Physical Web apps do fetch some metadata about the URL they detect, such as the page title and page description, without the user first clicking on the link. So there's a slim possibility that you could filter such requests out (they will be made by the Physical Web Service, or some similar "bot"), separate them from the actual visits, and do analytics based on that. Most likely however, this "bot," or the proxying service (which is there precisely to prevent this kind of tracking, and protect the user's privacy), will also do some caching, so you'll see fewer requests than the actual number of times the URL is received by the device.
And finally, dropping to a lower level, a note: most beacons are uni-directional, i.e., they broadcast information, but don't receive any information back, so beacons themselves usually can't count the number of packets on the receiving end. (I guess you could technically use the Bluetooth "scan response" mechanism to do that, but it would require custom beacon hardware/firmware.)

Unfortunately, no, it will not do this by itself.
Google's Proximity Beacon Api is a server-side system that stores metadata about beacons (location, battery level, etc) It requires you to add special client code integrated with your app to submit detection data.
Similarly, detecting Eddystone-URL beacons generally requires you to add custom code to your app to do the detections and and present the URL to the user. (The only exception to this is for some Chrome for iOS users with the Chrome Today widget enabled, and no public system provides click through rates.)
Since your app must present the URL itself you really have to roll your own solution to this problem.

If I understand right, you should be able to achieve this by Google analytics campaign. Setup a campaign, add campaign url to ibeacon url and you should be able to check the details analytics through Google analytics.

Related

How effective is invisible reCAPTCHA on react-native?

We have a use case where we need to protect a login/sign up endpoint from bad actor. This endpoint is expensive for us, because we need to send a One Time Password (OTP) to the submitted number.
A few prevention already in place, such as:
IP rate limiting
Phone number prefix check. They usually call the endpoint with number in sequence.
Only enable "Resend" button in the mobile app after 60 seconds & gradually increase.
This bad actors still find a way to pass our check. We want to introduce captcha challenge on our mobile app. reCAPTCHA v3 looks promising since it does not sacrifice user experience on the app.
Our app is written in react native & need to support both iOS & Android. So we must integrate it to our app by calling WebView.
Is this captcha effective enough to detect BOT, since there is not much interaction in the web view?

Can you use multiple ad SDKs with SKAdNetwork?

I am using Facebook ads, Google ads, and an MMP for other networks. I just need to track installs as conversions. I do not serve ads in the app.
My MMP is saying that you cannot have multiple SDKs sending info to SKAdNetwork because it will post back inaccurate information. I have not read this anywhere else.
It says you should only have one SDK posting conversions to SKAdNetwork.
Screenshot of MMP's Blog post saying this
My question is do I need to remove or disable Facebook and Google's registration to SKAdNetwork within my app so they don't post conversions to SKAdNetwork?
OR
Is it ok that all 3 SDKs post to SKAdNetwork?
You technically only need to send one conversion value update and there will be some side effects if you send more than one (though if you handle all your app specific use cases then this might not matter).
Apple will send SKAN CVs to each of the networks you are using for optimization purposes so you shouldn't need to worry about that. I'd personally recommend that you streamline your own app flow to handle SKAN postbacks directly to Apple once.
SKAN 4.0 might make it more difficult if you send multiple CVs from different parties. The new features around multiple postbacks can now get sent to the ad networks based on cohort date and this could affect the optimizations that each of the ad networks use.

Getting autocode, receipt number back from the Square API

I'm developing an app that uses Square credit card processing API. In the Square web panel, after a charge I see things like "authcode" and receipt number in that interface, but I can't find where the API gives me back this data.
Also, when charging with the Square virtual terminal, I can pace a comment with the charge. When the API makes a charge that comment is set to "online transaction."
So can I have the software leave a comment with the API, and can I get the auto code and receipt numbers through the API?
Not all of the features available in Square Dashboard are available via the API at this time, though we are actively working on expanding the API capabilities, particularly around itemizations and receipts.
You can add external reference_id and note to a transaction if you want to associate some external metadata. Receipts can be retrieved with the older retrieve and list payments endpoints. See here: https://docs.connect.squareup.com/api/connect/v1/?q=receipt#datatype-payment

Is it possible to achieve my goal by using Beacons

I have a mobile IOS application which is basically group chat oriented. I was wondering if I can make it beacon-enabled app. With other words, application which can detect beacons, determine id, receive short ads etc. I am quite new to beacons, still reading a lot about it. I found this article which makes me believe that maybe it is possible to achieve my goal.
I want my app, except for its original functionality, to be able to:
Detect a beacon (even if app is in background, without the need to have been paired or whatever)
Receive simple ads by the beacon (while using the app in a certain mode, to be able to project the ads on phone's screen)
Read some real-time info(if required by the user) like: speed(if moving beacon), temperature etc.
In order to achieve all that I would like not to disturb the end user by making him download additional stuff related to the beacon. I want him to have my app and that's all.
You can monitor for beacons while your app is in the background. You can do this by using the CoreLocation Framework or by using a framework of your beacon supplier. (e.g. Estimote)
To the ads: The beacon will only deliver its pre configured ids. (UUID + Major + Minor). If you want to receive ads, you must have a Webservice that will get your beacon ids and return you the ad to display.
(If the ads never change, you can put them directly into your app without a webservice)
How you will show the ads in your app is completely open to you.
I don't really understand what you mean with real-time-info. There are beacons that also send you TLM. So you can get the temperature and the battery level of the beacon. I've never seen moving beacons or beacons that can transmit their speed.
Some useful links:
https://developer.apple.com/ibeacon/
https://xamoom.com/en/2016/07/ibeacon-for-developers/

Changing Kontakt.io beacon characteristics using their Android SDK

I've been trying to use Kontakt.io's sample Android app(available at this address) to implement a simple app that would connect to a Kontakt beacon and change the details such as major, minor, txPower etc. I'm able to detect the beacons and read the correct details for all the above but I am unable to change them. Looking at the sample app, the steps should be straightforward and this is what I've done
onBeaconsDiscovered has a list of BeaconDevice objects as a parameter so I choose one of those BeaconDevice objects and store it in variable called beacon.
I then say beacon.setPassword("password".getBytes()). The actual password used is the password for that specific beacon from the Kontakt.io web panel.
BeaconConnection beaconConnection = BeaconConnection.newInstance
(MyActivity.this, beacon, connListener);
beaconConnection.connect()
That should be it according to the sample app, but it doesn't seem to actually work. I connect to the beacon(meaning onConnected() callback is called) but I then get an error saying authentication has failed due to a wrong password.
I've tried this with a couple of different beacons, new from Kontakt, using the password from the web panel and it doesn't work so, while a possibility, I don't think I just have a faulty beacon.
There are some comments in their docs about a master password for these beacons - not sure where to get that or if that is what is required.
I'm slightly suspicious of the fact that Kontakt has this sample app here but they haven't released it on the Google Play store(i.e. does their code actually work?).
Either way, I'd appreciate any thoughts on what I'm missing.
I am trying to use this as part of a large application that would do a bunch of things with the beacons, hence the need to write my own app.
Please note this is specifically regarding Kontakt.io beacons and specifically their Android SDK.
beacon.setPassword("password".getBytes())
Kontakt.io's beacons have 4 byte long password which is why you can't get access to your beacon parameters.
The sample app allows you to authorize your beacon and manipulate its parameters.
Please note also that once you attempt to authorize the beacon with the wrong password it will reject the connection and change its state to NON-CONNECTABLE.
The NON-CONNECTABLE state was introduced to prevent multiple connection requests from unknown users.
The NON-CONNECTABLE state lasts no more than 20 minutes and during this period no connection can be established to your beacon.
For more information, please visit kontakt.io's knowledge base or kontakt.io - Beacon datasheet

Resources