How to edit deep link parameter in Firebase Dynamic link - firebase

Is there a REST API to update the Deep link property of Firebase DynamicLink?
The Google guide only shows the process to create a short link
, but there is no mention of how to update the deeplink once created.
Edit from Cyril DD :
Using the Firebase website, it's possible to update a dynamic Link and when looking at the network tabs in the console, it calls an API https://firebasedurablelinks-pa.clients6.google.com/v1/updateDurableLink where it's possible to completely update the properties of an existing dynamic link.
But then I'm left with two problems:
I can't see to figure out a way to make this request work in Postman
I need to update a link that was generated with the https://firebasedynamiclinks.googleapis.com/v1/shortLinks API, and therefore does not appear in the list of links in the firebase console

This is an intended behavior, but is a known feature request. Short Dynamic Links created programmatically are designed to be shared peer to peer and isn't meant to be modified later on.
The only way to edit short Dynamic Links is through the Firebase console since short links created through the console are likely to be used in campaigns.
If you have more inputs regarding this function, you can file it as a feature request here https://firebase.google.com/support

Related

Firebase dynamic links have started giving the error "Your connection is not private"

The FDL has been working fine in production for a few weeks and has suddenly started show this error in the browser as if it does not have a valid SSL certificate.
The FDL is generated via the API.
Is there a solution to remove this warning for my FDL?
I have raised a support request with GCP but have posted a question in here in case there is something I can do.
Turns out a received an email from Firebase about this 1 working day ago (before the weekend so I did not notice it).
I followed the instructions and several hours later it was working so I am assuming this was the issue.
Note it did not fix the issue immediately.
We’re writing to let you know that your Firebase Dynamic Links (FDL)
project(s) did not have configuration to prevent phishing, so we
generated Allowlist URLs that your Dynamic Links can redirect to.
Specifying a URL allowlist prevents third parties from using your API
key to create Dynamic Links that redirect from your FDL domain to
sites not on the allowlist.
What do I need to do? Review the generated URLs or to add additional
URLs:
Click 3 dot menu icon> Allowlist URL pattern from the Engage > Dynamic
Links page of the Firebase console for each project. Review the
auto-generated allowlist URLs to ensure they cover your intended link
destinations. [Optional] Specify up to ten regular expressions for
additional allowed URLs using RE2 syntax. See the images below for
clarity.
Only URLs that match one of your configured regular expressions can be
successfully used as a Dynamic Link's deep link or fallback link.
Your impacted project(s):
project1 project2
To learn more, see the Allow specific URL patterns documentation.
Feel free to reach out to our Firebase support team for more
assistance.
This issue I tried to reproduce:
I can able to reproduce if in My device setting time zone if I set date older then 1 month then this error will come.

Tracking Google Tag Manager publish events

How would I detect a Google Tag Manager publish event and send that to an external system?
I am trying to pinpoint effects of specific tag changes for certain properties and correlate them in a graph the way I might do with a new GitHub tag being created.
I've looked thru documentation but have not uncovered anything yet specifically for this scenario.
You could user container notifications to have an email sent to some service that processes the mail and stores the information.
Or you can use the API, retrieve the container fingerprint and compare it against a stored version of the fingerprint to see if it has changed. This would require you do implement some sort of polling in the API script to check every n minutes for changes.

Firebase Dynamic Links: Can't use Google-provided hostname

I can't seem to set up Firebase > Dynamic Links using the Google-provided domain '[my-app-name].page.link'.
I'm trying to use Firebase > Dynamic Links for the first time so that I can use email-address-only authentication in my React Native app. I don't want to pay for a custom domain just to set up a TXT record so that Google can verify the domain, so I'd like to use the Google-provided domain name.
The problem I have with that is when I go to https://console.firebase.google.com/u/0/project/[my-app-id]/durablelinks, click on the 'Get Started' button, select the Google-provided '[my-app-name].page.link', and click 'Continue' I get the error:
This name is unable to be used by anyone. If you believe this is a mistake please reach out to support.
And looking for support led me here.
How can I use '[my-app-name].page.link' as my Dynamic Link so that I can pass dynamicLinkDomain to auth().sendSignInLinkToEmail and get the password-less authentication working?
Thank you!
I can't comment, but it seems that the answer you're looking for is in this question answered by Jeff Avis.
In short: type in anything.page.link and firebase will verify if it's valid or not.
It seems that the problem you're facing is that you've already used the domain you are trying to reuse, and deleted it! that's why it's blocked by firebase for the time being at least.

Using Google Analytics to show subset of data for customers of web application using embed api

