How to Troubleshoot Your Facebook Pixel – Pixel Helper Explained

Pixel Helper Chrome Extension can show a number of messages, some of them being real errors, some of them simple warnings or false errors. We try to cover them all in this article.

Keep in mind that Facebook is in constant change, and some of the errors messages on this page might be replaced by others or simply out of use. We do our best to keep the list here up to date and useful.

What is Facebook Pixel Helper Chrome Extension?

Pixel Helper is an official Facebook pixel testing tools. It’s connected to Facebook itself, so the results it gives are usually pretty accurate.

Facebook Pixel Helper functions in the background in order to automatically review the websites you are browsing. It reviews the websites for code similar to a Facebook pixel. Whenever a website features an installed pixel, the extension icon will take the blue color, making a small badge appear. This badge will indicate how many events were found on that page. If you click the extension button after it has turned blue, useful information on the Facebook pixels will appear.

In case the pixel is placed where it’s supposed to be and is also being loaded the correctly, the site indicator will take the color green. In case something is not right, the indicator will take the color red. When the indicator is red, you also receive a short explanation about what needs to be fixed, and how to fix it.

IMPORTANT: The pixel itself won’t send any data if you use an ad-blocking software. Sometimes the extension will show the pixel with a message saying that no data was sent, sometimes it won’t show anything. It’s important to turn your ad-blocker OFF when you test the pixel.

How to Install Facebook Pixel Helper

If you want to use the Facebook Pixel Helper, you’ll have to first make sure that the web browser Chrome is installed on your computer. After that, check with the Chrome Store and get the Pixel Helper. Follow the instructions the Chrome Store has and install the extension in your browser. As soon as the Facebook Pixel Helper is installed, an icon </> will appear next to your address bar.

Click Here to Install Pixel Helper Chrome Extension

How to Verify Pixel Implementation

Navigate through the website with your Chrome browser. Click the Pixel Helper icon. A small window with pixel related info will appear. It will tell you what pixels was found on the page, and if these pixels have successfully loaded. In case your pixels have loaded successfully, you can start to run ads with them.

You will also see each pixel event that was fired. Click on the event to see its parameters, what type of Advanced Matching info was sent, URL called, load time and pixel location:

Troubleshooting Pixel Errors

Facebook Pixel Helper reports common errors that indicate something needs to be fixed in order for the product to be used properly.

pixel-helper-test

  • Pixel Did Not Load: Sometimes can be ignored

When this error appears it means that the Facebook Pixel Helper has managed to find what looks like Facebook pixel code on the website, but the actual HTTP call hasn’t been made. This usually happens because of an error in the code, but it can also occur when the pixel fires on a dynamic event, for example, a click button. In this case, the error will disappear if you click the button.

  • Resembles a Standard Event: Sometimes can be ignored

This error means that the Facebook Pixel Helper discovered a custom event that seems similar to a Facebook Standard Event. Let’s take an example: instead of AddToCart, it is AddtCart. It is recommendable that standard events are used whenever possible. If you actually intend to use that custom event with that particular name, you can ignore this warning.

  • Encoded Characters: Sometimes Take Action

When this appears, it means that the Facebook Pixel Helper came across something that seems to be double-encoded characters. This could happen because of a tag or a CSM system that encodes information that has already been encoded. For example, encoding &amp; into &amp;amp;. Please confirm and make sure that characters are not being encoded two times, for example, change &amp; to &. Sometimes this is not a real warning, if, for example, you use a & symbol in your title.

  • The Facebook pixel activated 2 times on this web page: Sometimes can be ignored

This is usually an error since an event should load only once on a page. There are some situations when this can be safely ignored. For example, when you have a dynamic event triggered on click that is activated multiple times. 

Facebook can show this message in relation to a single event, and not to the pixel. This means that the pixel code itself wasn’t activated twice, but just one event.

  • Invalid Pixel ID: Take Action

This is an error that means the sent ID for the pixel did not match a known pixel ID in the system. If you’re using the PixelYouSite plugin, double check the ID you enter and make the necessary correction.

