User agent dell'app
Nell'ambito dei nostri sforzi più ampi per combattere lo spam, abbiamo sviluppato una specifica standardizzata per l'intestazione User-Agent inviata da un prodotto di analisi/pubblicità per conto di un utente dell'app. Lo user agent dell'app può essere derivato dal codice nativo per rispettare la seguente specifica:
name version (os_and_version; locale; device; build; Proxy)
La definizione di questi campi è la seguente:
Componenti dello user agent | |
---|---|
name | Il nome del prodotto di analisi/pubblicità. ( Tieni presente che se lo user agent viene creato sul lato client, Android// Specified by API consumer. iOS// Specified by API consumer. |
version | La versione del prodotto di analisi/annunci.
( Android// Specified by API consumer. iOS// Specified by API consumer. |
os_and_version | Il sistema operativo e la versione del sistema operativo su cui è in esecuzione l'app. ( AndroidString osAndVersion = "Android " + Build.VERSION.RELEASE; iOSUIDevice *uid = [UIDevice currentDevice]; NSString *osAndVersion = [NSString stringWithFormat:@"%@ %@", [uid systemName], [uid systemVersion]]; |
locale | Un tag locale IETF per il dispositivo, utilizzando il codice
paese e lingua di due lettere separati da un trattino basso.
( AndroidString locale = Locale.getDefault(); iOSNSString *locale = [[NSLocale currentLocale] localeIdentifier] |
device | Il nome del dispositivo fisico su cui è in esecuzione il prodotto
di analisi/pubblicità.
( AndroidString device = Build.MODEL; iOS@import Darwin.sys.sysctl; NSString *device(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname("hw.machine", buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding]; } |
build | "Build/" seguito dal numero di build del sistema operativo.
( AndroidString build = "Build/" + Build.ID; iOS@import Darwin.sys.sysctl; NSString *build(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname("kern.osversion", buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding]; } |
Includi solo ; Proxy
alla fine dello User-Agent dell'app durante la costruzione dello User-Agent dell'app lato server. Se lo user agent dell'app è costruito interamente sul
lato client, escludi ; Proxy
. Pertanto, lo user agent di un'app potrebbe essere:
- Android:
AdMob/7.10.1 (Android 6.0; en_US; SM-G900F; Build/MMB29M; Proxy)
- iOS:
AdMob/7.10.1 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
Richiesta di monitoraggio delle conversioni
Lo scopo delle richieste di monitoraggio delle conversioni è comunicare a Google Ads un evento dell'app che deve essere monitorato come conversione e/o utilizzato per compilare un elenco per il remarketing e per recuperare i metadati che descrivono qualsiasi clic precedente all'evento.
Tutte le chiamate API vengono effettuate al dominio www.googleadservices.com
. Le richieste di conversione sono richieste POST
tramite HTTPS nel seguente percorso:
/pagead/conversion/app/version
1.0
.
Una richiesta di conversione in-app standard conterrà i seguenti parametri.
Richiesta di monitoraggio delle conversioni | |
---|---|
dev_token |
Obbligatorio Luogo: Query Il token sviluppatore statico univoco rilasciato al consumer dell'API. Z_eErE4DkvcKjDM1OVE4c4 |
link_id |
Obbligatorio Luogo: Query L'identificatore del link che associa il token sviluppatore del consumer API a un'app specifica. 31FF8D67E5BB5DD5029DCC2734C2F884 |
app_event_type |
Obbligatorio Luogo: Query Il nome dell'evento app che si è verificato. Questo campo è un'enumerazione e accetterà solo i seguenti valori: • first_open • session_start • in_app_purchase • view_item_list • view_item • view_search_results • add_to_cart • ecommerce_purchase • custom L'evento |
app_event_name |
Obbligatorio a determinate condizioni Luogo: Query Il nome di qualsiasi evento app personalizzato non accettato nel
campo level_achieved Level Achieved Questo campo non deve contenere nessuno dei valori riservati a
|
app_event_data |
Facoltativo Località: corpo Inoltra eventuali dati aggiuntivi sugli eventi avanzati come semplice stringa di mappatura dell'oggetto JSON che associa le chiavi ai valori. I valori accettabili sono stringhe e array di stringhe. {"level": 5, "attempts": 20} |
rdid |
Obbligatorio Luogo: Query Una stringa UUID valida che rappresenta l'ID dispositivo non elaborato. f10e1de2-e237-4f50-b6aa-843c45cc63d6 Nel caso in cui l'ID dispositivo non sia presente, ad esempio l'ID dispositivo di un utente che non ha dato il consenso ATT, impostalo come tutti zeri. 00000000-0000-0000-0000-000000000000 |
id_type |
Obbligatorio Luogo: Query Il tipo di identificatore memorizzato nel campo Androidadvertisingid iOSidfa |
eea |
Obbligatorio a determinate condizioni Luogo: Query L'ambito del EEA.
|
ad_personalization |
Obbligatorio a determinate condizioni Luogo: Query I flag per gli annunci personalizzati
|
ad_user_data |
Obbligatorio a determinate condizioni Luogo: Query Il flag di consenso per l'utilizzo dei dati utente a fini pubblicitari
|
lat |
Obbligatorio Luogo: Query Stato della limitazione del monitoraggio degli annunci per il dispositivo.
|
app_version |
Obbligatorio Luogo: Query La versione attuale dell'app. Deve essere standardizzata nel seguente modo. AndroidpackageManager.getPackageInfo(packageName(), PackageManager.GET_META_DATA).versionName iOS[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] 1.2.4 |
os_version |
Obbligatorio Luogo: Query La versione attuale del sistema operativo host dell'app. Questo valore deve essere standardizzato come segue. Androidandroid.os.Build.VERSION.RELEASE iOS[[UIDevice currentDevice] systemVersion] |
sdk_version |
Obbligatorio Luogo: Query La versione dell'SDK che ha misurato l'evento. Poiché viene utilizzato principalmente
per il debug, deve riflettere la versione di rilascio esattamente come viene pubblicata
con le release dell'SDK. Se l'app non utilizza un SDK, trasmetti lo stesso
valore di 1.9.5r6 |
timestamp |
Obbligatorio Luogo: Query Il timestamp UNIX in cui si è verificato l'evento di conversione, in secondi con una precisione massima di microsecondi. 1432681913.123456 |
value |
Facoltativo Luogo: Query Il valore monetario dell'evento, se presente. Questo valore deve sempre essere formattato come un valore in virgola mobile leggibile automaticamente utilizzando un punto decimale per separare la parte intera e quella frazionaria del valore. 1.99 |
currency_code |
Obbligatorio a determinate condizioni Luogo: Query Il codice valuta ISO
4217 per il parametro USD |
gclid |
Obbligatorio a determinate condizioni Luogo: Query Il valore del parametro di query Cj0KEQjw0dy4BRCuuL_e5M |
market_referrer_gclid |
Obbligatorio a determinate condizioni Luogo: Query Il valore del parametro di query BX3QojHp4mY5MrJtFM_d1u |
gclid_only_request |
Obbligatorio a determinate condizioni Luogo: Query Identificatore per l'attribuzione basata su 1 |
gbraid |
Obbligatorio a determinate condizioni Luogo: Query Valore Ultima visualizzazione ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O |
app_open_source |
Obbligatorio a determinate condizioni Luogo: Query Valore per identificare il link diretto del clic sull'annuncio o le sessioni organiche dell'app. ad_click or organic |
User-Agent |
Obbligatorio Località: intestazione Lo user agent dell'app come definito nella sezione precedente. AdMob/7.10.1 (Android 6.0; en_US; SM-G900F; Build/MMB29M) |
X-Forwarded-For |
Obbligatorio Località: intestazione L'indirizzo IPv4 o IPv6 pubblico del dispositivo in cui è stato misurato l'evento. 216.58.194.174 |
Tutte le richieste devono essere inviate tramite HTTPS. I ping ricevuti tramite HTTP verranno rifiutati.
Tieni presente che se il corpo della richiesta è vuoto (nei casi in cui non vengono trasmessi dati sugli eventi avanzati nel payload app_event_data
), il nostro server richiede di impostare esplicitamente l'intestazione Content-Length: 0
nella richiesta.
Richiesta di esempio
Un esempio di richiesta di monitoraggio delle conversioni valida con un tipo di evento non personalizzato e informazioni sulle entrate è:
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=in_app_purchase &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &eea=0 &ad_personalization=1 &ad_user_data=1 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &value=1.99 ¤cy_code=USD &market_referrer_gclid=BX3QojHp4mY5MrJtFM_d1u &gclid=Cj0KEQjw0dy4BRCuuL_e5M &gclid_only_request=0 &gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
{"app_event_data":{"item_id":["Crayons","Markers"]}}
Un esempio di richiesta di monitoraggio delle conversioni valida con un tipo di evento non personalizzato e informazioni sulle entrate con rdid (advertisingid) non disponibile è:
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=in_app_purchase &rdid=00000000-0000-0000-0000-000000000000 &id_type=advertisingid &eea=0 &ad_personalization=1 &ad_user_data=1 &lat=1 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &value=1.99 ¤cy_code=USD &market_referrer_gclid=BX3QojHp4mY5MrJtFM_d1u &gclid=Cj0KEQjw0dy4BRCuuL_e5M &gclid_only_request=1 &gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; Android,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
{"app_event_data":{"item_id":["Crayons","Markers"]}}
Un esempio di richiesta di avvio sessione valida è:
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=session_start &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &eea=0 &ad_personalization=1 &ad_user_data=1 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &gclid=Cj0KEQjw0dy4BRCuuL_e5M &gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
Un esempio di richiesta di riattribuzione valida per l'inizio sessione di una sessione
iniziata dal link diretto
example://product/123?gclid=Cj0KEQjw0dy4BRCuuL_e5M
è:
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=session_start &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &eea=0 &ad_personalization=1 &ad_user_data=1 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &gclid=Cj0KEQjw0dy4BRCuuL_e5M &gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
Un esempio di richiesta di monitoraggio delle conversioni valida per un utente del SEE con consenso all'utilizzo dei dati utente concesso e personalizzazione degli annunci rifiutata è:
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=in_app_purchase &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &eea=1 &ad_personalization=0 &ad_user_data=1 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &value=1.99 ¤cy_code=USD Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
Codifica dei dati sugli eventi
Per il parametro del corpo app_event_data
, utilizza le seguenti convenzioni
per i tipi di dati primitivi:
Float
- Utilizza il carattere punto come separatore decimale indipendentemente dalla localizzazione dell'app
- Utilizza la precisione decimale a due cifre per rappresentare i valori monetari. Ad esempio, 2,99.
- Non utilizzare la notazione esponenziale, ad esempio 2E+9
- Non utilizzare una virgola per separare gruppi di cifre, ad esempio 1.000.000
- Esempi validi:
-0.5
2.99
1000000.123
Intero
- Invia solo valori interi senza cifre decimali
- Non utilizzare una virgola per separare gruppi di cifre, ad esempio 1.000. 000
- Esempi validi:
1000
-11
0
Data
- Formato della data: aaaa-mm-gg
yyyy
= anno a quattro cifre, ad es. 2016mm
= mese a due cifre, ad es. 09 per settembredd
= giorno a due cifre, ad es. 23 per il 23° giorno del mese
- Invia sempre il numero di cifre specificato sopra. Ad esempio, se invii il valore
per gg per il 5° giorno del mese, invia
05
. - Esempi validi:
"2016-09-23"
"1990-12-31"
- Formato della data: aaaa-mm-gg
Timestamp
- Formato ora: timestamp Unix/Epoch definito nel fuso orario UTC con una precisione fino ai microsecondi
- Esempi validi:
1478713087
per mercoledì 09 nov 2016 17:38:07 GMT1073513982.123000
per mercoledì 7 gennaio 2004 22:19:42.123 GMT
Array
- Invia solo array di valori primitivi (stringhe, numeri e valori booleani)
- Esempi validi:
[123, 456, 789]
["abc"]
Risposta al monitoraggio delle conversioni
La risposta del monitoraggio delle conversioni ha il seguente formato:
{ "ad_events": [<ad event objects>], "errors": [<error strings>], "attributed": true|false }
Gli array ad_events ed errors potrebbero essere vuoti.
Prevediamo che gli errori siano codici di errore leggibili automaticamente, ad esempio invalid_timestamp
.
Codici di errore
invalid_timestamp: la richiesta non aveva un timestamp valido.
eea_missing_or_invalid: la richiesta non aveva il campo "eea" impostato o non era valido.
ad_user_data_missing: il campo della richiesta "ad_user_data" non è stato impostato. Il campo "ad_user_data" è obbligatorio per tutte le richieste DMA incluse nell'ambito.
ad_user_data_invalid: il valore della richiesta "ad_user_data" non era valido. Il campo "ad_user_data" è obbligatorio per tutte le richieste DMA incluse nell'ambito.
ad_personalization_missing_or_invalid: la richiesta non aveva impostato il campo "ad_personalization" o non era valido. Il campo "ad_personalization" è obbligatorio per tutte le richieste DMA incluse nell'ambito.
Gli eventi annuncio sono gli oggetti principali dell'attribuzione delle app e contengono le seguenti proprietà.
Note importanti sul comportamento della risposta a seconda del consenso dell'utente:
Se la conversione ha il consenso per i dati utente degli annunci e l'utente ha dato il consenso all'utilizzo cross-use
nelle impostazioni utente di Google, Google Ads risponderà con un singolo ultimo
clic in tutti i suoi CPS. Se l'utente non ha acconsentito all'utilizzo incrociato
nelle impostazioni utente di Google, Google Ads risponderà con più ultimi
clic, in base al costo per vendita.
Se la conversione include determinati servizi Google nell'ambito del consenso all'uso incrociato selezionato dall'utente, ma non altri, Google Ads risponderà con un singolo ultimo clic nei servizi Google per i quali è stato concesso il consenso all'uso incrociato, ma con più ultimi clic, in base al servizio Google, per quelli per i quali non è stato concesso il consenso all'uso incrociato.
Risposta al monitoraggio delle conversioni | |
---|---|
ad_event_id |
Sempre presente stringa
Q2owS0VRancwZHk0QlJDdXVMX2U1TQ |
conversion_metric |
Sempre presente stringa La metrica di conversione utilizzata per l'attribuzione. Inizialmente supporteremo una metrica di conversione. conversion |
timestamp |
Sempre presente numero Il timestamp UNIX in cui si è verificato l'evento annuncio, in secondi con una precisione fino ai microsecondi. Questo valore deve essere utilizzato per l'attribuzione dell'ultimo clic. 1432681913.123456 |
campaign_type |
Sempre presente stringa Questo campo identifica il tipo di campagna che ha generato l'evento annuncio. I valori possibili sono i seguenti. ACI ACE ACPre Search Display Video Shopping Hotel Performance_Max Other ACi è l'abbreviazione di Campagna per app per incrementare le installazioni. ACE è l'abbreviazione di Campagne per app per incrementare il coinvolgimento. |
campaign_id |
Sempre presente numero L'ID campagna numerico della campagna che ha generato l'evento annuncio. Questo valore è garantito univoco. 123456789 |
campaign_name |
Sempre presente stringa Il nome della campagna definito dall'inserzionista che ha generato l'evento annuncio. Questo valore non è garantito come univoco. Occasional Gamers (Video) |
ad_type |
Sempre presente stringa Il tipo di annuncio che ha generato l'evento dell'annuncio. Questo valore può essere utilizzato per distinguere i vari tipi di inventario nel seguente modo. Promozione di appClickToDownload AppDeepLink AppDeepLinkContinue Unknown |
external_customer_id |
Sempre presente numero L'identificatore dell'inserzionista proprietario della campagna che ha generato l'evento annuncio. Questo valore può essere utilizzato per distinguere gli account Google Ads. 123456789 |
location |
Sempre presente numero Il codice ID della località per la posizione geografica dell'evento annuncio. Consulta il riferimento dell'API Google Ads per interpretare i codici località. |
network_type |
Sempre presente stringa Questo campo identifica la rete pubblicitaria Google Ads in cui si è verificato l'evento annuncio. I valori possibili sono i seguenti. Search Display YouTube GoogleTv cross-network |
network_subtype |
Sarà stringa Questo campo identificherà il "sottotipo" della rete pubblicitaria Google Ads in cui si è verificato l'evento annuncio. I valori possibili variano in base al tipo di rete principale. CercaRicerca Google normaleGoogleSearch SearchPartners DisplayPublisher web mobilemGDN Google AdMob YouTubeRete video di YouTubeYouTubeVideos YouTubeSearch VideoPartners GoogleTvRete video di GoogleTVGoogleTvVideos cross-networkPerformance Max cross-networkcross-network |
video_id |
Fornito solo quando stringa L'ID video di YouTube associato all'evento pubblicitario. dQw4w9WgXcQ |
keyword |
Fornito solo quando stringa La parola chiave di ricerca associata all'evento annuncio. +food +delivery |
match_type |
Fornito solo quando stringa Il tipo di corrispondenza per le parole chiave per la rete di ricerca. Esattoe p b |
placement |
Fornito solo quando stringa Il posizionamento associato all'evento annuncio. mobileapp::1-343200656 |
ad_group_id |
Fornito solo quando numero L'ID numerico del gruppo di annunci che ha generato l'evento annuncio. Questo valore è garantito univoco. 123456789 |
ad_group_name |
Fornito solo quando stringa Il nome del gruppo di annunci definito dall'inserzionista che ha prodotto l'evento annuncio. Questo valore non è garantito come univoco. My App AdGroup |
creative_id |
Fornito solo quando numero L'ID numerico dell'unità pubblicitaria della creatività che ha generato l'evento pubblicitario. Questo valore è garantito univoco. 123456789 |
interaction_type |
Questo campo sarà sempre il coinvolgimento. stringa |
Risposte di esempio
Un esempio di risposta al monitoraggio delle conversioni quando la richiesta conteneva errori è:
{ "ad_events": [], "errors": ["INVALID_CURRENCY_CODE"], "attributed": false }
Un esempio di risposta negativa al monitoraggio delle conversioni è:
{ "ad_events": [], "errors": [], "attributed": false }
Verrà restituita una risposta di monitoraggio delle conversioni per tutte le richieste di monitoraggio delle conversioni.
Un esempio di risposta di monitoraggio delle conversioni affermativa per un utente non SEE per una campagna universale per app è:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "engagement", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Search", "network_subtype": "GoogleSearch", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }], "errors": [], "attributed": true, "warnings": [] }
Un esempio di risposta affermativa al monitoraggio delle conversioni per un utente non SEE per una campagna sulla rete di ricerca è:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "engagement", "campaign_type": "Search", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Search", "network_subtype": "GoogleSearch", "video_id": null, "keyword": "+space +birds", "match_type": "b", "placement": null, "ad_group_id": 123456789, "ad_group_name": "My App AdGroup", "creative_id": 123456789, "timestamp": 1432681913.123456 }], "errors": [], "attributed": true, "warnings": [] }
Un esempio di risposta affermativa del monitoraggio delle conversioni per un utente non SEE per una campagna display è:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "engagement", "campaign_type": "Display", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Display", "network_subtype": "mGDN", "video_id": null, "keyword": null, "match_type": null, "placement": "mobile-app::2-343200656", "ad_group_id": 123456789, "ad_group_name": "My App AdGroup", "creative_id": 123456789, "timestamp": 1432681913.123456 }], "errors": [], "attributed": true, "warnings": [] }
Un esempio di risposta affermativa al monitoraggio delle conversioni per un utente non SEE per una campagna YouTube è:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "engagement", "campaign_type": "Video", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "YouTube", "network_subtype": "YouTubeVideos", "video_id": "dQw4w9WgXcQ", "keyword": null, "match_type": null, "placement": null, "ad_group_id": 123456789, "ad_group_name": "My App AdGroup", "creative_id": 123456789, "timestamp": 1432681913.123456 }], "errors": [], "attributed": true, "warnings": [] }
Un esempio di risposta al monitoraggio delle conversioni attribuite in cui la conversione viene attribuita sia alle interazioni con gli annunci Play che con gli annunci della rete di ricerca, ma il consenso all'utilizzo incrociato ai sensi degli articoli 5(2)(b) e 5(2)(c) è negato tra le CPS Play e della rete di ricerca è:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Display", "network_subtype": "", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, { "ad_event_id": "I8YUwWqxvOyqcwOcqBAkYZBMaOONSd", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Search", "network_subtype": "", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, ], "errors": [], "warnings": [], "attributed": true }
Un esempio di risposta di monitoraggio delle conversioni attribuite in cui la conversione viene attribuita sia alle interazioni con gli annunci Play + Ricerca sia al consenso all'utilizzo incrociato ai sensi degli articoli 5(2)(b) e 5(2)(c) accettato tra i CPS Play + Ricerca è simile al comportamento di conversione attuale:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Display", "network_subtype": "", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, ], "errors": [], "warnings": [], "attributed": true }
Un esempio di risposta di monitoraggio delle conversioni attribuite in cui la conversione viene attribuita sia alle interazioni con gli annunci di Google Play, della rete di ricerca e di YouTube sia al consenso all'utilizzo incrociato ai sensi degli articoli 5(2)(b) e 5(2)(c) accettato tra i CPS di Google Play e della rete di ricerca, ma negato al CPS di YouTube è:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Display", "network_subtype": "", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, { "ad_event_id": "I8YUwWqxvOyqcwOcqBAkYZBMaOONSd", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Youtube", "network_subtype": "YouTubeVideos", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, ], "errors": [], "warnings": [], "attributed": true }
Richiesta di attribuzione su più reti
Quando Google Ads risponde in modo affermativo a una richiesta di monitoraggio delle conversioni, il consumer dell'API deve comunicare a Google Ads la sua decisione di attribuzione cross-network dopo aver identificato l'ultimo clic.
La richiesta di attribuzione cross-network è identica alla richiesta di monitoraggio delle conversioni originale, ma con un percorso della richiesta di:
/pagead/conversion/app/1.0/cross_network
e l'aggiunta di due parametri obbligatori:
Richiesta di attribuzione su più reti | |
---|---|
ad_event_id |
Obbligatorio Luogo: Query L'identificatore |
attributed |
Obbligatorio Luogo: Query Se Google Ads ha ricevuto o meno il merito della conversione da parte del consumer dell'API. |
Un esempio di richiesta di attribuzione cross-network valida è:
POST /pagead/conversion/app/1.0/cross_network ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=custom &app_event_name=level_achieved &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &value=1.99 ¤cy_code=USD &ad_event_id=Q2owS0VRancwZHk0QlJDdXVMX2U1TQ &attributed=1 Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
Una richiesta di attribuzione cross-network valida riceverà sempre una risposta 200 generica senza corpo della risposta.