G price tracker- track prices online - english manual

G price tracker - track prices online - Manual


Download


If you have an older android phone, try this older version: iwantdatone.app//files/gamepricecheckerb-0.715-release.apk (apk)


   

Purpose and use
Getting Started
Examples of links
Possible problems
Advanced options
Extraction rules (+ examples)


Purpose and use

G price tracker is an app that allows you to monitor the price of something that is sold on a webpage.

This app has been created initially to check periodically the prices of the video games sold on the sites "Steam" and "GoG" ("good old games"), but it can check any update of a (small) string of characters on a website.

IMPORTANT to know:
- The prices are extracted from a webpage that has to be reachable for your smartphone.
- You have to check the price of anything you want to buy manually before you buy it and not rely blindly on this app.
- The app doesn't negotiate any price for you.
- You have to respect the laws and the terms of use of the websites you add in this app.
- The links that you add in this app won't be modified into sponsored (affiliate) links.
- We are not affiliated with Steam or Gog: the app reproduces the behavior of a web browser.

Also you CAN'T buy anything directly through this app (in the app) !


Getting Started

When you start the app for the first time, you see the "basic parameters" menu, a simplified version of the parameters menu:

g
      price check basic parameters screenshot

Click on "Lang" to change the language. The default language is English.

The year of birth, month of birth and day of birth are used to check the games on steam with the embedded rule that comes with the app. Enter something.
The "number of tasks" is the number of parallel downloads that the app will use to check the webpages.

Click "Save" to continue.

You should now see the main window of the app:

g price
          checker main window

Here is a description of the icons of the app on the upper part of the screen, from the left to the right:

- The book with the gear icon help icon: redirect to the online manual (here).
- The gear icon parameter
      icons: the parameter menu.
- The pencil icon pen icon: add a webpage to the list.
- The update icon check
      icon: to check the content of the webpage.


We are now going to add a website:

Click on the pencil icon pen
      icon, at the top of the screen.

Add a new webpage:


g price
      checker default menu add a site

This is the default "add a new link" menu that you will get if your list of sites is empty.


It features an example of a webpage that sells a game on the website "Steam".
I selected this game because i like it and because it is not an expensive game. I am not paid to list this game.

The "Site type" is used to determine how the webpage is requested and how the data are extracted. By default the site type is "Steam".
You can define new site types (in another menu).

Here, you could edit all the lines (try to highlight several characters with one gesture of your finger and it will erase the content of the line).
If you want to add a new webpage, I suggest you copy the link to the webpage (URL) from your favorite browser and paste it.

In order to just test how the app works, click on "Test URL".


Wait that the price is loaded:

(The app needs access to the internet).

g price
      checker add a site 2

3 New information are added:

- The price (that can only be a number, but not necessarily an integer)
- The currency (Expert: if possible a string of characters made from ASCII characters from 32 to 127, i am not responsible for this limit, any other special character may make the app bug in some way or another)
- A timestamp (here in Unix format).

Expert: The "Cpy Src" copies the source of the resulting webpage to the clipboard (which means that it updates the content of the clipboard ! and replaces it !).
The "Cpy Src" button is used for debugging purposes, the content of the clipboard has to be copied
in a text editor with enough memory to contain the source code (the memo editor of a Samsung S6 Android phone has usually only a buffer of 32ko, for example, and it is usually not enough).


Click on the "Save" button (that should be now be enabled again) to add your new link to the list of webpages.


g price
        check first example

