DE202017106604U1 - Benutzerdefinierte digitale Komponenten - Google Patents

Benutzerdefinierte digitale Komponenten Download PDF

Info

Publication number
DE202017106604U1
DE202017106604U1 DE202017106604.5U DE202017106604U DE202017106604U1 DE 202017106604 U1 DE202017106604 U1 DE 202017106604U1 DE 202017106604 U DE202017106604 U DE 202017106604U DE 202017106604 U1 DE202017106604 U1 DE 202017106604U1
Authority
DE
Germany
Prior art keywords
digital component
request
sdk
client device
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202017106604.5U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE202017106604U1 publication Critical patent/DE202017106604U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)

Abstract

Computerprogrammprodukt umfassend Befehle, die, wenn sie auf einer Datenverarbeitungsvorrichtung ausgeführt werden, die Datenverarbeitungsvorrichtung veranlassen, ein Verfahren auszuführen, umfassend:Empfangen einer Anfrage nach einer digitalen Komponente von einem Client-Gerät, die durch ein erstes Software Development Kit (SDK) generiert wurde, das auf dem Client-Gerät installiert ist;Untersuchen von einem oder mehreren Datenfeldern durch einen oder mehrere benutzerdefinierte digitale Komponentenserver, beinhaltend:Identifizieren von Anwendungsdaten, die eine bestimmte Anwendung spezifizieren, die die Anfrage an dem Client-Gerät initiierte;Generieren von mehreren Echtzeitanfragen durch den einen oder die mehreren Server, beinhaltend:Identifizieren einer Gruppe von SDKs, die in der Anwendung installiert sind, die die Anfrage an dem Client-Gerät initiierte, basierend auf einer Zuordnung von Anwendungsdaten zu installierten SDKs in einer Datenstruktur;beinhaltend Daten, die die Gruppe von SDKs spezifizieren, die in der Anwendung installiert sind, die die Anfrage an dem Client-Gerät initiierte.Übertragen von jeder Echtzeitanfrage über ein Netzwerk durch den einen oder die mehreren Server zu einem entsprechenden Drittanbieter von digitalen Komponenten; undEmpfangen einer Gruppe von Antworten auf die mehreren Echtzeitanfragen von den entsprechenden Drittanbietern von digitalen Komponenten durch den einen oder die mehreren Server;Auswählen einer bestimmten Antwort von der Gruppe von Antworten zum Übertragen zu dem Client-Gerät als Reaktion auf die anfängliche Anfrage nach der digitalen Komponente, durch den einen oder die mehreren Server; undÜbertragen der bestimmten Antwort an das erste SDK mit Anweisungen, die spezifizieren, welches auf dem Client-Gerät installierte SDK eine digitale Komponente wiedergeben muss, die in der bestimmten Antwort beinhaltet ist, durch den einen oder die mehreren Server.