I'm developing an application where each 'business' has its own page (or rather many pages):
For example example.com/business/abc/
So, for the logged in business owners in the system I would like to give a feature 'View page analytics'. It would display how many visits (and maybe a couple of other things) that particular page has had.
Is there a way of doing this using the Google Analytics API with my constraints:
I don't want customers to provide their own UA code
I don't want them to require to have GA account
Customers don't need to have Google email account
I don't want to build the entire frontend and backend myself. I would rather use something existing
I've been researching this topic for hours trying to come up with a solution and can't figure out anything.
Here is what I tried and what problems happened to me:
http://ga-dev-tools.appspot.com/demos/embed-api/
This is basically exactly what I want for my customers to be displayed on my site (like in the examples), except that Embed Api tries to authorize users to their own (owned) google analytics. I want it instead to use my own Google Analytics data (or rather part of it)
The way I thought about limiting data access would be for every one of my customers to create a View in GA, Add filter to that View so only customer pages are listed there, assign User to the view, and use the Embed Api to display data from that View only. There are a couple of problems with that:
To assign User to View we need email address. And this must be either google account email, or account from a project created with Google Developers Console (application).
In other words I can't create (in any way that I know) an account that would be a shield account for my customers to a subset of my GA data that they would be interested in. It must be either a real user or a real application email address.
So what I tried to do is... I created an app in Google Developers Console, Created new OAuth Service Account. Using Ruby code (that in production app would be running on backend) I obtained OAuth token. I added this email of my OAuth service account as a User to the View
I wanted this server side generated oauth token to be used by Embed Api. That would achieve the effect that I generate the token for on my backend and user can use it without having GA user in my GA property. So I changed according to documentation the basic Embed Api example to use
gapi.analytics.auth.authorize({
container: 'auth',
clientid: 'xxx.apps.googleusercontent.com',
serverAuth: {
access_token: 'Server side generated token'
}
});
instead of
gapi.analytics.auth.authorize({
container: 'auth',
clientid: 'xxx.apps.googleusercontent.com',
});
The effects are not quite what I expected. The example doesn't show anymore (I can't see my data) but I can see in Netowrking section in Chrome that it is actually receiving real data from GA. But for unknown reason, nothing is appearing.
What I try to avoid is building a solution in which I need to build server side code that is querying GA for data, providing it to the frontend and then JS is responsible for displaying it. I would rather use Embed API but it seems not to be well suited for the use case where I don't want users to play with their UA data but rather with my own UA data limited to some scope. I would like to have at least the frontend or backend part of the solution solved. The solution doesn't need to be even Google Analytics based. Anything else that would let me achieve the use case easily and let the business owners see the effects of their marketing (traffic, sales) would be interesting as well.
Related:
Using google analytics API to show subset of data for customers of web application
Google analytics customer data?
Google Analytics API: filter by URI?
https://embeddedanalytics.com seems like something that could be useful, but their page and graphs look like from a few years ago. I would like something more pretty.
https://oocharts.com seems to be interesting because of what their docs.oocharts.com says about queries. But they don't charge anything for their product so I am skeptical of their business model and whether it is a good long-term solution. update: dead link
I don't have enough karma to post links ;)
TLDR: Displaying subset of my GA data to my customers without forcing them to become GA users and adding them to my GA account.
Any help appreciated!
Without seeing your code it's hard to know where the problem is, but using the serverAuth option definitely works. And when using the serverAuth option, you don't need to specify a client ID or container, all you need to enter is the following:
gapi.analytics.auth.authorize({
serverAuth: {
access_token: 'Server side generated token'
}
});
Here's an example that will work if you enter in a valid access token and the idsfor a view to which you have access:
http://jsbin.com/vukezoheyeco/3/edit
Note: when doing auth like this, it happens sync. This can be a gotcha if you're used to an async auth flow (like normal) and you add an event handler listening for the "success" event after calling .authorize because then your handler will never run.
I think you need the Google Analytics Super Proxy
You download the github package and upload to your own App Engine project, do some minimal configuration and then you have an interface where you can setup Google Analytics API calls which require no user login.
It provides end user URLs that you can use to construct data tables in your front end, it also provides data-table format so it slots right into Google Charts.
So for example, you have a user that needs access to visits, revenue for site section /sectionA/
You set up the GA super proxy to serve them a URL that only includes data for that section - you can try out queries here in the GA query explorer. In this case, metrics=ga:visits,ga:productRevenue and filter~=ga:page=/sectionA/
This produces an end URL with JSON data, that refreshes daily/hourly - your choice. You import this URL into your app.
The end user then logs in to your app, and sees the chart data generated from the end URL for their login. They don't need to know about GA super proxy, they just see the end resulting chart.
You could get more sophisticated by providing dropdowns to select which data chart they see, which changes the GA super proxy URL that is requested.

Facebook App to Post HTTP GET to Timeline

A lot of the documentation online is pre open graph, and I find the Facebook developers documentation quite confusing (I'm a novice developer). Can someone please tell me, at a high level, how or where I might find out how to go about creating an app in Facebook where I can post to my business' page timeline through a single encoded HTTP GET (or similar) request.
I understand I might have to make a simple FB app and authorize it to talk with a separate web app. But I'm just looking at pointers at this stage.
well it isn't quite correct that you can only find pre-open graph things on Facebook. Anyhow, to post, you need an access token.
What you seek to do is update your fan page via app, if I get it correctly.
That isn't done with just one url: you need to call at least two:
1) one call is to authorize the app and get an access token
2) the second call is to get your accounts (fan pages) with ids and access tokens
3) the third call is to update your fan page via app.
The url to post via app would be https://graph.facebook.com/$your_id/feed with the following parameters: access_token, message (the message you want to post, not required), link (if any. Not required.), image (not required), description (not required), caption (not required), etc. You need at least a message or a link for the post. If you use php the easiest is a curl POST call. I've found something for you here, by the way

Resources