Troubleshooting Suggestions

Some of the warnings you can see in the Pixel Helper are not exactly errors on your side, but purely improvement suggestions that the software thinks you can take into consideration.

Dynamic Ads & Product Catalog Related Errors:

Those are all messages that Pixel Helper gives (or used to give at some point) related to Facebook Dynamic Ads (Promote a product catalog option)

  • Facebook Pixel can’t match products
  • The Pixel is not paired with any product catalog
  • No products found for given content
  • Unable to Find Product Catalog
  • Pixel Doesn’t Have a Product Catalog Pair

They mean that the product ID sent by the pixel is not found in a Product Catalog, or that no Product Catalog exists.

If you are not using Facebook Dynamic Ads (Promote a product catalog option) or if the content is not a product, you can ignore this message.

If you do Dynamic Ads you must check the product feed and make sure that it has all the products you want it to have.

If you do Dynamic ads and you have a Product Catalog that is supposed to contain that specific product ID do the following:

  • make sure that the pixel and the Product Catalog ID and the pixel content_ids parameter are using the same logic (product ID or product SKU)
  • check if the product ID exits in your Product Catalog
  • check if the catalog is connected to the same pixel ID you are using on the site. You can control this from the Catalog Settings, Event Source.

Other warnings you might have:

  • Pixel Took too Long to Load: Sometimes can be ignored

This error indicates that it took too much time before the pixel was activated. This may happen because of the location of the pixel on the page. If someone who visited your web page closes it, clicks on a link, or simply just navigates away before the pixel event gets to be activated, the action is not going to be tracked. Because of this, an important percentage of actions and conversions can be lost. That’s why it is recommended for the pixel code to be placed early in the web page. Some prefer to put it, in HTML, just before the closing </head> tag. If you are using PixelYourSite the code is inserted on top of your page, so it will load fast.

  • Pixel is Not the Only Conversion: Sometimes can be ignored

It is not recommended to load multiple conversion events on one page. This will make the optimization inefficient, together with the tracking of those conversion events. You could use one conversion pixel across all ads optimizing or tracking for the event. If a secondary conversion event takes place when a person interacts with the web page (for example, when it does a button click), the warning can be ignored.

  • Content_type is missing, should be either ‘product’ or ‘product_group’: Sometimes can be ignored

This usually means that the content_type parameter is not “product” or “product_group”. If the event is not used for Facebook Dynamic Ads you can ignore it. It looks like Facebook decided to drop this message lately.

  • You Have Opted Out of Tracking: Take action

This is related to your Facebook Privacy settings and means that you have opted out of tracking from Facebook. Because of this, Facebook Pixel Helper extension will not work, leaving potential pixel problems undetected. To fix it, temporarily modify your ads settings: https://www.facebook.com/settings?tab=ads

How to Uninstall Facebook Pixel Helper

In order to uninstall the Facebook Pixel Helper, just type chrome://extensions/ into the address bar of your Chrome browser. After that, click the trash icon close to the Facebook Pixel Helper extension.

source:pixelyoursite

Testing Webhooks Locally for Amazon SNS

Testing Tools

To test the code I wrote for the blog post, I used PHP’s built-in web server (available in PHP 5.4 and later) to serve the code locally. I used another tool called ngrok to expose the locally running PHP server to the public internet. Ngrok does this by creating a tunnel to a specified port on your local machine.

You can use PHP’s built-in web server and ngrok on Windows, Linux, and Mac OS X. If you have PHP 5.4+ installed, then the built-in server is ready to use. To install ngrok, use the simple instructions on the ngrok website. I work primarily in OS X, so you may need to modify the commands I use in the rest of this post if you are using another platform.

Setting Up the PHP Code

First, you’ll need the PHP code that will handle the incoming messages. My post about receiving SNS messages provides a complete code example for doing this.

Let’s create a new folder in your home directly to use for this test. We’ll also install Composer, the AWS SDK for PHP, create a directory for the webroot, and create files for the PHP code and a log.

mkdir ~/sns-message-test && cd ~/sns-message-test
curl -sS https://getcomposer.org/installer | php
php composer.phar require aws/aws-sdk-php:~2.6.0
touch messages.log
mkdir web && touch web/index.php

Now take the PHP code from the other blog post and put it in index.php. Here is that same code, but with the require statement needed to load the SDK with our current file structure. I am also going to update the code to log the incoming messages to a file so we can easily see that the messages are being handled correctly.

<?php

require __DIR__ . '/../vendor/autoload.php';

use AwsSnsMessageValidatorMessage;
use AwsSnsMessageValidatorMessageValidator;
use GuzzleHttpClient;

// Make sure the request is POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    die;
}

try {
    // Create a message from the post data and validate its signature
    $message = Message::fromRawPostData();
    $validator = new MessageValidator();
    $validator->validate($message);
} catch (Exception $e) {
    // Pretend we're not here if the message is invalid
    http_response_code(404);
    die;
}

if ($message->get('Type') === 'SubscriptionConfirmation') {
    // Send a request to the SubscribeURL to complete subscription
    (new Client)->get($message->get('SubscribeURL'))->send();
}

// Log the message
$file = new SplFileObject(__DIR__ . '/../messages.log', 'a');
$file->fwrite($message->get('Type') . ': ' . $message->get('Message') . "n");

Creating an Amazon SNS Topic

Before you can perform any tests, you must set up an Amazon SNS topic. You can do this easily in the AWS Management Console by following the Getting Started with Amazon Simple Notification Service guide. This guide also shows how to subscribe to a topic and publish a message, which you will also need to do in a moment.

Setting Up the Server

OK, we have an Amazon SNS topic ready and all of the files we need in place. Now we need to start up the server and make it accessible to Amazon SNS. To do this, create 3 separate terminal windows or tabs, which we will use for 3 separate long-running processes: the server, ngrok, and tailing the messages log.

Launching the PHP Built-in Server

In the first terminal window, use the following command to start up the PHP built-in web server to serve our little test webhook. (Note: you can use a different port number, just make sure you use the same one with ngrok.)

php -S 127.0.0.1:8000 -t web/

This will create some output that looks something like the following:

PHP 5.4.24 Development Server started at Mon Mar 31 11:02:14 2014
Listening on http://127.0.0.1:8000
Document root is /Users/your-user/sns-message-test/web
Press Ctrl-C to quit.

If you access http://127.0.0.1:8000 from your web browser, you will likely see a blank page, but that request will show up in this terminal window. Since our code is set up to respond only to POST requests, we will see the expected behavior of a 405 HTTP code in the response.

[Mon Mar 31 11:02:44 2014] 127.0.0.1:61409 [405]: /

Creating a Tunnel with ngrok

In the second terminal window, use the following command to create an ngrok tunnel to the PHP server. Use the same port as you did in the previous section.

ngrok 8000

That was easy! The output of this command will contain a publicly accessible URL that forwards to your localhost.

Tunnel Status                 online
Version                       1.6/1.5
Forwarding                    http://58565ed9.ngrok.com -> 127.0.0.1:8000
Forwarding                    https://58565ed9.ngrok.com -> 127.0.0.1:8000
Web Interface                 127.0.0.1:4040
# Conn                        1
Avg Conn Time                 36.06ms

ngrok also provides a small web app running on localhost:4040 that displays all of the incoming requests through the tunnel. It also allows you to click a button to replay a request, which is really helpful for testing and debugging your webhooks.

Tailing the Message Logs

Let’s use the third terminal window to tail the log file that our PHP code writes the incoming messages to.

tail -f messages.log

This won’t show anything yet, but once we start publishing Amazon SNS messages to our topic, they should be printed out in this window.

Testing the Incoming SNS Messages

Now that everything is running and wired up, head back to the Amazon SNS console and subscribe the URL provided by ngrok as an HTTP endpoint for your SNS topic.

If all goes well, you should see output similar to the following on each of the 3 terminal windows.

PHP Server:

[Tue Apr  1 08:51:13 2014] 127.0.0.1:50190 [200]: /

ngrok:

POST /                        200 OK

Log:

SubscriptionConfirmation: You have chosen to subscribe to the topic arn:aws:sns:us-west-2:01234567890:sdk-test. To confirm the subscription, visit the SubscribeURL included in this message.

Back in the SNS console, you should see that the subscription has been confirmed. Next, publish a message to the topic to test that normal messages are processed correctly. The output should be similar:

PHP Server:

[Tue Apr  1 10:08:14 2014] 127.0.0.1:51235 [200]: /

ngrok:

POST /                        200 OK

Log:

Notification: THIS IS MY TEST MESSAGE!

Nice work!

As well as Amazon Web Services and many more.

Display country, region, city using ip address in php

	$ipaddress = $_SERVER['REMOTE_ADDR'];
		//$ipaddress='203.115.97.180';
		//$json       = file_get_contents("http://ip-api.com/json");
	//$json       = file_get_contents("http://ipinfo.io/{$ipaddress}");
	//$json       = file_get_contents("http://ipinfo.io/{$ipaddress}");
		$json       = file_get_contents("http://ip-api.com/json/".$ipaddress);
		$details    = json_decode($json);
		$data['countryCode']=$details->countryCode;
		$data['region']=$details->region;
		$data['city']=$details->city;

how to run opencart admin url using curl command without token

Path admin/controller two files contain variable $ignore in the master branch in both login.php and permission.php

<?php
class ControllerStartupLogin extends Controller {
	public function index() {
		$route = isset($this->request->get['route']) ? $this->request->get['route'] : '';

		$ignore = array(
			'common/login',
			'common/forgotten',
			'common/reset',
			'aditya/product_low_quantity'
		);

		// User
		$this->registry->set('user', new Cart\User($this->registry));

		if (!$this->user->isLogged() && !in_array($route, $ignore)) {
			return new Action('common/login');
		}

		if (isset($this->request->get['route'])) {
			$ignore = array(
				'common/login',
				'common/logout',
				'common/forgotten',
				'common/reset',
				'error/not_found',
				'error/permission',
				'aditya/product_low_quantity'
			);

			if (!in_array($route, $ignore) && (!isset($this->request->get['user_token']) || !isset($this->session->data['user_token']) || ($this->request->get['user_token'] != $this->session->data['user_token']))) {
				return new Action('common/login');
			}
		} else {
			if (!isset($this->request->get['user_token']) || !isset($this->session->data['user_token']) || ($this->request->get['user_token'] != $this->session->data['user_token'])) {
				return new Action('common/login');
			}
		}
	}
}
<?php
class ControllerStartupPermission extends Controller {
	public function index() {
		if (isset($this->request->get['route'])) {
			$route = '';

			$part = explode('/', $this->request->get['route']);

			if (isset($part[0])) {
				$route .= $part[0];
			}

			if (isset($part[1])) {
				$route .= '/' . $part[1];
			}

			// If a 3rd part is found we need to check if its under one of the extension folders.
			$extension = array(
				'extension/advertise',
				'extension/dashboard',
				'extension/analytics',
				'extension/captcha',
				'extension/extension',
				'extension/feed',
				'extension/fraud',
				'extension/module',
				'extension/payment',
				'extension/shipping',
				'extension/theme',
				'extension/total',
				'extension/report',
                'extension/openbay'
			);

			if (isset($part[2]) && in_array($route, $extension)) {
				$route .= '/' . $part[2];
			}

			// We want to ingore some pages from having its permission checked.
			$ignore = array(
				'common/dashboard',
				'common/login',
				'common/logout',
				'common/forgotten',
				'common/reset',
				'error/not_found',
				'error/permission',
				'aditya/product_low_quantity'
			);

			if (!in_array($route, $ignore) && !$this->user->hasPermission('access', $route)) {
				return new Action('error/permission');
			}
		}
	}
}

After that run command

curl “https://yourdomain.in/administer/?route=aditya/myurl”

if curl not installed, please install

$ sudo apt update
$ sudo apt install curl
$ curl

php upgrade to 7.4 apache

Add PPA for PHP 7.4

Add the ondrej/php which has PHP 7.4 package and other required PHP extensions.

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

Once you have added the PPA you can install PHP 7.4.

Install PHP 7.4 for Apache

Execute the following command to install PHP 7.4

sudo apt install php7.4

Install PHP 7.4 Extensions

Installing PHP extensions are simple with the following syntax.

sudo apt install php7.4-extension_name

Now, install some commonly used php-extensions with the following command.

sudo apt install php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl -y

After the installation has completed, you can confirm the installation using the following command

php -v

Enable PHP 7.4 for Apache

Now you need to tell Apache to use the installed version of PHP 7.4 by disabling the old PHP module (below I have mentioned php7.0, you need to use your current php version used by Apache) and enabling the new PHP module using the following command.

sudo a2dismod php7.0
sudo a2enmod php7.4

Restart Apache for the changes to take effect.

sudo service apache2 restart

change default auto login user in ubuntu

sudo leafpad /etc/lxdm/default.conf
sudo leafpad /etc/lightdm/fileexample.conf

In the fist few line, you will see something like autologin=username change it to the original state of # autologin=dgod. Save the file, and then reboot your machine.

autologin-user=username
autologin-user-timeout=0

Using privileged admin account open up terminal or your favorite text file editor and edit the /etc/gdm3/custom.conf configuration file. Change from:

[daemon]
# Uncoment the line below to force the login screen to use Xorg
#WaylandEnable=false

# Enabling automatic login
#  AutomaticLoginEnable = true
#  AutomaticLogin = user1

Soa Technology

Android 12 might allow sharing Wi-Fi passwords with Nearby Share

Android 11 is still rolling out to eligible devices around the world months after Google first rolled out the update to the Pixels last September, but the company is already hard at work putting together the next exciting release – Android 12. We’re now seeing tidbits of Google’s planned features for the next version that will land later this year, including improvements to Wi-Fi setup.

Earlier today, we reported that Android 12 will likely include a feature titled Restricted Networking Mode, as part of changes to iptables, the firewall utility for Android and Linux, to allow only certain apps which have the “use restricted network permission” to use the network.

Another feature has now been discovered by XDA, which is essentially an improvement to the ability to share Wi-Fi networks introduced in Android 10. As of today, users running Android 10 or Android 11 could simply share their Wi-Fi networks via an automatically generated QR code, which the recipients would scan to join instead of typing the password.

However, this is not ideal for most situations, such as when you’re hosting a party at home and don’t really want to print the QR code for everyone to see – or have to keep opening your phone’s Wi-Fi settings and hoping the other person has a QR-code scanner. Google is working on an extension to the AirDrop-like Nearby Share feature that was introduced on Android phones last year, to allow secure sharing of Wi-Fi passwords.

The feature should involve a change to the Wi-Fi sharing option to allow sending the code to any compatible device discoverable by Nearby Share in the vicinity. You can even use this to share Wi-Fi passwords while physically separated by a big group of people, like a gathering at home, without alerting anyone else.

While we still don’t know if this feature will actually make it into Android 12 or appear as a feature update to Nearby Services on Google Play Services, one immediate and obvious benefit of using this method is that your recipient doesn’t need to be on the latest version of Android. Since Nearby Share works on all Android devices running Android Marshmallow (6.0) and above, the feature should be supported out of the box when it is released in September.

sourceby:way2infone

If you forgot the passcode on your iPad, or your iPad is disabled

If you enter the wrong passcode too many times, you’ll see a message that your iPad is disabled. If you can’t remember your passcode, you need to erase your iPad, which deletes your data and settings, including the passcode.

If you backed up your iPad, you can restore your data and settings after restoring your iPad. If you never backed up your iPad before you forgot your passcode, you won’t be able to save the data on your iPad. Follow the steps below to remove your passcode.

Remove the passcode on an iPad that has Face ID

  1. Make sure that your iPad isn’t connected to your computer.
  2. Press and hold the Top button and either volume button until the power off slider appears. Drag the slider to turn off your iPad. Then connect your iPad to your computer while holding the Top button. Keep holding the Top button until you see the recovery mode screen.

If you backed up your iPad, after you remove the passcode,

Remove the passcode on an iPad that has a Home button

  1. Make sure that your iPad isn’t connected to your computer.
  2. Press and hold the Top button until the power off slider appears. Drag the slider to turn off your iPad. Then connect your iPad to your computer while holding the Home button. Keep holding the Home button until you see the recovery mode screen.

If you backed up your iPad, after you remove the passcode

Restore your iPad

  1. Locate your iPad on your computer. When you see the option to Restore or Update, choose Restore. The Finder or iTunes will download software for your iPad. If it takes more than 15 minutes, your iPad will exit recovery mode and you’ll need to repeat the steps above to remove your passcode.

Wait for the process to finish.

source:https://support.apple.com/en-in/HT211078

Your WhatsApp is public now, you cannot deny doing this either

WhatsApp updates Terms of Service and Privacy Policy and if WhatsApp users do not want to agree to the new privacy rules, they may as well delete their account.

New Delhi: WhatsApp has updated its new Terms and Privacy Policy emphasising that users will be required to agree to the same or else they may need delete their account.

WhatsApp updates Terms of Service and Privacy Policy and if WhatsApp users do not want to agree to the new privacy rules, they may as well delete their account. The updated Terms of Service and Privacy Policy which will take effect on February 8, applies to all of WhatsApp Services unless specified otherwise.


WhatsApp
 has a major chunk of information under Automatically Collected Information header which categorises four significant sub-heads –Usage And Log Information, Device And Connection Information, Location Information and Cookies, thus implying that that all your activities are under the watch of the company.

Under the Usage And Log Information section, WhatsApp says, “We collect information about your activity on our Services, like service-related, diagnostic, and performance information. This includes information about your activity (including how you use our Services, your Services settings, how you interact with others using our Services (including when you interact with a business), and the time, frequency, and duration of your activities and interactions), log files, and diagnostic, crash, website, and performance logs and reports. This also includes information about when you registered to use our Services; the features you use like our messaging, calling, Status, groups (including group name, group picture, group description), payments or business features; profile photo, “about” information; whether you are online, when you last used our Services (your “last seen”); and when you last updated your “about” information.”

Furthermore, the instant messaging app says that it collects “device and connection-specific information when you install, access, or use our Services. This includes information such as hardware model, operating system information, battery level, signal strength, app version, browser information, mobile network, connection information (including phone number, mobile operator or ISP), language and time zone, IP address, device operations information, and identifiers (including identifiers unique to Facebook Company Products associated with the same device or account).”

WhatsApp also collects and uses precise location information from your device with your permission when you choose to use location-related features. Furthermore, it uses cookies to “operate and provide our Services, including to provide our Services that are web-based, improve your experiences, understand how our Services are being used, and customize them.”

Aadhaar card update online rules regulations

Dear Resident,

You have selected ‘Address’ data field to update.

We want you to be aware that you can update your :

  • Name – Twice in life time
  • Date of Birth – Once in life time
  • Gender – Once in life time

You can update your name if the change is minor and includes :

  • Spell correction phonetically same
  • Changes in the Sequence
  • Short form to full form
  • Name change after marriage

You are required to submit Valid Document Proof for correcting or updating your Name, Date of Birth and Address. No document is required to be submitted for updating Mobile number or Email.

However, before submitting the update request the new Mobile number or Email will be subjected to OTP authentication.

To successfully save the update request, OTP validation will be performed using your current mobile number.