(yes, the price is here different, it's not a bug)

You are here on the main menu.
You could now click on the icon
check icon at the upper right of the screen to update the price, but prices don't change that often.

If the price has changed, it will appear with a * and if it is below your maximal price, the price will appear in black.

If you click on the pen icon pen icon again, the screen will feature the previous values that were there before.
The information of the webpage are mostly not deleted or updated in this menu.
Just delete the line by sliding your finger on it (like if you wanted to highlight several characters)

On the main menu, you should now see two new "..." buttons next to each link.
The one at the right allows you to view the data of the webpage.
The one at the left allows you to edit the information of the webpage.

Edit a webpage:


Click on the "..." button at the Left: All the information of the webpage are loaded except the price data.


g price
        checker edit a link


Useful to know:

For the app, the webpage identity is given by the "name for the link" and the "site type".
To save your changes, you will have to click on the "Test URL" button to enable the "Save" button, then click on "Save".

If you use the same name and site type, with another webpage (URL), it will update your first link and not add a new one.
If you find a way to use the same site type and the same site name and have it listed as another entry, it could make the app bug, so don't do it.
Once a price is loaded, the price value in this menu is only going to be reset if the "save" button is pressed.
The "save" button will be disabled again if you press it and only at this moment.


View the data of the webpage


If you click on the "..." button at the Right in the main menu, you get this menu:

g price
        checker site data

This menu gives these information, from the top to the bottom and from the left to the right:

Site name, Site type
Site URL (not modifiable here)
the lowest price ever
the last 5 latest prices and the first time they have been seen.

Below come 4 buttons:

Copy: copies the URL to the clipboard.
Delete: delete the site from the list (no confirmation asked !).
Browser: load the link to the default browser.
Close: close this menu.

Here are some examples of links with the default rules:

(Please pay attention to the format of these links, many more links will work)

- Steam

example:

https://store.steampowered.com/app/323580/Jotun_Valhalla_Edition/

(latest test December 6, 2019)

- Steam bundle

examples:

https://store.steampowered.com/bundle/8133/Borderlands_The_Handsome_Collection/

(latest test December 6, 2019, uses an age check)

https://store.steampowered.com/bundle/7167/Titan_Quest_Bundle/

(latest test December 6, 2019)

Links like https://store.steampowered.com/sub/... may also work

- Steam (but with a fixed currency)

add ?cc=(country code), at the end of the link

examples:

https://store.steampowered.com/app/323580/Jotun_Valhalla_Edition/?cc=uk
(pounds)
https://store.steampowered.com/app/323580/Jotun_Valhalla_Edition/?cc=us
(American dollar)
https://store.steampowered.com/app/323580/Jotun_Valhalla_Edition/?cc=ca
(Canadian dollar)
https://store.steampowered.com/app/323580/Jotun_Valhalla_Edition/?cc=th
(baht)
https://store.steampowered.com/app/323580/Jotun_Valhalla_Edition/?cc=mx
(Mexican dollar)
https://store.steampowered.com/app/323580/Jotun_Valhalla_Edition/?cc=ru
(ruble)
https://store.steampowered.com/app/323580/Jotun_Valhalla_Edition/?cc=cn
(yuan)
https://store.steampowered.com/app/323580/Jotun_Valhalla_Edition/?cc=jp
(yen)
https://store.steampowered.com/app/323580/Jotun_Valhalla_Edition/?cc=za
(rand)
https://store.steampowered.com/app/323580/Jotun_Valhalla_Edition/?cc=il
(shekel)
https://store.steampowered.com/app/323580/Jotun_Valhalla_Edition/?cc=ch
(franc suisse)

Use this kind of link if you use a VPN or if you travel often to another country.


- GoG


examples:
 
https://www.gog.com/game/pillars_of_eternity_definitive_edition

https://www.gog.com/game/planescape_torment_enhanced_edition



Possible problems and troubleshooting (please read):


- For the website Steam, the tags/layout used by the site are not fully standardized, especially for bundles.
One day it may work, the other day, there is a sale and you will get the price of an item in the bundle instead of the price of the full bundle.

This means that you need to check that the price that you get in the app is really the good one.

It may bug periodically for some games, but first i can't do anything against that and second, i don't think it is a big issue.

Solution: create your own rule for this specific page (see below for some examples)

- For GoG, i didn't experience any problem when i used a VPN located in a country that uses euro.
If i use a Swiss connection, the currency is wrong about 25% of the time.
I notice the same thing in my browser, so it's not related to the software.
I don't know how to create a link that specifies the currency.
For Gog, you need to set a cookie, which requires a specific rule (i explain below how to do).

- Gog links may have different prices options, the software may only return one of them, but it is maybe not the one that you want.

Solution: create your own rule for this specific page or ...

... go to another Gog page with the same game but with another price option (it is what i usually do):

Example:

https://www.gog.com/game/pillars_of_eternity_definitive_edition
https://www.gog.com/game/pillars_of_eternity_hero_edition


Advanced options:


All the options that i describe below are for advanced users (with their smartphone)  and they are not "foolproof". When you enter any data, make sure you understand what it does, because the app will likely not double-check it for you.

The "full parameters" Menu


From the main screen click on the gear icon parameter iconsto access to the menu with all the parameters:

g price
      checker full parameters


Here, you can probably recognize the settings that you entered when you open the app for the first time, in the "basic parameters" menu.

The "full parameters" menu now adds two new timer-related options that may or may not be used, in function of the smartphone on which the app is installed.

These options should theoretically tell the app to check the webpages automatically and periodically.
If you enter any positive integer ("1","2","3","4",..."10"..., but not "3,5", "3.5", or "-1" ) next to "Timer Periodicity" and press "Save", the app will open a "service" with a timer that should check your webpages every [your value] hour(s).
In this case, a "service" should (!) be launched automatically by the app if you close the app from the list of apps.
Also a "service" should be started automatically if you reboot your mobile phone.
The "service" will stop if you click "Save" while the timer is set to 0.

If the option "Timer uses only wifi" is checked, the app will test if you are using a Wi-Fi connection and if yes, it updates the price when it's time to update the prices.
In this case, you should also disable your mobile phone internet to make sure that it's not this connection that is going to be used to update the data.

If you uncheck this option, make sure that the app works how you want it to work with the device that you are using.
The use of a mobile phone internet connection could generate additional costs.
Please monitor your data usage and contact your mobile phone operator to know how much it will cost you.



The timer will likely not work if...

- Your smartphone is in deep sleep (or doze mode): in this case the update should be done shortly after you use your device again (or if something wakes it).
- You have a task killer (most of the smartphones have one). In this case, it can be fixed on some smartphones by adding an exception to the list of apps that are monitored by the battery saver of your system (but it could not be enough.)

- It may not work at all if you are using a smartphone that uses a very aggressive policy to kill the apps in the background.

Check this website if you want to know more:

"dontkillmyapp dot com"

An example with a Huawei p9+:
I have to go to "Battery" >> "Launch" >> (find the app) >> "Manage manually" (auto-launch, secondary launch, run in background, then "OK")
then go from the parameter menu to "Apps & notification" >> "Apps" >> Settings (bottom of the screen) >> Special access >> Ignore battery optimization >> Select "all apps" and allow my app.

And even like that:
- No service will be restarted automatically if you close the app from the list of app.
- No service will be launched during the boot sequence of the smartphone.

It means that the timer may work if you let the app open in the list of app.

When i tried to do a similar thing on a "Huawei P30 pro" (same brand), it worked exactly how it should...

Notice also that doing an update of your phone may change the behavior of the smartphone with the app...

If it's too much of a hassle, just keep/set the timer to 0 and update the prices on demand with this button: check icon on the main screen and probably keep the app on the foreground while the update is done...


Everything below: You need decent knowledge of the HTTP protocol.

Extraction rules:

What does the app do?

- It opens a webpage and requests it with some headers (cookies, user-agent, post data, accept, accept-language..).
The resulting answer that you will receive from this request may vary if you change these data.
Also the result may vary for the same webpage, from one server to another ! (because of the server configuration)

Important:

The result that the app sees is an HTML code and not a webpage text (what you get if you check the source code of a webpage !)

*** Example***

"what you

see"

*** End of the example***

The actual source code of the example:

<p>"what <u>you</u><br></p><p>see"<br></p><p>


- Once the page is loaded and as long as the result is not in a kind of cypher/encrypted format that you may not notice in a browser (JavaScript code, compression...), the app tries to find the Nth string given as a reference (... string -) and then starting from this position, tries to find a second string (... string +). The app returns the text that is between the 2 positions that are being found (after some character filtration so the line can be displayed in the app).

Example with this pseudo-code:

jksskjqskdqsmkkqqq54sssksfjkfslkfssss87qqq10sss

If the string 1 (-) is qqq Nth=1 and string 2 (+) is sss, the app will return 54.
If the string 1 (-) is qqq Nth=2 and string 2 (+) is sss, the app will return 10.

(Click on "rules" in the Full parameters menu to access to the rule menu)

g price checker
      rule 1


g price checker
      rule 2

If the software is asked to find the second string first ("string +"), which may be easier to define [It is a box to check in the app], it looks first for the Nth second string, then goes back until it finds the first string.
In this case if the string 1 is qqq and string 2 is sss Nth=1, the app should return 54 too, but there is no reason for the results to be equivalent.
If you enter a "fixed string", you will always get this fixed string.

The app does all of this for the price and expects a result that can be converted into a number (to check if the price is lower than your maximum price).

Then the app does the same thing for the currency string, that doesn't have to be a number. Some characters are filtered at this point (bug prevention, display purpose).
The rules menu allows you to configure these options to some extent.

Note that you are not forced to look for a price, you could just set the price as a fixed string (0) and do the extraction of a "currency" that could just be anything else, for example to check is a product is in stock.

Usually to properly set up a new extraction rule, you need to use an HTTP diagnostic tool, to copy an HTTP request.
This is "pretty easy" to do on a computer with the browser Firefox, in the web developer menu with the network submenu.
Chrome (for developer) could likely do the trick too.

Just open the webpage in your browser and check the headers and the cookie, then look for the source code of the webpage.
It is a little bit harder to do this with an app on a mobile phone, since a mobile phone is not very convenient to be used as a web diagnostic tool.
Make sure to use a user-agent that is going to return you a result similar to the one you get with the diagnostic tool.
(By default the User-Agent of the app is Firefox/70 for Ubuntu, so not the one for Android).

Here are some examples:

1) Extract a price on amazon.com