Description

  • HINTERGRUND
  • Die vorliegende Spezifikation betrifft Verarbeiten digitaler Komponenten.
  • Das Internet erleichtert das Austauschen von Informationen zwischen Benutzern auf der ganzen Welt. Dieser Austausch von Informationen ermöglicht Verarbeiten von Anfragen nach Inhalt, wie z. B. digitalen Komponenten. In einigen Situationen kann der Inhalt durch Bedarfsquellen aufgerufen werden, um den Inhalt auf einem Client-Gerät wiederzugeben.
  • KURZDARSTELLUNG DER OFFENBARUNG
  • In einigen Implementierungen, umfasst ein Computerprogrammprodukt der vorliegenden Offenbarung umfassend Befehle, die, wenn sie auf einer Datenverarbeitungsvorrichtung ausgeführt werden, die Datenverarbeitungsvorrichtung veranlassen, Verfahren auszuführen, mit Verarbeitungsanfragen zum Wiedergeben digitaler Komponenten auf Client-Geräten. Beispielsweise können die Verfahren Empfangen einer Anfrage nach einer digitalen Komponente von einem Software Development Kit (SDK) beinhalten, das auf einem Client-Gerät installiert ist. Das SDK kann eine Gruppe von Softwareentwicklungs-Tools sein, die das Erzeugen von Anwendungen für eine bestimmte Plattform des Client-Geräts ermöglichen. Das SDK kann Quellcode, Entwicklungs-Tools, einen Emulator, Bibliotheken und dgl. beinhalten, um Anwendungen für die bestimmte Plattform zu erstellen. Die Anfrage kann durch einen oder mehrere Server untersucht werden, um eine Anwendung zu identifizieren, die die Anfrage an dem Client-Gerät initiierte. Die Server können konfiguriert sein, um Echtzeitanfragen basierend auf der Anfrage nach der digitalen Komponente von dem SDK zu generieren. Jede der Echtzeitanfragen kann Informationen, wie z. B. eine Gruppe von anderen SDKs, beinhalten, die in der identifizierten Anwendung installiert sind. Die Echtzeitanfragen können innerhalb eines bestimmten Zeitbetrags nach dem Empfang der anfänglichen Anfrage von dem Client-Gerät zu Drittanbietern von digitalen Komponenten übertragen werden. Die Echtzeitanfragen können den Drittanbietern von digitalen Komponenten in Reihe, parallel oder jeder beliebigen Kombination davon übertragen werden. Weiterhin kann die anfängliche Anfrage einen Zeitbetrag angeben, in dem die digitale Komponente dem Client-Gerät bereitgestellt werden muss. Als Reaktion auf Übertragen der Echtzeitanfragen nach einer digitalen Komponente zu den Drittanbietern von digitalen Komponenten können die Server zum Empfangen von Antworten von den Drittanbietern von digitalen Komponenten konfiguriert werden. Die Server können auch konfiguriert werden, um eine zu dem Client-Gerät zu übertragende bestimmte Antwort auszuwählen, um die anfängliche Anfrage von dem Client-Gerät zu erfüllen. In bestimmten Aspekten kann die bestimmte Antwort die digitale Komponente sowie Anweisungen beinhalten, die ein bestimmtes SDK spezifizieren, das auf dem Client-Gerät installiert ist, um die digitale Komponente wiederzugeben.
  • Ein innovativer Aspekt des in dieser Spezifikation beschriebenen Gegenstands ist in Verfahren verkörpert, die die Aktionen des Empfangens einer Anfrage nach einer digitalen Komponente von einem Client-Gerät beinhalten, die durch ein erstes Software Development Kit (SDK) generiert wurde, das auf dem Client-Gerät installiert ist; Untersuchen von einem oder mehreren Datenfeldern der Anfrage durch einen oder mehrere benutzerspezifische digitale Komponentenserver, beinhaltend: Identifizieren von Anwendungsdaten innerhalb des einen oder der mehreren Datenfelder, die eine Anwendung spezifizieren, die die Anfrage an dem Client-Gerät initiierte; Generieren von multiplen Echtzeitanfragen durch den einen oder die mehreren Server, beinhaltend: Identifizieren einer Gruppe von SDKs, die in der Anwendung installiert sind, die die Anfrage an dem Client-Gerät initiierte, basierend auf einer Zuordnung von Anwendungsdaten zu installierten SDKs in einer Datenstruktur; beinhaltend in jeder Echtzeitanfrage Daten, die die Gruppe von SDKs spezifizieren, die in der Anwendung installiert sind, die die Anfrage an dem Client-Gerät initiierte; Übertragen von jeder Echtzeitanfrage über ein Netzwerk durch den einen oder die mehreren Server zu einem entsprechenden Drittanbieter von digitalen Komponenten; und Empfangen einer Gruppe von Antworten auf die mehreren Echtzeitanfragen von den entsprechenden Drittanbietern von digitalen Komponenten, durch den einen oder die mehreren Server; Auswählen einer bestimmten Antwort von der Gruppe von Antworten zum Übertragen auf das Client-Gerät als Reaktion auf die Anfrage nach der digitalen Komponente durch den einen oder die mehreren Server; und Übertragen der bestimmten Antwort an das erste SDK mit Anweisungen, die spezifizieren, welches auf dem Client-Gerät installierte SDK erforderlich ist, um eine in der bestimmten Antwort beinhaltete digitale Komponente wiederzugeben, durch den einen oder die mehreren Server.
  • Weitere Implementierungen dieses und sonstiger Aspekte beinhalten entsprechende Systeme, Vorrichtungen und Computerprogramme, die konfiguriert sind, um Funktionen der Verfahren, die auf Computerspeichergeräten codiert sind, durchzuführen.
  • Implementierungen können jeweils optional eine oder mehrere der folgenden Merkmale beinhalten. Beispielsweise können die Verfahren Identifizieren von verschlüsselten Daten innerhalb des einen oder der mehreren Datenfelder beinhalten, die durch ein auf dem Client-Gerät installiertes zweites SDK generiert wurden, und wobei beim Generieren der mehreren Echtzeitanfragen die verschlüsselten Daten in einer bestimmten der Echtzeitanfragen beinhaltet sind, um sie zu einem bestimmten der Dritten zu senden, der berechtigt ist, die durch das zweite SDK generierten verschlüsselten Daten zu entschlüsseln. In diesem Fall können die Verfahren auch Übertragen der bestimmten Echtzeitanfrage zu dem bestimmten Drittanbieter von digitalen Komponenten ohne Entschlüsseln der verschlüsselten Daten beinhalten.
  • Die Verfahren können weiterhin Zugreifen auf die Zuordnung von Anwendungsdaten zu installierten SDKs, Identifizieren der Anwendung innerhalb der Zuordnung, wobei die Anwendung in den Anwendungsdaten und einer Version der Anwendung spezifiziert ist, die die Anfrage initiierte, und Identifizieren der Gruppe von SDKs beinhalten, die der Anwendung und der Version der Anwendung zugeordnet sind, die die Anfrage initiierte. In diesem Fall können die Verfahren weiterhin Identifizieren vorheriger Antworten von einem in der Datenstruktur gespeicherten Antwortprotokoll, die zuvor der Version der Anwendung als Antwort auf vorherige Anfragen bereitgestellt wurden, die durch die Version der Anwendung initiiert wurden, Identifizieren einer Gruppe von mehreren unterschiedlichen SDKs von den vorherigen Antworten, die in den vorherigen Antworten spezifiziert wurden, und Zuordnen von jeder SDK in der Gruppe von mehreren SDKs zu der Version der Anwendung in der Datenstruktur beinhalten.
  • In bestimmten Aspekten können die Verfahren Übertragen von Anweisungen beinhalten, die einen API-Aufruf spezifizieren, um die in der bestimmten Antwort beinhaltete digitale Komponente wiederzugeben. Die Verfahren können auch Übertragen von jeder Echtzeitanfrage über ein Netzwerk durch den einen oder die mehreren Server zu einem entsprechenden Drittanbieter von digitalen Komponenten beinhalten, was Übertragen der bestimmten Echtzeitanfrage zu dem bestimmten Drittanbieter von digitalen Komponenten ohne Entschlüsseln der verschlüsselten Daten beinhaltet. In einigen Aspekten können die Verfahren Bereitstellen der Steuerung der Präsentation der benutzerdefinierten digitalen Komponente für das bestimmte SDK beinhalten.
  • Die Verfahren können weiterhin Übertragen von jeder Echtzeitanfrage zu einem entsprechenden Drittanbieter von digitalen Komponenten beinhalten, umfassen Nicht-Übertragen der bestimmten Echtzeitanfrage zu Dritten, die nicht berechtigt sind, die durch das zweite SDK generierten verschlüsselten Daten zu entschlüsseln, Empfangen der Gruppe von Antworten auf die mehreren Echtzeitanfragen von den entsprechenden Drittanbietern von digitalen Komponenten umfasst Empfangen einer gegebenen Antwort in der Gruppe spezifiziert ein bestimmtes SDK außer dem ersten SDK, das eine in der gegebenen Antwort beinhaltete bestimmte digitale Komponente wiedergeben muss, und Übertragen der gegebenen Antwort als die bestimmte Antwort, wobei das bestimmte SDK die in der gegebenen Antwort beinhaltete bestimmte digitale Komponente wiedergeben muss.
  • Vorteilhafte Implementierungen können ein oder mehrere der folgenden Merkmale beinhalten. Die Verfahren erlauben, dass digitale Komponentenanfragen parallel zu den unterschiedlichen Netzwerken gesendet werden können, wodurch die mit client-seitiger Vermittlung erlebte Latenz reduziert wird, wobei sichergestellt wird, dass mehrere SDKs unterstützt werden, im Gegensatz zur Verwendung von einem SDK bei Verfahren mit Real-Time Bidding (RTB, Bieten in Echtzeit). Mit anderen Worten ausgedrückt, wenn eine Anwendung auf einem Client-Gerät eine Anfrage nach einer digitalen Komponente ausgibt, kann es wünschenswert sein, Antworten auf die Anfrage von Drittanbietern von digitalen Komponenten in Verbindung mit einer Vielzahl von unterschiedlichen SDKs zu empfangen. Daher können die Verfahren zum Verarbeiten von Anfragen nach digitalen Komponenten durch Nutzen der Vorteile von Real-Time Bidding verwendet werden, und gleichzeitig die Eigenschaften von client-seitiger Vermittlung aufrechterhalten. Weiterhin können die SDKs verwendet werden, um benutzerdefinierte Signale an Client-Geräten zu sammeln und benutzerdefinierte digitale Komponenten wiederzugeben, während Transaktionen über Real-Time Bidding mit parallelen Aufrufen für digitale Komponenten, wie z. B. benutzerdefinierte digitale Komponenten, erfolgen. Insbesondere wenn eine Anwendung eine Anfrage nach Medieninhalt ausgibt, ist es wünschenswert, Angebote zur Lieferung von digitalen Komponenten von Dritten in Verbindung mit den unterschiedlichen SDKs zu empfangen.
  • Die Details einer oder mehrerer Ausführungsformen von der Erfindung sind in den begleitenden Zeichnungen und der nachfolgenden Beschreibung dargelegt. Andere Merkmale und Vorteile der Erfindung werden aus der Beschreibung, den Zeichnungen und den Ansprüchen deutlich.
  • Figurenliste
    • 1 ist ein Blockdiagramm einer beispielhaften Umgebung, in der Anfragen nach benutzerdefinierten digitalen Komponenten verarbeitet werden.
    • 2 ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Verarbeiten von benutzerdefinierten digitalen Komponenten.
    • 3 ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Untersuchen von Datenfeldern einer Anfrage.
    • 4 ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Generieren von Echtzeitanfragen.
    • 5 ist ein Blockdiagramm, das beispielhafte Kommunikationen mit Anbietern von digitalen Komponenten veranschaulicht.
    • 6 ist ein Blockdiagramm eines beispielhaften Computersystems.
  • In den unterschiedlichen Zeichnungen werden gleiche Bezugszeichen und Bezeichnungen für gleiche Elemente verwendet.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Dieses Dokument offenbart Verfahren, Systeme und Geräte, die zum Verarbeiten einer Anfrage nach einer digitalen Komponente und Auswählen einer bestimmten Antwort verwendet werden, um die Anfrage über ein Netzwerk zu erfüllen. Wie nachfolgend ausführlicher abgehandelt werden wird, kann ein erstes SDK eine Anfrage nach einer digitalen Komponente generieren. Die Anfrage kann von einem Server empfangen und untersucht werden, um eine Anwendung zu identifizieren, die der Anfrage entspricht, sowie eine Liste von SDKs, die digitale Komponenten unterstützen kann, die auf der Anwendung wiedergegeben werden. Die Anfrage und die von der Anfrage extrahierten Informationen können verwendet werden, um Echtzeitanfragen durch den Server zu generieren. Die Echtzeitanfragen können zu einer Vielzahl von Drittanbietern von digitalen Komponenten übertragen werden. Der Server kann Antworten auf die Echtzeitanfragen von den Drittanbietern von digitalen Komponenten empfangen. Die Antworten können digitale Komponenten wie z. B. benutzerdefinierte digitale Komponenten beinhalten, die benutzerdefinierte Wiedergabe durch spezifische SDKs erfordern. Die Antworten können durch den Server empfangen werden, und dann kann der Server konfiguriert werden, um eine bestimmte Antwort auf die Antworten auszuwählen, um die anfängliche Anfrage zu erfüllen. In diesem Fall kann die ausgewählte Antwort von dem Server zu einem Client-Gerät übertragen werden, um eine bestimmte digitale Komponente wiederzugeben, die der ausgewählten Antwort zugeordnet ist, durch ein spezifiziertes SDK.
  • Wie in diesem Dokument verwendet, bezieht sich der Ausdruck „digitale Komponente“ auf eine diskrete Einheit von digitalem Inhalt oder digitalen Informationen (z. B. ein Videoclip, ein Audioclip, ein Multimediaclip, ein Bild, ein Text oder eine andere Inhaltseinheit). Eine digitale Komponente kann elektronisch in einem physischen Speichergerät als eine einzelne Datei oder in einer Sammlung von Dateien gespeichert werden, und digitale Komponenten können die Form von Videodateien, Audiodateien, Multimediadateien, Bilddateien oder Textdateien annehmen, und Werbeinformationen, wie z. B. eine Werbung, beinhalten, die eine Art von digitaler Komponente ist. Im Allgemeinen wird eine digitale Komponente definiert durch (oder bereitgestellt durch) einen einzelnen Anbieter oder eine Quelle (z. B. eine Werbeagentur, einen Verleger oder anderen Komponentenanbieter). Digitale Komponenten können in ein elektronisches Dokument (z. B. darin präsentiert) integriert werden, das durch einen Anbieter von elektronischen Dokumenten bereitgestellt wird, der sich von dem Anbieter von digitalen Komponenten unterscheidet.
  • 1 ist ein Blockdiagramm einer beispielhaften Umgebung 100, in der Anfragen nach benutzerdefinierten digitalen Komponenten verarbeitet werden. Die beispielhafte Umgebung 100 beinhaltet ein Netzwerk 102, wie beispielsweise ein lokales Netzwerk (LAN), ein Großraumnetzwerk (WAN), das Internet oder eine Kombination derselben. Das Netzwerk 102 verbindet Client-Geräte 106, digitale Komponentenserver 110 und Anbieter 114 von digitalen Komponenten. Die beispielhafte Umgebung 100 kann unterschiedliche Client-Geräte 106, digitale Komponentenserver 110 und Anbieter 114 von digitalen Komponenten beinhalten.
  • Ein Client-Gerät 106 ist ein elektronisches Gerät, das in der Lage ist, die Ressourcen über das Netzwerk 102 anzufordern und zu empfangen. Das beispielhafte Client-Gerät 106 kann Personal-Computer, mobile Kommunikationsgeräte und andere Geräte beinhalten, die Daten über das Netzwerk 102 senden und empfangen können. Ein Client-Gerät 106 beinhaltet typischerweise eine Benutzeranwendung, wie z. B. einen Webbrowser, um das Senden und Empfangen von Daten über das Netzwerk 102 zu erleichtern, aber durch das Client-Gerät 106 ausgeführte native Anwendungen können ebenfalls das Senden und Empfangen von Daten über das Netzwerk 102 erleichtern.
  • Die Client-Geräte 106 können eine Vielzahl von SDKs beinhalten, die jeweils auf den Client-Geräten 106 installiert sind. Die SDKs können jeweils einer Gruppe von Softwareentwicklungs-Tools entsprechen, die das Erzeugen von Anwendungen für eine bestimmte Plattform des Client-Geräts 106 ermöglichen. Die SDKs können Quellcode, Entwicklungs-Tools, einen Emulator, Bibliotheken und dgl. beinhalten, um Anwendungen für die bestimmte Plattform zu erstellen. Die SDKs können verwendet werden, um eine Anfrage nach einer digitalen Komponente 112 zu generieren, die über das Netzwerk 102 zu den digitalen Komponentenservern 110 übertragen wird. Beispielsweise kann Client-Gerät 106 ein erstes SDK verwenden, das auf dem Client-Gerät 106 installiert ist, um eine Anfrage 112 nach einer benutzerdefinierten digitalen Komponente zu generieren.
  • Die Anfrage 112 kann Daten beinhalten, die Merkmale wie z. B. einen Namen (oder Netzwerkstandort) eines Anbieters 114 von digitalen Komponenten, einen Namen (oder einen Netzwerkstandort) des anfragenden Geräts (z. B. des Client-Geräts 106), und/oder Informationen beinhalten, die die digitalen Komponentenserver 110 verwenden können, um eine digitale Komponente auszuwählen, die als Antwort auf die Anfrage 112 bereitzustellen ist. Die Anfrage 112 wird durch das Client-Gerät 106 über das Netzwerk 102 (z. B. ein Telekommunikationsnetzwerk) zu einem oder mehreren von den digitalen Komponentenservern 110 übertragen. Die Anfrage 112 kann auch Daten beinhalten, die andere Merkmale spezifizieren, wie z. B. Anwendungsdaten, die eine Anwendung angeben, die die Anfrage 112 initiiert hat, sowie eine Gruppe von SDKs, die auf dem Client-Gerät 106 installiert sind.
  • Die digitalen Komponentenserver 110, die einen oder mehrere digitale Komponentenserver beinhalten, generieren mehrere Echtzeitanfragen 117 für digitale Komponenten als Antwort auf Untersuchen der Anfrage 112 und/oder Verwenden von in der Anfrage 112 beinhalteten Informationen. Beispielsweise können die digitalen Komponentenserver 110 eines oder mehrere Datenfelder der Anfrage 112 untersuchen. Die Datenfelder können untersucht werden, um Anwendungsdaten zu identifizieren, die eine bestimmte Anwendung spezifizieren, die die Anfrage 112 an dem Client-Gerät 106 initiierte. Weiterhin können die digitalen Komponentenserver 110 konfiguriert werden, um die mehreren Echtzeitanfragen 117 unter Verwendung von Informationen zu generieren, die von den Datenfeldern extrahiert werden.
  • In einigen Beispielen können die digitalen Komponentenserver 110 konfiguriert werden, um eine Gruppe von SDKs zu identifizieren, die in der bestimmten Anwendung installiert sind, die die Anfrage 112 an dem Client-Gerät 106 initiierte. Insbesondere können die digitalen Komponentenserver 110 die Gruppe von SDKs basierend auf einer Zuordnung der Anwendungsdaten zu installierten SDKs in einer Datenstruktur identifizieren. Beispielsweise können die digitalen Komponentenserver 110 konfiguriert werden, um eine Gruppe von installierten SDKs basierend auf einer Datenstruktur zu identifizieren, die Anwendungsdaten zu bestimmten SDKs organisiert. Spezifisch kann die Datenstruktur eine Zuordnung von Anwendungsdaten zu installierten SDKs speichern, die in unterschiedlichen Anwendungen auf dem Client-Gerät 106 installiert sind. Daher können die digitalen Komponentenserver 110, wenn die digitalen Komponentenserver 110 Anwendungsdaten basierend auf der Anfrage 112 identifizieren, eine Datenstruktur wie z. B. eine Nachschlagetabelle verwenden, um die Anwendungsdaten bestimmten SDKs zuzuordnen.
  • Wenn die Anwendungsdaten bestimmten SDKs zugeordnet werden, können die digitalen Komponentenserver 110 identifizieren, welche SDKs in einer oder mehreren Anwendungen auf dem Client-Gerät 106 installiert sind. Die digitalen Komponentenserver 110 können auch konfiguriert sein, um Daten zu beinhalten, die die identifizierte Gruppe von installierten SDKs in den Echtzeitanfragen 117 spezifizieren. In einigen Aspekten kann die Datenstruktur eine zuvor festgelegte Datenstruktur sein, auf die vor der anfänglichen Anfrage 112 durch die digitalen Komponentenserver 110 zugegriffen werden konnte. In anderen Aspekten können die digitalen Komponentenserver 110 konfiguriert sein, um die Datenstruktur unter Verwendung der Zuordnung von Anwendungsdaten zu spezifizierten SDKs und Anwendungen zu generieren
  • Wie in 1 dargestellt, können die digitalen Komponentenserver 110 weiterhin konfiguriert sein, um die Echtzeitanfragen 117 zu Anbietern 114 von digitalen Komponenten über das Netzwerk 102 zu übertragen. Beispielsweise können die digitalen Komponentenserver 110 drei Echtzeitanfragen 117a-c generieren und jede der Echtzeitanfragen 117a-c parallel zu einem bestimmten Anbieter 114a-c von digitalen Komponenten übertragen. In diesem Fall kann eine erste Echtzeitanfrage 117a zu einem ersten Anbieter 114a von digitalen Komponenten übertragen werden, eine zweite Echtzeitanfrage 117b kann zu einem zweiten Anbieter 114b von digitalen Komponenten übertragen werden, und eine dritte Echtzeitanfrage 117c kann zu einem Anbieter 114c von digitalen Komponenten übertragen werden. In bestimmten Aspekten wird eine einzelne Echtzeitanfrage 117 zu mehreren unterschiedlichen Anbietern 114 von digitalen Komponenten übertragen. Beispielsweise kann die erste Echtzeitanfrage 117a parallel zu dem ersten Anbieter 114a von digitalen Komponenten, dem zweiten Anbieter 114b von digitalen Komponenten und dem dritten Anbieter 114c von digitalen Komponenten übertragen werden. In diesem Fall kann eine einzelne Echtzeitanfrage 117, wie z. B. die erste Echtzeitanfrage 117a, zu mehreren Anbietern 114 von digitalen Komponenten übertragen werden, um Angebote von jedem der Anbieter 114 von digitalen Komponenten zum Wiedergeben von digitalen Komponenten zu empfangen. Die anfängliche Anfrage 117 kann erfordern, dass eine Antwort innerhalb eines zuvor festgelegten Zeitraums bereitgestellt wird. Jeder der Anbieter 114 von digitalen Komponenten kann eine Antwort 118 auf die Anfrage 117 bereitstellen, die ein Angebot für eine bestimmte digitale Komponente beinhaltet. Daher kann die einzelne Anfrage 117 mehreren Anbietern 114 von digitalen Komponenten im Bemühen bereitgestellt werden, schnell eine digitale Komponente zu erhalten, die dem höchsten Bieter innerhalb des zuvor festgelegten Zeitraums für die Antwort 118 zugeordnet ist. In bestimmten Aspekten kann die Antwort 118 auf die Anfrage 117 optional oder zusätzlich das Wiedergeben digitaler Komponenten beinhalten, wie z. B. ein digitales Komponenten-Markup oder eine Verbindung zu einem digitalen Komponenten-Markup.
  • Die Anbieter 114 von digitalen Komponenten können einen oder mehrere Anbieter von digitalen Komponenten wie z. B. Drittanbieter von digitalen Komponenten beinhalten. Die Anbieter 114a-c von digitalen Komponenten können konfiguriert sein, um Antworten 118a-c auf die Echtzeitanfragen 117 zu generieren. Die Antworten 118 können eine digitale Komponente zum Wiedergeben auf dem Client-Gerät 106 beinhalten. In einigen Aspekten können die Antworten 118 eine oder mehrere potenzielle digitale Komponenten zum Wiedergeben auf dem Client-Gerät 106 beinhalten. Die digitalen Komponenten der Antworten 118 können auch benutzerdefinierte digitale Komponenten beinhalten. Die benutzerdefinierten digitalen Komponenten (z. B. benutzerdefinierte Werbeanzeigen) können benutzerdefinierte kreative Formate beinhalten, die durch bestimmte SDKs wiedergegeben werden können, die auf dem Client-Gerät 106 installiert sind. Als solche kann eine in einer Antwort 118 beinhaltete benutzerdefinierte digitale Komponente angeben, dass es erforderlich ist, dass die benutzerdefinierte digitale Komponente durch ein SDK außer dem ersten SDK wiedergegeben werden muss, das die ursprüngliche Anfrage 112 generierte.
  • Die Antworten 118 können durch die digitalen Komponentenserver 110 über das Netzwerk 102 empfangen werden. Die digitalen Komponentenserver 110 können konfiguriert werden, um eine bestimmte Antwort auszuwählen, um die Anfrage 112 nach der digitalen Komponente zu erfüllen. Beispielsweise können die digitalen Komponentenserver 110 drei Antworten 118a-c empfangen, die auf die Echtzeitanfragen 117a-c reagieren. Eine bestimmte Antwort der drei Antworten 118a-c kann durch die digitalen Komponentenserver 110 zum Übertragen zu dem Client-Gerät 106 als Reaktion auf die anfängliche Anfrage 112 nach der digitalen Komponente ausgewählt werden. In einigen Aspekten kann die bestimmte Antwort durch die digitalen Komponentenserver 110 basierend auf Geboten ausgewählt werden, die jeder der Antworten 118a-c zugeordnet sind. In einigen Aspekten kann die bestimmte Antwort basierend auf spezifizierten digitalen Komponentenmerkmalen der Anfrage 112 ausgewählt werden.
  • Die ausgewählte Antwort kann von den digitalen Komponentenservern 110 über das Netzwerk 102 zu dem Client-Gerät 106 übertragen werden. Die ausgewählte Antwort kann als eine Antwort 120 zu der anfänglichen Anfrage 112 nach einer digitalen Komponente übertragen werden. In bestimmten Aspekten kann die Antwort 120 zu dem ersten SDK übertragen werden, das die Anfrage 112 generierte. Die Antwort 120 kann Anweisungen beinhalten, die eine SDK spezifizieren, die auf dem Client-Gerät 106 installiert ist, außer dem ersten SDK, das die in der Antwort 120 beinhaltete digitale Komponente wiedergeben muss.
  • In einigen Aspekten führt das Client-Gerät 106 in der Antwort 120 beinhaltete Anweisungen aus. Beispielsweise können die Anweisungen durch das Client-Gerät 106 verwendet werden, um die Wiedergabe einer in der Antwort 120 beinhalteten bestimmten digitalen Komponente zu konfigurieren und zu ermöglichen. In einem anderen Beispiel können die Anweisungen verwendet werden, um das Client-Gerät 106 zu konfigurieren und es diesem zu ermöglichen, die bestimmte digitale Komponente von einem entsprechenden Anbieter 114 von digitalen Komponenten zu erhalten. Beispielsweise können die Anweisungen in der Antwort 120 einen Netzwerkstandort (z. B. eine URL (Uniform Resource Locator)) und ein Skript beinhalten, das das Client-Gerät 106 veranlasst, eine Serveranforderung (SR) 121 an den entsprechenden Anbieter 114 von digitalen Komponenten zu senden, um die bestimmte digitale Komponente von dem Anbieter 114 von digitalen Komponenten zu erhalten. Als Reaktion auf die Anfrage 121 kann der Anbieter 114 von digitalen Komponenten die in der Serveranfrage 121 spezifizierte bestimmte digitale Komponente identifizieren, und zu dem Client-Gerät 106 digitale Komponentendaten (DC-Daten) 122 übertragen, die die bestimmte digitale Komponente zum Wiedergeben an das Client-Gerät 106 überträgt.
  • 2 ist ein Ablaufdiagramm eines beispielhaften Verfahrens 200 zum Verarbeiten von benutzerdefinierten digitalen Komponenten. Das Verfahren 200 kann durch einen oder mehrere Server oder andere Computergeräte ausgeführt werden. Beispielsweise können Vorgänge des Verfahrens 200 durch die digitalen Komponentenserver 110 von 1 ausgeführt werden. Vorgänge des Verfahrens 200 können auch als Anweisungen implementiert werden, die auf einem nicht transitorischen computerlesbaren Medium gespeichert sind, und wenn die Anweisungen durch einen oder mehrere Server (oder andere Computergeräte) ausgeführt werden, veranlassen die Anweisungen den einen oder die mehreren Server, Vorgänge des Verfahrens 200 auszuführen.
  • Bei Schritt 202 empfangen digitale Komponentenserver eine Anfrage nach einer digitalen Komponente, die durch ein auf einem Client-Gerät installiertes erstes SDK generiert wurde. Die Anfrage nach einer digitalen Komponente kann Daten beinhalten, die Merkmale wie z. B. einen Namen (oder Netzwerkstandort) eines Anbieters von digitalen Komponenten, einen Namen (oder einen Netzwerkstandort) des anfragenden Geräts (z. B. des Client-Geräts), und/oder Informationen beinhalten, die die digitalen Komponentenserver verwenden können, um eine digitale Komponente auszuwählen, die als Antwort auf die Anfrage bereitzustellen ist. Die Anfrage wird durch das Client-Gerät über ein Netzwerk (z. B. ein Telekommunikationsnetzwerk) durch einen oder mehrere von den digitalen Komponentenservern empfangen. Die Anfrage kann Daten beinhalten, die andere Merkmale spezifizieren, wie z. B. Anwendungsdaten, die eine Anwendung spezifizieren, die die Anfrage initiiert hat, sowie eine Gruppe von SDKs, die auf dem Client-Gerät installiert sind.
  • Bei Schritt 204 untersuchen die digitalen Komponentenserver Datenfelder die Anfrage. Die digitalen Komponentenserver können eines oder mehrere Datenfelder der Anfrage untersuchen. Die Datenfelder können jeweils unterschiedliche Arten von Daten wie z. B. Ganzzahlen, Zeichenketten, Daten und dgl. beinhalten. In einigen Aspekten sind die digitalen Komponentenserver konfiguriert, um die Datenfelder der Anfrage zu untersuchen, um verschlüsselte Daten der Anfrage zu identifizieren. Die verschlüsselten Daten können dahingehend identifiziert werden, dass sie durch ein auf dem Client-Gerät installiertes zweites SDK generiert wurden. Die verschlüsselten Daten können proprietäre Signale (z. B. proprietär von einem Anbieter des zweiten SDK) beinhalten, die zuvor wiedergegebenen digitalen Komponenten (z. B. die zuvor durch das zweite SDK oder innerhalb einer Anwendung wiedergegeben wurden, die das zweite SDK beinhaltet) entsprechen. Die zuvor wiedergegebenen digitalen Komponenten können durch bestimmte SDKs wiedergegeben werden, die auf dem Client-Gerät installiert sind. Die Informationen, die die SDKs darstellen, können eine Vielzahl von unterschiedlichen SDKs sowie eine Vielzahl von unterschiedlichen Versionen von Anwendungen beinhalten, die den unterschiedlichen SDKs entsprechen. Weiterhin können die verschlüsselten Daten Daten beinhalten, die spezifisch für das Client-Gerät sind. Beispielsweise können die verschlüsselten Daten Beschleunigungsmesserdaten beinhalten, die die Ausrichtung des Client-Geräts darstellen, Beschleunigungsmesserdaten beinhalten, die die Bewegung des Client-Geräts darstellen, Standortsignale beinhalten, die den Standort des Client-Geräts darstellen, und dergleichen.
  • Bei Schritt 206 generieren die digitalen Komponentenserver mehrere Echtzeitanfragen basierend auf den Datenfeldern der Anfrage. Die Echtzeitanfragen können Anfragen nach einer oder mehreren digitalen Komponenten beinhalten. Die digitalen Komponentenserver können konfiguriert sein, um Daten zu beinhalten, die die identifizierte Gruppe von installierten SDKs in den Echtzeitanfragen spezifizieren. Die Server können konfiguriert sein, um Echtzeitanfragen basierend auf der Anfrage nach der digitalen Komponente von dem SDK zu generieren. Jede der Echtzeitanfragen kann Informationen, wie z. B. eine Gruppe von anderen SDKs, beinhalten, die in der identifizierten Anwendung installiert sind.
  • In einigen Aspekten sind die verschlüsselten Daten in den Echtzeitanfragen beinhaltet. Die verschlüsselten Daten können in einer oder mehreren der Echtzeitanfragen als Vorbereitung zum Übertragen zu digitalen Komponentenanbietern beinhaltet sein. Die verschlüsselten Daten können in einer bestimmten Echtzeitanfrage als Vorbereitung zum Übertragen zu einem bestimmten digitalen Komponentenanbieter beinhaltet sein. Der bestimmte digitale Komponentenanbieter kann ein digitaler Komponentenanbieter sein, der berechtigt ist, die verschlüsselten Daten zu entschlüsseln. Die verschlüsselten Daten können in den Echtzeitanfragen beinhaltet sein, aber von den digitalen Komponentenservern vertraulich bleiben, um nur durch berechtigte Anbieter von digitalen Komponenten entschlüsselt zu werden. Beispielsweise können die verschlüsselten Daten in allen Echtzeitanfragen beinhaltet sein und nur unter Verwendung von Schlüsseln durch berechtigte Anbieter von digitalen Komponenten entschlüsselt werden.
  • Bei Schritt 208 übertragen die digitalen Komponentenserver jeweils eine Echtzeitanfrage zu einem entsprechenden Anbieter von digitalen Komponenten. Beispielsweise können die Anbieter von digitalen Komponenten Drittanbieter von Komponenten sein. Die digitalen Komponentenserver können konfiguriert sein, um die Echtzeitanfragen zu Anbietern von digitalen Komponenten über das Netzwerk zu übertragen. Beispielsweise können die digitalen Komponentenserver drei Echtzeitanfragen generieren und jede der Echtzeitanfragen parallel zu einem bestimmten Anbieter von digitalen Komponenten übertragen. Die Echtzeitanfragen können innerhalb eines bestimmten Zeitbetrags nach dem Empfang der anfänglichen Anfrage von dem Client-Gerät zu Anbietern von digitalen Komponenten übertragen werden. Die Echtzeitanfragen können den Drittanbietern von digitalen Komponenten in Reihe, parallel oder jeder beliebigen Kombination davon übertragen werden. Weiterhin kann die anfängliche Anfrage einen Zeitbetrag angeben, in dem die digitale Komponente dem Client-Gerät durch die digitalen Komponentenserver bereitgestellt werden muss.
  • Die Echtzeitanfragen können die verschlüsselten Daten beinhalten. Beispielsweise kann eine Echtzeitanfrage, die verschlüsselte Daten beinhaltet, durch die digitalen Komponentenserver generiert, und zu einem berechtigten digitalen Komponentenserver übertragen werden, ohne die verschlüsselten Daten zu entschlüsseln. Daher können die digitalen Komponentenserver konfiguriert sein, um die Echtzeitanfragen vorzubereiten und die Echtzeitanfragen zu Anbietern von digitalen Komponenten zu leiten, ohne die Vertraulichkeit der verschlüsselten Daten zu beeinträchtigen, die in den Echtzeitanfragen beinhaltet sind. Weiterhin können die verschlüsselten Daten konfiguriert sein, um die Echtzeitanfragen, die verschlüsselte Daten beinhalten, nur an berechtigte Anbieter von digitalen Komponenten zu übertragen.
  • Bei Schritt 210 empfangen die digitalen Komponentenserver eine Gruppe von Antworten auf die Echtzeitanfragen von den entsprechenden Drittanbietern von digitalen Komponenten. Beispielsweise kann jeder Drittanbieter von digitalen Komponenten eine Antwort für die digitalen Komponentenserver bereitstellen. Die Antworten können jeweils eine digitale Komponente zum Wiedergeben auf dem Client-Gerät beinhalten. In einigen Aspekten können die Antworten eine oder mehrere potenzielle digitale Komponenten zum Wiedergeben auf dem Client-Gerät beinhalten. Die digitalen Komponenten der Antworten können auch benutzerdefinierte digitale Komponenten beinhalten. Die benutzerdefinierten digitalen Komponenten können benutzerdefinierte kreative Formate beinhalten, die durch bestimmte SDKs wiedergegeben werden können, die auf dem Client-Gerät installiert sind. Als solche kann eine in einer Antwort beinhaltete benutzerdefinierte digitale Komponente angeben, dass es erforderlich ist, dass die benutzerdefinierte digitale Komponente durch ein SDK außer dem ersten SDK wiedergegeben werden muss, das die ursprüngliche Anfrage generierte.
  • Bei Schritt 212 wählen die digitalen Komponentenserver eine bestimmte Antwort von der Gruppe von Antworten zum Übertragen zu dem Client-Gerät als Reaktion auf die anfängliche Anfrage nach der digitalen Komponente aus. Beispielsweise können die digitalen Komponentenserver drei Antworten empfangen, die auf die Echtzeitanfragen reagieren. Eine bestimmte Antwort der drei Antworten kann durch die digitalen Komponentenserver zum Übertragen zu dem Client-Gerät ausgewählt werden. In einigen Aspekten kann die bestimmte Antwort durch die digitalen Komponentenserver basierend auf Auswahlpunktzahlen (z. B. Angeboten oder ein anderer Wert, der zum Einstufen und/oder Auswählen einer digitalen Komponente aus mehreren unterschiedlichen verfügbaren Komponenten verwendet werden kann) ausgewählt werden, die jeder der Antworten zugeordnet sind. In diesem Fall kann die bestimmte Antwort der höchsten Auswahlpunktzahl aus allen empfangenen Auswahlpunktzahlen entsprechen. In bestimmten Aspekten kann die bestimmte Antwort basierend auf spezifizierten digitalen Komponentenmerkmalen der Anfrage ausgewählt werden. In diesem Fall kann die bestimmte Antwort eine digitale Komponente beinhalten, die alle Kriterien der anfänglichen Anfrage von dem Client-Gerät erfüllt.
  • Bei Schritt 214 übertragen die digitalen Komponentenserver die bestimmte Antwort an das erste SDK mit Anweisungen, die spezifizieren, welches auf dem Client-Gerät installierte SDK eine digitale Komponente wiedergeben muss, die in der bestimmten Antwort beinhaltet ist. Die ausgewählte Antwort kann von den digitalen Komponentenservern über das Netzwerk zu dem Client-Gerät übertragen werden. Die ausgewählte Antwort kann als eine Antwort zu der anfänglichen Anfrage nach einer digitalen Komponente übertragen werden. In bestimmten Aspekten kann die bestimmte Antwort zu dem ersten SDK übertragen werden, das die Anfrage generierte. Die bestimmte Antwort kann Anweisungen beinhalten, die spezifizieren, dass ein SDK außer dem ersten SDK eine in der bestimmten Antwort beinhaltete digitale Komponente wiedergeben muss. In diesem Fall kann das SDK außer dem ersten SDK ein sicheres SDK sein, oder ein SDK, das sich lediglich von dem ersten SDK unterscheidet, das die ursprüngliche Anfrage generierte.
  • In bestimmten Aspekten können die Anweisungen einen API-Aufruf spezifizieren, um die in der bestimmten Antwort beinhaltete digitale Komponente wiederzugeben. Die API kann durch das spezifizierte SDK an dem Client-Gerät wiedergegeben werden. Die API kann eine Gruppe von spezifischen Vorgängen beinhalten, die eine Anwendung aufruft, um Aufgaben auszuführen. Als solche kann die API eine Gruppe von Vorgängen beinhalten, um eine digitale Komponente über das bestimmte SDK einer Anwendung auf dem Client-Gerät wiederzugeben.
  • In einigen Aspekten können die Anweisungen Steuerung der Präsentation der digitalen Komponente für das bestimmte SDK beinhalten. Mit anderen Worten ausgedrückt, kann das bestimmte SDK konfiguriert sein, um die Wiedergabe der digitalen Komponente auf dem Client-Gerät auszuführen (z. B. unter Verwendung der Wiedergabe von Funktionen, die das bestimmte SDK aufweist, die andere, auf dem Client-Gerät installierte SDKs möglicherweise nicht aufweisen).
  • 3 ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Untersuchen von Datenfeldern einer Anfrage nach einer digitalen Komponente. Das Verfahren 300 kann ein Unterverfahren für Schritt 204 des Verfahrens 200 beinhalten. Das Verfahren 300 kann durch einen oder mehrere Server oder andere Computergeräte ausgeführt werden. Beispielsweise können Vorgänge des Verfahrens 300 durch digitale Komponentenserver 110 von 1 ausgeführt werden. Vorgänge des Verfahrens 300 können auch als Anweisungen implementiert werden, die auf einem nicht transitorischen computerlesbaren Medium gespeichert sind, und wenn die Anweisungen durch einen oder mehrere Server (oder andere Computergeräte) ausgeführt werden, veranlassen die Anweisungen den einen oder die mehreren Server, Vorgänge des Verfahrens 300 auszuführen.
  • Bei Schritt 302 identifizieren die digitalen Komponentenserver Anwendungsdaten, die eine Anwendung spezifizieren, die die Anfrage innerhalb der Datenfelder initiierte. Insbesondere können die Datenfelder untersucht werden, um Anwendungsdaten zu identifizieren, die eine bestimmte Anwendung spezifizieren, die die Anfrage an dem Client-Gerät initiierte. Die Datenfelder können einer bestimmten Anwendung basierend auf den Inhalten der Datenfelder sowie den in der Anfrage beinhalteten Typen von Datenfeldern entsprechen.
  • Bei Schritt 304 sind die digitalen Komponentenserver konfiguriert, um die Datenfelder der Anfrage zu untersuchen, um verschlüsselte Daten der Anfrage zu identifizieren. Die verschlüsselten Daten können dahingehend identifiziert werden, dass sie durch ein auf dem Client-Gerät installiertes zweites SDK generiert wurden. Die verschlüsselten Daten können proprietäre Signale beinhalten, die zuvor wiedergegebenen digitalen Komponenten entsprechen. Die zuvor wiedergegebenen digitalen Komponenten können durch bestimmte SDKs wiedergegeben werden, die auf dem Client-Gerät installiert sind. Als solche können Informationen, die die SDKs darstellen, die zuvor zum Wiedergeben digitaler Komponenten verwendet wurden, auch in den verschlüsselten Daten beinhaltet sein. Die Informationen, die die SDKs darstellen, können eine Vielzahl von unterschiedlichen SDKs sowie eine Vielzahl von unterschiedlichen Versionen von Anwendungen beinhalten, die den unterschiedlichen SDKs entsprechen. Weiterhin können die verschlüsselten Daten Daten beinhalten, die spezifisch für das Client-Gerät sind. Beispielsweise können die verschlüsselten Daten Beschleunigungsmesserdaten beinhalten, die die Ausrichtung des Client-Geräts darstellen, Beschleunigungsmesserdaten beinhalten, die die Bewegung des Client-Geräts darstellen, Standortsignale beinhalten, die den Standort des Client-Geräts darstellen, und dergleichen.
  • 4 ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Generieren von Echtzeitanfragen. Das Verfahren 400 kann ein Unterverfahren für Schritt 206 des Verfahrens 200 beinhalten. Das Verfahren 400 kann durch einen oder mehrere Server oder andere Computergeräte ausgeführt werden. Beispielsweise können Vorgänge des Verfahrens 400 durch die digitalen Komponentenserver 110 von 1 ausgeführt werden. Vorgänge des Verfahrens 400 können auch als Anweisungen implementiert werden, die auf einem nicht transitorischen computerlesbaren Medium gespeichert sind, und wenn die Anweisungen durch einen oder mehrere Server (oder andere Computergeräte) ausgeführt werden, veranlassen die Anweisungen den einen oder die mehreren Server, Vorgänge des Verfahrens 400 auszuführen.
  • Bei Schritt 402 identifizieren die digitalen Komponentenserver eine Gruppe von SDKs, die in der bestimmten Anwendung installiert sind, die die Anfrage an dem Client-Gerät initiierte. Insbesondere können die digitalen Komponentenserver die Gruppe von SDKs basierend auf einer Zuordnung der Anwendungsdaten zu installierten SDKs in einer Datenstruktur identifizieren. In einigen Aspekten können die digitalen Komponentenserver konfiguriert werden, um auf eine Zuordnung von Anwendungsdaten zu installierten SDKs zuzugreifen. Die digitalen Komponentenserver können weiterhin konfiguriert werden, um innerhalb der Zuordnung von Anwendungsdaten die in den Anwendungsdaten spezifizierte Anwendung und eine Version der Anwendung zu identifizieren, die die Anfrage initiierte. In diesem Fall können die digitalen Komponentenserver die Gruppe von SDKs identifizieren, die der Anwendung und der Version zugeordnet sind, die die anfängliche Anfrage nach einer digitalen Komponente initiierte.
  • Beispielsweise können die digitalen Komponentenserver konfiguriert werden, um eine Gruppe von installierten SDKs basierend auf einer zuvor festgelegten Datenstruktur zu identifizieren, die Anwendungsdaten zu bestimmten SDKs klassifiziert. Daher können die digitalen Komponentenserver, wenn die digitalen Komponentenserver Anwendungsdaten basierend auf der Anfrage identifizieren, eine Datenstruktur wie z. B. eine Nachschlagetabelle verwenden, um die Anwendungsdaten bestimmten SDKs zuzuordnen. Wenn die Anwendungsdaten bestimmten SDKs zugeordnet werden, können die digitalen Komponentenserver identifizieren, welche SDKs in der Anwendung auf dem Client-Gerät installiert sind. Die digitalen Komponentenserver können konfiguriert sein, um Daten zu beinhalten, die die identifizierte Gruppe von installierten SDKs in den Echtzeitanfragen spezifizieren.
  • In einigen Aspekten können die digitalen Komponentenserver konfiguriert werden, um die Zuordnung von Anwendungsdaten zu installierten SDKs zu generieren. In diesem Fall können die digitalen Komponentenserver vorherige Antworten identifizieren, die zuvor einer bestimmten Version der Anwendung als Reaktion auf vorherige Anfragen bereitgestellt wurden, die durch die bestimmte Version der Anwendung initiiert wurden. Die vorherigen Antworten können von einem in einer Datenstruktur gespeicherten Antwortprotokoll identifiziert werden. Die digitalen Komponentenserver können konfiguriert werden, um eine Gruppe von mehreren unterschiedlichen SDKs zu identifizieren, die in den vorherigen Antworten spezifiziert wurden. Weiterhin können die digitalen Komponentenserver konfiguriert werden, um jedes SDK in der Gruppe von mehreren SDKs der bestimmten Version der Anwendung in der Datenstruktur zuzuordnen.
  • Bei Schritt 404 beinhalten die digitalen Komponentenserver Daten, die die Gruppe von SDKs spezifizieren, die in der Anwendung installiert sind, die die Anfrage des Client-Geräts in jeder Echtzeitanfrage initiierte. Die Echtzeitanfragen können unabhängig voneinander sein. In diesem Fall kann jede Echtzeitanfrage einem bestimmten Anbieter von digitalen Komponenten entsprechen. Die Echtzeitanfragen können zu bestimmten Anbietern von digitalen Komponenten basierend auf der Gruppe von SDKs gesendet werden, die in der Anwendung installiert sind, die die Anfrage an dem Client-Gerät initiierte.
  • Bei Schritt 406 beinhalten die digitalen Komponentenserver die verschlüsselten Daten in einer bestimmten Echtzeitanfrage für einen bestimmten Anbieter von digitalen Komponenten, der berechtigt ist, die durch das zweite SDK generierten verschlüsselten Daten zu entschlüsseln. Die verschlüsselten Daten können in einer oder mehreren Echtzeitanfragen beinhaltet sein. Die verschlüsselten Daten können für jeden der berechtigten Anbieter von digitalen Komponenten dieselben sein. In anderen Aspekten können die verschlüsselten Daten ausschließlich für jeden der Anbieter von digitalen Komponenten sein, sodass die Daten nur durch einen entsprechenden bestimmten Anbieter von digitalen Komponenten entschlüsselt werden können.
  • 5 ist ein Blockdiagramm, das beispielhafte Kommunikationen mit Anbietern von digitalen Komponenten veranschaulicht. Wie bei Ereignis (A) in 5 dargestellt, kann ein Client-Gerät 510 eine Anfrage 515 nach einer digitalen Komponente einem digitalen Komponentenserver 520 unterbreiten. Die Anfrage 515 kann eine Anfrage nach einer benutzerdefinierten digitalen Komponente sein. Die Anfrage 515 kann durch eine bestimmte Anwendung des Client-Geräts 510 initiiert, und durch ein auf dem Client-Gerät 510 installiertes erstes SDK generiert werden. Das erste SDK kann eines von mehreren SDKs sein, die auf dem Client-Gerät 510 installiert sind, und die Anwendung kann eine von mehreren Anwendungen sein, die auf dem Client-Gerät 510 installiert sind.
  • Bei Ereignis (B) empfängt der digitale Komponentenserver 520 die Anfrage 515, und generiert als Reaktion auf Empfangen der Anfrage 515 mehrere Echtzeitanfragen 526. Der digitale Komponentenserver 520 kann Datenfelder der Anfrage 515 untersuchen, um Inhalte der Anfrage 515 sowie Informationen über das Client-Gerät 510 zu bestimmen. Der digitale Komponentenserver 520 kann konfiguriert sein, um Anwendungsdaten 521 durch Untersuchen der Anfrage 515 zu identifizieren. Die Anwendungsdaten 521 können durch den digitalen Komponentenserver 520 verwendet werden, um eine bestimmte Anwendung zu identifizieren, die die Anfrage 515 initiierte. Die Anwendungsdaten 521 können weiterhin durch den digitalen Komponentenserver 520 verwendet werden, um eine Gruppe von installierten SDKs 522 auf dem Client-Gerät 510 zu identifizieren.
  • Der digitale Komponentenserver 520 kann die mehreren Echtzeitanfragen 526 anstatt der durch das Client-Gerät 510 generierten Anfrage 515 generieren. In diesem Fall kann der digitale Komponentenserver 520 konfiguriert werden, um die mehreren Echtzeitanfragen 526 für das Client-Gerät 510 zu generieren.
  • In bestimmten Aspekten kann der digitale Komponentenserver 520 die Anfrage 515 untersuchen, um verschlüsselte Daten zu identifizieren, die durch ein auf dem Client-Gerät 510 installiertes zweites SDK generiert wurden. Die verschlüsselten Daten können vorherigen Anfragen 515, zuvor wiedergegebenen digitalen Komponenten, SDKs, die zum Wiedergeben von digitalen Komponenten verwendet werden, Daten, die zu der Zeit gesammelt werden, wenn die Anfrage 515 generiert wird, Daten, die zu der Zeit gesammelt werden, wenn die Echtzeitanfragen 526 generiert werden, und dgl. entsprechen.
  • Der digitale Komponentenserver 520 kann konfiguriert werden, um eine oder mehrere Echtzeitanfragen 526 zu generieren, die Anbietern 530 von digitalen Komponenten bereitzustellen sind. In einigen Aspekten sind die Echtzeitanfragen 526 für bestimmte Anbieter 530a-n von digitalen Komponenten bestimmt. In diesem Fall können die Echtzeitanfragen 526 verschlüsselte Daten 523a-n beinhalten, die berechtigt sind, um durch bestimmte Anbieter 530a-n von digitalen Komponenten entschlüsselt zu werden. Als solcher kann der digitale Komponentenserver 520 eine Vielzahl von Echtzeitanfragen 526 generieren, die jeweils verschlüsselte Daten 523a-n beinhalten, die dem Auswählen von Anbietern 530a-n von digitalen Komponenten entsprechen.
  • Der digitale Komponentenserver 520 kann einen oder mehrere Server beinhalten, die Anfragen nach digitalen Komponenten empfangen und verarbeiten. Beispielsweise kann der digitale Komponentenserver 520 einen Frontend-Server beinhalten, der Anfragen nach digitalen Komponenten empfängt, und einen anderen Server, der konfiguriert ist, um die Anfrage nach digitalen Komponenten zu verarbeiten. In diesem Fall können der Frontend-Server und der andere Server als separate Geräte implementiert werden, die über ein Netzwerk kommunizieren. Wie durch gewöhnliche Fachleute auf dem Gebiet erkannt werden würde, können der Frontend-Server und der andere Server als ein einzelnes Hardware-Gerät, wie z. B. ein einzelner digitaler Komponentenserver 520, integriert werden.
  • Bei Ereignis (C) empfangen die Anbieter 530 von digitalen Komponenten die Echtzeitanfragen 526 und stellen Antworten 535 auf die Echtzeitanfragen 526 bereit. Die Anbieter 530 von digitalen Komponenten können konfiguriert sein, um digitale Komponenten als Antworten 535 auf die Echtzeitanfragen 526 bereitzustellen. Beispielsweise kann jeder Anbieter 530a-n von digitalen Komponenten eine Echtzeitanfrage 526 empfangen, und eine Antwort 535 bereitstellen, die eine digitale Komponente zum Wiedergeben auf dem Client-Gerät 510 für den digitalen Komponentenserver 520 beinhaltet.
  • In einigen Aspekten empfangen die Anbieter 530 von digitalen Komponenten verschlüsselte Daten 523a-n, die in den Echtzeitanfragen 526 beinhaltet sind. Die verschlüsselten Daten 523a-n können durch berechtigte Anbieter von digitalen Komponenten entschlüsselt werden. In diesem Fall können die Anbieter 530 von digitalen Komponenten entschlüsselte Daten 532a-n verwenden, um zu bestimmen, ob Antworten 535 auf die Echtzeitanfragen 526 bereitzustellen sind, angebotene Preise den Antworten 535 zuzuordnen sind, welche digitalen Komponenten in den Antworten 535 zurückzugeben sind, und dgl. Als solche können die berechtigten Anbieter von digitalen Komponenten konfiguriert sein, um Antworten 535 auf die Echtzeitanfragen 526 unter Verwendung der entschlüsselten Daten 523a-n zu generieren, die jeder berechtigte Anbieter von digitalen Komponenten entschlüsselte, und die Antworten 535 für den digitalen Komponentenserver 520 bereitzustellen.
  • Bei Ereignis (D) empfängt der digitale Komponentenserver 520 die Antworten 535 von den Anbietern 530 von digitalen Komponenten, und wählt eine bestimmte Antwort aus, die zu dem Client-Gerät 510 zu übertragen ist. Der digitale Komponentenserver 520 kann die bestimmte Antwort zum Wiedergeben durch ein SDK auswählen, das auf dem Client-Gerät 510 installiert ist. In einigen Aspekten kann die bestimmte Antwort durch die digitalen Komponentenserver 520 basierend auf Geboten ausgewählt werden, die jeder der Antworten 535 zugeordnet sind. In einigen Aspekten kann die bestimmte Antwort basierend auf spezifizierten digitalen Komponentenmerkmalen der anfänglichen Anfrage 515 ausgewählt werden.
  • Die ausgewählte Antwort kann von dem digitalen Komponentenserver 520 als digitale Komponentendaten 528 zu dem Client-Gerät 510 übertragen werden. Die digitalen Komponentendaten 528 können als eine Antwort auf die anfängliche Anfrage 515 nach einer digitalen Komponente bereitgestellt werden. In bestimmten Aspekten können die digitalen Komponentendaten 528 zu dem ersten SDK übertragen werden, das die Anfrage 515 auf dem Client-Gerät 510 generierte. Die digitalen Komponentendaten 528 können Anweisungen beinhalten, die ein anderes, auf dem Client-Gerät 510 installiertes SDK außer dem ersten SDK, spezifizieren, das erforderlich ist, um eine digitale Komponente entsprechend den digitalen Komponentendaten 528 wiederzugeben.
  • 6 zeigt ein Blockdiagramm eines beispielhaften Computersystems 600, das verwendet werden kann, um die zuvor beschriebenen Vorgänge durchzuführen. Das System 600 beinhaltet einen Prozessor 610, einen Arbeitsspeicher 620, eine Speichervorrichtung 630 und eine Eingabe-/Ausgabe-Vorrichtung 640. Die jeweiligen Komponenten 610, 620, 630 und 640 können beispielsweise unter Verwendung von einem Systembus 650 miteinander verbunden werden. Der Prozessor 610 kann Anweisungen zur Ausführung innerhalb des Systems 600 verarbeiten. In einer Implementierung ist der Prozessor 610 ein Einzel-Thread-Prozessor. In einer weiteren Implementierung ist der Prozessor 610 ein Multi-Thread-Prozessor. Der Prozessor 610 ist in der Lage, im Arbeitsspeicher 620 oder im Speichergerät 630 abgelegte Befehle zu verarbeiten.
  • Der Arbeitsspeicher 620 speichert Informationen innerhalb des Systems 600. In einer Implementierung ist der Arbeitsspeicher 620 ein computerlesbares Medium. In einer Implementierung ist der Arbeitsspeicher 620 eine flüchtige Speichereinheit. In einer anderen Implementierung ist der Arbeitsspeicher 620 eine nicht flüchtige Speichereinheit.
  • Das Speichergerät 630 ist in der Lage, Massenspeicher für das System 600 bereitzustellen. In einer Implementierung ist das Speichergerät 630 ein computerlesbares Medium. In verschiedenen Implementierungen kann das Speichergerät 630 beispielsweise eine Festplattenvorrichtung, eine optische Plattenvorrichtung, eine Speichervorrichtung beinhalten, die über ein Netzwerk von mehreren Computergeräten (z. B. ein Cloud-Speichergerät) oder einem anderen Hochkapazitätsspeichergerät gemeinsam genutzt werden.
  • Das Eingabe-/Ausgabegerät 640 stellt Eingabe-/Ausgabevorgänge für das System 600 bereit. In einer Implementierung kann das Eingabe-/Ausgabegerät 640 eines oder mehrere eines Netzwerkschnittstellengeräts, z. B. eine Ethernetkarte, ein serielles Kommunikationsgerät, z. B. einen RS-232-Anschluss und/oder ein kabelloses Schnittstellengerät, z. B. eine 802.11-Karte, beinhalten. In einer weiteren Implementierung kann das Eingabe-/Ausgabegerät Treibergeräte beinhalten, die dafür konfiguriert sind, Eingabedaten zu empfangen und Ausgabedaten an andere Eingabe-/Ausgabegeräte, z. B. an Tastatur, Drucker und Bildschirmgeräte 560, auszugeben. Weitere Implementierungen, wie z. B. mobile Computergeräte, mobile Kommunikationsgeräte, Set-Top-Box-Client-Fernsehgeräte usw., können indes ebenfalls verwendet werden.
  • Obgleich in 6 ein beispielhaftes Verarbeitungssystem beschrieben wurde, können Implementierungen des Gegenstandes, sowie die in dieser Spezifikation beschriebenen Vorgänge in anderen Arten von digitalen elektronischen Schaltkreisanordnungen oder in Computersoftware, Firmware oder Hardware, darunter auch in aus dieser Spezifikation hervorgehenden Strukturen und deren strukturellen Entsprechungen oder in Kombinationen einer oder mehrerer derselben implementiert werden.
  • Ein elektronisches Dokument kann, muss aber einer Datei nicht entsprechen. Ein Dokument kann in einem Teil einer Datei, die andere Dokumente in einer einzelnen Datei beinhaltet, die dem betreffenden Dokument zugeordnet sind, oder in mehreren koordinierten Dateien gespeichert sein.
  • Es wurde eine Anzahl von Implementierungen beschrieben. Trotzdem versteht es sich, dass verschiedene Modifikationen durchgeführt werden können, ohne vom Sinn und Umfang der Offenbarung abzuweichen. Zum Beispiel können verschiedene Formen der vorstehend dargestellten Abläufe verwendet und Schritte neu geordnet, hinzugefügt oder entfernt werden.
  • Ausführungsformen der Erfindung und die in dieser Spezifikation beschriebenen Funktionsvorgänge können in digitalen elektronischen Schaltungen oder in Computersoftware, -Firmware oder -Hardware, darunter auch in den in dieser Spezifikation offenbarten Strukturen und deren strukturellen Entsprechungen oder in Kombinationen von einer oder mehrerer derselben, implementiert werden. Ausführungsformen der Erfindung können als ein oder mehrere Computerprogrammprodukte implementiert werden, d. h. als ein oder mehrere Module von Computerprogrammbefehlen, die auf einem computerlesbaren Medium zur Ausführung codiert sind, oder um den Betrieb von Datenverarbeitungsvorrichtungen zu steuern. Das computerlesbare Speichermedium kann ein maschinenlesbares Speichergerät, ein maschinenlesbares Speichersubstrat, ein Speichergerät, eine Stoffzusammensetzung, die ein maschinenlesbares verbreitetes Signal bewirkt, oder eine Kombination aus einem oder mehreren davon sein. Der Begriff „Datenverarbeitungsvorrichtung“ umfasst alle Vorrichtungen, Geräte und Maschinen zum Verarbeiten von Daten, einschließlich beispielsweise eines programmierbaren Prozessors, eines Computers oder mehrerer Prozessoren oder Computern. Die Vorrichtung kann neben der Hardware auch einen Code beinhalten, der eine Ausführungsumgebung für das betreffende Computerprogramm bildet, z. B. einen Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbank-Managementsystem, ein Betriebssystem oder eine Kombination einer oder mehrerer der genannten darstellt. Ein propagiertes Signal ist ein künstlich erzeugtes Signal, wie z. B. ein maschinengeneriertes elektrisches, optisches oder elektromagnetisches Signal, das erzeugt wird, um Informationen für die Übertragung zu einer geeigneten Empfangsvorrichtung zu codieren.
  • Ein Computerprogramm (auch als Programm, Software, Software-Anwendung, Script oder Code bekannt) kann in jeder Form von Programmiersprache, darunter auch in kompilierten oder interpretierten Sprachen, geschrieben und in jeder Form angewendet werden, darunter auch als eigenständiges Programm oder als Modul, Komponente, Subroutine oder andere Einheit, die für die Verwendung in einer Computerumgebung geeignet ist. Ein Computerprogramm entspricht nicht unbedingt einer Datei in einem Dateisystem. Ein Programm kann in einem Teil einer Datei, die andere Programme oder Daten enthält (z. B. ein oder mehrere Scripts, die in einem Dokument in Markup-Sprache gespeichert sind), in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Teile von Code speichern) gespeichert sein. Ein Computerprogramm kann auf einem Computer oder auf mehreren Computern bereitgestellt und ausgeführt werden, die sich an einem Standort oder an mehreren Standorten verteilt befinden und über ein Kommunikationsnetzwerk miteinander verbunden sind.
  • Die in dieser Beschreibung beschriebenen Prozesse und Logikabläufe können durch einen oder mehrere programmierbare Prozessoren ausgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Funktionen durch Verarbeiten von Eingabedaten und Erzeugen von Ausgaben auszuführen. Die Prozesse und Logikabläufe können zudem durch eine vorhabensgebundene Logikschaltung, wie z. B. einen FPGA (Universalschaltkreis) oder eine ASIC (anwendungsspezifische integrierte Schaltung) ausgeführt, und das Gerät in Form derselben implementiert werden.
  • Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, beinhalten beispielsweise sowohl Universal- als auch Spezialmikroprozessoren, sowie einen oder mehrere Prozessoren einer beliebigen Art von digitalem Computer. Im Allgemeinen empfängt ein Prozessor Befehle und Daten von einem Nur-Lese-Speicher oder einem Speicher mit wahlfreiem Zugriff oder von beiden. Die wesentlichen Elemente eines Computers sind ein Prozessor für das Ausführen von Befehlen und ein oder mehrere Speichergeräte für das Speichern von Befehlen und Daten. Im Allgemeinen beinhaltet ein Computer außerdem ein oder mehrere Massenspeichergeräte zum Speichern von Daten, wie z. B. Magnet-, magneto-optische oder optische Disketten, um Daten zu empfangen und/oder zu senden, oder ist operativ an ein solches Speichergerät gekoppelt. Ein Computer muss jedoch nicht über diese Geräte verfügen. Des Weiteren kann ein Computer in einem anderen Gerät, wie z. B. einem Tabletcomputer, einem Mobiltelefon, einem persönlichen digitalen Assistenten (PDA), einem mobilen Audioplayer, einem globalen Positionsbestimmungssystem-(GPS)-Empfänger integriert sein, um nur einige Beispiele zu nennen. Computerlesbare Medien, die für das Speichern von Computerprogrammanweisungen und -daten geeignet sind, schließen alle Formen von nicht flüchtigen Speichern, Medien- und Speichergeräten ein, darunter auch beispielsweise Halbleiter-Speichergeräte, z. B. EPROM, EEPROM und Flash-Speicher; Magnetdisketten, z. B. interne Festplatten oder herausnehmbare Disketten; magneto-optische Disketten; sowie CD-ROMs und DVD-ROMs. Der Prozessor und der Speicher können durch eine Spezial-Logikschaltung ergänzt oder in dieselbe integriert werden.
  • Um eine Interaktion mit einem Benutzer bereitzustellen, können Ausführungsformen der Erfindung auf einem Computer implementiert werden, der ein Anzeigegerät (wie z. B. einen CRT-(Kathodenstrahlröhren) oder LCD-(Flüssigkristallanzeige)-Monitor), um dem Benutzer Informationen anzuzeigen, sowie eine Tastatur und ein Zeigegerät (z. B. eine Maus oder einen Trackball) aufweist, mittels denen der Benutzer eine Eingabe an dem Computer vornehmen kann. Darüber hinaus können andere Geräte verwendet werden, um die Interaktion mit einem Benutzer zu ermöglichen; zum Beispiel kann es sich bei der Rückmeldung an den Benutzer um jegliche Art von sensorischer Rückmeldung, wie z. B. visuelle, akustische oder taktile Rückmeldungen, handeln; ebenso können die Eingaben des Benutzers in beliebiger Form, d. h. unter anderem auch akustisch, sprachlich oder taktil, empfangen werden.
  • Ausführungsformen der Erfindung können in einem Computersystem implementiert sein, das eine Backendkomponente, wie z. B. einen Datenserver, oder eine Middlewarekomponente, wie z. B. einen Applikationsserver, oder eine Frontendkomponente, wie z. B. einen Clientcomputer, der eine grafische Benutzeroberfläche oder einen Web-Browser aufweist, durch den ein Benutzer mit einer Implementierung der Erfindung interagieren kann, oder eine Kombination aus einer oder mehreren dieser Backend-, Middleware- oder Frontendkomponenten beinhaltet. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation, wie z. B. ein Kommunikationsnetzwerk, miteinander verbunden sein. So beinhalten beispielsweise Kommunikationsnetzwerke ein lokales Netzwerk („LAN“), ein Fernnetz („WAN“), z. B. das Internet.
  • Das Computersystem kann Clients und Server beinhalten. Ein Client und ein Server befinden sich im Allgemeinen entfernt voneinander und interagieren typischerweise über ein Kommunikationsnetzwerk. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander aufweisen.
  • Während diese Beschreibung viele Details enthält, sollten diese nicht als Einschränkungen bezüglich des Umfangs der Erfindung oder dessen Ansprüchen ausgelegt werden, sondern vielmehr als Beschreibungen von Merkmalen, die spezifisch für bestimmte Ausführungsformen der Erfindung sind. Bestimmte Merkmale, die in dieser Spezifikation im Kontext der unterschiedlichen Ausführungsformen beschrieben werden, können auch in Kombination in einer einzelnen Ausführungsform implementiert werden. Andererseits können verschiedene Merkmale, die im Kontext einer einzelnen Ausführungsform beschrieben werden, in mehreren Ausführungsformen oder in einer geeigneten Teilkombination implementiert werden. Außerdem können, auch wenn die Merkmale vorstehend ggf. als in bestimmten Kombinationen wirkend beschrieben und zunächst auch als solche beansprucht werden, in einigen Fällen ein oder mehrere Merkmale einer beanspruchten Kombination aus der Kombination herausgenommen und die beanspruchte Kombination auf eine Teilkombination oder eine Variante einer Teilkombination gerichtet werden.
  • Gleichermaßen soll dies, obwohl die Abläufe in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, nicht so verstanden werden, dass die besagten Abläufe in der dargestellten Reihenfolge oder in fortlaufender Reihenfolge durchgeführt werden müssen bzw. alle dargestellten Abläufe durchgeführt werden müssen, um die erwünschten Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Ausführungsformen nicht in allen Ausführungsformen als erforderlich aufgefasst werden, zudem versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder in mehrere Softwareprodukte zusammengefasst werden können.
  • In allen Fällen, in denen eine HTML-Datei erwähnt ist, können stattdessen andere Dateitypen oder Formate verwendet werden. Zum Beispiel kann eine HTML-Datei durch XML, JSON, Klartext oder andere Arten von Dateien ersetzt werden. Des Weiteren können, wo eine Tabelle oder Hashtabelle angegeben wird, andere Datenstrukturen (wie z. B. Tabellenkalkulationen, relationale Datenbanken oder strukturierte Dateien) verwendet werden.
  • Bestimmte Ausführungsformen der Erfindung wurden beschrieben. Weitere Ausführungsformen liegen innerhalb des Umfangs der folgenden Ansprüche. Die in den Ansprüchen ausgeführten Vorgänge können beispielsweise in einer anderen Reihenfolge ausgeführt werden und dennoch wünschenswerte Ergebnisse erzielen.

