
open_rtb.AppAvro Maven / Gradle / Ivy
/**
* Autogenerated by Avro
*
* DO NOT EDIT DIRECTLY
*/
package open_rtb;
/** 3.3.6 App Object
An “app” object should be included if the ad supported content is part of a mobile application (as opposed to a mobile website). A bid request must not contain both an “app” object and a “site” object.
The app object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown. At a minimum, it’s useful to provide an App ID or bundle, but this is not strictly required. */
@org.apache.avro.specific.AvroGenerated
final public class AppAvro extends org.apache.avro.specific.SpecificRecordBase {
/** Application ID on the exchange. */
org.apache.avro.util.Utf8 id;
/** Application name (may be masked at publisher’s request). */
org.apache.avro.util.Utf8 name;
/** Domain of the application (e.g., “mygame.foo.com”). */
org.apache.avro.util.Utf8 domain;
/** Array of IAB content categories for the overall application. See Table 6.1 Content Categories. */
org.apache.avro.generic.GenericData.Array cat;
/** Array of IAB content categories for the current subsection of the app. See Table 6.1 Content Categories. */
org.apache.avro.generic.GenericData.Array sectioncat;
/** Array of IAB content categories for the current page/view of the app. See Table 6.1 Content Categories. */
org.apache.avro.generic.GenericData.Array pagecat;
/** Application version. */
org.apache.avro.util.Utf8 ver;
/** Application bundle or package name (e.g., com.foo.mygame). This is intended to be a unique ID across multiple exchanges. */
org.apache.avro.util.Utf8 bundle;
/** Specifies whether the app has a privacy policy. “1” means there is a policy and “0” means there is not. */
int privacypolicy;
/** “1” if the application is a paid version; else “0” (i.e., free). */
int paid;
/** See Publisher Object. */
open_rtb.PublisherAvro publisher;
/** See Content Object. */
open_rtb.ContentAvro content;
/** List of keywords describing this app in a comma separated string. */
org.apache.avro.util.Utf8 keywords;
/** For QAG 1.5 compliance, an app store URL for an installed app should be passed in the bid request. */
org.apache.avro.util.Utf8 storeurl;
private boolean _frozen = false;
/** Default constructor, does not initialize fields to their default values from the schema. Only use this if you know what you are doing. */
public AppAvro() {}
public AppAvro freeze() {
_frozen = true;
publisher.freeze();
content.freeze();
return this;
}
@Override
public org.apache.avro.Schema getSchema() { return SCHEMA$; }
// Used by DatumWriter. Applications should not call.
@Override
public java.lang.Object get(int field$) {
switch (field$) {
case 0: return id;
case 1: return name;
case 2: return domain;
case 3: return cat;
case 4: return sectioncat;
case 5: return pagecat;
case 6: return ver;
case 7: return bundle;
case 8: return privacypolicy;
case 9: return paid;
case 10: return publisher;
case 11: return content;
case 12: return keywords;
case 13: return storeurl;
default: throw new org.apache.avro.AvroRuntimeException("Bad index");
}
}
/** Writes record to Avro Encoder. */
public void encode(org.apache.avro.io.Encoder _encoder) throws java.io.IOException {
_encoder.writeString(id);
_encoder.writeString(name);
_encoder.writeString(domain);
_encoder.writeArrayStart(); _encoder.setItemCount(cat.size()); for (org.apache.avro.util.Utf8 e : cat) { _encoder.writeString(e); } _encoder.writeArrayEnd();
_encoder.writeArrayStart(); _encoder.setItemCount(sectioncat.size()); for (org.apache.avro.util.Utf8 e : sectioncat) { _encoder.writeString(e); } _encoder.writeArrayEnd();
_encoder.writeArrayStart(); _encoder.setItemCount(pagecat.size()); for (org.apache.avro.util.Utf8 e : pagecat) { _encoder.writeString(e); } _encoder.writeArrayEnd();
_encoder.writeString(ver);
_encoder.writeString(bundle);
_encoder.writeInt(privacypolicy);
_encoder.writeInt(paid);
publisher.encode(_encoder);
content.encode(_encoder);
_encoder.writeString(keywords);
_encoder.writeString(storeurl);
}
// Used by DatumReader. Applications should not call.
@Override
@SuppressWarnings(value="unchecked")
public void put(int field$, java.lang.Object value$) {
if (_frozen) {
throw new org.apache.avro.AvroRuntimeException("this Anoa SpecificRecord instance has already been frozen.");
}
switch (field$) {
case 0: id = (org.apache.avro.util.Utf8) value$; break;
case 1: name = (org.apache.avro.util.Utf8) value$; break;
case 2: domain = (org.apache.avro.util.Utf8) value$; break;
case 3: cat = (org.apache.avro.generic.GenericData.Array) value$; break;
case 4: sectioncat = (org.apache.avro.generic.GenericData.Array) value$; break;
case 5: pagecat = (org.apache.avro.generic.GenericData.Array) value$; break;
case 6: ver = (org.apache.avro.util.Utf8) value$; break;
case 7: bundle = (org.apache.avro.util.Utf8) value$; break;
case 8: privacypolicy = (int) value$; break;
case 9: paid = (int) value$; break;
case 10: publisher = (open_rtb.PublisherAvro) value$; break;
case 11: content = (open_rtb.ContentAvro) value$; break;
case 12: keywords = (org.apache.avro.util.Utf8) value$; break;
case 13: storeurl = (org.apache.avro.util.Utf8) value$; break;
default: throw new org.apache.avro.AvroRuntimeException("Bad index");
}
}
/** Reads record from Avro Decoder. */
public AppAvro decode(org.apache.avro.io.Decoder _decoder) throws java.io.IOException {
if (_frozen) {
throw new org.apache.avro.AvroRuntimeException("this Anoa SpecificRecord instance has already been frozen.");
}
id = _decoder.readString(id);
name = _decoder.readString(name);
domain = _decoder.readString(domain);
long _i3 = _decoder.readArrayStart(); cat = new org.apache.avro.generic.GenericData.Array((int) _i3, SCHEMA$.getFields().get(3).schema()); for(; _i3 != 0; _i3 = _decoder.arrayNext()) { for (long _j3= 0; _j3 < _i3; _j3++) { cat.add(_decoder.readString(null)); } }
long _i4 = _decoder.readArrayStart(); sectioncat = new org.apache.avro.generic.GenericData.Array((int) _i4, SCHEMA$.getFields().get(4).schema()); for(; _i4 != 0; _i4 = _decoder.arrayNext()) { for (long _j4= 0; _j4 < _i4; _j4++) { sectioncat.add(_decoder.readString(null)); } }
long _i5 = _decoder.readArrayStart(); pagecat = new org.apache.avro.generic.GenericData.Array((int) _i5, SCHEMA$.getFields().get(5).schema()); for(; _i5 != 0; _i5 = _decoder.arrayNext()) { for (long _j5= 0; _j5 < _i5; _j5++) { pagecat.add(_decoder.readString(null)); } }
ver = _decoder.readString(ver);
bundle = _decoder.readString(bundle);
privacypolicy = _decoder.readInt();
paid = _decoder.readInt();
publisher = java.util.Optional.ofNullable(publisher).orElseGet(open_rtb.PublisherAvro::new).decode(_decoder);
content = java.util.Optional.ofNullable(content).orElseGet(open_rtb.ContentAvro::new).decode(_decoder);
keywords = _decoder.readString(keywords);
storeurl = _decoder.readString(storeurl);
return freeze();
}
/**
* RecordBuilder for Avro instances.
*/
static public class Builder extends org.apache.avro.specific.SpecificRecordBuilderBase implements org.apache.avro.data.RecordBuilder {
private org.apache.avro.util.Utf8 id;
private org.apache.avro.util.Utf8 name;
private org.apache.avro.util.Utf8 domain;
private org.apache.avro.generic.GenericData.Array cat;
private org.apache.avro.generic.GenericData.Array sectioncat;
private org.apache.avro.generic.GenericData.Array pagecat;
private org.apache.avro.util.Utf8 ver;
private org.apache.avro.util.Utf8 bundle;
private int privacypolicy;
private int paid;
private open_rtb.PublisherAvro publisher;
private open_rtb.ContentAvro content;
private org.apache.avro.util.Utf8 keywords;
private org.apache.avro.util.Utf8 storeurl;
public Builder() {
super(AppAvro.SCHEMA$);
}
public Builder(AppAvro.Builder other) {
super(other);
if (isValidValue(fields()[0], other.id)) {
this.id = data().deepCopy(fields()[0].schema(), other.id);
fieldSetFlags()[0] = true;
}
if (isValidValue(fields()[1], other.name)) {
this.name = data().deepCopy(fields()[1].schema(), other.name);
fieldSetFlags()[1] = true;
}
if (isValidValue(fields()[2], other.domain)) {
this.domain = data().deepCopy(fields()[2].schema(), other.domain);
fieldSetFlags()[2] = true;
}
if (isValidValue(fields()[3], other.cat)) {
this.cat = data().deepCopy(fields()[3].schema(), other.cat);
fieldSetFlags()[3] = true;
}
if (isValidValue(fields()[4], other.sectioncat)) {
this.sectioncat = data().deepCopy(fields()[4].schema(), other.sectioncat);
fieldSetFlags()[4] = true;
}
if (isValidValue(fields()[5], other.pagecat)) {
this.pagecat = data().deepCopy(fields()[5].schema(), other.pagecat);
fieldSetFlags()[5] = true;
}
if (isValidValue(fields()[6], other.ver)) {
this.ver = data().deepCopy(fields()[6].schema(), other.ver);
fieldSetFlags()[6] = true;
}
if (isValidValue(fields()[7], other.bundle)) {
this.bundle = data().deepCopy(fields()[7].schema(), other.bundle);
fieldSetFlags()[7] = true;
}
if (isValidValue(fields()[8], other.privacypolicy)) {
this.privacypolicy = data().deepCopy(fields()[8].schema(), other.privacypolicy);
fieldSetFlags()[8] = true;
}
if (isValidValue(fields()[9], other.paid)) {
this.paid = data().deepCopy(fields()[9].schema(), other.paid);
fieldSetFlags()[9] = true;
}
if (isValidValue(fields()[10], other.publisher)) {
this.publisher = data().deepCopy(fields()[10].schema(), other.publisher);
fieldSetFlags()[10] = true;
}
if (isValidValue(fields()[11], other.content)) {
this.content = data().deepCopy(fields()[11].schema(), other.content);
fieldSetFlags()[11] = true;
}
if (isValidValue(fields()[12], other.keywords)) {
this.keywords = data().deepCopy(fields()[12].schema(), other.keywords);
fieldSetFlags()[12] = true;
}
if (isValidValue(fields()[13], other.storeurl)) {
this.storeurl = data().deepCopy(fields()[13].schema(), other.storeurl);
fieldSetFlags()[13] = true;
}
}
public Builder(AppAvro other) {
super(AppAvro.SCHEMA$);
if (isValidValue(fields()[0], other.id)) {
this.id = data().deepCopy(fields()[0].schema(), other.id);
fieldSetFlags()[0] = true;
}
if (isValidValue(fields()[1], other.name)) {
this.name = data().deepCopy(fields()[1].schema(), other.name);
fieldSetFlags()[1] = true;
}
if (isValidValue(fields()[2], other.domain)) {
this.domain = data().deepCopy(fields()[2].schema(), other.domain);
fieldSetFlags()[2] = true;
}
if (isValidValue(fields()[3], other.cat)) {
this.cat = data().deepCopy(fields()[3].schema(), other.cat);
fieldSetFlags()[3] = true;
}
if (isValidValue(fields()[4], other.sectioncat)) {
this.sectioncat = data().deepCopy(fields()[4].schema(), other.sectioncat);
fieldSetFlags()[4] = true;
}
if (isValidValue(fields()[5], other.pagecat)) {
this.pagecat = data().deepCopy(fields()[5].schema(), other.pagecat);
fieldSetFlags()[5] = true;
}
if (isValidValue(fields()[6], other.ver)) {
this.ver = data().deepCopy(fields()[6].schema(), other.ver);
fieldSetFlags()[6] = true;
}
if (isValidValue(fields()[7], other.bundle)) {
this.bundle = data().deepCopy(fields()[7].schema(), other.bundle);
fieldSetFlags()[7] = true;
}
if (isValidValue(fields()[8], other.privacypolicy)) {
this.privacypolicy = data().deepCopy(fields()[8].schema(), other.privacypolicy);
fieldSetFlags()[8] = true;
}
if (isValidValue(fields()[9], other.paid)) {
this.paid = data().deepCopy(fields()[9].schema(), other.paid);
fieldSetFlags()[9] = true;
}
if (isValidValue(fields()[10], other.publisher)) {
this.publisher = data().deepCopy(fields()[10].schema(), other.publisher);
fieldSetFlags()[10] = true;
}
if (isValidValue(fields()[11], other.content)) {
this.content = data().deepCopy(fields()[11].schema(), other.content);
fieldSetFlags()[11] = true;
}
if (isValidValue(fields()[12], other.keywords)) {
this.keywords = data().deepCopy(fields()[12].schema(), other.keywords);
fieldSetFlags()[12] = true;
}
if (isValidValue(fields()[13], other.storeurl)) {
this.storeurl = data().deepCopy(fields()[13].schema(), other.storeurl);
fieldSetFlags()[13] = true;
}
}
/** Gets the value of the 'id' field. */
public org.apache.avro.util.Utf8 getId() {
return id;
}
/** Sets the value of the 'id' field. */
public AppAvro.Builder setId(org.apache.avro.util.Utf8 value) {
validate(fields()[0], value);
this.id = value;
fieldSetFlags()[0] = true;
return this;
}
/** Checks whether the 'id' field has been set. */
public boolean hasId() {
return fieldSetFlags()[0];
}
/** Clears the value of the 'id' field. */
public AppAvro.Builder clearId() {
id = null;
fieldSetFlags()[0] = false;
return this;
}
/** Gets the value of the 'name' field. */
public org.apache.avro.util.Utf8 getName() {
return name;
}
/** Sets the value of the 'name' field. */
public AppAvro.Builder setName(org.apache.avro.util.Utf8 value) {
validate(fields()[1], value);
this.name = value;
fieldSetFlags()[1] = true;
return this;
}
/** Checks whether the 'name' field has been set. */
public boolean hasName() {
return fieldSetFlags()[1];
}
/** Clears the value of the 'name' field. */
public AppAvro.Builder clearName() {
name = null;
fieldSetFlags()[1] = false;
return this;
}
/** Gets the value of the 'domain' field. */
public org.apache.avro.util.Utf8 getDomain() {
return domain;
}
/** Sets the value of the 'domain' field. */
public AppAvro.Builder setDomain(org.apache.avro.util.Utf8 value) {
validate(fields()[2], value);
this.domain = value;
fieldSetFlags()[2] = true;
return this;
}
/** Checks whether the 'domain' field has been set. */
public boolean hasDomain() {
return fieldSetFlags()[2];
}
/** Clears the value of the 'domain' field. */
public AppAvro.Builder clearDomain() {
domain = null;
fieldSetFlags()[2] = false;
return this;
}
/** Gets the value of the 'cat' field. */
public org.apache.avro.generic.GenericData.Array getCat() {
return cat;
}
/** Sets the value of the 'cat' field. */
public AppAvro.Builder setCat(org.apache.avro.generic.GenericData.Array value) {
validate(fields()[3], value);
this.cat = value;
fieldSetFlags()[3] = true;
return this;
}
/** Checks whether the 'cat' field has been set. */
public boolean hasCat() {
return fieldSetFlags()[3];
}
/** Clears the value of the 'cat' field. */
public AppAvro.Builder clearCat() {
cat = null;
fieldSetFlags()[3] = false;
return this;
}
/** Gets the value of the 'sectioncat' field. */
public org.apache.avro.generic.GenericData.Array getSectioncat() {
return sectioncat;
}
/** Sets the value of the 'sectioncat' field. */
public AppAvro.Builder setSectioncat(org.apache.avro.generic.GenericData.Array value) {
validate(fields()[4], value);
this.sectioncat = value;
fieldSetFlags()[4] = true;
return this;
}
/** Checks whether the 'sectioncat' field has been set. */
public boolean hasSectioncat() {
return fieldSetFlags()[4];
}
/** Clears the value of the 'sectioncat' field. */
public AppAvro.Builder clearSectioncat() {
sectioncat = null;
fieldSetFlags()[4] = false;
return this;
}
/** Gets the value of the 'pagecat' field. */
public org.apache.avro.generic.GenericData.Array getPagecat() {
return pagecat;
}
/** Sets the value of the 'pagecat' field. */
public AppAvro.Builder setPagecat(org.apache.avro.generic.GenericData.Array value) {
validate(fields()[5], value);
this.pagecat = value;
fieldSetFlags()[5] = true;
return this;
}
/** Checks whether the 'pagecat' field has been set. */
public boolean hasPagecat() {
return fieldSetFlags()[5];
}
/** Clears the value of the 'pagecat' field. */
public AppAvro.Builder clearPagecat() {
pagecat = null;
fieldSetFlags()[5] = false;
return this;
}
/** Gets the value of the 'ver' field. */
public org.apache.avro.util.Utf8 getVer() {
return ver;
}
/** Sets the value of the 'ver' field. */
public AppAvro.Builder setVer(org.apache.avro.util.Utf8 value) {
validate(fields()[6], value);
this.ver = value;
fieldSetFlags()[6] = true;
return this;
}
/** Checks whether the 'ver' field has been set. */
public boolean hasVer() {
return fieldSetFlags()[6];
}
/** Clears the value of the 'ver' field. */
public AppAvro.Builder clearVer() {
ver = null;
fieldSetFlags()[6] = false;
return this;
}
/** Gets the value of the 'bundle' field. */
public org.apache.avro.util.Utf8 getBundle() {
return bundle;
}
/** Sets the value of the 'bundle' field. */
public AppAvro.Builder setBundle(org.apache.avro.util.Utf8 value) {
validate(fields()[7], value);
this.bundle = value;
fieldSetFlags()[7] = true;
return this;
}
/** Checks whether the 'bundle' field has been set. */
public boolean hasBundle() {
return fieldSetFlags()[7];
}
/** Clears the value of the 'bundle' field. */
public AppAvro.Builder clearBundle() {
bundle = null;
fieldSetFlags()[7] = false;
return this;
}
/** Gets the value of the 'privacypolicy' field. */
public int getPrivacypolicy() {
return privacypolicy;
}
/** Sets the value of the 'privacypolicy' field. */
public AppAvro.Builder setPrivacypolicy(int value) {
validate(fields()[8], value);
this.privacypolicy = value;
fieldSetFlags()[8] = true;
return this;
}
/** Checks whether the 'privacypolicy' field has been set. */
public boolean hasPrivacypolicy() {
return fieldSetFlags()[8];
}
/** Clears the value of the 'privacypolicy' field. */
public AppAvro.Builder clearPrivacypolicy() {
fieldSetFlags()[8] = false;
return this;
}
/** Gets the value of the 'paid' field. */
public int getPaid() {
return paid;
}
/** Sets the value of the 'paid' field. */
public AppAvro.Builder setPaid(int value) {
validate(fields()[9], value);
this.paid = value;
fieldSetFlags()[9] = true;
return this;
}
/** Checks whether the 'paid' field has been set. */
public boolean hasPaid() {
return fieldSetFlags()[9];
}
/** Clears the value of the 'paid' field. */
public AppAvro.Builder clearPaid() {
fieldSetFlags()[9] = false;
return this;
}
/** Gets the value of the 'publisher' field. */
public open_rtb.PublisherAvro getPublisher() {
return publisher;
}
/** Sets the value of the 'publisher' field. */
public AppAvro.Builder setPublisher(open_rtb.PublisherAvro value) {
validate(fields()[10], value);
this.publisher = value;
fieldSetFlags()[10] = true;
return this;
}
/** Checks whether the 'publisher' field has been set. */
public boolean hasPublisher() {
return fieldSetFlags()[10];
}
/** Clears the value of the 'publisher' field. */
public AppAvro.Builder clearPublisher() {
publisher = null;
fieldSetFlags()[10] = false;
return this;
}
/** Gets the value of the 'content' field. */
public open_rtb.ContentAvro getContent() {
return content;
}
/** Sets the value of the 'content' field. */
public AppAvro.Builder setContent(open_rtb.ContentAvro value) {
validate(fields()[11], value);
this.content = value;
fieldSetFlags()[11] = true;
return this;
}
/** Checks whether the 'content' field has been set. */
public boolean hasContent() {
return fieldSetFlags()[11];
}
/** Clears the value of the 'content' field. */
public AppAvro.Builder clearContent() {
content = null;
fieldSetFlags()[11] = false;
return this;
}
/** Gets the value of the 'keywords' field. */
public org.apache.avro.util.Utf8 getKeywords() {
return keywords;
}
/** Sets the value of the 'keywords' field. */
public AppAvro.Builder setKeywords(org.apache.avro.util.Utf8 value) {
validate(fields()[12], value);
this.keywords = value;
fieldSetFlags()[12] = true;
return this;
}
/** Checks whether the 'keywords' field has been set. */
public boolean hasKeywords() {
return fieldSetFlags()[12];
}
/** Clears the value of the 'keywords' field. */
public AppAvro.Builder clearKeywords() {
keywords = null;
fieldSetFlags()[12] = false;
return this;
}
/** Gets the value of the 'storeurl' field. */
public org.apache.avro.util.Utf8 getStoreurl() {
return storeurl;
}
/** Sets the value of the 'storeurl' field. */
public AppAvro.Builder setStoreurl(org.apache.avro.util.Utf8 value) {
validate(fields()[13], value);
this.storeurl = value;
fieldSetFlags()[13] = true;
return this;
}
/** Checks whether the 'storeurl' field has been set. */
public boolean hasStoreurl() {
return fieldSetFlags()[13];
}
/** Clears the value of the 'storeurl' field. */
public AppAvro.Builder clearStoreurl() {
storeurl = null;
fieldSetFlags()[13] = false;
return this;
}
@Override
public AppAvro build() {
final AppAvro record;
try {
record = new AppAvro();
record.id = fieldSetFlags()[0] ? this.id : (org.apache.avro.util.Utf8) defaultValue(fields()[0]);
record.name = fieldSetFlags()[1] ? this.name : (org.apache.avro.util.Utf8) defaultValue(fields()[1]);
record.domain = fieldSetFlags()[2] ? this.domain : (org.apache.avro.util.Utf8) defaultValue(fields()[2]);
record.cat = fieldSetFlags()[3] ? this.cat : (org.apache.avro.generic.GenericData.Array) defaultValue(fields()[3]);
record.sectioncat = fieldSetFlags()[4] ? this.sectioncat : (org.apache.avro.generic.GenericData.Array) defaultValue(fields()[4]);
record.pagecat = fieldSetFlags()[5] ? this.pagecat : (org.apache.avro.generic.GenericData.Array) defaultValue(fields()[5]);
record.ver = fieldSetFlags()[6] ? this.ver : (org.apache.avro.util.Utf8) defaultValue(fields()[6]);
record.bundle = fieldSetFlags()[7] ? this.bundle : (org.apache.avro.util.Utf8) defaultValue(fields()[7]);
record.privacypolicy = fieldSetFlags()[8] ? this.privacypolicy : (int) defaultValue(fields()[8]);
record.paid = fieldSetFlags()[9] ? this.paid : (int) defaultValue(fields()[9]);
record.publisher = fieldSetFlags()[10] ? this.publisher : (open_rtb.PublisherAvro) defaultValue(fields()[10]);
record.content = fieldSetFlags()[11] ? this.content : (open_rtb.ContentAvro) defaultValue(fields()[11]);
record.keywords = fieldSetFlags()[12] ? this.keywords : (org.apache.avro.util.Utf8) defaultValue(fields()[12]);
record.storeurl = fieldSetFlags()[13] ? this.storeurl : (org.apache.avro.util.Utf8) defaultValue(fields()[13]);
} catch (Exception e) {
throw new org.apache.avro.AvroRuntimeException(e);
}
return record.freeze();
}
}
/** Creates a new AppAvro RecordBuilder. */
static public AppAvro.Builder newBuilder() {
return new AppAvro.Builder();
}
/** Creates a new AppAvro RecordBuilder by copying an existing AppAvro.Builder instance. */
static public AppAvro.Builder newBuilder(AppAvro.Builder other) {
return new AppAvro.Builder(other);
}
/** Creates a new AppAvro RecordBuilder by copying an existing AppAvro instance. */
static public AppAvro.Builder newBuilder(AppAvro other) {
return new AppAvro.Builder(other);
}
/** Returns Avro record schema. */
static public org.apache.avro.Schema getClassSchema() { return SCHEMA$; }
static public final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"AppAvro\",\"namespace\":\"open_rtb\",\"doc\":\"3.3.6 App Object\\nAn “app” object should be included if the ad supported content is part of a mobile application (as opposed to a mobile website). A bid request must not contain both an “app” object and a “site” object.\\nThe app object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown. At a minimum, it’s useful to provide an App ID or bundle, but this is not strictly required.\",\"fields\":[{\"name\":\"id\",\"type\":\"string\",\"doc\":\"Application ID on the exchange.\",\"default\":\"\",\"ordinal_\":1},{\"name\":\"name\",\"type\":\"string\",\"doc\":\"Application name (may be masked at publisher’s request).\",\"default\":\"\",\"ordinal_\":2},{\"name\":\"domain\",\"type\":\"string\",\"doc\":\"Domain of the application (e.g., “mygame.foo.com”).\",\"default\":\"\",\"ordinal_\":3},{\"name\":\"cat\",\"type\":{\"type\":\"array\",\"items\":\"string\"},\"doc\":\"Array of IAB content categories for the overall application. See Table 6.1 Content Categories.\",\"default\":[],\"ordinal_\":4},{\"name\":\"sectioncat\",\"type\":{\"type\":\"array\",\"items\":\"string\"},\"doc\":\"Array of IAB content categories for the current subsection of the app. See Table 6.1 Content Categories.\",\"default\":[],\"ordinal_\":5},{\"name\":\"pagecat\",\"type\":{\"type\":\"array\",\"items\":\"string\"},\"doc\":\"Array of IAB content categories for the current page/view of the app. See Table 6.1 Content Categories.\",\"default\":[],\"ordinal_\":6},{\"name\":\"ver\",\"type\":\"string\",\"doc\":\"Application version.\",\"default\":\"\",\"ordinal_\":7},{\"name\":\"bundle\",\"type\":\"string\",\"doc\":\"Application bundle or package name (e.g., com.foo.mygame). This is intended to be a unique ID across multiple exchanges.\",\"default\":\"\",\"ordinal_\":8},{\"name\":\"privacypolicy\",\"type\":{\"type\":\"int\",\"max\":1,\"min\":0},\"doc\":\"Specifies whether the app has a privacy policy. “1” means there is a policy and “0” means there is not.\",\"default\":0,\"ordinal_\":9},{\"name\":\"paid\",\"type\":{\"type\":\"int\",\"max\":1,\"min\":0},\"doc\":\"“1” if the application is a paid version; else “0” (i.e., free).\",\"default\":0,\"ordinal_\":10},{\"name\":\"publisher\",\"type\":{\"type\":\"record\",\"name\":\"PublisherAvro\",\"doc\":\"3.3.8 Publisher Object\\nThe publisher object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown.\",\"fields\":[{\"name\":\"id\",\"type\":\"string\",\"doc\":\"Publisher ID on the exchange.\",\"default\":\"\",\"ordinal_\":1},{\"name\":\"name\",\"type\":\"string\",\"doc\":\"Publisher name (may be masked at publisher’s request).\",\"default\":\"\",\"ordinal_\":2},{\"name\":\"cat\",\"type\":{\"type\":\"array\",\"items\":\"string\"},\"doc\":\"Array of IAB content categories for the publisher. See Table 6.1 Content Categories.\",\"default\":[],\"ordinal_\":3},{\"name\":\"domain\",\"type\":\"string\",\"doc\":\"Publisher’s highest level domain name, for example “foopub.com”.\",\"default\":\"\",\"ordinal_\":4}]},\"doc\":\"See Publisher Object.\",\"default\":{},\"ordinal_\":11},{\"name\":\"content\",\"type\":{\"type\":\"record\",\"name\":\"ContentAvro\",\"doc\":\"3.3.7 Content Object\\nThe content object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown. This object describes the content in which the impression will appear (may be syndicated or non- syndicated content).\\nThis object may be useful in the situation where syndicated content contains impressions and does not necessarily match the publisher’s general content. The exchange might or might not have knowledge of the page where the content is running, as a result of the syndication method. (For example, video impressions embedded in an iframe on an unknown web property or device.)\",\"fields\":[{\"name\":\"id\",\"type\":\"string\",\"doc\":\"ID uniquely identifying the content.\",\"default\":\"\",\"ordinal_\":1},{\"name\":\"episode\",\"type\":{\"type\":\"int\",\"max\":4294967295,\"min\":0},\"doc\":\"Content episode number (typically applies to video content).\",\"default\":0,\"ordinal_\":2},{\"name\":\"title\",\"type\":\"string\",\"doc\":\"Content title.\\n Video examples: “Search Committee” (television) or “A New Hope” (movie) or “Endgame” (made for web)\\n Non-video example: “Why an Antarctic Glacier Is Melting So Quickly” (Time magazine article)\",\"default\":\"\",\"ordinal_\":3},{\"name\":\"series\",\"type\":\"string\",\"doc\":\"Content series.\\n Video examples: “The Office” (television) or “Star Wars” (movie) or “Arby ‘N’ The Chief” (made for web)\\n Non-video example: “Ecocentric” (Time magazine blog)\",\"default\":\"\",\"ordinal_\":4},{\"name\":\"season\",\"type\":\"string\",\"doc\":\"Content season. E.g., “Season 3” (typically applies to video content).\",\"default\":\"\",\"ordinal_\":5},{\"name\":\"url\",\"type\":\"string\",\"doc\":\"Original URL of the content, for buy-side contextualization or review.\",\"default\":\"\",\"ordinal_\":6},{\"name\":\"cat\",\"type\":{\"type\":\"array\",\"items\":\"string\"},\"doc\":\"Array of IAB content categories for the content. See Table 6.1 Content Categories.\",\"default\":[],\"ordinal_\":7},{\"name\":\"videoquality\",\"type\":{\"type\":\"int\",\"max\":255,\"min\":0},\"doc\":\"Video quality per the IAB’s classification. See Table 6.14 Video Quality.\",\"default\":0,\"ordinal_\":8},{\"name\":\"keywords\",\"type\":\"string\",\"doc\":\"Comma separated list of keywords describing the content.\",\"default\":\"\",\"ordinal_\":9},{\"name\":\"contentrating\",\"type\":\"string\",\"doc\":\"Content rating (e.g., MPAA)\",\"default\":\"\",\"ordinal_\":10},{\"name\":\"userrating\",\"type\":\"string\",\"doc\":\"User rating of the content (e.g., number of stars, likes, etc.).\",\"default\":\"\",\"ordinal_\":11},{\"name\":\"context\",\"type\":\"string\",\"doc\":\"Specifies the type of content (game, video, text, etc.). See Table 6.13 Content Context.\",\"default\":\"\",\"ordinal_\":12},{\"name\":\"livestream\",\"type\":{\"type\":\"int\",\"max\":1,\"min\":0},\"doc\":\"Is content live? E.g., live video stream, live blog. “1” means content is live. “0” means it is not live.\",\"default\":0,\"ordinal_\":13},{\"name\":\"sourcerelationship\",\"type\":{\"type\":\"int\",\"max\":1,\"min\":0},\"doc\":\"1 for “direct”; 0 for “indirect”.\",\"default\":0,\"ordinal_\":14},{\"name\":\"producer\",\"type\":{\"type\":\"record\",\"name\":\"ProducerAvro\",\"doc\":\"3.3.9 Producer Object\\nThe producer is useful when content where the ad is shown is syndicated, and may appear on a completely different publisher. The producer object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown. This object is optional, but useful if the content producer is different from the site publisher.\",\"fields\":[{\"name\":\"id\",\"type\":\"string\",\"doc\":\"Content producer or originator ID. Useful if content is syndicated, and may be posted on a site using embed tags.\",\"default\":\"\",\"ordinal_\":1},{\"name\":\"name\",\"type\":\"string\",\"doc\":\"Content producer or originator name (e.g., “Warner Bros”).\",\"default\":\"\",\"ordinal_\":2},{\"name\":\"cat\",\"type\":{\"type\":\"array\",\"items\":\"string\"},\"doc\":\"Array of IAB content categories for the content producer. See Table 6.1 Content Categories.\",\"default\":[],\"ordinal_\":3},{\"name\":\"domain\",\"type\":\"string\",\"doc\":\"URL of the content producer.\",\"default\":\"\",\"ordinal_\":4}]},\"doc\":\"See Producer Object.\",\"default\":{},\"ordinal_\":15},{\"name\":\"len\",\"type\":{\"type\":\"int\",\"max\":4294967295,\"min\":0},\"doc\":\"Length of content (appropriate for video or audio) in seconds.\",\"default\":0,\"ordinal_\":16},{\"name\":\"qagmediarating\",\"type\":{\"type\":\"int\",\"max\":255,\"min\":0},\"doc\":\"Media rating of the content, per QAG guidelines. See Table 0 QAG Media Ratings for list of possible values.\",\"default\":0,\"ordinal_\":17},{\"name\":\"embeddable\",\"type\":{\"type\":\"int\",\"max\":1,\"min\":0},\"doc\":\"From QAG Video Addendum. If content can be embedded (such as an embeddable video player) this value should be set to “1”. If content cannot be embedded, then this should be set to “0”.\",\"default\":0,\"ordinal_\":18},{\"name\":\"language\",\"type\":\"string\",\"doc\":\"Language of the content. Use alpha-2/ISO 639-1 codes.\",\"default\":\"\",\"ordinal_\":19}]},\"doc\":\"See Content Object.\",\"default\":{},\"ordinal_\":12},{\"name\":\"keywords\",\"type\":\"string\",\"doc\":\"List of keywords describing this app in a comma separated string.\",\"default\":\"\",\"ordinal_\":13},{\"name\":\"","storeurl\",\"type\":\"string\",\"doc\":\"For QAG 1.5 compliance, an app store URL for an installed app should be passed in the bid request.\",\"default\":\"\",\"ordinal_\":14}]}");
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy