Microsoft-Rewards-Script icon indicating copy to clipboard operation
Microsoft-Rewards-Script copied to clipboard

Mobile Searches are not working

Open DestroyerV opened this issue 1 year ago • 5 comments

After the update to 1.4.11 the mobile search are not working. If the desktop searches complete the script reopen the chromium in desktop mode not in mobile browser mode because of this the mobile search point is not getting collected.

DestroyerV avatar Oct 03 '24 14:10 DestroyerV

Adding on to this: the "mobile" browser is opening in desktop mode and the user agent string is the same as the desktop one.

After some investigation, I found that passing the browserListQuery option to generateFingerprint() seems to be causing the devices and operatingSystems options to be ignored. I tried two workarounds:

  1. Passing only browserListQuery with the string "last 1 ChromeAndroid versions"
    • Didn't seem to do anything at all: resulted in a desktop-sized browser with an outdated Chrome on Windows user agent
    • I used ChromeAndroid because Browserslist doesn't have a specific flag for mobile Edge
  2. Using the old way to specify browsers (passing browsers: ['edge'] instead of browserListQuery)
    • This does create a mobile-sized browser with an (old) Edge on mobile Android user agent, but...
    • Doesn't fix it either unfortunately, searches still don't give any points

I haven't tried rolling back to an earlier version of the script, but that should be the same thing as the second workaround I mentioned anyways. I'll report back if I figure out a solution.

kianfotovat avatar Oct 03 '24 17:10 kianfotovat

Indeed seems to be an issue, browserlist doesn't seem to have support for the mobile version of Edge.

Thinking of just dropping chromium and using actual MS Edge instead,

TheNetsky avatar Oct 03 '24 19:10 TheNetsky

Thinking of just dropping chromium and using actual MS Edge instead,

I had to wait until today for my searches to be reset so I could test but I just got around to it:

I uncommented the channel: 'msedge' line (which produced an Edge browser as expected) but I still didn't get any points for mobile searches. This test was done with browsers: ['edge'] instead of browserListQuery because I still haven't figured out why fingerprint-generator ignores the other parameters when its used.

The mobile check-in and read-to-earn still work. Not really sure why, I'm guessing maybe those pages aren't as strict when it comes to checking fingerprints (since they technically should only be accessible through the Bing app anyways), but that's a total shot in the dark.

Either way, I'm fairly confident in saying this breakage didn't have anything to do with the 1.4.11 update. I've tried rolling back the whole script to 1.4.10 as well as just rolling back the dependencies that were updated but I still saw the exact same behavior.

kianfotovat avatar Oct 04 '24 13:10 kianfotovat

check-in and read-to-earn use the API, fingerprints are only for the actual browser, Having the fingerprint AND msedge is counteractive since the fingerprint will override the user-agent of the actual browser.

TheNetsky avatar Oct 04 '24 13:10 TheNetsky

I figured as much but didn't think it'd matter. But I realize now that Playwright will use the system-installed Edge which is most likely better than using a generated fingerprint anyways.

kianfotovat avatar Oct 04 '24 18:10 kianfotovat

so mobile search won't work for now right?

devallareddyb avatar Oct 05 '24 08:10 devallareddyb

Correct, downgrade to .10 for now, when I have time I'll see if I can switch it up to make it work again.

TheNetsky avatar Oct 05 '24 08:10 TheNetsky

Correct, downgrade to .10 for now, when I have time I'll see if I can switch it up to make it work again. Thank you

Just now I updated mobile finger-print manually and started testing, I will update shortly in 1 hour.

devallareddyb avatar Oct 05 '24 08:10 devallareddyb

It is working now after updating fingerprint and getting points for mobile search.

[10/5/2024, 9:37:42 AM] [PID: 29388] [LOG] [SEARCH-BING] Completed searches [10/5/2024, 9:37:43 AM] [PID: 29388] [LOG] [BROWSER] Created browser with User-Agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1" [10/5/2024, 9:37:43 AM] [PID: 29388] [LOG] [MAIN] Starting MOBILE browser [10/5/2024, 9:37:55 AM] [PID: 29388] [LOG] [LOGIN] Email entered successfully [10/5/2024, 9:37:58 AM] [PID: 29388] [LOG] [LOGIN] Password entered successfully [10/5/2024, 9:38:05 AM] [PID: 29388] [LOG] [LOGIN] Successfully logged into the rewards portal [10/5/2024, 9:38:05 AM] [PID: 29388] [LOG] [LOGIN-BING] Verifying Bing login [10/5/2024, 9:38:05 AM] [PID: 29388] [LOG] [LOGIN] Logged into Microsoft successfully [10/5/2024, 9:38:11 AM] [PID: 29388] [LOG] [LOGIN] Logged in successfully [10/5/2024, 9:38:11 AM] [PID: 29388] [LOG] [LOGIN-BING] Bing login verification passed! [10/5/2024, 9:38:20 AM] [PID: 29388] [LOG] [GO-HOME] Visited homepage successfully [10/5/2024, 9:38:22 AM] [PID: 29388] [LOG] [DAILY-CHECK-IN] Starting Daily Check In [10/5/2024, 9:38:22 AM] [PID: 29388] [LOG] [READ-TO-EARN] Starting Read to Earn [10/5/2024, 9:38:22 AM] [PID: 29388] [LOG] [DAILY-CHECK-IN] Already claimed today [10/5/2024, 9:38:22 AM] [PID: 29388] [LOG] [READ-TO-EARN] Completed Read to Earn [10/5/2024, 9:38:22 AM] [PID: 29388] [LOG] [READ-TO-EARN] Read all available articles [10/5/2024, 9:38:30 AM] [PID: 29388] [LOG] [GO-HOME] Visited homepage successfully [10/5/2024, 9:38:30 AM] [PID: 29388] [LOG] [SEARCH-BING] Starting Bing searches [10/5/2024, 9:38:32 AM] [PID: 29388] [LOG] [SEARCH-GOOGLE-TRENDS] Generating search queries, can take a while! | GeoLocale: GB [10/5/2024, 9:38:34 AM] [PID: 29388] [LOG] [SEARCH-BING] 60 Points Remaining | Query: daniel day-lewis | Mobile: true

This is the fingerprint i used { "fingerprint": { "screen": { "availHeight": 844, "availWidth": 390, "pixelDepth": 24, "height": 844, "width": 390, "availTop": 0, "availLeft": 0, "colorDepth": 24, "innerHeight": 844, "outerHeight": 844, "outerWidth": 390, "innerWidth": 390, "screenX": 0, "pageXOffset": 0, "pageYOffset": 0, "devicePixelRatio": 3, "clientWidth": 390, "clientHeight": 844, "hasHDR": true }, "navigator": { "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "userAgentData": { "brands": [ {"brand": "Safari", "version": "17"}, {"brand": "Apple", "version": "15"} ], "mobile": true, "platform": "iOS", "architecture": "ARM", "bitness": "64", "fullVersionList": [ {"brand": "Safari", "version": "17.0"}, {"brand": "Apple", "version": "15.0"} ], "model": "iPhone 15", "platformVersion": "17.0", "uaFullVersion": "17.0.0" }, "language": "en-US", "languages": ["en-US"], "platform": "iPhone", "deviceMemory": 4, "hardwareConcurrency": 6, "maxTouchPoints": 10, "product": "Gecko", "productSub": "20100101", "vendor": "Apple Inc.", "vendorSub": null, "doNotTrack": null, "appCodeName": "Mozilla", "appName": "Netscape", "appVersion": "5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "oscpu": null, "extraProperties": { "vendorFlavors": ["safari"], "isBluetoothSupported": true, "globalPrivacyControl": null, "pdfViewerEnabled": true, "installedApps": [] }, "webdriver": false }, "audioCodecs": { "ogg": "", "mp3": "probably", "wav": "probably", "m4a": "maybe", "aac": "probably" }, "videoCodecs": { "ogg": "", "h264": "probably", "webm": "" }, "pluginsData": { "plugins": [ { "name": "QuickTime Plugin", "description": "Handles video, sound, and interactive content", "filename": "QuickTime Plugin.plugin", "mimeTypes": [ {"type": "video/quicktime", "suffixes": "mov", "description": "QuickTime Movie"} ] } ], "mimeTypes": [ "QuickTime Movie~~video/quicktime~~mov" ] }, "battery": { "charging": true, "chargingTime": null, "dischargingTime": null, "level": 0.85 }, "videoCard": { "vendor": "Apple", "renderer": "Apple A17 Pro GPU" }, "multimediaDevices": { "speakers": [{"deviceId": "", "kind": "audiooutput", "label": "", "groupId": ""}], "micros": [{"deviceId": "", "kind": "audioinput", "label": "", "groupId": ""}], "webcams": [{"deviceId": "", "kind": "videoinput", "label": "", "groupId": ""}] }, "fonts": ["San Francisco", "SF Pro Text", "SF Pro Display"], "mockWebRTC": false, "slim": true }, "headers": { "sec-ch-ua-mobile": "?1", "sec-ch-ua-platform": ""iOS"", "user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "accept-encoding": "gzip, deflate, br, zstd", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.7", "sec-ch-ua": ""Safari";v="17", "Apple";v="15"", "upgrade-insecure-requests": "1", "accept-language": "en-US", "sec-fetch-site": "same-site", "sec-fetch-mode": "navigate", "sec-fetch-user": "?1", "sec-fetch-dest": "document" } }

image

devallareddyb avatar Oct 05 '24 09:10 devallareddyb

mobile_fingerpint.json

I tried this fingerprint and it works properly

basalisco avatar Oct 06 '24 16:10 basalisco

mobile_fingerpint.json

I tried this fingerprint and it works properly

Thank you. I'm curious, how did you make this?

kianfotovat avatar Oct 06 '24 17:10 kianfotovat

mobile_fingerpint.json I tried this fingerprint and it works properly

Thank you. I'm curious, how did you make this?

I did same, I replaced mobile_fingerprint.json with the fingerprint I provided in my previous reply.

I got that fingerprint from chatGPT.

image

devallareddyb avatar Oct 06 '24 17:10 devallareddyb

The problem is that it's a "static" fingerprint, rather than a new one being generated. So not much use for this project. The one you provided almost looks identical to the ones being generated in 0.10, since that too uses an outdated version of Edge, .124

TheNetsky avatar Oct 06 '24 17:10 TheNetsky

Il problema è che si tratta di un'impronta digitale "statica", piuttosto che di una nuova che viene generata. Quindi non è molto utile per questo progetto. Quello che hai fornito sembra quasi identico a quelli generati nella versione 0.10, poiché anche quello utilizza una versione obsoleta di Edge, .124

yes friend it's a static from the previous version. have find this library

basalisco avatar Oct 08 '24 05:10 basalisco

The project is already using that package.

TheNetsky avatar Oct 08 '24 14:10 TheNetsky

Correct, downgrade to .10 for now, when I have time I'll see if I can switch it up to make it work again.

Just to let you know, downgrading to 1.4.10 did not resolve the issue for me. Not sure if that's due to a problem on my end but my setup hasn't changed (running in a Win10 VM) apart from Playwright requiring me to re-install its Chrome browser (v1138 -> v1440).

Edit: I tried to do a desktop-only run like I have been for a couple days and I'm not getting desktop search points either. Maybe my account is flagged?

kianfotovat avatar Oct 08 '24 15:10 kianfotovat

I already seem to have fixed the issue in regards to points. What I'm currently struggling with is if there's a a new kind of cooldown for searches, and if so what is it, can that data be fetched somewhere. Or are cooldowns to result of the scripts searches. Since it seems It's around 3 searches (9 points) per 15min? But that also seems to vary.

Searches also no longer the requirement to be the Edge browser, from testing this works fine without.

I hope someone can help me figure this one out, with some more information on the situation.

Also fun fact, whilst peaking around I found that MS does fingerprint, however it doesn't seem to be enabled for some reason. You can see it within this script, this is loaded when you do a search on bing.com.