Claims (17)

  1. Computerprogrammprodukt umfassend Befehle, die, wenn sie auf einer Datenverarbeitungsvorrichtung ausgeführt werden, die Datenverarbeitungsvorrichtung veranlassen, ein Verfahren auszuführen, umfassend: Empfangen einer Anfrage nach einer digitalen Komponente von einem Client-Gerät, die durch ein erstes Software Development Kit (SDK) generiert wurde, das auf dem Client-Gerät installiert ist; Untersuchen von einem oder mehreren Datenfeldern durch einen oder mehrere benutzerdefinierte digitale Komponentenserver, beinhaltend: Identifizieren von Anwendungsdaten, die eine bestimmte Anwendung spezifizieren, die die Anfrage an dem Client-Gerät initiierte; Generieren von mehreren Echtzeitanfragen durch den einen oder die mehreren Server, beinhaltend: Identifizieren einer Gruppe von SDKs, die in der Anwendung installiert sind, die die Anfrage an dem Client-Gerät initiierte, basierend auf einer Zuordnung von Anwendungsdaten zu installierten SDKs in einer Datenstruktur; beinhaltend Daten, die die Gruppe von SDKs spezifizieren, die in der Anwendung installiert sind, die die Anfrage an dem Client-Gerät initiierte. Übertragen von jeder Echtzeitanfrage über ein Netzwerk durch den einen oder die mehreren Server zu einem entsprechenden Drittanbieter von digitalen Komponenten; und Empfangen einer Gruppe von Antworten auf die mehreren Echtzeitanfragen von den entsprechenden Drittanbietern von digitalen Komponenten durch den einen oder die mehreren Server; Auswählen einer bestimmten Antwort von der Gruppe von Antworten zum Übertragen zu dem Client-Gerät als Reaktion auf die anfängliche Anfrage nach der digitalen Komponente, durch den einen oder die mehreren Server; und Übertragen der bestimmten Antwort an das erste SDK mit Anweisungen, die spezifizieren, welches auf dem Client-Gerät installierte SDK eine digitale Komponente wiedergeben muss, die in der bestimmten Antwort beinhaltet ist, durch den einen oder die mehreren Server.
  2. Computerprogrammprodukt nach Anspruch 1, wobei Untersuchen von einem oder mehreren Datenfeldern der durch das erste SDK generierten Anfrage durch einen oder mehrere benutzerspezifische digitale Komponentenserver, beinhaltend Identifizieren von verschlüsselten Daten innerhalb des einen oder der mehreren Datenfelder, die durch ein auf dem Client-Gerät installiertes zweites SDK generiert wurden; und wobei beim Generieren der mehreren Echtzeitanfragen die verschlüsselten Daten in einer bestimmten der Echtzeitanfragen beinhaltet sind, um sie zu einem bestimmten der Drittanbieter zu senden, der berechtigt ist, die durch das zweite SDK generierten verschlüsselten Daten zu entschlüsseln.
  3. Computerprogrammprodukt nach Anspruch 2, wobei beim Übertragen von jeder Echtzeitanfrage über ein Netzwerk durch den einen oder die mehreren Server zu einem entsprechenden Drittanbieter von digitalen Komponenten ein Übertragen der bestimmten Echtzeitanfrage zu dem bestimmten Drittanbieter von digitalen Komponenten ohne Entschlüsseln der verschlüsselten Daten umfasst.
  4. Computerprogrammprodukt nach Anspruch 2 oder 3, wobei: Übertragen von jeder Echtzeitanfrage zu einem entsprechenden Drittanbieter von digitalen Komponenten ein Nicht-Übertragen der bestimmten Echtzeitanfrage zu Dritten umfasst, die nicht berechtigt sind, die durch das zweite SDK generierten verschlüsselten Daten zu entschlüsseln; Empfangen der Gruppe von Antworten auf die mehreren Echtzeitanfragen von den entsprechenden Drittanbietern von digitalen Komponenten ein Empfangen einer gegebenen Antwort in der Gruppe ein bestimmtes SDK außer dem ersten SDK umfasst, das eine in der gegebenen Antwort beinhaltete bestimmte digitale Komponente wiedergeben muss; und Übertragen der gegebenen Antwort als die bestimmte Antwort, wobei das bestimmte SDK die in der gegebenen Antwort beinhaltete bestimmte digitale Komponente wiedergeben muss.
  5. Computerprogrammprodukt nach einem der vorangegangenen Ansprüche, wobei Identifizieren einer Gruppe von SDKs, die in der Anwendung installiert sind, die die Anfrage initiierte, umfasst: Zugreifen auf die Zuordnung von Anwendungsdaten auf installierte SDKs; Identifizieren, innerhalb der Zuordnung, der in den Anwendungsdaten spezifizierten Anwendung und einer Version der Anwendung, die die Anfrage initiierte; und Identifizieren der Gruppe von SDKs, die der Anwendung und der Version zugeordnet sind, die die Anfrage initiierte.
  6. Computerprogrammprodukt nach Anspruch 5, weiterhin umfassend Generieren der Zuordnung von Anwendungsdaten zu installierten SDKs, beinhaltend: Identifizieren vorheriger Antworten, die zuvor der bestimmten Version der Anwendung als Reaktion auf vorherige Anfragen bereitgestellt wurden, die durch die bestimmte Version der Anwendung initiiert wurden, von einem in einer Datenstruktur gespeicherten Antwortprotokoll; Identifizieren einer Gruppe von mehreren unterschiedlichen SDKs von den vorherigen Antworten, die in den vorherigen Antworten spezifiziert wurden; und Zuordnen von jeder SDK in der Gruppe von mehreren SDKs zu der Version der Anwendung in der Datenstruktur.
  7. Computerprogrammprodukt nach einem der vorangegangenen Ansprüche, wobei Übertragen der bestimmten Antwort an das erste SDK mit Anweisungen, die spezifizieren, welches auf dem Client-Gerät installierte SDK eine digitale Komponente wiedergeben muss, die in der bestimmten Antwort beinhaltet ist, ein Übertragen von Anweisungen umfasst, die einen API-Aufruf spezifizieren, um die in der bestimmten Antwort beinhaltete digitale Komponente wiederzugeben.
  8. Computerprogrammprodukt nach einem der vorangegangenen Ansprüche, wobei Übertragen der bestimmten Antwort an das erste SDK mit Anweisungen, die spezifizieren, welches auf dem Client-Gerät installierte SDK eine digitale Komponente wiedergeben muss, die in der bestimmten Antwort beinhaltet ist, ein Bereitstellen der Steuerung der Präsentation der digitalen Komponente für das spezifizierte SDK umfasst.
  9. System, welches das Folgende umfasst: eine Datenstruktur, die eine Zuordnung von Anwendungsdaten zu installierten Software Development Kits (SDKs) speichert, die in unterschiedlichen Anwendungen installiert sind; einen Frontend-Server, der zum Empfangen einer Anfrage nach einer digitalen Komponente von einem Client-Gerät konfiguriert ist, die durch ein erstes SDK generiert wurde, das auf dem Client-Gerät installiert ist; und ein benutzerdefinierter digitaler Komponentenserver, der konfiguriert ist, um die Anfrage durch Ausführen von Vorgängen zu verarbeiten, beinhaltend: Empfangen einer Anfrage nach einer digitalen Komponente von dem Client-Gerät, die durch ein erstes Software Development Kit (SDK) generiert wurde, das auf dem Client-Gerät installiert ist; Untersuchen von einem oder mehreren Datenfeldern der Anfrage, beinhaltend: Identifizieren von Anwendungsdaten, die eine bestimmte Anwendung spezifizieren, die die Anfrage an dem Client-Gerät initiierte; Generieren mehrerer Echtzeitanfragen, beinhaltend: Identifizieren einer Gruppe von SDKs, die in der Anwendung installiert sind, die die Anfrage an dem Client-Gerät initiierte, basierend auf einer Zuordnung von Anwendungsdaten zu installierten SDKs in einer Datenstruktur; beinhaltend Daten, die die Gruppe von SDKs spezifizieren, die in der Anwendung installiert sind, die die Anfrage an dem Client-Gerät initiierte; Übertragen von jeder Echtzeitanfrage über ein Netzwerk zu einem entsprechenden Drittanbieter von digitalen Komponenten; und Empfangen der Gruppe von Antworten auf die mehreren Echtzeitanfragen von den entsprechenden Drittanbietern von digitalen Komponenten; Auswählen einer bestimmten Antwort von der Gruppe von Antworten zum Übertragen zu dem Client-Gerät als Reaktion auf die Anfrage nach der digitalen Komponente; und Übertragen der bestimmten Antwort an das erste SDK mit Anweisungen, die spezifizieren, welches auf dem Client-Gerät installierte SDK eine digitale Komponente wiedergeben muss, die in der bestimmten Antwort beinhaltet ist.
  10. System nach Anspruch 9, wobei beim Untersuchen des einen oder der mehreren Datenfelder der durch das erste SDK generierten Anfrage der benutzerspezifische digitale Komponentenserver konfiguriert ist, innerhalb des einen oder der mehreren Datenfelder verschlüsselte Daten zu identifizieren, die durch ein auf dem Client-Gerät installiertes zweites SDK generiert wurden; und wobei beim Generieren der mehreren Echtzeitanfragen, der benutzerspezifische digitale Komponentenserver konfiguriert ist, die verschlüsselten Daten in einer bestimmten der Echtzeitanfragen zu beinhalten, um sie zu einem bestimmten der Dritten zu senden, der berechtigt ist, die durch das zweite SDK generierten verschlüsselten Daten zu entschlüsseln.
  11. System nach Anspruch 10, wobei beim Übertragen von jeder Echtzeitanfrage über ein Netzwerk zu einem entsprechenden Drittanbieter von digitalen Komponenten der benutzerspezifische digitale Komponentenserver zum Übertragen der bestimmten Echtzeitanfrage zu dem bestimmten Drittanbieter von digitalen Komponenten ohne Entschlüsseln der verschlüsselten Daten konfiguriert ist.
  12. System nach Anspruch 10 oder 11, wobei: beim Übertragen von jeder Echtzeitanfrage zu einem entsprechenden Drittanbieter von digitalen Komponenten der benutzerspezifische digitale Komponentenserver zum Nicht-Übertragen der bestimmten Echtzeitanfrage zu Dritten konfiguriert ist, die nicht berechtigt sind, die durch das zweite SDK generierten verschlüsselten Daten zu entschlüsseln; und im Falle, dass die Gruppe von Antworten auf die mehreren Echtzeitanfragen von den entsprechenden Drittanbietern von digitalen Komponenten eine gegebene Antwort beinhaltet, die ein bestimmtes SDK außer dem ersten SDK spezifiziert, das eine in der gegebenen Antwort beinhaltete bestimmte digitale Komponente wiedergeben muss, der benutzerspezifische digitale Komponentenserver zum Übertragen der gegebenen Antwort als die bestimmte Antwort konfiguriert ist.
  13. System nach einem der Ansprüche 9 bis 12, wobei beim Identifizieren einer Gruppe von SDKs, die in der Anwendung installiert sind, die die Anfrage initiierte, der benutzerspezifische digitale Komponentenserver konfiguriert ist zum: Zugreifen auf die Zuordnung von Anwendungsdaten auf installierte SDKs; Identifizieren, innerhalb der Zuordnung, der in den Anwendungsdaten spezifizierten Anwendung und einer Version der Anwendung, die die Anfrage initiierte; und Identifizieren der Gruppe von SDKs, die der Anwendung und der Version zugeordnet sind, die die Anfrage initiierte.
  14. System nach Anspruch 13, wobei die Vorgänge weiterhin Generieren der Zuordnung von Anwendungsdaten zu installierten SDKs umfassen, beinhaltend: Identifizieren vorheriger Antworten, die zuvor der bestimmten Version der Anwendung als Reaktion auf vorherige Anfragen bereitgestellt wurden, die durch die bestimmte Version der Anwendung initiiert wurden, von einem in einer Datenstruktur gespeicherten Antwortprotokoll; Identifizieren einer Gruppe von mehreren unterschiedlichen SDKs von den vorherigen Antworten, die in den vorherigen Antworten spezifiziert wurden; und Zuordnen von jeder SDK in der Gruppe von mehreren SDKs zu der Version der Anwendung in der Datenstruktur.
  15. System nach einem der Ansprüche 9 bis 14, wobei beim Übertragen der bestimmten Antwort an das erste SDK mit Anweisungen, die spezifizieren, welches auf dem Client-Gerät installierte SDK eine digitale Komponente wiedergeben muss, die in der bestimmten Antwort beinhaltet ist, der benutzerspezifische digitale Komponentenserver zum Übertragen von Anweisungen konfiguriert ist, die einen API-Aufruf spezifizieren, um die in der bestimmten Antwort beinhaltete digitale Komponente wiederzugeben.
  16. System nach einem der Ansprüche 9 bis 15, wobei Übertragen der bestimmten Antwort an das erste SDK mit Anweisungen, die spezifizieren, welches auf dem Client-Gerät installierte SDK eine digitale Komponente wiedergeben muss, die in der bestimmten Antwort beinhaltet ist, Bereitstellen der Steuerung der Präsentation der digitalen Komponente zu dem spezifizierten SDK umfasst, wobei der benutzerspezifische digitale Komponentenserver zum Bereitstellen der Steuerung der Präsentation der digitalen Komponente für das spezifizierte SDK konfiguriert ist.
  17. Nicht flüchtiges computerlesbares Speichermedium, das mit einem Computerprogramm codiert ist, wobei das Programm Anweisungen umfasst, die bei Ausführung durch einen Datenverarbeitungsapparat dazu führen, dass Vorgänge eines Computerprogrammproduktes gemäß dem Verfahren nach einem der Ansprüche 1 bis 8 durchgeführt werden.
DE202017106604.5U 2017-02-02 2017-10-30 Benutzerdefinierte digitale Komponenten Active DE202017106604U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IBPCT/US2017/016220 2017-02-02
PCT/US2017/016220 WO2018143990A1 (en) 2017-02-02 2017-02-02 Custom digital components

Publications (1)

Publication Number Publication Date
DE202017106604U1 true DE202017106604U1 (de) 2018-05-15

Family

ID=58054525

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202017106604.5U Active DE202017106604U1 (de) 2017-02-02 2017-10-30 Benutzerdefinierte digitale Komponenten

Country Status (7)

Country Link
US (4) US10455058B2 (de)
JP (1) JP6766270B2 (de)
KR (2) KR102393818B1 (de)
CN (2) CN114020378B (de)
DE (1) DE202017106604U1 (de)
GB (1) GB2564165B (de)
WO (1) WO2018143990A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102393818B1 (ko) 2017-02-02 2022-05-03 구글 엘엘씨 커스텀 디지털 컴포넌트
WO2019125434A1 (en) * 2017-12-20 2019-06-27 James Giles Joint transmission commitment simulation
US11538091B2 (en) * 2018-12-28 2022-12-27 Cloudblue Llc Method of digital product onboarding and distribution using the cloud service brokerage infrastructure
US10917494B2 (en) 2019-02-01 2021-02-09 Google Llc Dynamic application content analysis
JP7013569B2 (ja) 2019-04-26 2022-01-31 グーグル エルエルシー コンテンツ要求に応答する際のコンピューティングリソースの効率的な使用
WO2021116719A1 (en) * 2019-12-13 2021-06-17 Google Llc Systems and methods for adding digital content during an application opening operation
CN111372132B (zh) * 2020-02-25 2022-03-08 广州华多网络科技有限公司 进行音视频传输的方法、装置、设备及存储介质
US11698822B2 (en) 2020-06-10 2023-07-11 Snap Inc. Software development kit for image processing
CN111949421B (zh) * 2020-08-12 2023-09-05 北京奇艺世纪科技有限公司 Sdk调用方法、装置、电子设备和计算机可读存储介质
CN112463862B (zh) * 2020-11-05 2024-05-17 深圳市和讯华谷信息技术有限公司 一种基于配置权限的数据采集方法及装置
RU2760625C1 (ru) * 2021-03-12 2021-11-29 Акционерное общество "Лаборатория Касперского" Способ настройки IoT-устройств в зависимости от типа сети
CN115756670A (zh) * 2021-09-01 2023-03-07 北京字跳网络技术有限公司 组件处理方法、装置、电子设备、存储介质和产品

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7404515B1 (en) * 2000-05-25 2008-07-29 Diebold Self-Service Systems Divison Of Diebold, Incorporated Cash dispensing automated banking machine diagnostic system and method
WO2003009102A2 (en) 2001-07-19 2003-01-30 Wind River Systems, Inc. Browser having dynamically self-adjusting rendering functionality
JP2003271487A (ja) 2002-03-12 2003-09-26 Nec Corp 通信システム、ゲートウエイ装置、ゲートウエイプログラム
JP2004040209A (ja) 2002-06-28 2004-02-05 Toppan Printing Co Ltd サーバ、icカード、コンテンツの配信方法、コンテンツの取得処理方法およびプログラム
US20070220083A1 (en) * 2006-03-17 2007-09-20 Microsoft Corporation Estimation of initial dynamic rendering control data
WO2011025975A1 (en) * 2009-08-28 2011-03-03 Zynga Game Network, Inc. Apparatuses, methods and systems for a distributed object renderer
US8868637B2 (en) * 2009-09-02 2014-10-21 Facebook, Inc. Page rendering for dynamic web pages
CN102081775A (zh) * 2009-11-27 2011-06-01 阿里巴巴集团控股有限公司 一种广告投放方法、系统和设备
KR101359690B1 (ko) * 2009-12-18 2014-02-10 한국전자통신연구원 온라인 개발환경 서버, 온라인 마켓플레이스 서버, 온라인 개발환경 구성 방법 및 개발된 애플리케이션 서비스 방법
WO2011118222A1 (ja) 2010-03-26 2011-09-29 パナソニック株式会社 再生装置、コンテンツ配信システム、再生方法、コンピュータプログラム及び集積回路
US20110289094A1 (en) * 2010-05-18 2011-11-24 Rovi Technologies Corporation Integrating media content databases
US8843616B2 (en) * 2010-09-10 2014-09-23 Intel Corporation Personal cloud computing with session migration
JP2012064144A (ja) 2010-09-17 2012-03-29 Sharp Corp 中継サーバ、及び広告配信システム
US8452837B2 (en) * 2010-11-03 2013-05-28 Google Inc. Data delivery
CN102479367B (zh) * 2010-11-30 2016-05-04 百度(中国)有限公司 一种用于确定网络推广资源的保留价格的方法和设备
US20120278185A1 (en) * 2011-05-01 2012-11-01 Vinod Kumar Ramachandran Method to adapt ads rendered in a mobile device based on existence of other mobile applications
CN102222005B (zh) * 2011-07-12 2013-10-30 铜陵玉成软件科技有限责任公司 面向业务模型的软件运行平台、运行方式及一种开发方法
US8793235B2 (en) * 2012-01-19 2014-07-29 Google Inc. System and method for improving access to search results
CN102647455B (zh) 2012-03-23 2015-08-05 华为技术有限公司 移动广告的处理方法、代理服务器及终端
US8887178B1 (en) 2012-10-23 2014-11-11 Google Inc. Method to customize native operating system views using web technologies in mobile devices
WO2014065811A1 (en) * 2012-10-26 2014-05-01 Empire Technology Development Llc Securitization of developer credentials
US8862534B1 (en) * 2012-12-07 2014-10-14 Robust Links, LLC Software service infrastructure indexing user demographics, interests and expertise
CN105190671A (zh) * 2013-03-15 2015-12-23 雅虎公司 用于数字视频广告系统中的实时竞价的紧凑数据接口
JP6494609B2 (ja) * 2013-06-18 2019-04-03 チャンベッラ・リミテッド カスタマイズされたソフトウェア開発キット(sdk)生成のための方法および装置
US20150011311A1 (en) * 2013-07-03 2015-01-08 Iswifter, Inc. System and method for experiencing advertised interactive applications
US10643253B2 (en) * 2013-10-24 2020-05-05 Oath Inc. Multi-protocol interactive mobile video advertising
US10025468B2 (en) * 2013-11-15 2018-07-17 Google Llc Personalization of map content via an application programming interface
US11521229B2 (en) * 2014-01-09 2022-12-06 Xandr Inc. Systems and methods for mobile advertisement review
US20150213516A1 (en) * 2014-01-25 2015-07-30 Leo Jeremias Computer system for displaying video ads on web pages
WO2015147656A2 (en) * 2014-03-26 2015-10-01 Auckland Uniservices Limited Automatic process and system for software development kit for application programming interface
US9336538B2 (en) * 2014-04-03 2016-05-10 Vungle, Inc. Systems and methods for providing advertising services to devices with an advertising exchange
US20150310495A1 (en) * 2014-04-23 2015-10-29 Mobile Majority Technology and process for digital, mobile advertising at scale
US20150310494A1 (en) * 2014-04-23 2015-10-29 Mobile Majority Technology and process for digital, mobile advertising at scale
US20150332333A1 (en) * 2014-05-14 2015-11-19 Arfan Chaudhry System and Method for Providing Advertising Slots Before Hyperlink Destination
CN105354013B (zh) * 2014-08-18 2019-07-23 阿里巴巴集团控股有限公司 应用界面渲染方法及装置
WO2016049170A1 (en) * 2014-09-23 2016-03-31 Adelphic, Inc. Providing data and analysis for advertising on networked devices
US20170337589A1 (en) * 2014-10-27 2017-11-23 Yintao Yu Cross device identity matching for online advertising
US10423985B1 (en) * 2015-02-09 2019-09-24 Twitter, Inc. Method and system for identifying users across mobile and desktop devices
US9743137B2 (en) 2015-04-02 2017-08-22 Yume, Inc. Run-time SDK integration for connected video players
US9818134B2 (en) * 2015-04-02 2017-11-14 Vungle, Inc. Systems and methods for dynamic ad selection of multiple ads or ad campaigns on devices
US10146512B1 (en) * 2015-08-28 2018-12-04 Twitter, Inc. Feature switching kits
US10672026B2 (en) * 2016-01-31 2020-06-02 Assaf Toval System and a method for surveying advertisements in mobile applications
CN112989239A (zh) * 2016-03-17 2021-06-18 谷歌有限责任公司 混合的客户端-服务器数据提供的方法
US20170345056A1 (en) * 2016-05-27 2017-11-30 App Annie Inc. Advertisement data metric determination within mobile applications
CN106095423B (zh) * 2016-06-02 2020-12-01 腾讯科技(深圳)有限公司 提供浏览服务的方法、终端及服务器
CN106296283B (zh) * 2016-08-08 2020-04-14 时趣互动(北京)科技有限公司 一种基于移动应用的广告播放方法及系统
US20180130098A1 (en) * 2016-11-04 2018-05-10 Aki Technologies, Inc. Networked system for processing sensor data and external data for an ad server
KR102393818B1 (ko) * 2017-02-02 2022-05-03 구글 엘엘씨 커스텀 디지털 컴포넌트

