Klient użytkownika aplikacji
W ramach naszych szeroko zakrojonych działań walczących ze spamem opracowaliśmy standard standaryzacji nagłówka User-Agent wysłanego przez usługę analityczną lub reklamę w imieniu użytkownika aplikacji. Klient użytkownika aplikacji można pobrać z kodu natywnego zgodnie z tą specyfikacją:
name version (os_and_version; locale; device; build; Proxy)
Definicje tych pól są następujące:
Komponenty User-Agent | |
---|---|
name | Nazwa usługi Analytics lub Google Ads. ( Pamiętaj, że jeśli klient użytkownika jest tworzony po stronie klienta, Android// Specified by API consumer. iOS// Specified by API consumer. |
version | Wersja usługi Analytics lub Google Ads.
( Android// Specified by API consumer. iOS// Specified by API consumer. |
os_and_version | System operacyjny i jego wersja. ( AndroidString osAndVersion = "Android " + Build.VERSION.RELEASE; iOSUIDevice *uid = [UIDevice currentDevice]; NSString *osAndVersion = [NSString stringWithFormat:@"%@ %@", [uid systemName], [uid systemVersion]]; |
locale | Tag regionalny IETF urządzenia składający się z dwuliterowego kodu języka i kraju z podkreśleniem.
( AndroidString locale = Locale.getDefault(); iOSNSString *locale = [[NSLocale currentLocale] localeIdentifier] |
device | Nazwa urządzenia fizycznego, na którym jest uruchomiona usługa Analytics/Google Ads.
( 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/", po którym następuje numer kompilacji systemu operacyjnego.
( 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]; } |
Na końcu kodu User-Agent aplikacji umieść właściwość ; Proxy
na końcu jej adresu. Jeśli klient użytkownika aplikacji jest w całości utworzony po stronie klienta, wyklucz ; Proxy
. Klient użytkownika może więc być:
- System Android:
AdMob/7.10.1 (Android 6.0; en_US; SM-G900F; Build/MMB29M; Proxy)
- System iOS:
AdMob/7.10.1 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
Prośba o śledzenie konwersji
Żądania śledzenia konwersji mają służyć do powiadamiania Google Ads o zdarzeniu w aplikacji, które powinno być śledzone jako konwersja lub służyć do zapełniania listy remarketingowej, oraz do pobierania metadanych opisujących kliknięcia, które doprowadziły do tego zdarzenia.
Wszystkie wywołania interfejsu API są wykonywane w domenie www.googleadservices.com
. Żądania konwersji to żądania POST
wysyłane przez HTTPS w następującej ścieżce:
/pagead/conversion/app/versionodpowiednim wersją interfejsu API śledzenia konwersji jest version. Obecnie jedyną poprawną wersją jest
1.0
.
Standardowe żądanie konwersji z aplikacji zawiera te parametry:
Prośba o śledzenie konwersji | |
---|---|
dev_token |
Wymagany Lokalizacja: zapytanie Niepowtarzalny, statyczny token dewelopera wystawiany konsumentowi interfejsu API. Z_eErE4DkvcKjDM1OVE4c4 |
link_id |
Wymagany Lokalizacja: zapytanie Identyfikator połączenia, który łączy token programisty klienta klienta API z konkretną aplikacją. 31FF8D67E5BB5DD5029DCC2734C2F884 |
app_event_type |
Wymagany Lokalizacja: zapytanie Nazwa zdarzenia w aplikacji. To pole zawiera wyliczenie i może przyjmować tylko te wartości: • first_open • session_start • in_app_purchase • view_item_list • view_item • view_search_results • add_to_cart • ecommerce_purchase • custom Zdarzenie |
app_event_name |
Wymagany w określonych warunkach Lokalizacja: zapytanie Nazwa każdego niestandardowego zdarzenia aplikacji, które nie jest akceptowane w polu level_achieved Level Achieved To pole nie może zawierać żadnych wartości zarezerwowanych dla właściwości |
app_event_data |
Opcjonalnie Lokalizacja: treść Przekaż wszelkie dodatkowe dane o zdarzeniach rozszerzonych jako proste ciągi znaków mapowania obiektów JSON do wartości. Dopuszczalne wartości to ciągi tekstowe i tablice ciągów znaków. {"level": 5, "attempts": 20} |
rdid |
Wymagany Lokalizacja: zapytanie Prawidłowy ciąg identyfikatora UUID reprezentujący nieprzetworzony identyfikator urządzenia. f10e1de2-e237-4f50-b6aa-843c45cc63d6 W przypadku braku identyfikatora urządzenia, np. identyfikatora użytkownika ATT bez zgody użytkownika, ustaw wartość 0 na zero. 00000000-0000-0000-0000-000000000000 |
id_type |
Wymagany Lokalizacja: zapytanie Typ identyfikatora zapisanego w polu Androidadvertisingid iOSidfa |
lat |
Wymagany Lokalizacja: zapytanie Ograniczyć stan śledzenia reklam na urządzeniu.
|
app_version |
Wymagany Lokalizacja: zapytanie Obecna wersja aplikacji. Należy ją ustandaryzować w następujący sposób. AndroidpackageManager.getPackageInfo(packageName(), PackageManager.GET_META_DATA).versionName iOS[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] 1.2.4 |
os_version |
Wymagany Lokalizacja: zapytanie Obecna wersja systemu operacyjnego aplikacji. Należy to ujednolicić w ten sposób. Androidandroid.os.Build.VERSION.RELEASE iOS[[UIDevice currentDevice] systemVersion] |
sdk_version |
Wymagany Lokalizacja: zapytanie Wersja pakietu SDK, który mierzył zdarzenie. Ta wersja jest używana głównie na potrzeby debugowania, więc powinna odzwierciedlać dokładnie wersję wersji opublikowaną z pakietami SDK. Jeśli aplikacja nie korzysta z pakietu SDK, przekaż tę samą wartość co w 1.9.5r6 |
timestamp |
Wymagany Lokalizacja: zapytanie Sygnatura czasowa UNIX wystąpienia zdarzenia konwersji w sekundach (z dokładnością do mikrosekund). 1432681913.123456 |
value |
Opcjonalnie Lokalizacja: zapytanie Wartość pieniężna zdarzenia (jeśli istnieje). Powinna to być zawsze formatowana jako czytelna dla komputera wartość zmiennoprzecinkowa z użyciem separatora dziesiętnego do oddzielania części całkowitej i części ułamkowej. 1.99 |
currency_code |
Wymagany w określonych warunkach Lokalizacja: zapytanie Kod waluty ISO 4217 parametru USD |
gclid |
Wymagany w określonych warunkach Lokalizacja: zapytanie Wartość parametru zapytania Cj0KEQjw0dy4BRCuuL_e5M |
market_referrer_gclid |
Wymagany w określonych warunkach Lokalizacja: zapytanie Wartość parametru zapytania BX3QojHp4mY5MrJtFM_d1u |
gclid_only_request |
Wymagany w określonych warunkach Lokalizacja: zapytanie Identyfikator oparty na atrybucji 1 |
gbraid |
Wymagany w określonych warunkach Lokalizacja: zapytanie Ostatnia wartość ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O |
app_open_source |
Wymagany w określonych warunkach Lokalizacja: zapytanie Wartość do identyfikowania sesji precyzyjnych kliknięć reklamy lub bezpłatnych wyników wyszukiwania w aplikacji. ad_click or organic |
User-Agent |
Wymagany Lokalizacja: nagłówek Klient użytkownika aplikacji, jak określono w poprzedniej sekcji. AdMob/7.10.1 (Android 6.0; en_US; SM-G900F; Build/MMB29M) |
X-Forwarded-For |
Wymagany Lokalizacja: nagłówek Publiczny adres IPv4 lub IPv6 urządzenia, na którym zdarzenie zostało zmierzone. 216.58.194.174 |
Wszystkie żądania muszą być wysyłane przez HTTPS. Pingi odebrane przez HTTP zostaną odrzucone.
Pamiętaj, że jeśli treść żądania jest pusta (jeśli w ładunku app_event_data
nie są przekazywane żadne dane o zdarzeniach rozszerzonych), nasz serwer musi wyraźnie ustawić nagłówek Content-Length: 0
w żądaniu.
Przykładowe żądanie
Prawidłowe żądanie śledzenia konwersji z niestandardowym typem zdarzenia i informacjami o przychodach to:
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 &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
{"app_event_data":{"item_id":["Crayons","Markers"]}}
Prawidłowe żądanie śledzenia konwersji z niestandardowym typem zdarzenia i informacjami o przychodach z parametrem rdid (advertisingid) niedostępny:
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 &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 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"]}}
Przykłady prawidłowych żądań początku sesji:
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 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 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
Przykładowe żądanie ponownej atrybucji początku sesji dla sesji, która rozpoczęła się od precyzyjnego linku 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 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &gclid=Cj0KEQjw0dy4BRCuuL_e5M 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
Kodowanie danych zdarzenia
W przypadku parametru treści app_event_data
użyj podstawowych konwencji dotyczących podstawowych typów danych:
Swobodne
- Jako separatora dziesiętnego używaj kropki, niezależnie od lokalizacji aplikacji.
- Używaj dwucyfrowych cyfr po przecinku, aby określić wartości pieniężne, np. 2,99
- Nie używaj notacji wykładniczej, np. 2E+9
- Nie używaj przecinków do oddzielania grup cyfr, np. 1 000 000
- Prawidłowe przykłady:
-0.5
2.99
1000000.123
Liczba całkowita
- Wysyłaj tylko wartości całkowite bez cyfr po przecinku
- Nie używaj przecinków do oddzielania grup cyfr, np. 1 000 000
- Prawidłowe przykłady:
1000
-11
0
Date
- Format daty: rrrr-mm-dd
yyyy
= rok czterocyfrowy, np. 2016mm
= miesiąc z 2 cyframi, np. 09 wrześniadd
= dzień po dwucyfrowym, np. 23. dla 23. dnia miesiąca
- Zawsze wysyłaj liczbę określoną powyżej, np. jeśli wysyłasz wartość dd dla 5 dnia miesiąca, wyślij
05
. - Prawidłowe przykłady:
"2016-09-23"
"1990-12-31"
- Format daty: rrrr-mm-dd
Sygnatura czasowa
- Format czasu: sygnatura czasowa Unix/Epoch zdefiniowana w strefie czasowej UTC z dokładnością do maksymalnie mikrosekund
- Prawidłowe przykłady:
1478713087
, śr 09 listopad 2016, 17:38:07 GMT1073513982.123000
, śr 07 sty 2004, 22:19:42.123 GMT
Tablica
- Przesyłaj tylko tablice wartości podstawowych (ciągi tekstowe, liczby i wartości logiczne)
- Prawidłowe przykłady:
[123, 456, 789]
["abc"]
Odpowiedź na śledzenie konwersji
Odpowiedź dotycząca śledzenia konwersji ma następujący format:
{ "ad_events": [<ad event objects>], "errors": [<error strings>], "attributed": true|false }
Tablica ad_events i errors mogą być puste.
Spodziewamy się, że błędy będą czytelne dla kodów błędów, np. invalid_timestamp
.
Zdarzenia reklamowe to główne obiekty atrybucji w aplikacji i będą zawierać poniższe właściwości.
Odpowiedź na śledzenie konwersji | |
---|---|
ad_event_id |
Zawsze włączone tekst
Q2owS0VRancwZHk0QlJDdXVMX2U1TQ |
conversion_metric |
Zawsze włączone tekst Dane konwersji używane do atrybucji. Początkowo będą dostępne pojedyncze dane o konwersjach. conversion |
timestamp |
Zawsze włączone liczba Sygnatura czasowa UNIX wystąpienia zdarzenia reklamowego w sekundach (z dokładnością do mikrosekund). Tej wartości należy używać do atrybucji ostatniego kliknięcia. 1432681913.123456 |
campaign_type |
Zawsze włączone tekst To pole będzie wskazywać typ kampanii, która wywołała zdarzenie reklamowe. Możliwe wartości: ACI ACE Search Display Video Shopping Hotel Performance_Max Other ACI to skrót od kampanii promującej aplikację. ACE to skrót od kampanii budujących zaangażowanie w aplikację. |
campaign_id |
Zawsze włączone liczba Liczbowy identyfikator kampanii, która wywołała zdarzenie reklamowe. Ta wartość jest gwarantowana. 123456789 |
campaign_name |
Zawsze włączone tekst Zdefiniowana przez reklamodawcę nazwa kampanii, która wywołała zdarzenie reklamy. Ta wartość nie jest gwarantowana. Occasional Gamers (Video) |
ad_type |
Zawsze włączone tekst Typ reklamy, która wywołała zdarzenie reklamy. Tej wartości możesz użyć do rozróżniania różnych typów zasobów reklamowych w ten sposób. Promocja aplikacjiClickToDownloadZaangażowanie w aplikację AppDeepLinkZaangażowanie w aplikację – proces instalacji i kontynuacji AppDeepLinkContinueWszystkie pozostałe wartości Unknown |
external_customer_id |
Zawsze włączone liczba Identyfikator reklamodawcy, który jest właścicielem kampanii, która wygenerowała zdarzenie reklamowe. Ta wartość pozwala rozróżnić konta Google Ads. 123456789 |
location |
Zawsze włączone liczba Kod identyfikatora lokalizacji geograficznej zdarzenia reklamowego. Informacje o kodach lokalizacji znajdziesz w dokumentacji interfejsu Google Ads API. |
network_type |
Zawsze włączone tekst To pole będzie wskazywać sieć reklamową Google Ads, w której wystąpiło zdarzenie reklamowe. Oto dostępne wartości: Search Display YouTube |
network_subtype |
Wartość będzie wynosić tekst To pole określa „podtyp” sieci reklamowej Google Ads, na której wystąpiło zdarzenie reklamowe. Możliwe wartości różnią się w zależności od typu sieci głównej. SzukajZwykła wyszukiwarka GoogleGoogleSearchPartnerzy w sieci wyszukiwania Google SearchPartners WyświetlaczWydawcy witryn mobilnychmGDNWydawcy aplikacji Google AdMob YouTubeSieć filmowa YouTubeYouTubeVideosSieć wyszukiwania w YouTube YouTubeSearchSieć partnerów wideo VideoPartners |
video_id |
Podana tylko wtedy, gdy tekst Identyfikator filmu w YouTube powiązany ze zdarzeniem reklamy. dQw4w9WgXcQ |
keyword |
Podana tylko wtedy, gdy tekst Słowo kluczowe powiązane ze zdarzeniem reklamy. +food +delivery |
match_type |
Podana tylko wtedy, gdy tekst Typ dopasowania słów kluczowych w sieci wyszukiwania. ŚcisłeeDo wyrażenia pPrzybliżone b |
placement |
Podana tylko wtedy, gdy tekst Miejsce docelowe powiązane ze zdarzeniem reklamy. mobileapp::1-343200656 |
ad_group_id |
Zawsze włączone liczba Identyfikator numeryczny grupy reklam ze zdarzeniem. Ta wartość jest gwarantowana. 123456789 |
ad_group_name |
Podana tylko wtedy,gdy tekst Zdefiniowana przez reklamodawcę nazwa grupy reklam, która wywołała zdarzenie reklamy. Ta wartość nie jest gwarantowana. My App AdGroup |
creative_id |
Wartość podawana tylko wtedy, gdy właściwość liczba Identyfikator numeryczny jednostki reklamowej, która wywołała zdarzenie reklamowe. Ta wartość jest gwarantowana. 123456789 |
interaction_type |
To pole będzie zawsze wskazywać zaangażowanie. tekst |
Przykładowe odpowiedzi
Przykładowa odpowiedź na śledzenie konwersji, gdy żądanie zawiera błędy:
{ "ad_events": [], "errors": ["INVALID_CURRENCY_CODE"], "attributed": false }
Przykład negatywnej odpowiedzi na śledzenie konwersji:
{ "ad_events": [], "errors": [], "attributed": false }
Odpowiedź na potrzeby śledzenia konwersji zostanie zwrócona w przypadku wszystkich żądań śledzenia konwersji.
Przykładowa odpowiedź na pytanie o śledzenie konwersji w uniwersalnej kampanii promującej aplikację:
{ "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 }
Przykładowa odpowiedź związana ze śledzeniem konwersji w kampanii w sieci wyszukiwania:
{ "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 }
Przykładowa odpowiedź związana ze śledzeniem konwersji w kampanii w sieci reklamowej:
{ "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 }
Przykładowa odpowiedź związana ze śledzeniem konwersji w kampanii w 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 }
Żądanie atrybucji międzysieciowej
Gdy Google Ads odpowie na prośbę o śledzenie konwersji, klient korzystający z interfejsu API musi powiadomić Google Ads o swojej decyzji dotyczącej atrybucji międzysieciowej po zidentyfikowaniu ostatniego kliknięcia.
Żądanie atrybucji międzysieciowej jest identyczne z pierwotnym żądaniem śledzenia konwersji, ale ze ścieżką:
/pagead/conversion/app/1.0/cross_network
i dwa dodatkowe parametry wymagane:
Żądanie atrybucji międzysieciowej | |
---|---|
ad_event_id |
Wymagany Lokalizacja: zapytanie Identyfikator |
attributed |
Wymagany Lokalizacja: zapytanie Określa, czy konto Google Ads ma udział w konwersji
z interfejsu API dla klientów. Może to być |
Przykład prawidłowego żądania atrybucji międzysieciowej:
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
Prawidłowe żądanie atrybucji międzysieciowej zawsze będzie otrzymywać ogólną odpowiedź 200 bez treści odpowiedzi.