Electronic device, method, and non-transitory computer-readable recording medium for blocking advertisement
The electronic device and method enhance ad-blocking capabilities by keeping advertisements invisible and preventing disruptive messages, addressing the challenge of maintaining a seamless user experience in web browsing.
Patent Information
- Application Number
- PCT/KR2025/007915
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-09-13
- Filing Date
- 2025-06-10
- Publication Date
- 2026-01-29
AI Technical Summary
Existing web browsers struggle with effectively blocking advertisements while maintaining user experience, as ad-blocking features often trigger messages requesting unblocked ads, disrupting the viewing experience.
An electronic device and method that identifies and blocks advertising elements within web pages by setting them to an invisible state, preventing messages requesting unblocking, thus maintaining the ad-blocking state and ensuring a seamless user experience.
Effectively blocks advertisements without triggering disruptive messages, enhancing user experience by maintaining the ad-blocking state and reducing user inconvenience.
Smart Images

Figure KR2025007915_29012026_PF_FP_ABST
Abstract
Description
Electronic device, method, and non-transitory computer-readable recording medium for blocking advertisements
[0001] The following descriptions relate to electronic devices, methods, and non-transitory computer-readable recording media for blocking advertisements.
[0002] A web browser is an application that accesses a World Wide Web (WWW) server via the Internet and helps view information on the server or search for documents.
[0003] Web browsers can use ad blocking programs to identify whether resources contained in a requested web page are advertisements and block those resources identified as advertisements. Web pages can activate a feature that requests the deactivation of ad blocking programs when resources identified as advertisements are blocked.
[0004] An electronic device is disclosed. The electronic device may include a communication circuit, a display, at least one processor including a processing circuit, and a memory storing instructions and including one or more storage media. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to identify an input for displaying a web page. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to request data for the web page from a server based on the input. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to receive the data from the server. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to identify an advertising element within the data based on an ad blocking function activated in connection with displaying the web page. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to display the web page in which advertising content corresponding to the advertising element is blocked by setting the state of the advertising element in the data to an invisible state. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to process the state of the advertising element to a visible state so as to maintain the advertising content being blocked and to prevent a message requesting unblocking of the advertising content from being displayed within the web page due to the state of the advertising element being in the invisible state.
[0005] A method is disclosed. The method can be performed by an electronic device including a communication circuit and a display. The method may include an operation of identifying an input for displaying a web page. The method may include an operation of requesting data about the web page from a server based on the input. The method may include an operation of receiving the data from the server. The method may include an operation of identifying an advertisement element within the data based on an advertisement blocking function activated in connection with displaying the web page. The method may include an operation of displaying the web page with advertisement content corresponding to the advertisement element blocked by setting the state of the advertisement element within the data to an invisible state. The method may include an operation of maintaining the advertisement content blocked and processing the state of the advertisement element to a visible state so as to prevent a message requesting the unblocking of the advertisement content from being displayed within the web page when the state of the advertisement element is in the invisible state.
[0006] A non-transitory computer-readable storage medium is disclosed. The non-transitory computer-readable storage medium may store one or more programs including instructions. The instructions, when individually or collectively executed by at least one processor of an electronic device including communication circuitry and a display, may cause the electronic device to identify an input for displaying a web page. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to request data for the web page from a server based on the input. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to receive the data from the server. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to identify an advertising element within the data based on an ad blocking function activated in connection with displaying the web page. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to display the web page with advertising content corresponding to the advertising element blocked by setting the state of the advertising element in the data to an invisible state.The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to treat the state of the advertising element as visible, while maintaining the advertising content as being blocked, and to prevent a message requesting unblocking of the advertising content from being displayed within the web page when the state of the advertising element is invisible.
[0007] FIG. 1 is a block diagram of an electronic device within a network environment according to various embodiments.
[0008] FIG. 2A is a block diagram of an electronic device according to one embodiment.
[0009] FIG. 2b is a block diagram of a browser according to one embodiment.
[0010] FIG. 3A is a diagram illustrating a web page displayed by an electronic device according to one embodiment.
[0011] FIG. 3b is a diagram illustrating a web page in which content displayed by an electronic device is blocked, according to one embodiment.
[0012] FIG. 4 is a flowchart illustrating an operation of an electronic device to determine whether to process a resource request according to a resource request, according to one embodiment.
[0013] FIG. 5 is a flowchart illustrating an operation in which an electronic device processes a resource request differently depending on the type of resource requested, according to one embodiment.
[0014] FIG. 6 is a flowchart illustrating an operation of an electronic device to determine whether to render a resource depending on an added resource, according to one embodiment.
[0015] FIG. 7A is a flowchart illustrating an operation of an electronic device to determine whether to render a resource based on characteristics of the added resource, according to one embodiment.
[0016] FIG. 7b is a flowchart illustrating an operation of an electronic device to determine whether to render a resource based on characteristics of the added resource, according to one embodiment.
[0017] FIG. 8 is a flowchart illustrating an operation of an electronic device determining the status of a resource to be reported in response to a resource status request, according to one embodiment.
[0018] FIG. 9 is a flowchart illustrating an operation of an electronic device to determine the status of a resource to be reported based on whether the resource is in a rendering-stopped state, according to one embodiment.
[0019] FIG. 10 is a flowchart illustrating an operation of an electronic device to determine whether to hide an advertising resource based on the number of advertising resources identified on a web page, according to one embodiment.
[0020] FIG. 11 is a flowchart illustrating an operation of an electronic device to determine the status of a resource to be reported based on whether the requested resource is an advertisement resource, according to one embodiment.
[0021] FIG. 12 is a flowchart illustrating an operation of an electronic device to determine an ad blocking policy for a web page in response to a request to disable ad blocking, according to one embodiment.
[0022] FIG. 13 is a flowchart illustrating an operation of an electronic device to determine an ad blocking policy for a web page based on the number of requests to unblock ads, according to one embodiment.
[0023] FIG. 14 is a flowchart illustrating an operation for reducing the occurrence of an advertisement blocking release message of an electronic device, according to one embodiment.
[0024] FIG. 1 is a block diagram of an electronic device (101) within a network environment (100) according to various embodiments.
[0025] Referring to FIG. 1, in a network environment (100), an electronic device (101) may communicate with an electronic device (102) via a first network (198) (e.g., a short-range wireless communication network), or may communicate with at least one of an electronic device (104) or a server (108) via a second network (199) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (101) may communicate with the electronic device (104) via the server (108). According to one embodiment, the electronic device (101) may include a processor (120), a memory (130), an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a connection terminal (178), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197). In some embodiments, the electronic device (101) may omit at least one of these components (e.g., the connection terminal (178)), or may have one or more other components added. In some embodiments, some of these components (e.g., the sensor module (176), the camera module (180), or the antenna module (197)) may be integrated into one component (e.g., the display module (160)).
[0026] The processor (120) may, for example, execute software (e.g., a program (140)) to control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) and perform various data processing or operations. According to one embodiment, as at least a part of the data processing or operations, the processor (120) may store commands or data received from other components (e.g., a sensor module (176) or a communication module (190)) in a volatile memory (132), process the commands or data stored in the volatile memory (132), and store result data in a non-volatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor) or an auxiliary processor (123) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (121). For example, when the electronic device (101) includes the main processor (121) and the auxiliary processor (123), the auxiliary processor (123) may be configured to use less power than the main processor (121) or to be specialized for a given function. The auxiliary processor (123) may be implemented separately from the main processor (121) or as a part thereof.
[0027] The auxiliary processor (123) may control at least a portion of functions or states associated with at least one component (e.g., a display module (160), a sensor module (176), or a communication module (190)) of the electronic device (101), for example, on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (123) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (180) or a communication module (190)). In one embodiment, the auxiliary processor (123) (e.g., a neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, on the electronic device (101) itself where the artificial intelligence model is executed, or can be performed through a separate server (e.g., server (108)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include multiple artificial neural network layers.The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to, or alternatively to, a hardware structure, an artificial intelligence model may include a software structure.
[0028] The memory (130) can store various data used by at least one component (e.g., processor (120) or sensor module (176)) of the electronic device (101). The data can include, for example, software (e.g., program (140)) and input data or output data for commands related thereto. The memory (130) can include volatile memory (132) or non-volatile memory (134).
[0029] The program (140) may be stored as software in the memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).
[0030] The input module (150) can receive commands or data to be used in a component of the electronic device (101) (e.g., a processor (120)) from an external source (e.g., a user) of the electronic device (101). The input module (150) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
[0031] The audio output module (155) can output audio signals to the outside of the electronic device (101). The audio output module (155) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.
[0032] The display module (160) can visually provide information to an external party (e.g., a user) of the electronic device (101). The display module (160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device. According to one embodiment, the display module (160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.
[0033] The audio module (170) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150), output sound through the sound output module (155), or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (101).
[0034] The sensor module (176) can detect the operating status (e.g., power or temperature) of the electronic device (101) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0035] The interface (177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (101) with an external electronic device (e.g., the electronic device (102)). In one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
[0036] The connection terminal (178) may include a connector through which the electronic device (101) may be physically connected to an external electronic device (e.g., electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0037] The haptic module (179) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. According to one embodiment, the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
[0038] The camera module (180) can capture still images and videos. According to one embodiment, the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.
[0039] The power management module (188) can manage power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
[0040] A battery (189) may power at least one component of the electronic device (101). In one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0041] The communication module (190) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel. The communication module (190) may operate independently from the processor (120) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (194) (e.g., a local area network (LAN) communication module, or a power line communication module). Among these communication modules, the corresponding communication module can communicate with an external electronic device (104) via a first network (198) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (199) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules can be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (192) can verify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199) by using subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (196).
[0042] The wireless communication module (192) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). The NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (192) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (192) can support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (192) can support various requirements specified in the electronic device (101), an external electronic device (e.g., the electronic device (104)), or a network system (e.g., the second network (199)). According to one embodiment, the wireless communication module (192) can support a peak data rate (e.g., 20 Gbps or more) for eMBB realization, a loss coverage (e.g., 664 dB or less) for mMTC realization, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 6 ms or less for round trip) for URLLC realization.
[0043] The antenna module (197) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). In one embodiment, the antenna module (197) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). In one embodiment, the antenna module (197) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (198) or the second network (199), may be selected from the plurality of antennas, for example, by the communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device via the at least one selected antenna. In some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (197).
[0044] According to various embodiments, the antenna module (197) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high-frequency band.
[0045] At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
[0046] According to one embodiment, commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) via a server (108) connected to a second network (199). Each of the external electronic devices (102 or 104) may be the same or a different type of device as the electronic device (101). According to one embodiment, all or part of the operations executed in the electronic device (101) may be executed in one or more of the external electronic devices (102, 104, or 108). For example, when the electronic device (101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (101) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service. One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may process the result as is or additionally and provide it as at least a portion of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device (101) may provide an ultra-low latency service by using distributed computing or mobile edge computing, for example. In another embodiment, the external electronic device (104) may include an Internet of Things (IoT) device. The server (108) may be an intelligent server utilizing machine learning and / or a neural network. According to one embodiment, the external electronic device (104) or the server (108) may be included in the second network (199).The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
[0047] FIG. 2A is a block diagram of an electronic device according to an embodiment. FIG. 2B is a block diagram of a browser according to an embodiment. FIG. 3A is a diagram illustrating a web page displayed by an electronic device according to an embodiment. FIG. 3B is a diagram illustrating a web page with blocked content displayed by an electronic device according to an embodiment.
[0048] Referring to FIG. 2A, the electronic device (101) may include a processor (120), a memory (130), a display (260), and a communication circuit (290).
[0049] In one embodiment, a program (140) including instructions may be stored in the memory (130). In one embodiment, as an example of the program (140), a browser (210) including instructions may be stored in the memory (130). In one embodiment, as an example of the program (140), an advertisement blocking module (220) including instructions may be stored in the memory (130). In one embodiment, the advertisement blocking module (220) may be a program within the browser (210). For example, the advertisement blocking module (220) may be a set of instructions for at least one advertisement blocking function provided by the browser (210). However, the present invention is not limited thereto. The advertisement blocking module (220) may be a separate program from the browser (210). For example, the ad blocking module (220) may be a set of instructions for providing at least one ad blocking function to the browser (210).
[0050] In one embodiment, the browser (210) may display a web page on the display (260). For example, the browser (210) may display a web page corresponding to an address (e.g., a uniform resource locator (URL), a uniform resource identifier (URI)) on the display (260).
[0051] In one embodiment, the browser (210) may determine whether the resources to be requested from the servers (201, 203, 205) are advertisement resources before requesting the servers (201, 203, 205) for resources necessary for displaying a web page on the display (260). In one embodiment, the browser (210) may request the servers (201, 203, 205) for resources other than those determined to be advertisement resources by the ad blocking module (220). In one embodiment, the servers (201, 203, 205) may be servers that provide different web pages and / or different resources.
[0052] In one embodiment, the browser (210) may render a web page for display on the display (260) using resources received from servers (201, 203, 205). In one embodiment, the browser (210) may determine whether elements based on the resources are advertisement elements before rendering the web page. In one embodiment, the browser (210) may render the web page using elements excluding elements determined to be advertisement elements through the advertisement blocking module (220). Here, the elements may include at least one tag (e.g., an opening tag, a closing tag) and content.
[0053] Referring to FIG. 2B, a browser (210) may include a user interface (211), a browser engine (212), a rendering engine (213), a communication engine (214), a script engine (215), a user interface (UI) backend (216), and a data storage (217). In one embodiment, the data storage (217) may store cookies and / or caches associated with web pages.
[0054] In one embodiment, the user interface (211) may include a UI (e.g., an address bar, a previous button, a next button, a bookmark menu) displayed in an area other than an area displaying a web page. In one embodiment, the UI backend (216) may include a general interface not defined in the browser (210), such as a combo box, a pop-up window, or a notification. For example, the UI backend (216) may include a user interface defined in an operating system (e.g., 142 of FIG. 1).
[0055] In one embodiment, the browser engine (212) may control modules within the browser (210), such as the user interface (211), the rendering engine (213), the communication engine (214), the script engine (215), the UI backend (216), and the data storage (217).
[0056] For example, the browser engine (212) may receive data for a web page corresponding to an address (e.g., URL, URI) from a server (e.g., servers (201, 203, 205)) via the communication engine (214). In one embodiment, the data for the web page may be data for displaying the web page. In one embodiment, the data for the web page may be a document written in a markup language (e.g., hyper text markup language (HTML)). In one embodiment, the data for the web page may be data including one or more elements. In one embodiment, each of the one or more elements may include at least one tag (e.g., an opening tag, a closing tag) and content. In one embodiment, the opening tag may include attribute information. Depending on the embodiment, the content may be data (e.g., an image, audio, video) represented by the element as well as data (e.g., text) located between tags.
[0057] For example, the browser engine (212) may receive one or more resources from a server (e.g., servers (201, 203, 205)) using an address (e.g., URL, URI) identified by one or more elements via the communication engine (214). For example, the one or more resources may include fonts, images, media (e.g., video or audio), and / or scripts.
[0058] In one embodiment, the script engine (215) can parse (or interpret) a script (e.g., JavaScript). The script engine (215) can parse and execute the script (e.g., JavaScript).
[0059] In one embodiment, the script engine (215) may request resources from the browser engine (212) as it executes a script. For example, the browser engine (212) may receive the requested resources from a server (e.g., servers (201, 203, 205)) through the communication engine (214) based on the resource request from the script engine (215).
[0060] For example, the browser engine (212) can display a web page on the display (260) through the rendering engine (213). For example, the browser engine (212) can render a web page through the rendering engine (213) and display the rendered web page through the display (260). For example, the browser engine (212) can display a web page within a designated viewport through the rendering engine (213). Here, referring to FIG. 3A, the viewport may be an area (315) of the browser (210) displayed through the display (260) excluding the menu area (311). The viewport may be an area (315) in which a web page is displayed through the display (260).
[0061] For example, the browser engine (212) may parse data for a web page. In one embodiment, parsing may include tokenizing and tree generation for data for the web page. In one embodiment, tokenization may be an operation for distinguishing elements included in data for the web page based on tags. In one embodiment, the tree may be a structure representing a relationship (or hierarchy) between tags. In one embodiment, the tree may be a tree based on the document object model (DOM). In one embodiment, the tree based on the DOM may include element nodes, attribute nodes, and / or text nodes. For example, among the element nodes, may be a root node, and may be child nodes of the root node. For example, an attribute node may specify an attribute of an element node. For example, an element node may be an image (e.g., ), the attribute node is the location of the image (e.g. <src>) (or, address) can represent information about the element node. For example, an element node can be a script (e.g., <script>)인 경우, 속성 노드는 스크립트의 위치(예: <src>)에 대한 정보, 및 / 또는 스크립트를 실행하는 방법(예: <async>)을 나타낼 수 있다. 일 실시 예에서, 스크립트 엔진(215)은 스크립트(예: 자바스크립트)를 구문 분석(또는, 해석)할 수 있다. 스크립트 엔진(215)은 스크립트(예: 자바스크립트)를 구문 분석 및 실행할 수 있다. 일 실시 예에서, 스크립트 엔진(215)은 스크립트를 실행함에 따라, 트리(예: 요소 노드, 속성 노드, 및 / 또는 텍스트 노드)를 변경할 수 있다. 예를 들면, 스크립트 엔진(215)은 스크립트를 실행함에 따라, 이미지의 위치(예: <src>)에 대한 정보를 변경할 수 있다. 예를 들면, 스크립트 엔진(215)은 스크립트를 실행함에 따라, 이미지의 크기, 및 / 또는 표시 상태에 대한 정보를 변경할 수 있다. 예를 들면, 스크립트 엔진(215)은 스크립트를 실행함에 따라, 트리(예: 요소 노드, 속성 노드, 및 / 또는 텍스트 노드)의 속성 정보를 요청할 수 있다.
[0062] 예를 들면, 브라우저 엔진(212)은 렌더링 엔진(213)을 통해, 웹 페이지를 렌더링할 수 있다. 일 실시 예에서, 웹 페이지의 렌더링은, 웹 페이지의 레이아웃 동작을 포함할 수 있다. 예를 들면, 레이아웃 동작은, 트리에 포함된 요소 노드들에 따른 요소들이 웹 페이지에서 배치되는 위치를 결정하는 동작을 포함할 수 있다. 예를 들면, 레이아웃은, 요소들 각각의 폭 및 높이를 나타낼 수 있다. 일 실시 예에서, 웹 페이지의 렌더링은, 웹 페이지의 페인팅 동작을 포함할 수 있다. 예를 들면, 페인팅 동작은, 레이아웃 동작을 통해 계산된 요소 노드들 각각의 영역을 디스플레이(260)의 화면의 픽셀로 변환하는 동작을 포함할 수 있다. 예를 들면, 페인팅 동작은, 시각적인 요소들(예: 텍스트, 이미지, 객체(예: 텍스트, 또는 이미지)의 색깔, 객체의 경계, 및 / 또는 객체의 그림자)을 화면에 그리는 동작을 포함할 수 있다.
[0063] 예를 들면, 도 3a를 참조하면, 브라우저(210)는, 디스플레이(260)를 통해 표시되는 브라우저(210)의 영역(310) 중 메뉴 영역(311)을 제외한 영역(315)에 메인 콘텐트(320)를 포함하는 웹 페이지를 표시할 수 있다. 실시 예에 따라, 웹 페이지를 표시하기 위한 데이터는, 미끼(bait) 요소(331, 335)의 렌더링을 요청할 수 있다. 예를 들면, 웹 페이지를 표시하기 위한 데이터에 포함된 스크립트는, 영역(315)을 벗어난 영역에 미끼 요소(331)의 렌더링을 요청할 수 있다. 예를 들면, 웹 페이지를 표시하기 위한 데이터에 포함된 스크립트는, 영역(315) 내에 지정된 크기(예: 1 by 1 픽셀)를 가지는 미끼 요소(335)의 렌더링을 요청할 수 있다. 하지만 이에 제한되지 않는다. 예를 들면, 웹 페이지를 표시하기 위한 데이터에 포함된 스크립트는, 브라우저 엔진(212)에게 미끼(bait) 리소스의 다운로드를 요청할 수 있다.
[0064] 일 실시 예에서, 브라우저(210)가 미끼 요소(331, 335)를 렌더링하지 않거나, 또는 미끼 리소스를 서버들(201, 203, 205)로부터 수신하지 않는 경우, 스크립트는 브라우저(210)가 광고 차단 모듈(220)을 이용하여 웹 페이지에서 광고가 차단됨을 식별할 수 있다. 이 경우, 스크립트는, 광고 차단을 요청하는 메시지를 디스플레이(260) 상에 표시할 수 있다. 예를 들면, 스크립트는, 메인 콘텐트(320)의 정상적인 이용을 어렵게하는 광고 차단을 요청하는 메시지를 디스플레이(260) 상에 표시할 수 있다. 예를 들면, 도 3b를 참조하면, 스크립트는, 웹 페이지에서 광고가 차단됨을 식별함에 기반하여, 메인 콘텐트(320)를 가리는 광고 차단을 요청하는 메시지(340)를 디스플레이(260) 상에 표시할 수 있다.
[0065] 상술한 바와 같이, 광고 차단을 요청하는 메시지(340)에 의해, 웹 페이지가 정상적으로 이용 가능하지 않을 경우, 사용자에게 불편함이 야기될 수 있다. 이하에서, 도 4 내지 도 14를 참조하여, 광고 차단을 요청하는 메시지(340)가 발생되는 것을 감소시키기 위한 방안이 설명될 수 있다.
[0066] 도 4는 일 실시 예에 따른, 전자 장치가 리소스 요청에 따라, 리소스 요청의 처리 여부를 결정하는 동작을 나타내는 흐름도이다.
[0067] 도 4는 도 2a 내지 도 3b를 참조하여 설명될 수 있다.
[0068] 도 4를 참조하면, 동작 410에서, 스크립트 엔진(215)은, 브라우저 엔진(212)에게 리소스를 요청할 수 있다. 일 실시 예에서, 프로세서(120)는, 스크립트 엔진(215)을 실행함에 기반하여, 브라우저 엔진(212)에게 리소스를 요청할 수 있다. 예를 들면, 스크립트 엔진(215)은, 스크립트를 실행함에 기반하여, 브라우저 엔진(212)에게 리소스를 요청할 수 있다. 예를 들면, 스크립트 엔진(215)은, 웹 페이지의 데이터에 포함된 스크립트(예: <script>)인 요소 노드와 관련된 속성 노드가 나타내는 스크립트의 위치(예: <src>)에 기반하여 스크립트를 실행할 수 있다. 예를 들면, 전자 장치는 스크립트의 실행함에 기반하여, 브라우저 엔진(212)에게 리소스를 요청할 수 있다. 실행함에 기반하여, 브라우저 엔진(212)에게 리소스를 요청할 수 있다. 예를 들면, 스크립트 엔진(215)은, 리소스를 요청하기 위한 객체(예: request, XMLHttpRequest)를 생성하고, 생성된 객체를 요청하기 위한 메소드(예: fetch, open send, get, post)를 통해 브라우저 엔진(212)에게 리소스를 요청할 수 있다.
[0069] 동작 420에서, 브라우저 엔진(212)은, 요청된 리소스의 유형을 식별할 수 있다. 일 실시 예에서, 프로세서(120)는, 브라우저 엔진(212)을 실행함에 기반하여, 요청된 리소스의 유형을 식별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 리소스를 요청하기 위한 객체의 유형을 식별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 리소스가 지정된 타입(예: XHR(XMLHttpRequest))에 기반하여 요청됨을 식별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 리소스 유형을 나타내는 요소 노드(예: , <picture>, <video>, <audio>, <object>)에 기반하여 요청됨을 식별할 수 있다.
[0070] 동작 430에서, 브라우저 엔진(212)은, 식별된 리소스의 유형에 기반하여, 요청을 처리할 수 있다. 일 실시 예에서, 프로세서(120)는, 브라우저 엔진(212)을 실행함에 기반하여, 식별된 리소스의 유형에 기반하여, 요청을 처리할 수 있다.
[0071] 예를 들면, 브라우저 엔진(212)은, 식별된 리소스의 유형에 기반하여, 요청된 리소스가 미끼 리소스인지를 판별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 요청된 리소스가 미끼 리소스인지에 대한 판별 결과에 기반하여, 요청된 리소스가 광고 리소스인지를 결정할 수 있다.
[0072] 예를 들면, 브라우저 엔진(212)은, 스크립트에 의해 지정된 타입(예: 이미지, 사진, 비디오, 오디오, 객체)으로 리소스가 요청되는 경우, 미끼 리소스가 아닌 것으로 판별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 스크립트에 의해 지정된 타입(예: 이미지, 사진, 비디오, 오디오, 객체)과 구분되는 타입(예: XHR)으로 리소스가 요청되는 경우, 미끼 리소스인 것으로 판별할 수 있다.
[0073] 일 실시 예에서, 브라우저 엔진(212)은, 요청된 리소스가 미끼 리소스인 것으로 판별됨에 기반하여, 통신 엔진(214)을 통해 리소스를 서버들(201, 203, 205)에게 요청할 수 있다. 일 실시 예에서, 브라우저 엔진(212)은, 요청된 리소스가 미끼 리소스인 것으로 판별됨에 기반하여, 통신 엔진(214)을 통해 리소스를 서버들(201, 203, 205)로부터 수신할 수 있다.
[0074] 예를 들면, 브라우저 엔진(212)은, 식별된 리소스의 유형에 기반하여, 요청된 리소스가 광고 리소스인지를 판별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 식별된 리소스의 유형에 따라 요청된 리소스가 미끼 리소스가 아닌 것으로 판별됨에 기반하여, 광고 차단 모듈(220)을 통해 요청된 리소스가 광고 리소스인지를 판별할 수 있다. 예를 들면, 광고 차단 모듈(220)은, 요청된 리소스의 URL에 포함된 텍스트들에 기반하여, 리소스가 광고 리소스인지를 판별할 수 있다. 예를 들면, 광고 차단 모듈(220)은, 요청된 리소스의 URL에 포함된 텍스트들에 광고 키워드(예: 특정 단어(예: "ad", "banner", "pub"), 광고에 자주 사용되는 리소스의 명칭(예: "adsbyAAA"), 광고에 자주 사용되는 URL, 및 / 또는 특정 사이트에서 사용되는 특정 리소스)가 포함됨에 기반하여, 리소스가 광고 리소스인 것으로 판별할 수 있다.
[0075] 일 실시 예에서, 브라우저 엔진(212)은, 요청된 리소스가 광고 리소스인 것으로 판별됨에 기반하여, 리소스에 대한 요청을 처리하지 않을 수 있다. 예를 들면, 브라우저 엔진(212)은, 요청된 리소스가 광고 리소스인 것으로 판별됨에 기반하여, 리소스를 서버들(201, 203, 205)에게 요청하지 않을 수 있다. 예를 들면, 브라우저 엔진(212)은, 요청된 리소스가 광고 리소스인 것으로 판별됨에 기반하여, 리소스를 서버들(201, 203, 205)로부터 수신하지 않을 수 있다. 일 실시 예에서, 브라우저 엔진(212)은, 요청된 리소스가 미끼 리소스가 아니고, 및 요청된 리소스가 광고 리소스인 것으로 판별됨에 기반하여, 리소스에 대한 요청을 처리하지 않을 수 있다.
[0076] 일 실시 예에서, 브라우저 엔진(212)은, 요청된 리소스가 광고 리소스가 아닌 것으로 판별됨에 기반하여, 리소스에 대한 요청을 처리할 수 있다. 예를 들면, 브라우저 엔진(212)은, 요청된 리소스가 광고 리소스가 아닌 것으로 판별됨에 기반하여, 리소스를 서버들(201, 203, 205)에게 요청할 수 있다. 예를 들면, 브라우저 엔진(212)은, 요청된 리소스가 광고 리소스가 아닌 것으로 판별됨에 기반하여, 리소스를 서버들(201, 203, 205)로부터 수신할 수 있다. 일 실시 예에서, 브라우저 엔진(212)은, 요청된 리소스가 미끼 리소스가 아니고, 및 요청된 리소스가 광고 리소스가 아닌 것으로 판별됨에 기반하여, 리소스에 대한 요청을 처리할 수 있다.
[0077] 동작 440에서, 브라우저 엔진(212)은, 스크립트 엔진(215)에게 요청 처리 결과를 전달할 수 있다. 일 실시 예에서, 프로세서(120)는, 브라우저 엔진(212)을 실행함에 기반하여, 스크립트 엔진(215)에게 요청 처리 결과를 전달할 수 있다. 예를 들면, 요청 처리 결과는, 요청된 리소스가 수신됨을 나타내는 응답 또는 요청된 리소스가 수신되지 않음을 나타내는 응답일 수 있다. 일 실시 예에서, 브라우저 엔진(212)은, 서버들(201, 203, 205)로부터 요청된 리소스가 수신됨 또는 수신되지 않음을 나타내는 응답을 스크립트 엔진(215)에게 전달할 수 있다.
[0078] 일 실시 예에서, 브라우저 엔진(212)은, 요청된 리소스가 미끼 리소스인 것으로 판별됨에 따라 서버들(201, 203, 205)로부터 요청된 리소스가 수신됨을 나타내는 응답을 스크립트 엔진(215)에게 전달할 수 있다. 일 실시 예에서, 브라우저 엔진(212)은, 요청된 리소스가 광고 리소스가 아닌 것으로 판별됨에 따라 서버들(201, 203, 205)로부터 요청된 리소스가 수신됨을 나타내는 응답을 스크립트 엔진(215)에게 전달할 수 있다. 일 실시 예에서, 브라우저 엔진(212)은, 요청된 리소스가 미끼 리소스가 아니고, 및 요청된 리소스가 광고 리소스가 아닌 것으로 판별됨에 따라 서버들(201, 203, 205)로부터 요청된 리소스가 수신됨을 나타내는 응답을 스크립트 엔진(215)에게 전달할 수 있다.
[0079] 일 실시 예에서, 브라우저 엔진(212)은, 요청된 리소스가 광고 리소스인 것으로 판별됨에 따라, 거짓 결과를 포함하는 응답을 스크립트 엔진(215)에게 전달할 수 있다. 일 실시 예에서, 브라우저 엔진(212)은, 요청된 리소스가 미끼 리소스가 아니고, 및 요청된 리소스가 광고 리소스인 것으로 판별됨에 따라 거짓 결과를 포함하는 응답을 스크립트 엔진(215)에게 전달할 수 있다. 예를 들면, 거짓 결과를 포함하는 응답은, 서버들(201, 203, 205)에게 리소스를 요청하지 않음에도 불구하고, 서버들(201, 203, 205)로부터 요청된 리소스가 수신됨을 나타낼 수 있다.
[0080] 동작 450에서, 스크립트 엔진(215)은, 요청 처리 결과에 기반하여, 광고 차단 여부를 식별할 수 있다. 일 실시 예에서, 프로세서(120)는, 스크립트 엔진(215)을 실행함에 기반하여, 요청 처리 결과에 기반하여, 광고 차단 여부를 식별할 수 있다. 예를 들면, 스크립트 엔진(215)은, 미끼 리소스에 대한 요청 처리 결과에 기반하여, 광고 차단 여부를 식별할 수 있다. 예를 들면, 스크립트 엔진(215)은, 광고 리소스에 대한 요청 처리 결과에 기반하여, 광고 차단 여부를 식별할 수 있다. 예를 들면, 스크립트 엔진(215)은, 아래 표 1과 같은 스크립트를 실행함에 기반하여, 광고 차단 여부를 식별할 수 있다.
[0081]
[0082] 예를 들면, 스크립트 엔진(215)은, 표 1에 의해 지시되는 스크립트를 실행함에 기반하여, ADS_URL에 의해 지시되는 스크립트(예: adsbyAAA.js)가 수신되었는지를 판별할 수 있다. 예를 들면, 스크립트 엔진(215)은, 표 1에 의해 지시되는 스크립트에 포함된 XHR의 상태 또는 XHR을 통해 요청된 스크립트(예: adsbyAAA.js)가 수신되었는지를 나타내는 함수(예: 콜백)를 실행함에 기반하여, ADS_URL에 의해 지시되는 스크립트(예: adsbyAAA.js)가 수신되었는지를 판별할 수 있다.
[0083] 예를 들면, 스크립트 엔진(215)은, 지정된 리소스(예: 광고 리소스 및 / 또는 미끼 리소스)가 차단된 것으로 판별되는 경우, 브라우저(210)에서 광고 차단(예: 광고 차단 모듈(220)에 의한 광고 차단)이 실행중인 것으로 판별할 수 있다.
[0084] 동작 460에서, 스크립트 엔진(215)은, 광고 차단 여부에 기반하여, 광고 차단을 막기 위한 기능을 실행할 수 있다. 일 실시 예에서, 프로세서(120)는, 스크립트 엔진(215)을 실행함에 기반하여, 광고 차단 여부에 기반하여, 광고 차단을 막기 위한 기능을 실행할 수 있다. 일 실시 예에서, 광고 차단을 막기 위한 기능은, 안티 광고 차단으로 지칭될 수 있다. 예를 들면, 스크립트 엔진(215)은, 브라우저(210)에서 광고 차단(예: 광고 차단 모듈(220)에 의한 광고 차단)이 실행중인 것으로 판별됨에 기반하여, 광고 차단을 막기 위한 기능을 실행함으로써, 사용자 인터페이스를 제공할 수 있다. 예를 들면, 스크립트 엔진(215)은, 브라우저(210)에서 광고 차단(예: 광고 차단 모듈(220)에 의한 광고 차단)이 실행중인 것으로 판별됨에 기반하여, 도 3b의 메시지(340)를 디스플레이(260) 상에 표시할 수 있다. 예를 들면, 스크립트 엔진(215)은, 브라우저(210)에서 광고 차단(예: 광고 차단 모듈(220)에 의한 광고 차단)이 실행 중이 아닌 것으로 판별됨에 기반하여, 광고 차단을 막기 위한 기능을 실행하지 않을 수 있다. 예를 들면, 스크립트 엔진(215)은, 브라우저(210)에서 광고 차단(예: 광고 차단 모듈(220)에 의한 광고 차단)이 실행 중이 아닌 것으로 판별됨에 기반하여, 도 3b의 메시지(340)를 디스플레이(260) 상에 표시하지 않을 수 있다.
[0085] 하지만, 광고 차단 모듈(220)이 실행 중임에도, 브라우저 엔진(212)이 미끼 리소스를 실제로 수신함에 따라, 미끼 리소스가 수신됨을 나타냄을 나타내는 응답을 스크립트 엔진(215)에게 전달함으로써, 스크립트 엔진(215)은, 광고가 차단되지 않은 것으로 판별할 수 있다. 이에 따라, 스크립트 엔진(215)은, 광고 차단을 막기 위한 기능을 실행하지 않을 수 있다. 또한, 브라우저 엔진(212)이 광고 리소스를 실제로 수신하지 않은 경우에도 따라, 스크립트 엔진(215)에게 광고 리소스가 수신됨을 나타냄을 나타내는 거짓 결과를 포함하는 응답을 스크립트 엔진(215)에게 전달함으로써, 스크립트 엔진(215)은, 광고가 차단되지 않은 것으로 판별할 수 있다. 이에 따라, 스크립트 엔진(215)은, 광고 차단을 막기 위한 기능을 실행하지 않을 수 있다.
[0086] 도 5는 일 실시 예에 따른, 전자 장치가 요청된 리소스의 유형에 따라, 리소스 요청을 다르게 처리하는 동작을 나타내는 흐름도이다.
[0087] 도 5는 도 2a 내지 도 4를 참조하여 설명될 수 있다. 도 5의 동작들 510 내지 550은, 도 4의 동작들 430, 및 440에 포함될 수 있다.
[0088] 도 5를 참조하면, 동작 420에서, 전자 장치(101)는, 요청된 리소스의 유형을 식별할 수 있다. 예를 들면, 전자 장치(101)는, 리소스를 요청하기 위한 객체의 유형을 식별할 수 있다. 예를 들면, 전자 장치(101)는, 리소스가 XHR에 기반하여 요청됨을 식별할 수 있다. 예를 들면, 전자 장치(101)는, 리소스 유형을 나타내는 요소 노드에 기반하여 요청됨을 식별할 수 있다.
[0089] 동작 510에서, 전자 장치(101)는, 요청된 리소스가 미끼 리소스인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 식별된 리소스의 유형에 기반하여, 요청된 리소스가 미끼 리소스인지를 판별할 수 있다.
[0090] 예를 들면, 전자 장치(101)는, 스크립트에 의해 지정된 타입(예: 이미지, 사진, 비디오, 오디오, 객체, XHR)으로 리소스가 요청되는 경우, 미끼 리소스가 아닌 것으로 판별할 수 있다. 예를 들면, 전자 장치(101)는, 스크립트에 의해 지정된 타입(예: 이미지, 사진, 비디오, 오디오, 객체, XHR)과 구분되는 타입(예: 스크립트)으로 리소스가 요청되는 경우, 미끼 리소스인 것으로 판별할 수 있다. 예를 들면, 실재 요청되는 리소스의 타입(예: 스크립트)이 요청을 위한 스크립트의 코드에 의해 지정된 타입(예: 이미지, 사진, 비디오, 오디오, 객체, XHR)과 구분되는 경우, 전자 장치(101)는, 요청된 리소스가 미끼 리소스인 것으로 판별할 수 있다.
[0091] 일 실시 예에서, 전자 장치(101)는, 요청된 리소스가 미끼 리소스인 것으로 판별됨에 기반하여, 동작 520을 수행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 요청된 리소스가 미끼 리소스가 아닌 것으로 판별됨에 기반하여, 동작 530을 수행할 수 있다.
[0092] 동작 520에서, 전자 장치(101)는, 리소스를 획득할 수 있다. 예를 들면, 전자 장치(101)는, 통신 회로(290)를 통해 서버들(201, 203, 205)로부터 리소스를 획득할 수 있다.
[0093] 동작 525에서, 전자 장치(101)는, 성공 이벤트를 전달할 수 있다. 예를 들면, 전자 장치(101)는, 스크립트 엔진(215)에게 성공 이벤트를 전달할 수 있다. 예를 들면, 전자 장치(101)는, 서버들(201, 203, 205)로부터 요청된 리소스가 수신됨을 나타내는 응답을 스크립트 엔진(215)에게 전달할 수 있다.
[0094] 동작 530에서, 전자 장치(101)는, 광고 리소스인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 요청된 리소스의 URL에 포함된 텍스트들에 기반하여, 요청된 리소스가 광고 리소스인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 요청된 리소스의 URL에 포함된 텍스트들에 광고 키워드(예: 특정 단어(예: "ad", "banner", "pub"), 광고에 자주 사용되는 리소스의 명칭(예: "adsbyAAA"), 광고에 자주 사용되는 URL, 및 / 또는 특정 사이트에서 사용되는 특정 리소스)가 포함됨에 기반하여, 리소스가 광고 리소스인 것으로 판별할 수 있다.
[0095] 일 실시 예에서, 전자 장치(101)는, 요청된 리소스가 광고 리소스가 아닌 것으로 판별됨에 기반하여, 동작 520을 수행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 요청된 리소스가 광고 리소스인 것으로 판별됨에 기반하여, 동작 540을 수행할 수 있다.
[0096] 동작 540에서, 전자 장치(101)는, 리소스 획득을 중지할 수 있다. 일 실시 예에서, 전자 장치(101)는, 요청된 리소스가 광고 리소스인 것으로 판별됨에 기반하여, 리소스에 대한 요청을 처리하지 않을 수 있다. 예를 들면, 전자 장치(101)는, 요청된 리소스가 광고 리소스인 것으로 판별됨에 기반하여, 서버들(201, 203, 205)로부터 리소스의 획득을 중지할 수 있다.
[0097] 동작 545에서, 전자 장치(101)는, 성공 이벤트를 전달할 수 있다. 일 실시 예에서, 전자 장치(101)는, 요청된 리소스가 광고 리소스인 것으로 판별됨에 따라, 거짓 결과(예: 성공 이벤트)를 포함하는 응답을 스크립트 엔진(215)에게 전달할 수 있다. 일 실시 예에서, 전자 장치(101)는, 요청된 리소스가 광고 리소스인 것으로 판별됨에 따라 획득이 중지된 리소스에 대한 요청에 대하여, 거짓 결과(예: 성공 이벤트)를 포함하는 응답을 스크립트 엔진(215)에게 전달할 수 있다. 예를 들면, 거짓 결과를 포함하는 응답은, 서버들(201, 203, 205)에게 리소스를 요청하지 않음에도 불구하고, 성공 이벤트(또는, 서버들(201, 203, 205)로부터 요청된 리소스가 수신됨)를 나타낼 수 있다.
[0098] 예를 들면, 스크립트 엔진(215)은, 광고 리소스에 대한 요청 처리 결과에 기반하여, 광고 차단 여부를 식별할 수 있다. 예를 들면, 스크립트 엔진(215)은, 아래 표 2와 같은 스크립트를 실행함에 기반하여, 광고 차단 여부를 식별할 수 있다.
[0099]
[0100] 예를 들면, 스크립트 엔진(215)은, 표 2에 의해 지시되는 스크립트를 실행함에 기반하여, testURL에 의해 지시되는 스크립트(예: adsbyAAA.js)에 대한 요청(예: new Request(testURL,myInit))에 대하여 에러가 발생되었는지를 판별할 수 있다. 예를 들면, 스크립트 엔진(215)은, 스크립트(예: adsbyAAA.js)에 대한 요청에서 에러가 발생됨을 나타내는 함수(예: catch(function(e){callback(true)})를 실행함에 기반하여, 광고 차단 기능이 실행됨을 식별할 수 있다. 이를 방지하기 위해, 전자 장치(101)는, 요청된 리소스가 광고 리소스인 것으로 판별됨에 따라, 거짓 결과(예: 성공 이벤트)를 포함하는 응답을 스크립트 엔진(215)에게 전달할 수 있다.
[0101] 동작 550에서, 전자 장치(101)는, 요청된 리소스에 대한 속성 값을 설정할 수 있다. 일 실시 예에서, 전자 장치(101)는, 획득이 중지된 리소스에 대한 요소에 대한 속성 값을 설정할 수 있다.
[0102] 예를 들면, 스크립트 엔진(215)은, 광고 리소스에 대한 속성에 기반하여, 광고 차단 여부를 식별할 수 있다. 예를 들면, 스크립트 엔진(215)은, 아래 표 3과 같은 스크립트를 실행함에 기반하여, 광고 차단 여부를 식별할 수 있다.
[0103]
[0104] 예를 들면, 스크립트 엔진(215)은, 표 3에 의해 지시되는 스크립트를 실행함에 기반하여, reqURL에 의해 지시되는 스크립트(예: adsbyAAA.js)에 대한 속성(예: typeof window.adsbyAAA)이 정의되지 않음을 식별할 수 있다.
[0105] 예를 들면, 스크립트 엔진(215)은, 스크립트(예: adsbyAAA.js)에 대한 속성(예: typeof window.adsbyAAA)이 정의되지 않은 상태(예: undefined)인 경우, 이를 나타내는 함수(예: callback(true, 2))를 실행함에 기반하여, 광고 차단 기능이 실행됨을 식별할 수 있다. 이를 방지하기 위해, 전자 장치(101)는, 요청된 리소스가 광고 리소스인 것으로 판별됨에 따라, 광고 리소스에 속성 값을 설정할 수 있다.
[0106] 예를 들면, 전자 장치(101)는, 리소스 획득이 중지된 요소(예: adsbyAAA.js와 관련된 스크립트)에 대하여 속성 값을 임의로 설정할 수 있다. 예를 들면, 전자 장치(101)는, 리소스 획득이 중지된 요소(예: adsbyAAA.js와 관련된 스크립트)에 대하여 윈도우의 속성 값을 임의로 설정할 수 있다. 하지만 이에 제한되지 않는다. 예를 들면, 전자 장치(101)는, 리소스 획득이 중지된 요소(예: adsbyAAA.js와 관련된 스크립트)에 대하여 숫자, 객체, 함수, 및 / 또는 문자열(string)의 속성 값을 임의로 설정할 수 있다.
[0107] 실시 예에 따라, 동작 550은 생략될 수 있다. 전자 장치(101)는, 리소스 획득이 중지된 요소(예: adsbyAAA.js와 관련된 스크립트)에 대하여 속성 값을 설정하지 않을 수 있다.
[0108] 실시 예에 따라, 도 5의 동작들의 실행 순서는 변경될 수 있다. 예를 들면, 동작 510과 동작 530의 동작 순서는 서로 변경될 수 있다. 예를 들면, 동작 420 이후에 동작 530이 수행될 수 있다. 예를 들면, 동작 530에서, 광고 리소스로 판별된 경우, 동작 510이 수행될 수 있다. 동작 530 이후에 수행되는 동작 510에서, 미끼 리소스가 아닌 것으로 판별됨에 기반하여, 동작 540이 수행될 수 있다.
[0109] 도 6은 일 실시 예에 따른, 전자 장치가 추가된 리소스에 따라, 리소스의 렌더링 여부를 결정하는 동작을 나타내는 흐름도이다.
[0110] 도 6은 도 2a 내지 도 3b를 참조하여 설명될 수 있다.
[0111] 도 6을 참조하면, 동작 610에서, 스크립트 엔진(215)은, 요소를 추가할 수 있다. 일 실시 예에서, 프로세서(120)는, 스크립트 엔진(215)을 통해, 요소를 추가할 수 있다.
[0112] 동작 620에서, 브라우저 엔진(212)은, 추가된 요소를 구문 분석할 수 있다. 일 실시 예에서, 프로세서(120)는, 브라우저 엔진(212)을 통해, 추가된 요소를 구문 분석할 수 있다. 일 실시 예에서, 구문 분석은, 웹 페이지를 위한 데이터에 대한 토큰화 및 트리 생성을 포함할 수 있다. 일 실시 예에서, 토큰화는, 웹 페이지를 위한 데이터에 포함된 요소들을 태그에 기반하여 구분하기 위한 동작일 수 있다. 하지만 이에 제한되지 않는다. 브라우저 엔진(212)은, 스크립트 엔진(215)에 의해 추가되지 않고도, 웹 페이지 내에서 존재하는 요소를 구문 분석할 수 있다. 예를 들면, 스크립트 엔진(215)에 의한 추가 없이, 웹 페이지 내에서 존재하는 요소는, 지정된 태그(예: )로 요소의 레이아웃이 결정되고, 해당 요소와 관련된 리소스의 요청 및 / 또는 자손 노드의 생성은 없을 수 있다. 이하에서, 추가된 요소에 대한 설명은, 스크립트 엔진(215)에 의한 추가 없이, 웹 페이지 내에서 존재하는 요소에 대해서도 적용될 수 있다.
[0113] 동작 630에서, 브라우저 엔진(212)은, 추가된 요소의 속성을 식별할 수 있다. 일 실시 예에서, 프로세서(120)는, 브라우저 엔진(212)을 통해, 추가된 요소의 속성을 식별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 추가된 요소의 렌더링(예: 레이아웃)을 위해 추가된 요소의 지정된 속성을 식별할 수 있다. 예를 들면, 지정된 속성은, 식별 정보(identifier, ID), 클래스, 스타일(예: 폭, 높이), 위치, 및 / 또는 투명도를 포함할 수 있다.
[0114] 동작 640에서, 브라우저 엔진(212)은, 식별된 요소의 속성에 기반하여, 요소의 렌더링을 처리할 수 있다. 일 실시 예에서, 프로세서(120)는, 브라우저 엔진(212)을 통해, 식별된 요소의 속성에 기반하여, 요소의 렌더링을 처리할 수 있다.
[0115] 예를 들면, 브라우저 엔진(212)은, 식별된 요소의 속성에 기반하여, 요청된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 요청된 요소가 미끼 요소인지에 대한 판별 결과에 기반하여, 요청된 요소가 광고 요소인지를 결정할 수 있다.
[0116] 예를 들면, 브라우저 엔진(212)은, 식별된 요소의 속성(예: 클래스, ID)들의 개수에 기반하여, 요청된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 식별된 요소의 속성(예: 클래스, ID)들 중 광고를 나타내는 속성의 개수에 기반하여, 요청된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 광고를 나타내는 속성은, 클래스가 특정 단어(예: "ad", "banner", "pub")를 포함하는 속성일 수 있다.
[0117] 예를 들면, 브라우저 엔진(212)은, 식별된 요소의 속성(예: 클래스, ID)들 중 광고를 나타내는 속성의 개수가 지정된 개수(예: 5 또는 30개) 미만 설정된 경우, 식별된 요소가 미끼 요소가 아닌 것으로 판별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 식별된 요소의 속성(예: 클래스, ID)들 중 광고를 나타내는 속성의 개수가 지정된 개수(예: 5 또는 30개) 이상인 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다.
[0118] 예를 들면, 브라우저 엔진(212)은, 식별된 요소의 스타일(예: 폭, 높이)이 지정된 스타일 이외의 스타일을 가지는 초과하는 경우, 식별된 요소가 미끼 요소가 아닌 것으로 판별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 식별된 요소의 스타일(예: 폭, 높이)이 지정된 스타일을 가지는 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다. 일 실시 예에서, 지정된 스타일은, 사용자에 의해 식별되지 않는 크기(예: 폭이 지정된 크기 이하의 값(예: 1 픽셀), 및 / 또는 높이가 지정된 크기 이하의 값(예: 1 픽셀))를 가지는 스타일일 수 있다.
[0119] 예를 들면, 브라우저 엔진(212)은, 식별된 요소의 표시 위치가 뷰 포트 내에 위치하는 경우, 식별된 요소가 미끼 요소가 아닌 것으로 판별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 식별된 요소의 표시 위치가 뷰 포트 밖에 위치하는 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다. 일 실시 예에서, 식별된 요소의 표시 위치가 왼쪽으로 음의 값을 가지도록 설정(예: left: negative value)되거나, 또는, 식별된 요소의 표시 위치가 위쪽으로 음의 값을 가지도록 설정(예: top: negative value)된 경우, 브라우저 엔진(212)은, 식별된 요소의 표시 위치가 뷰 포트 밖에 위치하는 미끼 요소인 것으로 판별할 수 있다.
[0120] 예를 들면, 브라우저 엔진(212)은, 식별된 요소의 투명도가 0(또는, 완전 투명) 이외의 값으로 설정된 경우, 식별된 요소가 미끼 요소가 아닌 것으로 판별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 식별된 요소의 투명도가 0(또는, 완전 투명)으로 설정된 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다.
[0121] 예를 들면, 브라우저 엔진(212)은, 식별된 요소가 지정된 시간 동안 표시되도록 설정된 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 식별된 요소가 지정된 시간 동안 표시된 후 제거되도록 설정된 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다. 예를 들면, 지정된 시간은, 사용자에게 광고로 인식되기 위해 필요한 시간 이하의 시간일 수 있다. 예를 들면, 지정된 시간은 사용자에게 광고로 인식되기 위해 필요한 최소한의 시간일 수 있다. 예를 들면, 브라우저 엔진(212)은, 미끼 요소인 것으로 판별된 요소의 속성(예: ID, 및 / 또는 클래스)을 저장할 수 있다. 지정된 시간 안에 식별된 요소의 생성과 소멸이 발생하는 경우, 브라우저 엔진(212)은 이를 미끼 요소인 것으로 판단하고 해당 요소의 속성(예: ID, 클래스, 및 / 또는 식별된 요소)을 저장할 수 있다.
[0122] 일 실시 예에서, 브라우저 엔진(212)은, 식별된 요소가 미끼 요소인 것으로 판별됨에 기반하여, 렌더링 엔진(213)을 통해 식별된 요소를 렌더링할 수 있다.
[0123] 예를 들면, 브라우저 엔진(212)은, 식별된 요소의 속성에 기반하여, 요청된 요소가 광고 요소인지를 판별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 식별된 요소의 속성에 따라 식별된 요소가 미끼 요소가 아닌 것으로 판별됨에 기반하여, 광고 차단 모듈(220)을 통해 식별된 요소가 광고 요소인지를 판별할 수 있다. 예를 들면, 광고 차단 모듈(220)은, 요청된 요소와 관련된 텍스트들에 기반하여, 요소가 광고 요소인지를 판별할 수 있다. 예를 들면, 광고 차단 모듈(220)은, 식별된 요소와 관련된 텍스트들에 광고 키워드(예: 특정 단어(예: "ad", "banner", "pub"), 광고에 자주 사용되는 리소스의 명칭(예: "adsbyAAA"), 및 / 또는 특정 사이트에서 사용되는 특정 리소스)가 포함됨에 기반하여, 요소가 광고 요소인 것으로 판별할 수 있다.
[0124] 일 실시 예에서, 브라우저 엔진(212)은, 식별된 요소가 광고 요소인 것으로 판별됨에 기반하여, 요소를 렌더링하지 않을 수 있다. 예를 들면, 브라우저 엔진(212)은, 식별된 요소가 광고 요소인 것으로 판별됨에 기반하여, 렌더링 엔진(213)을 통해 요소를 렌더링하지 않을 수 있다. 일 실시 예에서, 브라우저 엔진(212)은, 식별된 요소가 미끼 요소가 아니고, 및 식별된 요소가 광고 요소인 것으로 판별됨에 기반하여, 요소를 렌더링하지 않을 수 있다.
[0125] 일 실시 예에서, 브라우저 엔진(212)은, 식별된 요소가 광고 요소가 아닌 것으로 판별됨에 기반하여, 요소를 렌더링할 수 있다. 예를 들면, 브라우저 엔진(212)은, 식별된 요소가 광고 요소가 아닌 것으로 판별됨에 기반하여, 렌더링 엔진(213)을 통해 요소를 렌더링할 수 있다. 일 실시 예에서, 브라우저 엔진(212)은, 식별된 요소가 미끼 요소가 아니고, 및 식별된 요소가 광고 요소가 아닌 것으로 판별됨에 기반하여, 요소를 렌더링할 수 있다.
[0126] 도 7a는 일 실시 예에 따른, 전자 장치가 추가된 요소의 특징에 따라, 요소의 렌더링 여부를 결정하는 동작을 나타내는 흐름도이다.
[0127] 도 7a는 도 2a 내지 도 3b 및 도 6을 참조하여 설명될 수 있다. 도 7a의 동작들 710 내지 740은, 도 6의 동작 630에 포함될 수 있다.
[0128] 도 7a를 참조하면, 동작 630에서, 전자 장치(101)는, 추가된 요소의 속성을 식별할 수 있다.
[0129] 동작 710에서, 전자 장치(101)는, 추가된 요소가 미끼 요소인지를 판별할 수 있다.
[0130] 예를 들면, 전자 장치(101)는, 식별된 요소의 속성(예: 클래스, ID)들의 개수에 기반하여, 요청된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 식별된 요소의 속성(예: 클래스, ID)들 중 광고를 나타내는 속성의 개수에 기반하여, 요청된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 광고를 나타내는 속성은, 클래스가 특정 단어(예: "ad", "banner", "pub")를 포함하는 속성일 수 있다.
[0131] 예를 들면, 전자 장치(101)는, 추가된 요소의 속성(예: 클래스, ID)들 중 광고를 나타내는 속성의 개수에 기반하여, 추가된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 식별된 요소의 속성(예: 클래스, ID)들 중 광고를 나타내는 속성의 개수가 지정된 개수(예: 5 또는 30개) 이상인 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다. 예를 들면, 전자 장치(101)는, 식별된 요소의 스타일(예: 폭, 높이)에 기반하여, 추가된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 식별된 요소의 스타일(예: 폭, 높이)이 지정된 스타일을 가지는 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다. 예를 들면, 전자 장치(101)는, 추가된 요소의 표시 위치에 기반하여, 추가된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 식별된 요소의 표시 위치가 뷰 포트 밖에 위치하는 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다.
[0132] 예를 들면, 전자 장치(101)는, 요청된 요소의 길이(예: 콘텐트 렝스)가 지정된 길이를 초과하는 경우, 미끼 요소가 아닌 것으로 판별할 수 있다. 예를 들면, 요소가 요청된 요소의 길이(예: 콘텐트 렝스)가 지정된 길이 이하인 경우, 미끼 요소인 것으로 판별할 수 있다. 예를 들면, 요소가 요청된 요소의 길이(예: 콘텐트 렝스)가 -1이 아니고, 지정된 길이 이하인 경우, 미끼 요소인 것으로 판별할 수 있다.
[0133] 일 실시 예에서, 전자 장치(101)는, 추가된 요소가 미끼 요소인 것으로 판별됨에 기반하여, 동작 720을 수행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 추가된 요소가 미끼 요소가 아닌 것으로 판별됨에 기반하여, 동작 730을 수행할 수 있다.
[0134] 동작 720에서, 전자 장치(101)는, 추가된 요소를 렌더링할 수 있다. 전자 장치(101)는, 렌더링 엔진(213)을 통해 추가된 요소를 렌더링할 수 있다.
[0135] 동작 730에서, 전자 장치(101)는, 광고 요소인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 추가된 요소와 관련된 텍스트들에 기반하여, 추가된 요소가 광고 요소인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 추가된 요소와 관련된 텍스트들에 광고 키워드(예: 특정 단어(예: "ad", "banner", "pub"), 광고에 자주 사용되는 리소스의 명칭(예: "adsbyAAA"), 및 / 또는 특정 사이트에서 사용되는 특정 리소스)가 포함됨에 기반하여, 추가된 요소가 광고 요소인 것으로 판별할 수 있다.
[0136] 일 실시 예에서, 전자 장치(101)는, 추가된 요소가 광고 요소가 아닌 것으로 판별됨에 기반하여, 동작 720을 수행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 추가된 요소가 광고 요소인 것으로 판별됨에 기반하여, 동작 740을 수행할 수 있다.
[0137] 동작 740에서, 전자 장치(101)는, 추가된 요소의 렌더링을 중지할 수 있다. 일 실시 예에서, 전자 장치(101)는, 추가된 요소가 광고 요소인 것으로 판별됨에 기반하여, 요소를 렌더링하지 않을 수 있다. 예를 들면, 전자 장치(101)는, 추가된 요소가 광고 요소인 것으로 판별됨에 기반하여, 렌더링 엔진(213)을 통해 요소를 렌더링하지 않을 수 있다.
[0138] 도 7b는 일 실시 예에 따른, 전자 장치가 추가된 요소의 특징에 따라, 요소의 렌더링 여부를 결정하는 동작을 나타내는 흐름도이다.
[0139] 도 7b는 도 2a 내지 도 3b 및 도 6을 참조하여 설명될 수 있다. 도 7b의 동작들 710 내지 740은, 도 6의 동작 630에 포함될 수 있다. 도 7b의 동작들 710 내지 740은, 도 7a의 동작들 710 내지 740에 대응할 수 있다. 도 7b는 도 7a와 비교하여 동작 730이 동작 710보다 먼저 수행됨을 나타낼 수 있다.
[0140] 도 7b를 참조하면, 동작 630에서, 전자 장치(101)는, 추가된 요소의 속성을 식별할 수 있다.
[0141] 동작 730에서, 전자 장치(101)는, 광고 요소인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 추가된 요소와 관련된 텍스트들에 기반하여, 추가된 요소가 광고 요소인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 추가된 요소와 관련된 텍스트들에 광고 키워드(예: 특정 단어(예: "ad", "banner", "pub"), 광고에 자주 사용되는 리소스의 명칭(예: "adsbyAAA"), 및 / 또는 특정 사이트에서 사용되는 특정 리소스)가 포함됨에 기반하여, 추가된 요소가 광고 요소인 것으로 판별할 수 있다.
[0142] 일 실시 예에서, 전자 장치(101)는, 추가된 요소가 광고 요소가 아닌 것으로 판별됨에 기반하여, 동작 720을 수행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 추가된 요소가 광고 요소인 것으로 판별됨에 기반하여, 동작 710을 수행할 수 있다.
[0143] 동작 710에서, 전자 장치(101)는, 추가된 요소가 미끼 요소인지를 판별할 수 있다.
[0144] 예를 들면, 전자 장치(101)는, 식별된 요소의 속성(예: 클래스, ID)들의 개수에 기반하여, 요청된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 식별된 요소의 속성(예: 클래스, ID)들 중 광고를 나타내는 속성의 개수에 기반하여, 요청된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 광고를 나타내는 속성은, 클래스가 특정 단어(예: "ad", "banner", "pub")를 포함하는 속성일 수 있다.
[0145] 예를 들면, 전자 장치(101)는, 추가된 요소의 속성(예: 클래스, ID)들 중 광고를 나타내는 속성의 개수에 기반하여, 추가된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 식별된 요소의 속성(예: 클래스, ID)들 중 광고를 나타내는 속성의 개수가 지정된 개수(예: 5 또는 30개) 이상인 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다. 예를 들면, 전자 장치(101)는, 식별된 요소의 스타일(예: 폭, 높이)에 기반하여, 추가된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 식별된 요소의 스타일(예: 폭, 높이)이 지정된 스타일을 가지는 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다. 예를 들면, 전자 장치(101)는, 추가된 요소의 표시 위치에 기반하여, 추가된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 식별된 요소의 표시 위치가 뷰 포트 밖에 위치하는 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다.
[0146] 예를 들면, 전자 장치(101)는, 요청된 요소의 길이(예: 콘텐트 렝스)가 지정된 길이를 초과하는 경우, 미끼 요소가 아닌 것으로 판별할 수 있다. 예를 들면, 요소가 요청된 요소의 길이(예: 콘텐트 렝스)가 지정된 길이 이하인 경우, 미끼 요소인 것으로 판별할 수 있다. 예를 들면, 요소가 요청된 요소의 길이(예: 콘텐트 렝스)가 -1이 아니고, 지정된 길이 이하인 경우, 미끼 요소인 것으로 판별할 수 있다.
[0147] 일 실시 예에서, 전자 장치(101)는, 추가된 요소가 미끼 요소인 것으로 판별됨에 기반하여, 동작 720을 수행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 추가된 요소가 미끼 요소가 아닌 것으로 판별됨에 기반하여, 동작 740을 수행할 수 있다.
[0148] 동작 720에서, 전자 장치(101)는, 추가된 요소를 렌더링할 수 있다. 전자 장치(101)는, 렌더링 엔진(213)을 통해 추가된 요소를 렌더링할 수 있다.
[0149] 동작 740에서, 전자 장치(101)는, 추가된 요소의 렌더링을 중지할 수 있다. 일 실시 예에서, 전자 장치(101)는, 추가된 요소가 광고 요소인 것으로 판별됨에 기반하여, 요소를 렌더링하지 않을 수 있다. 예를 들면, 전자 장치(101)는, 추가된 요소가 광고 요소인 것으로 판별됨에 기반하여, 렌더링 엔진(213)을 통해 요소를 렌더링하지 않을 수 있다.
[0150] 도 8은 일 실시 예에 따른, 전자 장치가 요소 상태 요청에 따라, 보고할 요소의 상태를 결정하는 동작을 나타내는 흐름도이다.
[0151] 도 8은 도 2a 내지 도 3b를 참조하여 설명될 수 있다.
[0152] 도 8을 참조하면, 동작 810에서, 스크립트 엔진(215)은, 브라우저 엔진(212)에게 요소의 상태를 요청할 수 있다. 일 실시 예에서, 프로세서(120)는, 스크립트 엔진(215)을 통해, 브라우저 엔진(212)에게 요소의 상태를 요청할 수 있다. 예를 들면, 스크립트 엔진(215)은, 스크립트를 실행함에 기반하여, 브라우저 엔진(212)에게 요소의 상태를 요청(예: Get element state)할 수 있다. 예를 들면, 스크립트 엔진(215)은, 스크립트를 실행함에 기반하여, 브라우저 엔진(212)에게 요소의 표시 상태를 요청할 수 있다.
[0153] 동작 820에서, 브라우저 엔진(212)은, 요소의 상태를 식별할 수 있다. 일 실시 예에서, 프로세서(120)는, 브라우저 엔진(212)을 통해, 요소의 상태를 식별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 요소의 속성 값에 기반하여, 요소의 상태를 식별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 요소의 속성 값에 기반하여, 요소의 표시 상태를 식별할 수 있다.
[0154] 동작 830에서, 브라우저 엔진(212)은, 식별된 요소의 상태에 기반하여, 스크립트 엔진(215)에 전달할 상태를 식별할 수 있다. 일 실시 예에서, 프로세서(120)는, 브라우저 엔진(212)을 통해, 식별된 요소의 상태에 기반하여, 스크립트 엔진(215)에 전달할 상태를 식별할 수 있다. 브라우저 엔진(212)은, 식별된 요소의 표시 상태에 기반하여, 스크립트 엔진(215)에 전달할 상태를 식별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 요소의 속성 값에 기반하여, 요소가 숨김 처리된 상태(또는, 비가시 상태)인 것으로 판별됨에 기반하여, 거짓 상태를 스크립트 엔진(215)에 전달할 상태로서 식별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 요소가 광고 요소로 판단되고, 요소가 숨김 처리된 상태(또는, 비가시 상태)인 것으로 판별됨에 기반하여, 거짓 상태를 스크립트 엔진(215)에 전달할 상태로서 식별할 수 있다. 일 실시 예에서, 숨김 처리된 상태(또는, 비가시 상태)는, 식별된 요소가 표시 중지된 상태임(예: display: none)을 포함할 수 있다. 일 실시 예에서, 숨김 처리된 상태(또는, 비가시 상태)는, 식별된 요소의 투명도가 지정된 투명도를 가지는 상태임을 포함할 수 있다. 일 실시 예에서, 숨김 처리된 상태(또는, 비가시 상태)는, 식별된 요소의 스타일(예: 폭 및 높이)이 지정된 스타일을 가지는 상태임을 포함할 수 있다. 일 실시 예에서, 지정된 스타일은, 폭이 지정된 크기 이하의 값(예: 1 픽셀), 및 / 또는 높이가 지정된 크기 이하의 값(예: 1 픽셀)을 가지는 스타일일 수 있다. 일 실시 예에서, 숨김 처리된 상태(또는, 비가시 상태)는, 요소가 나타내는 콘텐트(또는, 광고 콘텐트)가 웹 페이지에서 숨김 처리된 상태(또는, 비가시 상태)임을 나타낼 수 있다.
[0155] 예를 들면, 브라우저 엔진(212)은, 상태 요청의 대상인 요소가 광고 요소로 식별되고, 요소가 표시 중지된 상태임(예: display: none)에 기반하여, 거짓 상태를 스크립트 엔진(215)에 전달할 상태로서 식별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 상태 요청의 대상인 요소가 광고 요소로 식별되고, 요소의 투명도가 지정된 투명도를 가지는 상태임에 기반하여, 거짓 상태를 스크립트 엔진(215)에 전달할 상태로서 식별할 수 있다. 예를 들면, 브라우저 엔진(212)은, 상태 요청의 대상인 요소가 광고 요소로 식별되고, 요소의 스타일(예: 폭 및 높이)이 지정된 스타일을 가지는 상태임에 기반하여, 거짓 상태를 스크립트 엔진(215)에 전달할 상태로서 식별할 수 있다.
[0156] 예를 들면, 브라우저 엔진(212)은, 상태 요청의 대상인 요소의 부모 노드(예: 렌더 트리 상의 부모 노드)(또는, 자손 노드)가 정의되지 않고, 요소가 숨김 처리된 상태임에 기반하여, 거짓 상태를 스크립트 엔진(215)에 전달할 상태로서 식별할 수 있다. 예를 들면, 거짓 상태는, 렌더 트리가 아닌 돔에 기반한 트리 상의 요소의 부모 노드의 값을 나타낼 수 있다.
[0157] 예를 들면, 브라우저 엔진(212)은, 요소가 광고 요소가 아닌 것으로 판별됨에 기반하여, 진실 상태를 스크립트 엔진(215)에 전달할 상태로서 식별할 수 있다.
[0158] 동작 840에서, 브라우저 엔진(212)은, 스크립트 엔진(215)에게 식별된 요소의 상태를 전달할 수 있다. 일 실시 예에서, 프로세서(120)는, 브라우저 엔진(212)을 통해, 스크립트 엔진(215)에게 식별된 요소의 상태를 전달할 수 있다. 예를 들면, 식별된 요소의 상태는, 요소의 진실 상태, 또는 거짓 상태를 나타낼 수 있다. 예를 들면, 브라우저 엔진(212)은, 상태가 요청된 요소가 광고 요소(또는, 광고 요소로 판단되어, 비가시 상태로 전환된 요소)인 것으로 판별됨에 따라, 거짓 상태를 스크립트 엔진(215)에게 전달할 수 있다. 예를 들면, 브라우저 엔진(212)은, 상태가 요청된 요소가 광고 요소가 아닌 것으로 판별됨에 따라, 진실 상태를 스크립트 엔진(215)에게 전달할 수 있다.
[0159] 동작 850에서, 스크립트 엔진(215)은, 요소 상태에 기반하여, 광고 차단 여부를 식별할 수 있다. 일 실시 예에서, 프로세서(120)는, 스크립트 엔진(215)을 통해, 요소 상태에 기반하여, 광고 차단 여부를 식별할 수 있다. 예를 들면, 스크립트 엔진(215)은, 아래 표 4, 또는 표 5와 같은 스크립트를 실행함에 기반하여, 광고 차단 여부를 식별할 수 있다.
[0160]
[0161] 예를 들면, 스크립트 엔진(215)은, 표 4에 의해 지시되는 스크립트를 실행함에 기반하여, 요소의 부모 노드가 정의되지 않거나(예: null == d.getElementBy(a[b]).offsetParent), 또는, 요소가 숨김 상태인 경우(예: "none" == d.getStyle(d.getElementBy(a[b])).display), 브라우저(210)에서 광고 차단(예: 광고 차단 모듈(220)에 의한 광고 차단)이 실행중인 것으로 판별할 수 있다.
[0162]
[0163] 예를 들면, 스크립트 엔진(215)은, 표 5에 의해 지시되는 스크립트를 실행함에 기반하여, 요소의 표시 상태가 논(none)이거나, 또는, 높이가 1(예: height = 1)인 경우, 브라우저(210)에서 광고 차단(예: 광고 차단 모듈(220)에 의한 광고 차단)이 실행중인 것으로 판별할 수 있다.
[0164] 동작 860에서, 스크립트 엔진(215)은, 광고 차단 여부에 기반하여, 광고 차단을 막기 위한 기능을 실행할 수 있다. 일 실시 예에서, 프로세서(120)는, 스크립트 엔진(215)을 통해, 광고 차단 여부에 기반하여, 광고 차단을 막기 위한 기능을 실행할 수 있다. 예를 들면, 스크립트 엔진(215)은, 브라우저(210)에서 광고 차단(예: 광고 차단 모듈(220)에 의한 광고 차단)이 실행중인 것으로 판별됨에 기반하여, 광고 차단을 막기 위한 기능을 실행할 수 있다.
[0165] 예를 들면, 스크립트 엔진(215)은, 광고 차단 여부에 기반하여, 광고 차단을 요청하는 메시지를 디스플레이(260) 상에 표시할 수 있다. 예를 들면, 광고 차단을 요청하는 메시지는, 사용자의 메인 콘텐트의 정상적인 이용을 어렵게하도록, 메인 콘텐트의 적어도 일부를 가리는 위치에 표시될 수 있다. 일 실시 예에서, 메인 콘텐트의 적어도 일부를 가리는 위치는, 뷰 포트 내의 고정된 위치, 특정 콘텐트(예: 동영상)가 위치한 영역, 및 / 또는 전체 화면일 수 있다. 예를 들면, 스크립트 엔진(215)은, 브라우저(210)에서 광고 차단(예: 광고 차단 모듈(220)에 의한 광고 차단)이 실행중인 것으로 판별됨에 기반하여, 도 3b의 메시지(340)를 디스플레이(260) 상에 표시할 수 있다. 예를 들면, 스크립트 엔진(215)은, 브라우저(210)에서 광고 차단(예: 광고 차단 모듈(220)에 의한 광고 차단)이 실행 중이 아닌 것으로 판별됨에 기반하여, 광고 차단을 막기 위한 기능을 실행하지 않을 수 있다. 예를 들면, 스크립트 엔진(215)은, 브라우저(210)에서 광고 차단(예: 광고 차단 모듈(220)에 의한 광고 차단)이 실행 중이 아닌 것으로 판별됨에 기반하여, 도 3b의 메시지(340)를 디스플레이(260) 상에 표시하지 않을 수 있다.
[0166] 하지만, 광고 차단 모듈(220)이 실행중임에도, 브라우저 엔진(212)이 광고 요소의 상태 값을 거짓 상태로 스크립트 엔진(215)에 보고함으로써, 스크립트 엔진(215)은, 광고가 차단되지 않은 것으로 판별할 수 있다. 이에 따라, 스크립트 엔진(215)은, 광고 차단을 막기 위한 기능을 실행하지 않을 수 있다.
[0167] 도 9는 일 실시 예에 따른, 전자 장치가 요소가 렌더링 중지 상태인지에 따라, 보고할 요소의 상태를 결정하는 동작을 나타내는 흐름도이다.
[0168] 도 9는 도 2a 내지 도 3b 및 도 8을 참조하여 설명될 수 있다. 도 9의 동작들 910 내지 930은, 도 8의 동작 830에 포함될 수 있다.
[0169] 도 9를 참조하면, 동작 820에서, 전자 장치(101)는, 요소의 상태를 식별할 수 있다. 예를 들면, 전자 장치(101)는, 요소의 속성 값에 기반하여, 요소의 상태를 식별할 수 있다. 예를 들면, 전자 장치(101)는, 요소의 속성 값에 기반하여, 요소의 표시 상태를 식별할 수 있다.
[0170] 동작 910에서, 전자 장치(101)는, 요소가 광고 차단에 의해 숨김 처리 상태인지를 판별할 수 있다. 일 실시 예에서, 숨김 처리 상태는, 식별된 요소가 표시 중지된 상태임(예: display: none)을 포함할 수 있다. 일 실시 예에서, 숨김 처리 상태는, 식별된 요소의 투명도가 지정된 투명도를 가지는 상태임을 포함할 수 있다. 일 실시 예에서, 숨김 처리 상태는, 식별된 요소의 스타일(예: 폭 및 높이)이 지정된 스타일을 가지는 상태임을 포함할 수 있다. 일 실시 예에서, 지정된 스타일은, 폭이 지정된 크기 이하의 값(예: 1 픽셀), 및 / 또는 높이가 지정된 크기 이하의 값(예: 1 픽셀)을 가지는 스타일일 수 있다.
[0171] 일 실시 예에서, 전자 장치(101)는, 요소가 숨김 처리 상태인 것으로 판별됨에 기반하여, 동작 920을 수행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 요소가 숨김 처리 상태가 아닌 것으로 판별됨에 기반하여, 동작 930을 수행할 수 있다.
[0172] 동작 920에서, 전자 장치(101)는, 스크립트 엔진(215)에 전달할 상태를 지정된 제1 상태(예: 거짓 상태)로 식별할 수 있다. 예를 들면, 지정된 제1 상태는, 요소의 실제 상태와 다른 상태일 수 있다. 예를 들면, 요소가 숨김 처리 상태인 경우, 지정된 제1 상태는 요소가 표시 상태인 것을 나타낼 수 있다. 예를 들면, 지정된 제1 상태는, 거짓 상태일 수 있다. 예를 들면, 요소가 표시 중지된 상태임(예: display: none)에 기반하여, 지정된 제1 상태는, 요소가 표시되지 않은 상태를 나타낼 수 있다. 예를 들면, 요소의 투명도가 지정된 투명도를 가지는 상태임에 기반하여, 지정된 제1 상태는, 요소가 지정된 투명도 이상의 값을 가지는 상태를 나타낼 수 있다. 예를 들면, 요소의 스타일(예: 폭 및 높이)이 지정된 스타일을 가지는 상태임에 기반하여, 지정된 제1 상태는, 요소의 스타일(예: 폭 및 높이)이 지정된 픽셀 값들 이상의 픽셀 값을 가지는 상태를 나타낼 수 있다.
[0173] 동작 930에서, 전자 장치(101)는, 스크립트 엔진(215)에 전달할 상태를 지정된 제2 상태(예: 진실 상태)로 식별할 수 있다. 전자 장치(101)는, 요소의 제2 상태를 스크립트 엔진(215)에 전달할 상태로 식별할 수 있다.
[0174] 동작 840에서, 전자 장치(101)는, 식별된 요소의 상태를 전달할 수 있다. 예를 들면, 전자 장치(101)는, 동작 920에서 식별된 제1 상태를 요소의 상태로서 스크립트 엔진(215)에 전달할 수 있다. 예를 들면, 전자 장치(101)는, 동작 930에서 식별된 제2 상태를 요소의 상태로서 스크립트 엔진(215)에 전달할 수 있다.
[0175] 도 10은 일 실시 예에 따른, 전자 장치가 웹 페이지에서 식별된 광고 요소들의 개수에 따라, 광고 요소의 숨김 여부를 결정하는 동작을 나타내는 흐름도이다.
[0176] 도 10은 도 2a 내지 도 3b를 참조하여 설명될 수 있다. 도 10의 동작들은 도 7a 또는 도 7b의 동작 740을 대체할 수 있다.
[0177] 도 10을 참조하면, 동작 1010에서, 전자 장치(101)는, 광고 요소의 속성의 개수를 식별할 수 있다. 예를 들면, 전자 장치(101)는, 광고 차단 모듈(220)을 이용하여 DOM에 기반한 트리에 포함된 요소들 중 광고 요소로 판단된 요소들의 속성의 개수를 식별할 수 있다.
[0178] 동작 1020에서, 전자 장치(101)는, 광고 요소의 속성의 개수가 지정된 개수를 초과하는지를 판별할 수 있다. 실시 예에 따라, 전자 장치(101)는, 광고 요소의 속성의 개수가 DOM에 기반한 트리에 포함된 요소들의 지정된 비율에 따른 개수를 초과하는지를 판별할 수 있다. 일 실시 예에서, 지정된 개수(또는, 지정된 비율)는, 웹 페이지마다 설정될 수 있다.
[0179] 일 실시 예에서, 전자 장치(101)는, 광고 요소의 속성의 개수가 지정된 개수를 초과하지 않는 것으로 판별됨에 기반하여, 동작 1030을 수행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 광고 요소의 속성의 개수가 지정된 개수를 초과하는 것으로 판별됨에 기반하여, 동작 1040을 수행할 수 있다.
[0180] 동작 1030에서, 전자 장치(101)는, 광고 요소의 상태가 지정된 상태인지를 판별할 수 있다. 예를 들면, 지정된 상태는 숨김 처리된 상태일 수 있다. 예를 들면, 지정된 상태는 광고 요소가 표시 중지된 상태임(예: display: none)을 포함할 수 있다. 일 실시 예에서, 지정된 상태는 광고 요소의 투명도가 지정된 투명도를 가지는 상태임을 포함할 수 있다. 일 실시 예에서, 지정된 상태는 광고 요소의 스타일(예: 폭 및 높이)이 지정된 스타일을 가지는 상태임을 포함할 수 있다. 일 실시 예에서, 지정된 스타일은, 폭이 지정된 크기 이하의 값(예: 1 픽셀), 및 / 또는 높이가 지정된 크기 이하의 값(예: 1 픽셀)을 가지는 스타일일 수 있다.
[0181] 일 실시 예에서, 전자 장치(101)는, 광고 요소의 상태가 지정된 상태인 것으로 판별됨에 기반하여, 동작 1040을 수행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 광고 요소의 상태가 지정된 상태가 아닌 것으로 판별됨에 기반하여, 동작 1050을 수행할 수 있다.
[0182] 동작 1040에서, 전자 장치(101)는, 광고 요소의 숨김 처리를 중지할 수 있다. 예를 들면, 광고 요소의 숨김 처리를 중지함은, 전자 장치(101)가 광고 요소를 광고 요소의 속성 값에 기반하여, 렌더링함을 포함할 수 있다. 예를 들면, 광고 요소의 숨김 처리를 중지함은, 전자 장치(101)가 광고 요소를 디스플레이(260)에 표시함을 포함할 수 있다. 예를 들면, 광고 요소의 숨김 처리를 중지함은, 전자 장치(101)가 비가시 상태의 광고 요소에 따른 광고 콘텐트가 디스플레이(260)에서 가시 상태로 전환됨을 포함할 수 있다.
[0183] 동작 1050에서, 전자 장치(101)는, 광고 요소의 숨김 처리를 수행할 수 있다. 예를 들면, 광고 요소의 숨김 처리를 수행함은, 전자 장치(101)가 광고 요소를 렌더링하지 않음을 포함할 수 있다. 예를 들면, 광고 요소의 숨김 처리를 수행함은, 광고 요소를 표시 중지된 상태(예: display: none)로 설정함을 포함할 수 있다. 예를 들면, 광고 요소의 숨김 처리를 수행함은, 광고 요소의 투명도를 지정된 투명도를 가지는 상태로 설정함을 포함할 수 있다. 예를 들면, 광고 요소의 숨김 처리를 수행함은, 광고 요소의 스타일(예: 폭 및 높이)을 지정된 스타일을 가지는 상태로 설정함을 포함할 수 있다.
[0184] 도 11은 일 실시 예에 따른, 전자 장치가 정보 요청된 요소가 광고 요소인지에 따라, 보고할 요소의 상태를 결정하는 동작을 나타내는 흐름도이다.
[0185] 도 11은 도 2a 내지 도 3b를 참조하여 설명될 수 있다. 도 1의 동작들 1110 내지 1140은, 도 8의 동작들, 820, 830, 및 840에 포함될 수 있다.
[0186] 도 11을 참조하면, 동작 1110에서, 전자 장치(101)는, 요소 상태에 대한 요청을 식별할 수 있다. 예를 들면, 전자 장치(101)는, 스크립트 엔진(215)을 통해 스크립트를 실행함에 기반하여, 요소 상태에 대한 요청을 식별할 수 있다.
[0187] 동작 1120에서, 전자 장치(101)는, 요청된 요소가 광고 요소인지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 요소의 속성 값에 기반하여, 요청된 요소가 광고 요소로 식별된 요소인지를 판별할 수 있다.
[0188] 일 실시 예에서, 전자 장치(101)는, 요청된 요소가 광고 요소로 식별된 것으로 판별됨에 기반하여, 동작 1130을 수행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 요청된 요소가 광고 요소 이외의 요소로 식별된 것으로 판별됨에 기반하여, 동작 1140을 수행할 수 있다.
[0189] 동작 1130에서, 전자 장치(101)는, 요소의 상태와 다른 상태를 전달할 수 있다. 예를 들면, 전자 장치(101)는, 광고 요소인 요소의 상태와 다른 상태를 스크립트 엔진(215)에 전달할 수 있다. 예를 들면, 광고 요소인 요소의 상태와 다른 상태는 요소의 실제 상태와 다른 상태일 수 있다. 예를 들면, 광고 요소인 요소의 상태와 다른 상태는 거짓 상태일 수 있다.
[0190] 동작 1140에서, 전자 장치(101)는, 요소의 상태를 전달할 수 있다. 전자 장치(101)는, 요소의 실제 상태를 스크립트 엔진(215)에 전달할 수 있다.
[0191] 도 12는 일 실시 예에 따른, 전자 장치가 광고 차단 해제 요청에 따라, 웹 페이지에 대한 광고 차단 정책을 결정하는 동작을 나타내는 흐름도이다.
[0192] 도 12는 도 2a 내지 도 3b를 참조하여 설명될 수 있다.
[0193] 도 12을 참조하면, 동작 1210에서, 전자 장치(101)는, 광고 차단 해제를 위한 요청을 식별할 수 있다. 예를 들면, 전자 장치(101)는, 스크립트 엔진(215)을 통해 스크립트를 실행함에 기반하여, 광고 차단 해제를 위한 요청을 식별할 수 있다. 광고 차단 해제를 위한 요청은, 도 3b의 메시지(340)를 디스플레이(260) 상에 표시하기 위한 요청일 수 있다.
[0194] 일 실시 예에서, 전자 장치(101)는, 웹 페이지의 메인 콘텐트(320)를 오버레이하는(또는, 가리는) 요소를 표시하기 위한 요청을 광고 차단 해제를 위한 요청으로 식별할 수 있다. 예를 들면, 메인 콘텐트(320)를 오버레이하는(또는, 가리는) 요소는, 고정된 위치를 가질 수 있다. 예를 들면, 메인 콘텐트(320)를 오버레이하는(또는, 가리는) 요소는, 웹 페이지 내의 레이어들 중 가장 앞선 레이어에 배치될 수 있다.
[0195] 일 실시 예에서, 전자 장치(101)는, 웹 페이지 내에 표시되는 메시지(340)에 기반하여, 광고 차단 해제를 위한 요청을 식별할 수 있다. 예를 들면, 전자 장치(101)는, 메시지(340)에 포함된 콘텐츠(또는, 텍스트)에 지정된 문구가 포함됨에 기반하여, 메시지(340)의 표시를 위한 요청을 광고 차단 해제를 위한 요청을 식별할 수 있다. 예를 들면, 지정된 문구는 광고 자체를 나타내는 문구(예: "Adblock", "allow ad"), 광고 차단의 해제를 요청하는 문구(예: "disable", "turn off"), 광고 허용을 요청하는 문구(예: "enable", "turn on", "allow"), 및 / 또는 광고의 필요성을 설명하는 문구(예: "support", "free", "fund")를 포함할 수 있다.
[0196] 일 실시 예에서, 전자 장치(101)는, 웹 페이지 내에서 광고 차단 모듈(220)을 오프하기 위한 입력에 기반하여, 광고 차단 해제를 위한 요청을 식별할 수 있다. 예를 들면, 전자 장치(101)는, 웹 페이지를 방문할 때, 웹 페이지 내에서 광고 차단 모듈(220)을 오프하기 위한 입력을 수신함에 기반하여, 광고 차단 해제를 위한 요청이 발생된 것으로 식별할 수 있다.
[0197] 동작 1220에서, 전자 장치(101)는, 광고 차단 해제를 위한 요청의 횟수를 식별할 수 있다. 일 실시 예에서, 전자 장치(101)는, 웹 페이지마다 광고 차단 해제를 위한 요청의 횟수를 식별할 수 있다.
[0198] 예를 들면, 전자 장치(101)는, 웹 페이지에서 광고 차단 해제 요청이 식별됨에 기반하여, 자료 저장소(217)에 저장된 데이터에 기반하여, 웹 페이지에서 광고 차단 해제 요청이 발생된 횟수를 식별할 수 있다. 예를 들면, 자료 저장소(217)는, 키-밸류 구조의 데이터를 저장할 수 있다. 예를 들면, 광고 차단 해제 요청이 발생된 횟수와 관련하여, 키는 웹 페이지의 도메인(또는, URL 호스트 값, 전체(full) URL)이고, 밸류는, 광고 차단 해제 요청이 발생된 횟수일 수 있다. 일 실시 예에서, 전자 장치(101)는, 광고차단 해제가 감지될 때마다, 광고 차단 해제 요청이 발생된 횟수를 증가시킬 수 있다.
[0199] 동작 1230에서, 전자 장치(101)는, 광고 차단 해제를 위한 요청의 횟수에 대응하는 광고 차단 정책을 식별할 수 있다. 예를 들면, 광고 차단 정책은 복수의 단계들로 구분되는 광고 차단 기준들을 포함할 수 있다. 예를 들면, 복수의 단계들 각각에 대한 광고 차단 해제를 위한 요청의 횟수의 범위들에 기반하여, 전자 장치(101)는, 광고 차단 해제를 위한 요청의 횟수에 대응하는 광고 차단 정책을 식별할 수 있다.
[0200] 예를 들면, 가장 높은 단계의 광고 차단 기준에 의해, 전자 장치(101)는 웹 페이지 내의 모든 광고를 차단할 수 있다. 예를 들면, 웹 페이지 내의 모든 광고를 차단함은, 웹 페이지 내의 광고 요소들이 모두 숨김 처리됨을 포함할 수 있다. 예를 들면, 다음으로 높은 단계의 광고 차단 기준에 의해, 전자 장치(101)는 웹 페이지 내의 광고 요소들 중 일부 광고 요소의 숨김 처리를 중지할 수 있다. 예를 들면, 세 번째로 높은 단계의 광고 차단 기준에 의해, 전자 장치(101)는 웹 페이지 내의 광고 리소스들 중 일부 광고 리소스에 대한 요청을 차단하지 않을 수 있다. 예를 들면, 네 번째로 높은 단계의 광고 차단 기준에 의해, 전자 장치(101)는 웹 페이지 내의 모든 광고 리소스들에 대한 요청을 차단하지 않을 수 있다. 예를 들면, 가장 낮은 단계의 광고 차단 기준에 의해, 전자 장치(101)는 웹 페이지 내의 광고 차단을 중지할 수 있다.
[0201] 동작 1240에서, 전자 장치(101)는, 식별된 광고 차단 정책에 따라 광고 차단을 수행할 수 있다.
[0202] 도 13은 일 실시 예에 따른, 전자 장치가 광고 차단 해제 요청 횟수에 따라, 웹 페이지에 대한 광고 차단 정책을 결정하는 동작을 나타내는 흐름도이다.
[0203] 도 13은 도 2a 내지 도 3b를 참조하여 설명될 수 있다. 도 13의 동작들 1310, 1315, 1320, 1325, 1330, 1335, 1340, 1345, 및 1350은, 도 12의 동작들 1220, 1230 및 1240에 포함될 수 있다.
[0204] 도 13을 참조하면, 동작 1220에서, 전자 장치(101)는, 광고 차단 해제를 위한 요청의 횟수를 식별할 수 있다. 일 실시 예에서, 전자 장치(101)는, 자료 저장소(217)에서 웹 페이지에 대응하는 광고 차단 해제를 위한 요청의 횟수를 식별할 수 있다.
[0205] 동작 1310에서, 전자 장치(101)는, 광고 차단 해제를 위한 요청의 횟수가 제1 차단 횟수를 초과하는지를 판별할 수 있다. 일 실시 예에서, 제1 차단 횟수는 사전에 결정된 값일 수 있다.
[0206] 동작 1315에서, 전자 장치(101)는, 웹 페이지 내의 모든 광고를 차단할 수 있다. 예를 들면, 웹 페이지 내의 모든 광고를 차단함은, 웹 페이지 내의 광고 요소들이 모두 숨김 처리됨을 포함할 수 있다.
[0207] 동작 1320에서, 전자 장치(101)는, 광고 차단 해제를 위한 요청의 횟수가 제2 차단 횟수를 초과하는지를 판별할 수 있다. 일 실시 예에서, 제2 차단 횟수는 사전에 결정된 값일 수 있다. 일 실시 예에서, 제2 차단 횟수는 제1 차단 횟수보다 높을 수 있다.
[0208] 동작 1325에서, 전자 장치(101)는, 웹 페이지 내의 광고 요소들 중 일부 광고 요소의 숨김 처리를 중지할 수 있다. 일 실시 예에서, 일부 광고 요소는, 뷰 포트 내의 지정된 위치(예: 중심 위치)(예: 사용자의 시선 방향)에 위치하도록 렌더링되는 요소일 수 있다.
[0209] 동작 1330에서, 전자 장치(101)는, 광고 차단 해제를 위한 요청의 횟수가 제3 차단 횟수를 초과하는지를 판별할 수 있다. 일 실시 예에서, 제3 차단 횟수는 사전에 결정된 값일 수 있다. 일 실시 예에서, 제3 차단 횟수는 제2 차단 횟수보다 높을 수 있다.
[0210] 동작 1335에서, 전자 장치(101)는, 웹 페이지 내의 광고 리소스들 중 일부 광고 리소스에 대한 요청의 차단을 해제할 수 있다. 일 실시 예에서, 일부 광고 리소스는, 뷰 포트 내의 지정된 위치(예: 중심 위치)(예: 사용자의 시선 방향)에 위치하도록 렌더링되는 리소스일 수 있다.
[0211] 동작 1340에서, 전자 장치(101)는, 광고 차단 해제를 위한 요청의 횟수가 제4 차단 횟수를 초과하는지를 판별할 수 있다. 일 실시 예에서, 제4 차단 횟수는 사전에 결정된 값일 수 있다. 일 실시 예에서, 제4 차단 횟수는 제3 차단 횟수보다 높을 수 있다.
[0212] 동작 1345에서, 전자 장치(101)는, 웹 페이지 내의 모든 광고 리소스들에 대한 요청의 차단을 해제할 수 있다. 이에 따라, 전자 장치(101)가 웹 페이지를 다음에 방문할 시, 모든 광고 리소스들에 대한 요청이 처리될 수 있다.
[0213] 동작 1350에서, 전자 장치(101)는, 광고 차단을 중지할 수 있다. 예를 들면, 전자 장치(101)는, 웹 페이지 내의 모든 요소를 표시할 수 있다.
[0214] 도 14는 일 실시 예에 따른, 전자 장치의 광고 차단 해제 메시지의 발생을 감소시키기 위한 동작을 나타내는 흐름도이다.
[0215] 도 14는 도 2a 내지 도 3b를 참조하여 설명될 수 있다.
[0216] 도 14에서, 스크립트(1401)는, 스크립트 엔진(215)을 통해 실행되는 프로세스일 수 있다. 도 14에서 서버(1405)는, 서버들(201, 203, 205) 중 하나일 수 있다. 도 14에서, 브라우저(210)는, 스크립트(1401)(또는, 스크립트 엔진(215))을 제외한 브라우저(210)의 구성 요소들을 지칭할 수 있다.
[0217] 도 14를 참조하면, 동작 1410에서, 스크립트(1401)는, 리소스를 요청할 수 있다. 예를 들면, 스크립트(1401)는, 리소스를 요청하기 위한 객체(예: request, XMLHttpRequest)를 생성하고, 생성된 객체를 요청하기 위한 메소드(예: fetch, open send, get, post)를 통해 브라우저 엔진(212)에게 리소스를 요청할 수 있다.
[0218] 동작 1415에서, 브라우저(210)는, 요청된 리소스의 유형을 식별할 수 있다.
[0219] 일 실시 예에서, 브라우저(210)는, 식별된 리소스의 유형에 기반하여, 요청된 리소스가 미끼 리소스인지를 판별할 수 있다. 일 실시 예에서, 브라우저(210)는, 요청된 리소스가 미끼 리소스인 것으로 판별됨에 기반하여, 동작 1421을 수행할 수 있다.
[0220] 일 실시 예에서, 브라우저(210)는, 식별된 리소스의 유형에 따라 요청된 리소스가 미끼 리소스가 아닌 것으로 판별됨에 기반하여, 광고 차단 모듈(220)을 통해 요청된 리소스가 광고 리소스인지를 판별할 수 있다. 일 실시 예에서, 브라우저(210)는, 요청된 리소스가 광고 리소스인 것으로 판별됨에 기반하여, 동작 1423을 수행할 수 있다.
[0221] 동작 1421에서, 브라우저(210)는, 서버(1405)에게 리소스를 요청할 수 있다.
[0222] 동작 1423에서, 브라우저(210)는, 스크립트(1401)에게 성공 이벤트를 전달할 수 있다. 예를 들면, 브라우저(210)는, 요청된 리소스가 광고 리소스인 것으로 판별됨에 따라, 거짓 결과를 포함하는 응답을 스크립트(1401)에게 전달할 수 있다. 예를 들면, 거짓 결과를 포함하는 응답은, 서버(1405)에게 리소스를 요청하지 않음에도 불구하고, 서버(1405)로부터 요청된 리소스가 수신됨을 나타낼 수 있다.
[0223] 동작 1425에서, 서버(1405)는, 스크립트(1401)에게 리소스를 전달할 수 있다. 예를 들면, 서버(1405)는, 브라우저(210)를 통해 스크립트(1401)에게 리소스를 전달할 수 있다.
[0224] 동작 1427에서, 스크립트(1401)는, 광고 차단 해제 요청 여부를 결정할 수 있다. 예를 들면, 스크립트(1401)는, 리소스 요청에 대한 응답에 기반하여, 광고 차단 해제 요청 여부를 결정할 수 있다. 일 실시 예에서, 동작 1423에 따른 거짓 결과가 스크립트(1401)로 전달됨에 따라, 스크립트(1401)는, 광고 차단 해제 요청을 나타내는 메시지를 표시하지 않는 것으로 결정할 수 있다.
[0225] 동작 1431에서, 브라우저(210)는, 요소의 속성 값을 결정할 수 있다. 전자 장치(101)는, 동작 1423에 따라 서버(1405)로부터 수신하지 않은 요소에 대한 속성 값을 설정할 수 있다. 예를 들면, 전자 장치(101)는, 동작 1423에 따라 서버(1405)로부터 수신하지 않은 요소에 대한 윈도우의 속성 값을 임의로 설정할 수 있다.
[0226] 동작 1433에서, 스크립트(1401)는, 브라우저(210)에게 요소의 속성 값을 요청할 수 있다. 스크립트(1401)는, 동작 1423에 따라 거짓 결과가 전달된 요소에 대한 속성 값을 요청할 수 있다.
[0227] 동작 1435에서, 브라우저(210)는, 동작 1431에서, 설정된 요소의 속성 값을 전달할 수 있다.
[0228] 동작 1437에서, 스크립트(1401)는, 광고 차단 해제 요청 여부를 결정할 수 있다. 예를 들면, 스크립트(1401)는, 요소의 속성 값에 기반하여, 광고 차단 해제 요청 여부를 결정할 수 있다. 일 실시 예에서, 동작 1435에 따른 임의로 설정된 요소의 속성 값이 스크립트(1401)로 전달됨에 따라, 스크립트(1401)는, 광고 차단 해제 요청을 나타내는 메시지를 표시하지 않는 것으로 결정할 수 있다.
[0229] 동작 1441에서, 스크립트(1401)는, 요소를 추가할 수 있다. 예를 들면, 스크립트(1401)는, 요소 노드에 대한 속성 노드에 요소의 (로컬) 주소를 기재함으로써, 요소를 추가할 수 있다.
[0230] 동작 1445에서, 브라우저(210)는, 추가된 요소를 구문 분석할 수 있다. 일 실시 예에서, 구문 분석은, 웹 페이지를 위한 데이터에 대한 토큰화 및 트리 생성을 포함할 수 있다. 일 실시 예에서, 토큰화는, 웹 페이지를 위한 데이터에 포함된 요소들을 태그에 기반하여 구분하기 위한 동작일 수 있다.
[0231] 일 실시 예에서, 브라우저(210)는, 추가된 요소의 속성을 식별할 수 있다. 일 실시 예에서, 브라우저(210)는, 식별된 요소의 속성에 기반하여, 요소의 렌더링을 처리할 수 있다. 예를 들면, 브라우저(210)는, 식별된 요소의 속성에 기반하여, 요청된 요소가 미끼 요소인지를 판별할 수 있다. 예를 들면, 브라우저(210)는, 요청된 요소가 미끼 요소인지에 대한 판별 결과에 기반하여, 요청된 요소가 광고 요소인지를 결정할 수 있다.
[0232] 예를 들면, 브라우저(210)는, 식별된 요소의 클래스의 개수가 지정된 개수(예: 5 또는 30개) 이상인 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다. 예를 들면, 브라우저(210)는, 식별된 요소의 스타일(예: 폭, 높이)이 지정된 스타일을 가지는 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다. 예를 들면, 브라우저(210)는, 식별된 요소의 표시 위치가 뷰 포트 밖에 위치하는 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다. 예를 들면, 브라우저(210)는, 식별된 요소의 투명도가 0(또는, 완전 투명)으로 설정된 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다. 예를 들면, 브라우저(210)는, 식별된 요소가 지정된 시간 동안 표시되도록 설정된 경우, 식별된 요소가 미끼 요소인 것으로 판별할 수 있다. 일 실시 예에서, 브라우저(210)는, 식별된 요소가 미끼 요소인 것으로 판별됨에 기반하여, 렌더링 엔진(213)을 통해 식별된 요소를 렌더링할 수 있다.
[0233] 예를 들면, 브라우저(210)는, 식별된 요소의 속성에 따라 식별된 요소가 미끼 요소가 아닌 것으로 판별됨에 기반하여, 광고 차단 모듈(220)을 통해 식별된 요소가 광고 요소인지를 판별할 수 있다. 예를 들면, 광고 차단 모듈(220)은, 요청된 요소의 URL에 포함된 텍스트들에 기반하여, 요소가 광고 요소인지를 판별할 수 있다. 예를 들면, 광고 차단 모듈(220)은, 식별된 요소의 URL에 포함된 텍스트들에 광고 키워드(예: "ad", "banner")가 포함됨에 기반하여, 요소가 광고 요소인 것으로 판별할 수 있다.
[0234] 일 실시 예에서, 브라우저(210)는, 식별된 요소가 광고 요소인 것으로 판별됨에 기반하여, 요소를 렌더링하지 않을 수 있다.
[0235] 동작 1451에서, 스크립트(1401)는, 브라우저(210)에게 요소의 상태를 요청할 수 있다. 예를 들면, 스크립트(1401)는, 브라우저(210)에게 광고 요소의 상태를 요청할 수 있다.
[0236] 동작 1453에서, 브라우저(210)는, 요소의 상태를 다른 상태로 결정할 수 있다. 예를 들면, 브라우저(210)는, 광고 요소의 상태를 거짓 상태로 결정할 수 있다.
[0237] 예를 들면, 브라우저(210)는, 식별된 요소의 상태에 기반하여, 스크립트(1401)에 전달할 상태를 식별할 수 있다. 예를 들면, 브라우저(210)는, 광고 요소의 속성 값에 기반하여, 광고 요소가 숨김 처리된 상태인 것으로 판별됨에 기반하여, 거짓 상태를 스크립트(1401)에 전달할 상태로서 식별할 수 있다. 일 실시 예에서, 숨김 처리된 상태는, 식별된 요소가 표시 중지된 상태임(예: display: none)을 포함할 수 있다. 일 실시 예에서, 숨김 처리된 상태는, 식별된 요소의 투명도가 지정된 투명도를 가지는 상태임을 포함할 수 있다. 일 실시 예에서, 숨김 처리된 상태는, 식별된 요소의 스타일(예: 폭 및 높이)이 지정된 스타일을 가지는 상태임을 포함할 수 있다. 일 실시 예에서, 지정된 스타일은, 폭이 지정된 크기 이하의 값(예: 1 픽셀), 및 / 또는 높이가 지정된 크기 이하의 값(예: 1 픽셀)을 가지는 스타일일 수 있다.
[0238] 동작 1455에서, 브라우저(210)는, 스크립트(1401)에게 요소의 다른 상태를 전달할 수 있다.
[0239] 동작 1457에서, 스크립트(1401)는, 광고 차단 해제 요청 여부를 결정할 수 있다. 예를 들면, 스크립트(1401)는, 요소의 상태에 기반하여, 광고 차단 해제 요청 여부를 결정할 수 있다. 일 실시 예에서, 동작 1455에 따른 요소의 거짓 상태가 스크립트(1401)로 전달됨에 따라, 스크립트(1401)는, 광고 차단 해제 요청을 나타내는 메시지를 표시하지 않는 것으로 결정할 수 있다.
[0240] 상술한 바와 같은, 전자 장치(101)는, 통신 회로(290), 디스플레이(260), 처리 회로를 포함하는 적어도 하나의 프로세서(120), 및 인스트럭션들을 저장하고, 하나 이상의 저장 매체들을 포함하는, 메모리(130)를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 웹 페이지를 표시하기 위한 입력을 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 입력에 기반하여, 상기 웹 페이지에 대한 데이터를, 서버(108)에게, 요청하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 서버(108)로부터 상기 데이터를 수신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 웹 페이지를 표시하는 것과 관련하여 활성화된 광고 차단 기능에 기반하여, 상기 데이터 내의 광고 요소를 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 데이터 내의 상기 광고 요소의 상태를 비가시 상태로 설정함으로써 상기 광고 요소에 대응하는 광고 콘텐츠가 차단된 상기 웹 페이지를 표시하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 광고 콘텐츠가 차단되는 것을 유지함과 함께, 상기 광고 요소의 상기 상태가 상기 비가시 상태임에 따라 상기 광고 콘텐츠의 차단의 해제를 요청하는 메시지가 상기 웹 페이지 내에서 표시되는 것을 막도록, 상기 광고 요소의 상기 상태를 가시 상태로 처리하도록 야기할 수 있다.
[0241] 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 웹 페이지가 표시되는 동안 상기 데이터 내의 상기 스크립트(1401)를 실행함에 의해 야기된 상기 광고 요소의 상기 상태의 요청을 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 웹 페이지가 표시되는 동안 상기 비가시 상태로 설정된 상기 광고 요소의 상기 상태를 가시 상태로 나타내는 응답에 기반하여 상기 스크립트(1401)를 실행하도록 야기할 수 있다.
[0242] 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 데이터 내의 상기 스크립트(1401)를 실행함에 의해 야기된 리소스의 요청을 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 통신 회로(290)를 이용하여, 상기 요청에 기반하여, 다른 서버(108)로부터 상기 리소스를 수신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 활성화된 광고 차단 기능에 기반하여, 상기 수신된 리소스가 삽입된 요소가 상기 광고 요소인지를 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 요소가 상기 광고 요소인 것으로 식별됨에 기반하여, 상기 요소의 상태를 상기 비가시 상태로 설정하도록 야기할 수 있다.
[0243] 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 요소의 다른 상태가 지정된 표시 상태를 나타내는지를 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 요소의 상기 다른 상태가 상기 지정된 표시 상태를 나타내는 것으로 식별됨에 기반하여, 상기 요소가 상기 광고 요소인지의 식별 없이, 상기 요소를 상기 다른 상태에 기반하여 상기 웹 페이지 내에서 표시하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 요소의 상기 다른 상태가 상기 지정된 표시 상태 이외의 표시 상태를 나타내는 것으로 식별됨에 기반하여, 상기 활성화된 광고 차단 기능에 기반하여, 상기 요소가 상기 광고 요소인지를 식별하도록 야기할 수 있다.
[0244] 상기 지정된 표시 상태는, 상기 요소의 위치가 상기 웹 페이지 중 뷰 포트 밖에 위치함을 나타낼 수 있다.
[0245] 상기 지정된 표시 상태는, 상기 요소의 크기가 지정된 크기 이하임을 나타낼 수 있다.
[0246] 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 데이터 내의 상기 스크립트(1401)를 실행함에 의해 야기된 리소스의 요청을 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 리소스의 상기 요청이 식별됨에 응답하여, 상기 활성화된 광고 차단 기능에 기반하여, 상기 리소스가 광고 리소스인지를 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 리소스가 상기 광고 리소스인 것으로 식별됨에 기반하여, 상기 리소스의 상기 요청에도 불구하고, 상기 리소스의 상기 요청을 중지하도록 야기할 수 있다.
[0247] 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 리소스의 상기 요청이 중지됨에 기반하여, 상기 요청이 중지된 상기 리소스의 상태를 수신 상태로 나타내는 응답에 기반하여 상기 스크립트(1401)를 실행하도록 야기할 수 있다.
[0248] 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 리소스의 다른 상태가 지정된 상태를 나타내는지를 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 리소스의 상기 다른 상태가 상기 지정된 상태를 나타내는 것으로 식별됨에 기반하여, 상기 리소스가 상기 광고 리소스인지의 식별 없이, 상기 통신 회로(290)를 이용하여, 상기 리소스를 다른 서버(108)로부터 수신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 리소스의 상기 다른 상태가 상기 지정된 상태 이외의 상태를 나타내는 것으로 식별됨에 기반하여, 상기 활성화된 광고 차단 기능에 기반하여, 상기 리소스가 광고 리소스인지를 식별하도록 야기할 수 있다.
[0249] 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 리소스의 형식(type)이 상기 스크립트(1401)에 대하여 지정된 형식과 구분되는 형식임에 기반하여, 상기 리소스의 상기 다른 상태가 상기 지정된 상태를 나타내는 것으로 식별하도록 야기할 수 있다.
[0250] 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 리소스의 길이가 지정된 길이 이하임에 기반하여, 상기 리소스의 상기 다른 상태가 상기 지정된 상태를 나타내는 것으로 식별하도록 야기할 수 있다.
[0251] 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 리소스가 상기 광고 리소스인 것으로 식별됨에 기반하여, 상기 광고 리소스로 식별된 상기 리소스가 삽입될 요소의 상태를 지정된 값을 가지도록 설정하도록 야기할 수 있다.
[0252] 상술한 바와 같은 방법은, 통신 회로(290) 및 디스플레이(260)를 포함하는 전자 장치(101)에 의해 수행될 수 있다. 상기 방법은, 웹 페이지를 표시하기 위한 입력을 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 입력에 기반하여, 상기 웹 페이지에 대한 데이터를, 서버(108)에게, 요청하는 동작을 포함할 수 있다. 상기 방법은, 상기 서버(108)로부터 상기 데이터를 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 웹 페이지를 표시하는 것과 관련하여 활성화된 광고 차단 기능에 기반하여, 상기 데이터 내의 광고 요소를 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 데이터 내의 상기 광고 요소의 상태를 비가시 상태로 설정함으로써 상기 광고 요소에 대응하는 광고 콘텐츠가 차단된 상기 웹 페이지를 표시하는 동작을 포함할 수 있다. 상기 방법은, 상기 광고 콘텐츠가 차단되는 것을 유지함과 함께, 상기 광고 요소의 상기 상태가 상기 비가시 상태임에 따라 상기 광고 콘텐츠의 차단의 해제를 요청하는 메시지가 상기 웹 페이지 내에서 표시되는 것을 막도록, 상기 광고 요소의 상기 상태를 가시 상태로 처리하는 동작을 포함할 수 있다.
[0253] 상기 방법은, 상기 웹 페이지가 표시되는 동안 상기 데이터 내의 상기 스크립트(1401)를 실행함에 의해 야기된 상기 광고 요소의 상기 상태의 요청을 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 웹 페이지가 표시되는 동안 상기 비가시 상태로 설정된 상기 광고 요소의 상기 상태를 가시 상태로 나타내는 응답에 기반하여 상기 스크립트(1401)를 실행하는 동작을 포함할 수 있다.
[0254] 상기 방법은, 상기 데이터 내의 상기 스크립트(1401)를 실행함에 의해 야기된 리소스의 요청을 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 통신 회로(290)를 이용하여, 상기 요청에 기반하여, 다른 서버(108)로부터 상기 리소스를 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 활성화된 광고 차단 기능에 기반하여, 상기 수신된 리소스가 삽입된 요소가 상기 광고 요소인지를 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 요소가 상기 광고 요소인 것으로 식별됨에 기반하여, 상기 요소의 상태를 상기 비가시 상태로 설정하는 동작을 포함할 수 있다.
[0255] 상기 방법은, 상기 요소의 다른 상태가 지정된 표시 상태를 나타내는지를 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 요소의 상기 다른 상태가 상기 지정된 표시 상태를 나타내는 것으로 식별됨에 기반하여, 상기 요소가 상기 광고 요소인지의 식별 없이, 상기 요소를 상기 다른 상태에 기반하여 상기 웹 페이지 내에서 표시하는 동작을 포함할 수 있다. 상기 방법은, 상기 요소의 상기 다른 상태가 상기 지정된 표시 상태 이외의 표시 상태를 나타내는 것으로 식별됨에 기반하여, 상기 활성화된 광고 차단 기능에 기반하여, 상기 요소가 상기 광고 요소인지를 식별하는 동작을 포함할 수 있다.
[0256] 상기 방법은, 상기 데이터 내의 상기 스크립트(1401)를 실행함에 의해 야기된 리소스의 요청을 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 리소스의 상기 요청이 식별됨에 응답하여, 상기 활성화된 광고 차단 기능에 기반하여, 상기 리소스가 광고 리소스인지를 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 리소스가 상기 광고 리소스인 것으로 식별됨에 기반하여, 상기 리소스의 상기 요청에도 불구하고, 상기 리소스의 상기 요청을 중지하는 동작을 포함할 수 있다.
[0257] 상기 방법은, 상기 리소스의 상기 요청이 중지됨에 기반하여, 상기 요청이 중지된 상기 리소스의 상태를 수신 상태로 응답에 기반하여 상기 스크립트(1401)를 실행하는 동작을 포함할 수 있다.
[0258] 상기 방법은, 상기 리소스의 다른 상태가 지정된 상태를 나타내는지를 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 리소스의 상기 다른 상태가 상기 지정된 상태를 나타내는 것으로 식별됨에 기반하여, 상기 리소스가 상기 광고 리소스인지의 식별 없이, 상기 통신 회로(290)를 이용하여, 상기 리소스를 다른 서버(108)로부터 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 리소스의 상기 다른 상태가 상기 지정된 상태 이외의 상태를 나타내는 것으로 식별됨에 기반하여, 상기 활성화된 광고 차단 기능에 기반하여, 상기 리소스가 광고 리소스인지를 식별하는 동작을 포함할 수 있다.
[0259] 상술한 바와 같은, 비-일시적 컴퓨터 판독 가능 기록 매체(non-transitory computer readable storage medium)는, 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 통신 회로(290) 및 디스플레이(260)를 포함하는 전자 장치(101)의 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 웹 페이지를 표시하기 위한 입력을 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 입력에 기반하여, 상기 웹 페이지에 대한 데이터를, 서버(108)에게, 요청하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 서버(108)로부터 상기 데이터를 수신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 웹 페이지를 표시하는 것과 관련하여 활성화된 광고 차단 기능에 기반하여, 상기 데이터 내의 광고 요소를 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 데이터 내의 상기 광고 요소의 상태를 비가시 상태로 설정함으로써 상기 광고 요소에 대응하는 광고 콘텐츠가 차단된 상기 웹 페이지를 표시하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 광고 콘텐츠가 차단되는 것을 유지함과 함께, 상기 광고 요소의 상기 상태가 상기 비가시 상태임에 따라 상기 광고 콘텐츠의 차단의 해제를 요청하는 메시지가 상기 웹 페이지 내에서 표시되는 것을 막도록, 상기 광고 요소의 상기 상태를 가시 상태로 처리하도록 야기할 수 있다.
[0260] 본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
[0261] 본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
[0262] 본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
[0263] 본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
[0264] 일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: CD-ROM(compact disc read only memory))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
[0265] 다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.< / script> < / src>
Claims
1. In an electronic device (101), Communication circuit (290); display (260); At least one processor (120) comprising a processing circuit; and A memory (130) storing instructions and including one or more storage media, wherein the instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101) to: Identify the input for displaying a web page, Based on the above input, request data for the web page to the server (108), Receive the data from the above server (108), Identify advertising elements within the data based on the ad blocking functionality activated in connection with displaying the above web page, By setting the status of the advertisement element in the above data to an invisible state, the web page is displayed with the advertisement content corresponding to the advertisement element blocked, While maintaining the above-mentioned advertising content from being blocked, the above-mentioned state of the advertising element is caused to be processed as a visible state, so as to prevent a message requesting the unblocking of the advertising content from being displayed within the web page as the above-mentioned state of the advertising element is the invisible state. Electronic devices.
2. In claim 1, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101) to: Identifying a request for the above state of the advertising element caused by executing a script (1401) within the above data while the above web page is displayed, Causing the script (1401) to be executed based on a response indicating the state of the advertisement element set to the invisible state while the web page is displayed as the visible state; Electronic devices.
3. In claim 1, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101) to: Identifying a request for a resource caused by executing the script (1401) within the above data, Using the above communication circuit (290), based on the above request, the resource is received from another server (108), Based on the above activated ad blocking function, identify whether the element into which the received resource is inserted is the advertisement element, Causing the state of the element to be set to the invisible state based on the element being identified as the advertisement element; Electronic devices.
4. In claim 3, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101) to: Identifies whether another state of the above element represents a specified display state, and Based on the identification that the other state of the element indicates the designated display state, displaying the element within the web page based on the other state without identifying whether the element is the advertisement element; Based on the other state of said element being identified as indicating a display state other than the designated display state, based on the activated ad blocking function, causing said element to be identified as being an advertisement element, Electronic devices.
5. In claim 4, The above specified display state indicates that the position of the element is outside the view port of the web page. Electronic devices.
6. In claim 4, The above specified display state indicates that the size of the element is less than or equal to the specified size. Electronic devices.
7. In claim 1, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101) to: Identifying a request for a resource caused by executing the script (1401) within the above data, In response to the above request for the above resource being identified, based on the activated ad blocking function, identifying whether the resource is an advertising resource; Causing said request for said resource to be stopped, despite said request for said resource being identified as said advertising resource, Electronic devices.
8. In claim 7, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101) to: Based on the above request of the above resource being stopped, causing the script (1401) to be executed based on a response indicating the status of the above resource that the request is stopped as a received state, Electronic devices.
9. In claim 7, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101) to: Identifies whether another state of the above resource represents a specified state, and Based on the identification that the other state of the above resource indicates the specified state, the resource is received from another server (108) using the communication circuit (290) without identifying whether the resource is the advertising resource, Based on the above other state of the above resource being identified as indicating a state other than the above specified state, based on the activated ad blocking function, causing the resource to be identified as an advertising resource, Electronic devices.
10. In claim 9, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101) to: Based on the fact that the type of the above resource is a format distinct from the format specified for the above script (1401), causing the other state of the above resource to be identified as representing the specified state, Electronic devices.
11. In claim 9, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101) to: Causing said other state of said resource to be identified as representing said specified state based on the length of said resource being less than or equal to a specified length; Electronic devices.
12. In claim 7, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101) to: Based on the above resource being identified as the above advertisement resource, causing the state of the element to be inserted into the above resource identified as the advertisement resource to be set to a specified value, Electronic devices.
13. In a method of an electronic device (101) including a communication circuit (290) and a display (260), An action that identifies input for displaying a web page; An action of requesting data for the web page to the server (108) based on the above input, An operation of receiving the data from the server (108), An action to identify advertising elements within said data based on an ad blocking function activated in connection with displaying said web page; An action of displaying the web page in which the advertising content corresponding to the advertising element is blocked by setting the status of the advertising element in the data to an invisible state, and An operation of processing the state of the advertising element into a visible state to prevent a message requesting unblocking of the advertising content from being displayed within the web page as the state of the advertising element is the invisible state, while maintaining that the advertising content is blocked. method.
14. In claim 13, An action to identify a request for the state of the advertising element caused by executing a script (1401) within the data while the web page is displayed, and An action of executing the script (1401) based on a response indicating the state of the advertisement element set to the invisible state as the visible state while the web page is displayed. method.
15. In a non-transitory computer readable storage medium, Store one or more programs containing instructions, The above instructions, when executed individually or collectively by at least one processor (120) of an electronic device (101) including a communication circuit (290) and a display (260), cause the electronic device (101) to: Identify the input for displaying a web page, Based on the above input, request data for the web page to the server (108), Receive the data from the above server (108), Identify advertising elements within the data based on the ad blocking functionality activated in connection with displaying the above web page, By setting the status of the advertisement element in the above data to an invisible state, the web page is displayed with the advertisement content corresponding to the advertisement element blocked, While maintaining the above-mentioned advertising content from being blocked, the above-mentioned state of the advertising element is caused to be processed as a visible state, so as to prevent a message requesting the unblocking of the advertising content from being displayed within the web page as the above-mentioned state of the advertising element is the invisible state. Non-transitory computer-readable recording medium.
Citation Information
Patent Citations
Apparatus and method for blocking internet advertisement
KR101771658B1
Battery pack and vehicle including the same
KR1020250015778A
Cookies and anti-ad blocker using deep links in mobile apps
US20160359945A1
System and method of blocking advertising on computing devices based on estimated probability
US20220224674A1