Also Published As

Publication number Publication date
GB201717717D0 (en) 2017-12-13
US20220303353A1 (en) 2022-09-22
KR102393818B1 (ko) 2022-05-03
CN108684205B (zh) 2021-10-15
US11743348B2 (en) 2023-08-29
US10455058B2 (en) 2019-10-22
US20210051214A1 (en) 2021-02-18
WO2018143990A1 (en) 2018-08-09
CN114020378B (zh) 2023-12-12
JP2020508505A (ja) 2020-03-19
GB2564165B (en) 2021-11-24
US11375044B2 (en) 2022-06-28
KR20190094235A (ko) 2019-08-12
US20200007657A1 (en) 2020-01-02
GB2564165A (en) 2019-01-09
KR20210080600A (ko) 2021-06-30
US20180278719A1 (en) 2018-09-27
JP6766270B2 (ja) 2020-10-07
US10862999B2 (en) 2020-12-08
KR102270749B1 (ko) 2021-06-29
CN108684205A (zh) 2018-10-19
CN114020378A (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
DE202017106604U1 (de) Benutzerdefinierte digitale Komponenten
DE102018004974A1 (de) Globale Vektorempfehlungen auf der Basis von impliziten Interaktions- und Profildaten
DE202015009254U1 (de) Automatisch erzeugende ausführungssequenzen für workflows
DE202014011539U1 (de) System zum verteilten Verarbeiten in einer Nachrichtenübermittlungsplattform
DE112019004390T5 (de) Sichere mehrparteienerfassung von sensiblen daten unter verwendung von private set intersection (psi)
DE112016002120T5 (de) Entwicklungs- und Vetriebsplattform für Software
DE202007019382U1 (de) Event-Suche
DE102017207686A1 (de) Einblicke in die belegschaftsstrategie
DE102016013632A1 (de) Visuelle Analyse von Clickstreams auf Grundlage von Maximalsequenzmustern
DE202015009292U1 (de) Erzeugung eines Aktivitätsflusses
DE112016004178T5 (de) Ereignis-basierte Inhaltsverteilung
DE102013222384A1 (de) Sicherheits-Screening auf Kontextgrundlage für Zugriff auf Daten
DE112008004056T5 (de) Dateitypzuordnung bei einer Fernrechensitzung
DE112013003300B4 (de) Schrittweise Vorbereitung von Videos auf die Lieferung
DE202016107146U1 (de) Benutzerschnittstellen, die das Formatierungsmanagement von digitalem Inhalt erleichtern
DE112020000091T5 (de) Systeme und Verfahren zur Wahrung der Privatsphäre durch Bestimmung der Schnittstellen von Sätzen von Benutzererkennungen
DE112012001441B4 (de) Umsetzen von HTTP-Anforderungen in Vertrauenswürdigkeitsnachrichten zur Sicherheitsverarbeitung
DE202016107513U1 (de) Zuordnungsmodell für Inhaltselementumwandlungen
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE202019005789U1 (de) Bereitstellung von Ereignisinhalten
DE112012006412T5 (de) System zur verteilten Datensuche, Verfahren zur verteilten Datensuche und Managementcomputer
DE112017000039T5 (de) Erzeugen von Deeplinks für Anwendungen auf Basis von mehrstufigen Verweisdaten
DE112014004255T5 (de) System und Verfahren zum Mitnutzen von Spezialzweckverarbeitungsressourcen
DE112016005220T5 (de) Zugangspunkte für Karten
DE112014005183T5 (de) Speicherdienstnetz

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016400000

R151 Utility model maintained after payment of second maintenance fee after six years