(i am not getting paid to list the links below:)

Let's say, you are interested to buy this plush unicorn
https://www.amazon.com/NICI-Shooting-Star-32cm-43725/dp/B07PY8CP2H

but let's say you want to buy it on sales.

a) I check the source code of the web page

To get the source code of the page in your mobile phone, you could use this syntax in the address bar of Firefox:

view-source:https://www.amazon.com/NICI-Shooting-Star-32cm-43725/dp/B07PY8CP2H
(It is better to request it as a desktop site)

When i checked, the price appeared 7 times in the source code.
I find a line where the data will be easy to extract (on a single line, no special characters).
Example:

data-asin-price="38.38" data-asin-shipping="3.99" data-asin-currency-code="USD" data-substitute-count="-1"

I create a rule like that:

Rule name: theoama
Price html string -: data-asin-price="
Price html string +: " data
Find price string + first: (keep unchecked)
Nth (integer): 1
Fixed string (number): (keep empty)
Currency html string -: data-asin-currency-code="
Currency html string +: " data
Find Curr. string + first: (keep unchecked)
Nth (integer): 1
Fixed string (String): (keep empty)

Keep everything else unchanged.
(Click on any part of the screen that can't be edited to make the keyboard disappear).
Click "Save" at the bottom of the screen.

Go to the main screen, add a new link.
Name of the link (for example): theodor
Maximum price (for example): 35
URL: https://www.amazon.com/NICI-Shooting-Star-32cm-43725/dp/B07PY8CP2H

(Be warned: for this object the price won't here include the shipping cost that can also vary)

Click "test URL", then save: Done !

You may use the same rule for other products on amazon, but i don't guarantee that you won't have to create a new rule.

You can check if it works with this other plush:

https://www.amazon.com/dp/B0791VDR2P/ref=psdc_11350120011_t2_B07PY8CP2H

IMPORTANT: For Price html string -, Price html string +, Currency html string -,Currency html string +: please use at least 2 characters !


2) Extract a price on eBay

(i am not getting paid to list the link below and for this specific one, i don't guarantee the quality of the product:)

So i am looking for a levitation tray on eBay, for some reason i want to monitor the price of this specific one.

https://www.ebay.com/itm/Magnetic-Levitation-Floating-Ion-Revolution-Display-Platform-Tray-with-Ez-Float/283620101248

Website for the USA, the language is set to English. The connection has to come from an IP in a country that uses euro as currency (if not, you need to adapt the currency and the rule).

The price is $59.99 and the price in euro is 54.09€.
On eBay, you usually have one price in a currency used as a reference and the others that are converted from the reference currency.
Here i guess that the reference price is in American dollar and that the price in euro is converted.
One rule can only return one price.
Let's say that i want the price in euro.

I check the source code of the page on eBay and i find 2 occurrences of the price. Both have the string "EUR" in front of the price. It means that i will have to use this string to find my price and that it will be useless to look for the currency, so i will set the currency as fixed.

I'll use the string ""convertedBinPrice":"EUR " as a reference.

example with the source code that i find:
Rule name: Ebayeuro
Price html string -: "
"convertedBinPrice":"EUR " (remove the 2 black " but keep the final space)
Price html string +: ","
Find price string + first: (keep unchecked)
Nth (integer): 1
Fixed string (number): (keep empty)
Currency html string -: (keep empty)
Currency html string +: (keep empty)
Find Curr. string + first: (keep unchecked)
Nth (integer): (keep empty)
Fixed string (String): EUR

(Click on any part of the screen that can't be edited to make the keyboard disappear)
Click "Save" at the bottom of the screen.
Then add the URL as above, for the first example. This rule will likely not going to work for every pages on eBay. Also for eBay it's likely more interesting to monitor auctions (but there are other ways to do that) but since auctions finish very fast, i can't use them here as an example.

Latest test of the rule on the webpage above: December 26, 2019

3) Set the currency for a game on Gog.

I wrote above that in some countries, Gog can return a price in a random currency. Here is how to fix this problem.

Example:
https://www.gog.com/game/dragon_age_origins

Load the webpage in Firefox with the developer tools, open the "webdeveloper" panel, reload the webpage and check the cookies of the page.

The part that is interesting is "gog_lc":
example of value: PT_USD_fr-FR

PT sets the country (Portugal in this case)
USD is the currency
fr-FR the language, here it is French from France (this part does not seem very useful).

The idea is to set the currency in the cookie.

In order to do this, an idea could be to go to a page on Gog that features a link to change the currency (usually at the bottom of the page), to change the currency, then check the value of "gog_lc" in the cookie.
I noticed myself that all pages on Gog didn't always allow me to change the currency to the one of the country in which I was.


So let's say, i am in Switzerland, i am using German from Germany as language and i am using Swiss francs as the currency. I would set the cookie with:
gog_lc=CH_CHF_de-DE;

Here is the rule that i would use to have the prices in Swiss Francs:


Rule name: gog ch
Price html string -:
finalAmount":"
Price html string +: ","
Find price string + first: (keep unchecked)
Nth (integer): 1
Fixed string (number): (keep empty)
Currency html string -: currency: "
Currency html string +: ",
Find Curr. string + first: (keep unchecked)
Nth (integer): 1
Fixed string (String):
(keep empty)
Cookie data:
gog_lc=CH_CHF_de-DE;


(Click on any part of the screen that can't be edited to make the keyboard disappear)
Click "Save" at the bottom of the screen.

More customs rules will likely be published on the website.