I'm stucking at Domain is incorrectly set up; please use the nameservers below as your NS record.But before setup NS record, i want confirm something because the custom domain i'm using is belong to my client.
So when user click mydomain.com (not .app.link or anything from Branch), does app open? If user don't have app, does AppStore open?
2nd question: How do i edit AASA file? I want some link open app, some link open web.My current path in AASA file: "paths": ["/catalog/*", "NOT /blog/*.html", "/blog/*"]
Any domain, be it branch link or not needs to configured in the android manifest file so as for it to be a supported link for the app.
All supported links will open the app directly (if the user has the app).
For ios, these have to be declared in associated domains.
All App Links and Universal links help in improving customer experience by directly opening into the app.
It is possible to edit the AASA file as per your use case. You would need to raise a ticket to support#branch.io regarding your request and this will be answered to.
You can look into our documentation here so as to understand better : https://help.branch.io/using-branch/docs/advanced-settings-configuration#section-change-link-domain
I'm creating a new UIDocument and think it would be beneficial for these theoretical use cases:
The OS should ensure that my app is the "owner" (no one should claim this type other than external UTI)
The end user to be redirected to a webpage or App Store if the app isn't installed.
Do Universal links provide any benefit to custom document types defined within info.plist?
We're trying to implement deferred deep linking in one of our iOS applications to encourage users to invite their friends to use the app, and reward users based on how many installs occur from their referral link. Basically similar to TapStream's product.
Consider this example:
So, UserA shares their link, “ourappURL.com/refer?id=userA”, on any
network they want. UserB clicks that link, which will take them to
Safari and then bounce them to the App Store page where UserB
downloads the app.
When UserB opens the app, the app checks which referral ID they came
in on (if any). In this example, the referral ID would be “userA” as
that’s the ID that was in the referral link. The app then sends this to
our servers and we award UserA with a referral credit.
I'm trying to break this issue down into its core parts. I believe the first part is getting the web page for the user's referral link to save the referral ID to the device somewhere that the app can access it. But I'm not sure this is possible because of the sandboxed nature of iOS.
I know this is fundamentally possible because many ad providers offer the ability to track installations from an ad campaign (see Mobile App Tracking for example).
We have also attempted to do this ourselves and I will try to break down the different steps here.
Going back to your example, you are correct about "remembering" the device identification, and all relevant data "id=userA". You are also correct about "sandboxed nature of iOS" which I presume it means a web page is not allowed to store information outside of the browser app (Safari) and apps (your app) are not able to access information stored by other apps (Safari).
Our solution to this is to store this device to data key-value pair in an environment that is both accessible by the browser as well as by your app, i.e. your backend server.
The next challenge, which remains to be the biggest challenge, is how to uniquely identify this device from the information collectable from the browser? Javascripts in browsers, unlike native apps, don't have access to IDFAs which could be used to uniquely identify a iOS device. To overcome this, one can imagine to use a combination of common information that is available both to the browser app as well to your native app, i.e. OS type, public IP, screen size, etc. etc. Please note, a composite key from these data fields does not guarantee uniqueness (imagine two iPhone 6 visiting this web page via the same router). Therefore, your backend server (assuming you are using it to store this key-value pair), will want to have a strategy on how to handle collisions on keys i.e. the second key deletes the first key, or you allow collision to exist by having a queue of values for a single key. This really depends on how you actual plan to use this technology.
The last step is to form this composite key on your app using the exact same fields you used earlier in the browser to perform a "lookup" on your backend server to retrieve the value previously stored.
Here is a summary of the steps:
User 1 invites User 2 by sending the following link to 2: example.com?inviter=1
User 2 visit Web Page P
P constructs and sends the following key-value pair to your server S iOS|55.55.55.55|750×1334 -> inviter_id=1
User 2 goes to the app store and downloads your App A
User 2 first launches A, A contacts S with the same key (assuming the IP hasn't changed).
S finds the value inviter_id=1 by using this key passed in and, let's say, reward User 1 five points for inviting 2.
Hope this help!
Edit 04/24:
Since Derrick mentioned it in the comments, I figure I would take this chance to finish our story here.
Going back to the beginning of my answer where I mentioned we've attempted to do this ourselves. We had a working prototype based on our current system architecture (which is not in anyway optimized, or meant to be optimized, for storing and analyzing deep link data like this), we ultimately decided not to allocate any additional engineering resource into this project.
Due to the heuristic nature of this matching process, we found this project needing debugging, tuning and optimizing constantly for a diminishing ROI. More importantly, we have found other companies which are more specialized and do a much better job than ourselves.
It has been probably 6 months since we stopped using our internal system and we haven't regretted making such decision.
During this processes, we've worked with a number of vendors, Appsflyer, Adjust, TapStream and we have ultimately ended up with Branch Metrics https://branch.io.
Whether you should DIY or work with another company again depends on your specific objective. We finally decided to stay with Branch, not only because the other vendors charged anywhere from $500 to thousands of dollars per month while Branch is completely free, but also the level of the support they have provided is simply unparalleled.
We've successfully used the clipboard (NSPasteboard) to achieve this: the web page that processes the redirect to the app store does a paste to the mobile device's clipboard before letting the user download the app. Once the app is installed, it uses NSPasteboard on first launch to check for an appropriately coded string. This string can contain the text of interest or, more securely, a token used to fetch interesting data from the backend. In Objective C:
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSString *pasteboardString = pasteboard.string;
The clipboard can be cleared once the app is done with it, to avoid repeating the same action.
There is a good solution here: http://blogs.innovationm.com/deferred-deep-linking-in-ios-with-universal-link/
Basic workflow:
User selects domain link on web.
Link sets referral ID to cookie.
User redirected to app store.
On app launch, load referral page in SFSafariViewController.
Referral page checks for cookie and if it exists calls a deeplink into the app with the referral ID.
My answer from HERE
Apple no longer supports Deep Links. It is now called Universal Links and works a bit differently.
Source
Now that Apple no longer supports URI schemes for deep linking, developers must implement Universal Links in order to deep link properly on iOS. If you are already using URI schemes, check out our blog on transitioning to Universal Links.
From: HERE
And HERE is another article on Universal Links and what they are.
Recently news are coming out that one can create vanity url for Apple Appstore.
But I cant find any options additionally added in itunes connect to do it.
any help is appreciated :)
It seems we dont have to do anything ...
just we have to add the company name or app name at the end of http://appstore.com/
It seems since all the app names and company names are already unique, apple does the all background job of rerouting the appstore-link to the actual itunes-link..
iOS: http://appstore.com/<.companyname.> for example, http://appstore.com/ikural
Mac: http://appstore.com/mac/<.companyname.> for example, http://appstore.com/mac/popcap
apple has provided this Q&A page
You don't create it. It is based on your company or application name. It is not very robust (two applications with the same name can have the same URL). See Apple's Technical Q&A.
In particular, the last paragraph reads:
These App Store Short Links are provided as a convenience and are not
guaranteed to link to a particular app or company. Be sure to test
your URLs before using them in any marketing or other public
materials. If there are naming conflicts, continue using the standard
itunes.apple.com URLs, which contain a unique numerical identifier
within the URL.
I use the Facebook API for iOS, which enables posting content to the Facebook wall. The API allows custom links to be added next to "Like" and "Comment". I would like to add "Get App" here which links to my app on App Store, but how do I do this when my App ID will not be known to be before the app is actually approved? ("Chicken-and-egg" situation)
Possible solutions:
A) Link to a temporary URL which is changed to the App Store link after approval
B) Wait until version 1.1 to add this, when the App ID is known
Is there any other way to accomplish this?
You get an App ID once you create an app in iTunes Connect. That means you get the ID before you publish the app and it doesn't change when the app goes trough review or publishing process. I'm not able to make a screenshot right now, but it's easily found in top left corner when you click on manage apps > your app.
Some ISPs and independent providers offer domain name services that would help here, possibly.
I use EasyDNS, but there are other options.
The idea is that you register a domain name with them and purchase a plan that includes web forwarding. Web forwarding lets you send any web traffic for your domain to a specific URL.
You temporarily forward to any URL you like (presumably a page on your regular site, maybe a "Coming soon" page). Then, when you receive the real URL, change the forwarding to point there.
It might take a day or so for the change to percolate across the while interweb, but generally you can see and test results fairly quickly yourself, or at least that's been my experience.