//<![CDATA[ sj_evt && sj_evt.bind( "onRALoad", function() { var reportActivityModule = new ModernRewards.ReportActivity({"AnimateHeader":true,"IsAuthenticated":true,"DashboardUrl":"https://rewards.bing.com/?signin=1","IsMobileClient":false,"RewardsIncrement":1,"RewardsSessionData":{"IsRewardUser":true,"IsLinkedUser":false,"IsTenantEnabled":false,"IsAadUser":false,"IsTrialUser":false,"TrialUserClaimBalance":-1.0,"IsRebatesUser":false,"IsRebatesDeniedUser":false,"Balance":10087,"RewardsBalance":10087,"GiveBalance":0,"RebatesBalance":0.0,"IsGiveModeOn":false,"GiveModeCid":"","GiveModeCName":"","PreviousBalance":10087,"GoalTrackBalance":0,"IsLevel2":true,"IsOptOut":false,"IsSuspended":false,"ShowAnimation":false,"EPuid":"REDACTED","IsRedirectedFromOldDashboard":false,"ImpressionLifeTimeCount":0,"DailyImpressionHPCount":0,"DailyImpressionSerpCount":1,"VisitedCount":35,"LastVisitTime":"2024-10-08T07:00:00Z","LastAutoOpenFlyoutTime":"0001-01-01T00:00:00","LastRewardsDashboardVisitTimeEpoch":1728378636,"LastRewardsFlyoutLoadTimeEpoch":1728378635,"LastRewardsL2AutoGoBigFlyoutLoadTime":0,"AutoOpenFlyoutFlag":false,"IsCLOUser":false,"Waitlist":"2","IsAdultMSA":"0","IsMSA18":"0","IsCcpEligible":"2","HasUsedCcpTrial":"0","SERPTheme":"","DailyCheckInProgress":0,"DailyCheckInAnimate":0,"LastAadRedDotShown":"0001-01-01T00:00:00","LastMedallionRedemptionAnimationImpression":"0001-01-01T00:00:00+00:00","IsRedemptionReadyAndAnimationEnabled":false,"IsUserFirstMedallionImpressionToday":true,"MedallionGiftHoverTooltipText":"Ready to redeem","ShowMedallionFadeAnimation":false},"RewardsHeader":"Rewards","NeedUpdateRewardsHeaderLink":false,"AnimationAltText":"Animation","AutoOpenFlyout":false,"AutoOpenGoBigL2Scenario":"","IsAutoOpenGoBigL2Treatment":false,"BnpReportActivityProperties":{"IsBnpReportActivityEligible":false,"NotificationsInsertionPointId":2000,"PartnerId":"RewardsSerpPostLoad"},"AutoOpenFlyoutSuppressionReason":"","IsGiveHeaderTextEnabled":false,"IsGiveSerpHeaderTealHeartEnabled":false,"IsRewardsEntryPointEnabled":false,"BalanceMessage":null,"ShowNonMemberUpsellMessage":false,"LogWaitlistAutoJoin":false,"IsDailyCheckInMedallionAnimationEnabled":false,"UseRedDotFromBingDomain":true,"SendFingerprint":false,"SendFingerprintV4":false}); reportActivityModule.initialize(); }, 1 );; //]]>

TheNetsky avatar Oct 08 '24 16:10 TheNetsky

Correct, downgrade to .10 for now, when I have time I'll see if I can switch it up to make it work again.

Just to let you know, downgrading to 1.4.10 did not resolve the issue for me. Not sure if that's due to a problem on my end but my setup hasn't changed (running in a Win10 VM) apart from Playwright requiring me to re-install its Chrome browser (v1138 -> v1440).

Edit: I tried to do a desktop-only run like I have been for a couple days and I'm not getting desktop search points either. Maybe my account is flagged?

My mobile searches did appear to fix after downgrading from 1.4.11 to 1.4.10. That being said, I'm using docker, so 'downgrading' was a full deletion of the script and full rebuild (noting that accounts.json, compose.yaml, and config.json persist so no need to reconfigure).

All of that to say, maybe delete your /dist folder and completely rebuild the script from to make sure there isn't any lingering weirdness with sessions, script pieces, etc (if you haven't already done so)?

mgrimace avatar Oct 08 '24 20:10 mgrimace

Or are cooldowns to result of the scripts searches. Since it seems It's around 3 searches (9 points) per 15min? But that also seems to vary.

The best that I can find is that cooldowns appear to be inconsistently and seemingly randomly applied to accounts. Seems to be a few r/microsoftrewards posts about it lately so it might be triggering more often/randomly for people lately.

