Chromium Extension: Creation, Publication, Experience

 
3r3-31.
In search of new sites for activities, I drew attention to the “widgets” of chrome, which I have been using for a long time, but never gave them any meaning. Immediately I wanted to try to implement something. 3r32424.
 
 
The idea was to create a task manager for the developer (and not only) that would be always at hand. It should display the actual tickets 3r3353530. trello [/i] and 3r?330. jira 3r33531. , Requests in 3r33030. gitlab [/i] etc. These are the things that I usually searched for by typing keywords in the browser address bar, such as "jira PM-20". 3r32424.
 
 
Chromium Extension: Creation, Publication, Experience
 
3r33535. 3r33535. Extension for chrome [/i] 3r33532. 3r32424.
 
 
chrome.identity : browser functionality that has already implemented all the “crutches” for authorization. This functionality requires the inclusion of 3r33030. identity [/i] in the manifest permissions. I added my manifesto: 3r33535. "permissions":["storage", "identity"]3r? 3531. . 3r32424.
 
 
As I already said: each extension has a URL of the type 3r33535. chrome-extension: // /[/i] . Such an address is not suitable for anything, but 3r33530. chrome.identity [/i] provides the current URL
3r33535. https: // manifest.json impressive:
 
 
3r33434. 3r33434. {
//Required 3r3636. "app": {3r3636. "background": {
//Optional
"scripts":["background.js"]
}
}, 3r3636. "manifest_version": ?
"name": "My App",
"version": "versionString",
//Recommended 3r3636. "default_locale": "en",
"description": "A plain text description",
"icons": {},
//Optional
"action_handlers":["new_note"],
"author": ,
"automation": ,
bluetooth: {
"uuids":["1105", "1006"]
}, 3r3636. "commands": {}, 3r3636. "current_locale": ,
"event_rules":[{}],
"externally_connectable": {
"matches":["*://*.example.com/*"]
}, 3r3636. "file_handlers": {},
"file_system_provider_capabilities": {
"configurable": true,
"multiple_mounts": true,
"source": "network"
}, 3r3636. "import":[{"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}],
"key": "publicKey",
"kiosk": {
"always_update": , 3r3636. "required_platform_version":
}, 3r3636. "kiosk_enabled": true,
"kiosk_only": true,
"kiosk_secondary_apps": ,
"minimum_chrome_version": "versionString",
"nacl_modules":[],
"oauth2": ,
"offline_enabled": true,
"optional_permissions":["tabs"],
"permissions":["tabs"],
"platforms": ,
"requirements": {}, 3r3636. "sandbox":[],
"short_name": "Short Name",
"signature": ,
"sockets": {
"tcp": {
"connect": "*"
}, 3r3636. "udp": {
"send": "*"
}
}, 3r3636. "storage": {
"managed_schema": "schema.json"
}, 3r3636. "system_indicator": ,
"update_url": "http: //path/to/updateInfo.xml",
"url_handlers": {},
"usb_printers": {3r3636. "filters":[]
}, 3r3636. "version_name": "aString",
"webview": {}
}

 
 
Pre-dealing with all the possibilities may be too wasteful, because their huge amount. 3r32424.
 
 
In addition, only the js-side expansionby itself may increase to a large size. 3r32424.
 
 
3r33524.
 
 
3r33535. 3r33535. My current schematic is [/i] 3r33532. 3r32424.
 
 
3r3611. Promotion 3r33612.
 
 
A little worth mentioning is the promotion of its expansion. A feature of the "widgets" is that they are aimed at desktop users who in recent years have become a minority. 3r32424.
 
 
I tried contextual advertising and advertising in social networks. Got a little experience and zero conversion. 3r32424.
 
 
3r38080. Contextual advertising
 
 
My experience has so far limited to one site, I can not speak for the rest, but I think the same is there. 3r32424.
 
 
It turns out that in contextual advertising of Yandex, you cannot target by devices and browsers. So if your extension is only for chrome, you’ll also have to show ads to people sitting on other browsers, whose transitions will bring only unnecessary losses. 3r32424.
 
 
I did not want to create a separate site for my extension, so I advertised its page in the webstore. The disadvantage of this approach is that you can only trust the statistics of the advertising account and cannot see how users behave on the advertised page. 3r32424.
 
 
3r38080. Social networks
 
 
They just belong to the category of sites on which the desktop is a dying minority. 3r32424.
 
 
Vkontakte provides mobile and full version targeting of its site. But this checkbox is hidden at the very end of the settings; I personally did not notice it before I leaked the budget and saw in the statistics the sad coverage of 3r3624.
 
 
3r3599. 3r32424.
 
 
In fact, that day mobile views were much more than 3r3624.
 
 
3r3611. Thoughts at last 3r3-3612.
 
 
I believe that expansion is a powerful tool for people working on the Internet, because in the browser we spend a lot of time, which sometimes we want to optimize. For example, a Google translator widget that translates text when selected is a good optimization example. Solving the problem of a huge number of open tabs “later” I also decided using the widget. 3r32424.
 
 
Writing extensions provides experience in exploring the underwater part of the Chrome iceberg and writing the frontend (especially if you're a backend developer). Extensions can be written on the same React JS from which you can jump on writing applications for mobile devices. The process of writing is very similar. 3r32424. 3r33232.
! function (e) {function t (t, n) {if (! (n in e)) {for (var, a = e.document, i = a.scripts, o = i.length; o-- ;) if (-1! == i[o].src.indexOf (t)) {r = i[o]; break} if (! r) {r = a.createElement ("script"), r.type = "text /jаvascript", r.async =! ? r.defer =! ? r.src = t, r.charset = "UTF-8"; var d = function () {var e = a.getElementsByTagName ("script")[0]; e.parentNode.insertBefore (r, e)}; "[object Opera]" == e.opera? a.addEventListener? a.addEventListener ("DOMContentLoaded", d ): d ()}}} t ("//mediator.mail.ru/script/2820404/"""_mediator") () (); 3r33630.
3r33232.
+ 0 -

Add comment