All I know: it's a '15 minute' cooldown after 3 maybe 4 searches before points can be earned again. Application of the cooldown appears random, with some part being country-related. It can last for days/weeks/months, it can randomly disappear. I have no idea how to know or tell if the cooldown is applied to an account, and it isn't clear what (if any) behaviour triggers it.

My solution has been to use larger timeouts that result in roughly 3-4 searches every 15 mins just-in-case (and more randomness in time between). I accidentally tried the default timeouts when I downgraded and it seemed to work just fine, which I take to mean that I don't have the cooldown applied to my account at the moment, but I keep the larger timeouts on just in case. The drawback of course is that the script takes much longer to complete (which I do headless, so less of an impact for me personally)

Thats about all I know and all I can dig up on my end!

mgrimace avatar Oct 08 '24 20:10 mgrimace

my 'safe' timeouts are:

    "searchDelay": {
      "min": 180000,
      "max": 270000
    },

I have had cooldown in my region for a while and these values do seem to 'bypass' it without triggering a cooldown.

mgrimace avatar Oct 08 '24 20:10 mgrimace

Yeah I've been fiddling with that, but sometimes it's hard to distinct if it's the timeout at play or a bad user-agent, since I'm still trying to find a stable way to generate valid user-agents with proper fingerprints.

However that sometimes result in PC searches working but not mobile, or the browser being detected as automation software.

So I've been tinkering a lot with it, the current package doesn't seem to be working well, very outdated browsers and randomly not respecting the parameters set.

However generating a fingerprint and just overriding the user-agent will get flagged as fake, since it doesn't match the generated fingerprint.

TheNetsky avatar Oct 08 '24 21:10 TheNetsky

my 'safe' timeouts are:

    "searchDelay": {
      "min": 180000,
      "max": 270000
    },

I have had cooldown in my region for a while and these values do seem to 'bypass' it without triggering a cooldown.

        "searchDelay": {
            "min": 300000,
            "max": 600000

I use these values, and in the last release anyway I had no points. fixed only by importing the old fingerprint. For me, going below those values means not having points

basalisco avatar Oct 09 '24 05:10 basalisco

All of that to say, maybe delete your /dist folder and completely rebuild the script from to make sure there isn't any lingering weirdness with sessions, script pieces, etc (if you haven't already done so)?

Hmm, the only files I re-used were account/config.json and the session folder but maybe a new session would help.

Seems to be a few r/microsoftrewards posts about it lately so it might be triggering more often/randomly for people lately.

I saw the same thing. I dodged the last timeout wave but it seems like I got caught up in this one. Haven't found anything about detecting whether your account is subject to the cooldown or not though (aside from observing the behavior obviously).

kianfotovat avatar Oct 09 '24 08:10 kianfotovat

fixed only by importing the old fingerprint.

is it better practice to keep fingerprint? I've had my saveFingerprint set to false

mgrimace avatar Oct 09 '24 11:10 mgrimace

There's a lot stuff unknown about this. however the issue mostly seems to be with generating valid ones at this point.

TheNetsky avatar Oct 09 '24 13:10 TheNetsky

sorry if it is a dumb quest, but where i place the mobile_fingerprint.json ? cant find one on my folder to replace

rodolfohro avatar Oct 09 '24 17:10 rodolfohro

sorry if it is a dumb quest, but where i place the mobile_fingerprint.json ? cant find one on my folder to replace

Enable "saveFingerprint" in config.json, then put the file in the /browser/sessions/ where the desktop_cookies.json etc are located.

TheNetsky avatar Oct 09 '24 17:10 TheNetsky

sorry if it is a dumb quest, but where i place the mobile_fingerprint.json ? cant find one on my folder to replace

Enable "saveFingerprint" in config.json, then put the file in the /browser/sessions/ where the desktop_cookies.json etc are located.

thx for the quick reply, that didn't quite fix my problem, i believe is a Node.js essue for today i will just do it manually

rodolfohro avatar Oct 09 '24 20:10 rodolfohro

I think I've fixed the issue, going to be running some more tests before releasing the new release. image

TheNetsky avatar Oct 09 '24 21:10 TheNetsky

https://github.com/TheNetsky/Microsoft-Rewards-Script/tree/1.4.12 See if this fixes the issue

TheNetsky avatar Oct 15 '24 09:10 TheNetsky